diff --git a/DEPS b/DEPS index f5f0741..5249be58 100644 --- a/DEPS +++ b/DEPS
@@ -45,11 +45,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'f3b4e16c36a6c789fc129aa3bd15c34b44ee8743', + 'skia_revision': '0e4e410ac8042d880923f87c8a7c325539896344', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '45a0ce950715c19d967a91464589ca334d95164d', + 'v8_revision': '306bf06e29993ae06c926d27f5683e2a23566d74', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -69,7 +69,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': 'f5777a117a7557507616eaf585de5eb266531e16', + 'pdfium_revision': '92627618a93720c6153828b8a8d1c6ed17c6e91f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -97,7 +97,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. - 'freetype_revision': '1ad07c1c79841e54ff3d5c37e28bfb91f402ee84', + 'freetype_revision': '6f2b6f8f72ffb5017ab00fca83185b21f1a9f56d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other.
diff --git a/base/BUILD.gn b/base/BUILD.gn index 623ac1a4..dd20532f2 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -2191,6 +2191,7 @@ "threading/thread_id_name_manager_unittest.cc", "threading/thread_local_storage_unittest.cc", "threading/thread_local_unittest.cc", + "threading/thread_restrictions_unittest.cc", "threading/thread_task_runner_handle_unittest.cc", "threading/thread_unittest.cc", "threading/watchdog_unittest.cc", @@ -2716,7 +2717,6 @@ "test/android/javatests/src/org/chromium/base/test/util/RetryOnFailure.java", "test/android/javatests/src/org/chromium/base/test/util/ScalableTimeout.java", "test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java", - "test/android/javatests/src/org/chromium/base/test/util/ScreenShooter.java", "test/android/javatests/src/org/chromium/base/test/util/TestFileUtil.java", "test/android/javatests/src/org/chromium/base/test/util/TestThread.java", "test/android/javatests/src/org/chromium/base/test/util/TimeoutScale.java",
diff --git a/base/test/android/javatests/src/org/chromium/base/test/util/ScreenShooter.java b/base/test/android/javatests/src/org/chromium/base/test/util/ScreenShooter.java deleted file mode 100644 index 99c2bf1..0000000 --- a/base/test/android/javatests/src/org/chromium/base/test/util/ScreenShooter.java +++ /dev/null
@@ -1,143 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.base.test.util; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import android.app.Instrumentation; -import android.content.res.Configuration; -import android.graphics.Point; -import android.os.Build; -import android.support.test.InstrumentationRegistry; -import android.support.test.uiautomator.UiDevice; - -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; - -import java.io.File; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.util.Locale; - -/** - * Rule for taking screen shots within tests. Screenshots are saved as - * UiCapture/<test class directory>/<test directory>/<shot name>.png. - * - * <test class directory> and <test directory> can both the set by the @ScreenShooter.Directory - * annotation. <test class directory> defaults to nothing (i.e. no directory created at this - * level), and <test directory> defaults to the name of the individual test. - * - * A simple example: - * - * <pre> - * { - * @RunWith(ChromeJUnit4ClassRunner.class) - * @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) - * @Restriction(RESTRICTION_TYPE_PHONE) // Tab switcher button only exists on phones. - * @ScreenShooter.Directory("Example") - * public class ExampleUiCaptureTest { - * @Rule - * public ChromeActivityTestRule<ChromeTabbedActivity> mActivityTestRule = - * new ChromeActivityTestRule<>(ChromeTabbedActivity.class); - * - * @Rule - * public ScreenShooter mScreenShooter = new ScreenShooter(); - * - * @Before - * public void setUp() throws InterruptedException { - * mActivityTestRule.startMainActivityFromLauncher(); - * } - * - * // Capture the New Tab Page and the tab switcher. - * @Test - * @SmallTest - * @Feature({"UiCatalogue"}) - * @ScreenShooter.Directory("TabSwitcher") - * public void testCaptureTabSwitcher() throws IOException, InterruptedException { - * mScreenShooter.shoot("NTP"); - * Espresso.onView(ViewMatchers.withId(R.id.tab_switcher_button)). - * perform(ViewActions.click()); - * mScreenShooter.shoot("Tab switcher"); - * } - * } - * } - * </pre> - */ -public class ScreenShooter extends TestWatcher { - private static final String SCREENSHOT_DIR = - "org.chromium.base.test.util.Screenshooter.ScreenshotDir"; - private final Instrumentation mInstrumentation; - private final UiDevice mDevice; - private final String mBaseDir; - private final String mModel; - private File mDir; - - @Retention(RetentionPolicy.RUNTIME) - @Target({ElementType.TYPE, ElementType.METHOD}) - public @interface Directory { - String value(); - } - - public ScreenShooter() { - mInstrumentation = InstrumentationRegistry.getInstrumentation(); - mDevice = UiDevice.getInstance(mInstrumentation); - mBaseDir = InstrumentationRegistry.getArguments().getString(SCREENSHOT_DIR); - mModel = getModelName(); - } - - @Override - protected void starting(Description d) { - mDir = new File(mBaseDir); - Class<?> testClass = d.getTestClass(); - Directory classDirectoryAnnotation = testClass.getAnnotation(Directory.class); - String classDirName = classDirectoryAnnotation == null ? "" - : classDirectoryAnnotation.value(); - if (!classDirName.isEmpty()) mDir = new File(mBaseDir, classDirName); - Directory methodDirectoryAnnotation = d.getAnnotation(Directory.class); - String testMethodDir = methodDirectoryAnnotation == null ? d.getMethodName() - : methodDirectoryAnnotation.value(); - if (!testMethodDir.isEmpty()) mDir = new File(mDir, testMethodDir); - if (!mDir.exists()) assertTrue("Create screenshot directory", mDir.mkdirs()); - } - - /** - * Take a screen shot and save it to a file. - * - * @param shotName The name of this particular screenshot within this test. This will be used to - * name the image file. - */ - public void shoot(String shotName) { - assertNotNull("ScreenShooter rule initialized", mDir); - assertTrue("Screenshot " + shotName, - mDevice.takeScreenshot(new File(mDir, imageName(shotName)))); - } - - private String getModelName() { - String model = Build.MODEL.replace(' ', '_'); - // Emulator model names are "SDK_built_for_x86" or similar, so use something more useful - if (model.toUpperCase(Locale.ROOT).contains("SDK")) { - Point displaySize = mDevice.getDisplaySizeDp(); - // Make sure we have a consistent name whatever the orientation. - if (InstrumentationRegistry.getContext().getResources() - .getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - model = "Emulator_" + displaySize.y + '_' + displaySize.x; - } else { - model = "Emulator_" + displaySize.x + '_' + displaySize.y; - } - } - return model; - } - - private String imageName(String shotName) { - int orientation = - InstrumentationRegistry.getContext().getResources().getConfiguration().orientation; - String orientationName = - orientation == Configuration.ORIENTATION_LANDSCAPE ? "landscape" : "portrait"; - return String.format("%s.%s.%s.png", shotName, mModel, orientationName); - } -}
diff --git a/base/threading/thread_restrictions.cc b/base/threading/thread_restrictions.cc index b6563d58..066453f 100644 --- a/base/threading/thread_restrictions.cc +++ b/base/threading/thread_restrictions.cc
@@ -14,35 +14,120 @@ namespace { -LazyInstance<ThreadLocalBoolean>::Leaky - g_io_disallowed = LAZY_INSTANCE_INITIALIZER; +LazyInstance<ThreadLocalBoolean>::Leaky g_blocking_disallowed = + LAZY_INSTANCE_INITIALIZER; LazyInstance<ThreadLocalBoolean>::Leaky g_singleton_disallowed = LAZY_INSTANCE_INITIALIZER; -LazyInstance<ThreadLocalBoolean>::Leaky - g_wait_disallowed = LAZY_INSTANCE_INITIALIZER; +LazyInstance<ThreadLocalBoolean>::Leaky g_base_sync_primitives_disallowed = + LAZY_INSTANCE_INITIALIZER; } // namespace +void AssertBlockingAllowed() { + DCHECK(!g_blocking_disallowed.Get().Get()) + << "Function marked as blocking was called from a scope that disallows " + "blocking! If this task is running inside the TaskScheduler, it needs " + "to have MayBlock() in its TaskTraits. Otherwise, consider making " + "this blocking work asynchronous or, as a last resort, you may use " + "ScopedAllowBlocking in a narrow scope."; +} + +void DisallowBlocking() { + g_blocking_disallowed.Get().Set(true); +} + +ScopedDisallowBlocking::ScopedDisallowBlocking() + : was_disallowed_(g_blocking_disallowed.Get().Get()) { + g_blocking_disallowed.Get().Set(true); +} + +ScopedDisallowBlocking::~ScopedDisallowBlocking() { + DCHECK(g_blocking_disallowed.Get().Get()); + g_blocking_disallowed.Get().Set(was_disallowed_); +} + +ScopedAllowBlocking::ScopedAllowBlocking() + : was_disallowed_(g_blocking_disallowed.Get().Get()) { + g_blocking_disallowed.Get().Set(false); +} + +ScopedAllowBlocking::~ScopedAllowBlocking() { + DCHECK(!g_blocking_disallowed.Get().Get()); + g_blocking_disallowed.Get().Set(was_disallowed_); +} + +void DisallowBaseSyncPrimitives() { + g_base_sync_primitives_disallowed.Get().Set(true); +} + +ScopedAllowBaseSyncPrimitives::ScopedAllowBaseSyncPrimitives() + : was_disallowed_(g_base_sync_primitives_disallowed.Get().Get()) { + DCHECK(!g_blocking_disallowed.Get().Get()) + << "To allow //base sync primitives in a scope where blocking is " + "disallowed use ScopedAllowBaseSyncPrimitivesOutsideBlockingScope."; + g_base_sync_primitives_disallowed.Get().Set(false); +} + +ScopedAllowBaseSyncPrimitives::~ScopedAllowBaseSyncPrimitives() { + DCHECK(!g_base_sync_primitives_disallowed.Get().Get()); + g_base_sync_primitives_disallowed.Get().Set(was_disallowed_); +} + +ScopedAllowBaseSyncPrimitivesOutsideBlockingScope:: + ScopedAllowBaseSyncPrimitivesOutsideBlockingScope() + : was_disallowed_(g_base_sync_primitives_disallowed.Get().Get()) { + g_base_sync_primitives_disallowed.Get().Set(false); +} + +ScopedAllowBaseSyncPrimitivesOutsideBlockingScope:: + ~ScopedAllowBaseSyncPrimitivesOutsideBlockingScope() { + DCHECK(!g_base_sync_primitives_disallowed.Get().Get()); + g_base_sync_primitives_disallowed.Get().Set(was_disallowed_); +} + +ScopedAllowBaseSyncPrimitivesForTesting:: + ScopedAllowBaseSyncPrimitivesForTesting() + : was_disallowed_(g_base_sync_primitives_disallowed.Get().Get()) { + g_base_sync_primitives_disallowed.Get().Set(false); +} + +ScopedAllowBaseSyncPrimitivesForTesting:: + ~ScopedAllowBaseSyncPrimitivesForTesting() { + DCHECK(!g_base_sync_primitives_disallowed.Get().Get()); + g_base_sync_primitives_disallowed.Get().Set(was_disallowed_); +} + +namespace internal { + +void AssertBaseSyncPrimitivesAllowed() { + DCHECK(!g_base_sync_primitives_disallowed.Get().Get()) + << "Waiting on a //base sync primitive is not allowed on this thread to " + "prevent jank and deadlock. If waiting on a //base sync primitive is " + "unavoidable, do it within the scope of a " + "ScopedAllowBaseSyncPrimitives. If in a test, " + "use ScopedAllowBaseSyncPrimitivesForTesting."; +} + +void ResetThreadRestrictionsForTesting() { + g_blocking_disallowed.Get().Set(false); + g_singleton_disallowed.Get().Set(false); + g_base_sync_primitives_disallowed.Get().Set(false); +} + +} // namespace internal + // static bool ThreadRestrictions::SetIOAllowed(bool allowed) { - bool previous_disallowed = g_io_disallowed.Get().Get(); - g_io_disallowed.Get().Set(!allowed); + bool previous_disallowed = g_blocking_disallowed.Get().Get(); + g_blocking_disallowed.Get().Set(!allowed); return !previous_disallowed; } // static void ThreadRestrictions::AssertIOAllowed() { - if (g_io_disallowed.Get().Get()) { - NOTREACHED() << "Function marked as IO-only was called from a thread that " - "disallows IO! If this thread really should be allowed to " - "make IO calls, adjust the call to " - "base::ThreadRestrictions::SetIOAllowed() in this thread's " - "startup. If this task is running inside the " - "TaskScheduler, the TaskRunner used to post it needs to " - "have MayBlock() in its TaskTraits."; - } + AssertBlockingAllowed(); } // static @@ -68,22 +153,17 @@ // static void ThreadRestrictions::DisallowWaiting() { - g_wait_disallowed.Get().Set(true); + DisallowBaseSyncPrimitives(); } // static void ThreadRestrictions::AssertWaitAllowed() { - if (g_wait_disallowed.Get().Get()) { - NOTREACHED() << "Waiting is not allowed to be used on this thread to " - << "prevent jank and deadlock. If this task is running " - "inside the TaskScheduler, the TaskRunner used to post it " - "needs to have WithBaseSyncPrimitives() in its TaskTraits."; - } + internal::AssertBaseSyncPrimitivesAllowed(); } bool ThreadRestrictions::SetWaitAllowed(bool allowed) { - bool previous_disallowed = g_wait_disallowed.Get().Get(); - g_wait_disallowed.Get().Set(!allowed); + bool previous_disallowed = g_base_sync_primitives_disallowed.Get().Get(); + g_base_sync_primitives_disallowed.Get().Set(!allowed); return !previous_disallowed; }
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h index c669e181..dd916f2 100644 --- a/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h
@@ -6,6 +6,7 @@ #define BASE_THREADING_THREAD_RESTRICTIONS_H_ #include "base/base_export.h" +#include "base/gtest_prod_util.h" #include "base/logging.h" #include "base/macros.h" @@ -108,6 +109,168 @@ class Thread; class ThreadTestHelper; +#if DCHECK_IS_ON() +#define INLINE_IF_DCHECK_IS_OFF BASE_EXPORT +#define EMPTY_BODY_IF_DCHECK_IS_OFF +#else +#define INLINE_IF_DCHECK_IS_OFF inline +#define EMPTY_BODY_IF_DCHECK_IS_OFF \ + {} +#endif + +// A "blocking call" refers to any call that causes the calling thread to wait +// off-CPU. It includes but is not limited to calls that wait on synchronous +// file I/O operations: read or write a file from disk, interact with a pipe or +// a socket, rename or delete a file, enumerate files in a directory, etc. +// Acquiring a low contention lock is not considered a blocking call. + +// Asserts that blocking calls are allowed in the current scope. +INLINE_IF_DCHECK_IS_OFF void AssertBlockingAllowed() + EMPTY_BODY_IF_DCHECK_IS_OFF; + +// Disallows blocking on the current thread. +INLINE_IF_DCHECK_IS_OFF void DisallowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF; + +// Disallows blocking calls within its scope. +class BASE_EXPORT ScopedDisallowBlocking { + public: + ScopedDisallowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF; + ~ScopedDisallowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF; + + private: +#if DCHECK_IS_ON() + const bool was_disallowed_; +#endif + + DISALLOW_COPY_AND_ASSIGN(ScopedDisallowBlocking); +}; + +// ScopedAllowBlocking(ForTesting) allow blocking calls within a scope where +// they are normally disallowed. +// +// Avoid using this. Prefer making blocking calls from tasks posted to +// base::TaskScheduler with base::MayBlock(). +class BASE_EXPORT ScopedAllowBlocking { + private: + // This can only be instantiated by friends. Use ScopedAllowBlockingForTesting + // in unit tests to avoid the friend requirement. + FRIEND_TEST_ALL_PREFIXES(ThreadRestrictionsTest, ScopedAllowBlocking); + friend class ScopedAllowBlockingForTesting; + + ScopedAllowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF; + ~ScopedAllowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF; + +#if DCHECK_IS_ON() + const bool was_disallowed_; +#endif + + DISALLOW_COPY_AND_ASSIGN(ScopedAllowBlocking); +}; + +class ScopedAllowBlockingForTesting { + public: + ScopedAllowBlockingForTesting() {} + ~ScopedAllowBlockingForTesting() {} + + private: +#if DCHECK_IS_ON() + ScopedAllowBlocking scoped_allow_blocking_; +#endif + + DISALLOW_COPY_AND_ASSIGN(ScopedAllowBlockingForTesting); +}; + +// "Waiting on a //base sync primitive" refers to calling +// base::WaitableEvent::*Wait* or base::ConditionVariable::*Wait*. + +// Disallows waiting on a //base sync primitive on the current thread. +INLINE_IF_DCHECK_IS_OFF void DisallowBaseSyncPrimitives() + EMPTY_BODY_IF_DCHECK_IS_OFF; + +// ScopedAllowBaseSyncPrimitives(ForTesting)(OutsideBlockingScope) allow waiting +// on a //base sync primitive within a scope where this is normally disallowed. +// +// Avoid using this. Instead of waiting on a WaitableEvent or a +// ConditionVariable, put the work that should happen after the wait in a +// callback and post that callback from where the WaitableEvent or +// ConditionVariable would have been signaled. If something needs to be +// scheduled after many tasks have executed, use base::BarrierClosure. + +// This can only be used in a scope where blocking is allowed. +class BASE_EXPORT ScopedAllowBaseSyncPrimitives { + private: + // This can only be instantiated by friends. Use + // ScopedAllowBaseSyncPrimitivesForTesting in unit tests to avoid the friend + // requirement. + FRIEND_TEST_ALL_PREFIXES(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitives); + FRIEND_TEST_ALL_PREFIXES(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesResetsState); + FRIEND_TEST_ALL_PREFIXES(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesWithBlockingDisallowed); + + ScopedAllowBaseSyncPrimitives() EMPTY_BODY_IF_DCHECK_IS_OFF; + ~ScopedAllowBaseSyncPrimitives() EMPTY_BODY_IF_DCHECK_IS_OFF; + +#if DCHECK_IS_ON() + const bool was_disallowed_; +#endif + + DISALLOW_COPY_AND_ASSIGN(ScopedAllowBaseSyncPrimitives); +}; + +// This can be used in a scope where blocking is disallowed. +class BASE_EXPORT ScopedAllowBaseSyncPrimitivesOutsideBlockingScope { + private: + // This can only be instantiated by friends. Use + // ScopedAllowBaseSyncPrimitivesForTesting in unit tests to avoid the friend + // requirement. + FRIEND_TEST_ALL_PREFIXES(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesOutsideBlockingScope); + FRIEND_TEST_ALL_PREFIXES( + ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesOutsideBlockingScopeResetsState); + + ScopedAllowBaseSyncPrimitivesOutsideBlockingScope() + EMPTY_BODY_IF_DCHECK_IS_OFF; + ~ScopedAllowBaseSyncPrimitivesOutsideBlockingScope() + EMPTY_BODY_IF_DCHECK_IS_OFF; + +#if DCHECK_IS_ON() + const bool was_disallowed_; +#endif + + DISALLOW_COPY_AND_ASSIGN(ScopedAllowBaseSyncPrimitivesOutsideBlockingScope); +}; + +// This can be used in tests without being a friend of +// ScopedAllowBaseSyncPrimitives(OutsideBlockingScope). +class BASE_EXPORT ScopedAllowBaseSyncPrimitivesForTesting { + public: + ScopedAllowBaseSyncPrimitivesForTesting() EMPTY_BODY_IF_DCHECK_IS_OFF; + ~ScopedAllowBaseSyncPrimitivesForTesting() EMPTY_BODY_IF_DCHECK_IS_OFF; + + private: +#if DCHECK_IS_ON() + const bool was_disallowed_; +#endif + + DISALLOW_COPY_AND_ASSIGN(ScopedAllowBaseSyncPrimitivesForTesting); +}; + +namespace internal { + +// Asserts that waiting on a //base sync primitive is allowed in the current +// scope. +INLINE_IF_DCHECK_IS_OFF void AssertBaseSyncPrimitivesAllowed() + EMPTY_BODY_IF_DCHECK_IS_OFF; + +// Resets all thread restrictions on the current thread. +INLINE_IF_DCHECK_IS_OFF void ResetThreadRestrictionsForTesting() + EMPTY_BODY_IF_DCHECK_IS_OFF; + +} // namespace internal + // Certain behavior is disallowed on certain threads. ThreadRestrictions helps // enforce these rules. Examples of such rules: // @@ -138,6 +301,8 @@ public: // Constructing a ScopedAllowIO temporarily allows IO for the current // thread. Doing this is almost certainly always incorrect. + // + // DEPRECATED. Use ScopedAllowBlocking(ForTesting). class BASE_EXPORT ScopedAllowIO { public: ScopedAllowIO() { previous_value_ = SetIOAllowed(true); } @@ -153,11 +318,15 @@ // Set whether the current thread to make IO calls. // Threads start out in the *allowed* state. // Returns the previous value. + // + // DEPRECATED. Use ScopedAllowBlocking(ForTesting) or ScopedDisallowBlocking. static bool SetIOAllowed(bool allowed); // Check whether the current thread is allowed to make IO calls, // and DCHECK if not. See the block comment above the class for // a discussion of where to add these checks. + // + // DEPRECATED. Use AssertBlockingAllowed. static void AssertIOAllowed(); // Set whether the current thread can use singletons. Returns the previous @@ -170,9 +339,13 @@ // Disable waiting on the current thread. Threads start out in the *allowed* // state. Returns the previous value. + // + // DEPRECATED. Use DisallowBaseSyncPrimitives. static void DisallowWaiting(); // Check whether the current thread is allowed to wait, and DCHECK if not. + // + // DEPRECATED. Use AssertBaseSyncPrimitivesAllowed. static void AssertWaitAllowed(); #else // Inline the empty definitions of these functions so that they can be @@ -247,6 +420,7 @@ // END USAGE THAT NEEDS TO BE FIXED. #if DCHECK_IS_ON() + // DEPRECATED. Use ScopedAllowBaseSyncPrimitives. static bool SetWaitAllowed(bool allowed); #else static bool SetWaitAllowed(bool allowed) { return true; } @@ -256,6 +430,8 @@ // thread. Doing this is almost always incorrect, which is why we limit who // can use this through friend. If you find yourself needing to use this, find // another way. Talk to jam or brettw. + // + // DEPRECATED. Use ScopedAllowBaseSyncPrimitives. class BASE_EXPORT ScopedAllowWait { public: ScopedAllowWait() { previous_value_ = SetWaitAllowed(true); }
diff --git a/base/threading/thread_restrictions_unittest.cc b/base/threading/thread_restrictions_unittest.cc new file mode 100644 index 0000000..a957a9a --- /dev/null +++ b/base/threading/thread_restrictions_unittest.cc
@@ -0,0 +1,137 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/threading/thread_restrictions.h" + +#include <utility> + +#include "base/bind.h" +#include "base/callback.h" +#include "base/macros.h" +#include "base/test/gtest_util.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace base { + +namespace { + +class ThreadRestrictionsTest : public testing::Test { + public: + ThreadRestrictionsTest() = default; + ~ThreadRestrictionsTest() override { + internal::ResetThreadRestrictionsForTesting(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(ThreadRestrictionsTest); +}; + +} // namespace + +TEST_F(ThreadRestrictionsTest, BlockingAllowedByDefault) { + AssertBlockingAllowed(); +} + +TEST_F(ThreadRestrictionsTest, ScopedDisallowBlocking) { + { + ScopedDisallowBlocking scoped_disallow_blocking; + EXPECT_DCHECK_DEATH({ AssertBlockingAllowed(); }); + } + AssertBlockingAllowed(); +} + +TEST_F(ThreadRestrictionsTest, ScopedAllowBlocking) { + ScopedDisallowBlocking scoped_disallow_blocking; + { + ScopedAllowBlocking scoped_allow_blocking; + AssertBlockingAllowed(); + } + EXPECT_DCHECK_DEATH({ AssertBlockingAllowed(); }); +} + +TEST_F(ThreadRestrictionsTest, ScopedAllowBlockingForTesting) { + ScopedDisallowBlocking scoped_disallow_blocking; + { + ScopedAllowBlockingForTesting scoped_allow_blocking_for_testing; + AssertBlockingAllowed(); + } + EXPECT_DCHECK_DEATH({ AssertBlockingAllowed(); }); +} + +TEST_F(ThreadRestrictionsTest, BaseSyncPrimitivesAllowedByDefault) {} + +TEST_F(ThreadRestrictionsTest, DisallowBaseSyncPrimitives) { + DisallowBaseSyncPrimitives(); + EXPECT_DCHECK_DEATH({ internal::AssertBaseSyncPrimitivesAllowed(); }); +} + +TEST_F(ThreadRestrictionsTest, ScopedAllowBaseSyncPrimitives) { + DisallowBaseSyncPrimitives(); + ScopedAllowBaseSyncPrimitives scoped_allow_base_sync_primitives; + internal::AssertBaseSyncPrimitivesAllowed(); +} + +TEST_F(ThreadRestrictionsTest, ScopedAllowBaseSyncPrimitivesResetsState) { + DisallowBaseSyncPrimitives(); + { ScopedAllowBaseSyncPrimitives scoped_allow_base_sync_primitives; } + EXPECT_DCHECK_DEATH({ internal::AssertBaseSyncPrimitivesAllowed(); }); +} + +TEST_F(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesWithBlockingDisallowed) { + ScopedDisallowBlocking scoped_disallow_blocking; + DisallowBaseSyncPrimitives(); + + // This should DCHECK because blocking is not allowed in this scope + // and OutsideBlockingScope is not passed to the constructor. + EXPECT_DCHECK_DEATH( + { ScopedAllowBaseSyncPrimitives scoped_allow_base_sync_primitives; }); +} + +TEST_F(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesOutsideBlockingScope) { + ScopedDisallowBlocking scoped_disallow_blocking; + DisallowBaseSyncPrimitives(); + ScopedAllowBaseSyncPrimitivesOutsideBlockingScope + scoped_allow_base_sync_primitives; + internal::AssertBaseSyncPrimitivesAllowed(); +} + +TEST_F(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesOutsideBlockingScopeResetsState) { + DisallowBaseSyncPrimitives(); + { + ScopedAllowBaseSyncPrimitivesOutsideBlockingScope + scoped_allow_base_sync_primitives; + } + EXPECT_DCHECK_DEATH({ internal::AssertBaseSyncPrimitivesAllowed(); }); +} + +TEST_F(ThreadRestrictionsTest, ScopedAllowBaseSyncPrimitivesForTesting) { + DisallowBaseSyncPrimitives(); + ScopedAllowBaseSyncPrimitivesForTesting + scoped_allow_base_sync_primitives_for_testing; + internal::AssertBaseSyncPrimitivesAllowed(); +} + +TEST_F(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesForTestingResetsState) { + DisallowBaseSyncPrimitives(); + { + ScopedAllowBaseSyncPrimitivesForTesting + scoped_allow_base_sync_primitives_for_testing; + } + EXPECT_DCHECK_DEATH({ internal::AssertBaseSyncPrimitivesAllowed(); }); +} + +TEST_F(ThreadRestrictionsTest, + ScopedAllowBaseSyncPrimitivesForTestingWithBlockingDisallowed) { + ScopedDisallowBlocking scoped_disallow_blocking; + DisallowBaseSyncPrimitives(); + // This should not DCHECK. + ScopedAllowBaseSyncPrimitivesForTesting + scoped_allow_base_sync_primitives_for_testing; +} + +} // namespace base
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni index e2391d3..1d269d4 100644 --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni
@@ -1714,6 +1714,7 @@ "javatests/src/org/chromium/chrome/browser/test/ChromeBrowserTestRule.java", "javatests/src/org/chromium/chrome/browser/test/ClearAppDataTestRule.java", "javatests/src/org/chromium/chrome/browser/test/CommandLineInitRule.java", + "javatests/src/org/chromium/chrome/browser/test/ScreenShooter.java", "javatests/src/org/chromium/chrome/browser/toolbar/BrandColorTest.java", "javatests/src/org/chromium/chrome/browser/toolbar/ToolbarModelTest.java", "javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ExampleUiCaptureTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ExampleUiCaptureTest.java index b35a064..25ab8c5 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ExampleUiCaptureTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ExampleUiCaptureTest.java
@@ -17,8 +17,8 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; -import org.chromium.base.test.util.ScreenShooter; import org.chromium.chrome.R; +import org.chromium.chrome.browser.test.ScreenShooter; import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.ui.test.util.UiRestriction;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java index ff1988c..ec0e713e 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java
@@ -15,12 +15,12 @@ import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; -import org.chromium.base.test.util.ScreenShooter; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.interventions.FramebustBlockMessageDelegate; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.test.ScreenShooter; import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.InfoBarTestAnimationListener;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java index 1f3348b..3a1b0c1 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java
@@ -19,11 +19,11 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.RetryOnFailure; -import org.chromium.base.test.util.ScreenShooter; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.UrlConstants; import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.test.ScreenShooter; import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetTilesUiCaptureTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetTilesUiCaptureTest.java index 22bd607..7400966 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetTilesUiCaptureTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetTilesUiCaptureTest.java
@@ -19,9 +19,9 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; -import org.chromium.base.test.util.ScreenShooter; import org.chromium.chrome.browser.ntp.NtpUiCaptureTestData; import org.chromium.chrome.browser.preferences.ChromePreferenceManager; +import org.chromium.chrome.browser.test.ScreenShooter; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet; import org.chromium.chrome.test.BottomSheetTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetUiCaptureTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetUiCaptureTest.java index 232ccfb..d0ef0bb 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetUiCaptureTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetUiCaptureTest.java
@@ -20,12 +20,12 @@ import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; -import org.chromium.base.test.util.ScreenShooter; import org.chromium.base.test.util.parameter.CommandLineParameter; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ntp.NtpUiCaptureTestData; import org.chromium.chrome.browser.ntp.cards.ItemViewType; import org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter; +import org.chromium.chrome.browser.test.ScreenShooter; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.browser.ChromeHome;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetUiCaptureTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetUiCaptureTest.java index 44d88d20..c1e108c 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetUiCaptureTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetUiCaptureTest.java
@@ -20,11 +20,11 @@ import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Restriction; -import org.chromium.base.test.util.ScreenShooter; import org.chromium.chrome.R; import org.chromium.chrome.browser.ntp.NtpUiCaptureTestData; import org.chromium.chrome.browser.ntp.cards.ItemViewType; import org.chromium.chrome.browser.preferences.ChromePreferenceManager; +import org.chromium.chrome.browser.test.ScreenShooter; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/test/ScreenShooter.java b/chrome/android/javatests/src/org/chromium/chrome/browser/test/ScreenShooter.java new file mode 100644 index 0000000..38d02f4 --- /dev/null +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/test/ScreenShooter.java
@@ -0,0 +1,248 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.test; + +import static org.hamcrest.Matchers.isIn; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import android.app.Instrumentation; +import android.content.res.Configuration; +import android.graphics.Point; +import android.os.Build; +import android.support.test.InstrumentationRegistry; +import android.support.test.uiautomator.UiDevice; + +import org.json.JSONException; +import org.json.JSONObject; +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; + +import org.chromium.chrome.browser.ChromeVersionInfo; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.text.DateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * Rule for taking screen shots within tests. Screenshots are saved as + * {@code screenshot_dir/test_class_directory/test_directory/shot_name random.png}. + * The associated JSON file describing the screenshot is saved as + * {@code screenshot_dir/test_class_directory/test_directory/shot_name random.json}. + * <p> + * {@code screenshot_dir} comes from the instrumentation test command line, which is set by the + * test runners. {@code test_class_directory} and {@code test_directory} can both the set by the + * {@link ScreenShooter.Directory} annotation. {@code test_class_directory} defaults to nothing + * (i.e. no directory created at this level), and {@code test_directory} defaults to the name of + * the individual test. {@code random} is a random value to make the filenames unique. + * <p> + * The JSON file contains tags and metadata describing the screenshot. The tags are fields such as + * the shot name or the test name that may be used to filter screenshot sets in the Clank UI + * Catalogue viewer. The metadata fields contain data (such as the exact time the shot was + * taken) that are less suitable for filtering screenshot sets, but nevertheless may be of + * interest to people viewing the screenshots. + * <p> + * A simple example: + * <p> + * <pre> + * {@code + * @RunWith(ChromeJUnit4ClassRunner.class) + * @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) + * @Restriction(RESTRICTION_TYPE_PHONE) // Tab switcher button only exists on phones. + * @ScreenShooter.Directory("Example") + * public class ExampleUiCaptureTest { + * @Rule + * public ChromeActivityTestRule<ChromeTabbedActivity> mActivityTestRule = + * new ChromeActivityTestRule<>(ChromeTabbedActivity.class); + * + * @Rule + * public ScreenShooter mScreenShooter = new ScreenShooter(); + * + * @Before + * public void setUp() throws InterruptedException { + * mActivityTestRule.startMainActivityFromLauncher(); + * } + * + * // Capture the New Tab Page and the tab switcher. + * @Test + * @SmallTest + * @Feature({"UiCatalogue"}) + * @ScreenShooter.Directory("TabSwitcher") + * public void testCaptureTabSwitcher() throws IOException, InterruptedException { + * mScreenShooter.shoot("NTP"); + * Espresso.onView(ViewMatchers.withId(R.id.tab_switcher_button)). + * perform(ViewActions.click()); + * mScreenShooter.shoot("Tab switcher"); + * } + * } + * </pre> + */ +public class ScreenShooter extends TestWatcher { + private static final String SCREENSHOT_DIR = + "org.chromium.base.test.util.Screenshooter.ScreenshotDir"; + private static final String IMAGE_SUFFIX = ".png"; + private static final String JSON_SUFFIX = ".json"; + + // Default tags + private static final String TEST_CLASS_TAG = "Test Class"; + private static final String TEST_METHOD_TAG = "Test Method"; + private static final String SCREENSHOT_NAME_TAG = "Screenshot Name"; + private static final String DEVICE_MODEL_TAG = "Device Model"; + private static final String DISPLAY_SIZE_TAG = "Display Size"; + private static final String ORIENTATION_TAG = "Orientation"; + private static final String ANDROID_VERSION_TAG = "Android Version"; + private static final String CHROME_VERSION_TAG = "Chrome Version"; + private static final String CHROME_CHANNEL_TAG = "Chrome Channel"; + private static final String LOCALE_TAG = "Locale"; + // UPLOAD_TIME_TAG is reserved for use by the Clank UI Catalogue uploader. + private static final String UPLOAD_TIME_TAG = "Upload Time"; + + private final UiDevice mDevice; + private final String mBaseDir; + private File mDir; + private String mTestClassName; + private String mTestMethodName; + private static final String[] DEFAULT_TAGS = {TEST_CLASS_TAG, TEST_METHOD_TAG, + SCREENSHOT_NAME_TAG, DEVICE_MODEL_TAG, DISPLAY_SIZE_TAG, ORIENTATION_TAG, + ANDROID_VERSION_TAG, CHROME_VERSION_TAG, CHROME_CHANNEL_TAG, LOCALE_TAG, + UPLOAD_TIME_TAG}; + + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.TYPE, ElementType.METHOD}) + public @interface Directory { + String value(); + } + + public ScreenShooter() { + Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); + mDevice = UiDevice.getInstance(instrumentation); + mBaseDir = InstrumentationRegistry.getArguments().getString(SCREENSHOT_DIR); + } + + @Override + protected void starting(Description d) { + mDir = new File(mBaseDir); + mTestClassName = d.getClassName(); + mTestMethodName = d.getMethodName(); + Class<?> testClass = d.getTestClass(); + Directory classDirectoryAnnotation = testClass.getAnnotation(Directory.class); + String classDirName = + classDirectoryAnnotation == null ? "" : classDirectoryAnnotation.value(); + if (!classDirName.isEmpty()) mDir = new File(mBaseDir, classDirName); + Directory methodDirectoryAnnotation = d.getAnnotation(Directory.class); + String testMethodDir = methodDirectoryAnnotation == null + ? d.getMethodName() + : methodDirectoryAnnotation.value(); + if (!testMethodDir.isEmpty()) mDir = new File(mDir, testMethodDir); + if (!mDir.exists()) assertTrue("Create screenshot directory", mDir.mkdirs()); + } + + /** + * Take a screenshot and save it to a file, with tags and metadata in a JSON file + * + * @param shotName The name of this particular screenshot within this test. + */ + public void shoot(String shotName) { + assertNotNull("ScreenShooter rule initialized", mDir); + + Map<String, String> tags = new HashMap<>(); + shoot(shotName, tags); + } + + private static void setDefaultTag(Map<String, String> tags, String name, String value) { + assertThat("\"" + name + "\" is a known default tag", name, isIn(DEFAULT_TAGS)); + tags.put(name, value); + } + + /** + * Take a screenshot and save it to a file, with tags and metadata in a JSON file + * + * @param shotName The name of this particular screenshot within this test. + * @param tags User defined tags, must not clash with default tags. + */ + public void shoot(String shotName, Map<String, String> tags) { + for (String tag : tags.keySet()) { + assertThat("\"" + tag + "\" is not a default tag", tag, not(isIn(DEFAULT_TAGS))); + } + setDefaultTag(tags, TEST_CLASS_TAG, mTestClassName); + setDefaultTag(tags, TEST_METHOD_TAG, mTestMethodName); + setDefaultTag(tags, SCREENSHOT_NAME_TAG, shotName); + setDefaultTag(tags, DEVICE_MODEL_TAG, Build.MANUFACTURER + " " + Build.MODEL); + Point displaySize = mDevice.getDisplaySizeDp(); + setDefaultTag(tags, DISPLAY_SIZE_TAG, + String.format(Locale.US, "%d X %d", Math.min(displaySize.x, displaySize.y), + Math.max(displaySize.x, displaySize.y))); + int orientation = + InstrumentationRegistry.getContext().getResources().getConfiguration().orientation; + setDefaultTag(tags, ORIENTATION_TAG, + orientation == Configuration.ORIENTATION_LANDSCAPE ? "landscape" : "portrait"); + setDefaultTag(tags, ANDROID_VERSION_TAG, Build.VERSION.RELEASE); + setDefaultTag(tags, CHROME_VERSION_TAG, + Integer.toString(ChromeVersionInfo.getProductMajorVersion())); + String channelName = "Unknown"; + if (ChromeVersionInfo.isLocalBuild()) { + channelName = "Local Build"; + } else if (ChromeVersionInfo.isCanaryBuild()) { + channelName = "Canary"; + } else if (ChromeVersionInfo.isBetaBuild()) { + channelName = "Beta"; + } else if (ChromeVersionInfo.isDevBuild()) { + channelName = "Dev"; + } else if (ChromeVersionInfo.isStableBuild()) { + channelName = "Stable"; + } + if (ChromeVersionInfo.isOfficialBuild()) { + channelName = channelName + " Official"; + } + setDefaultTag(tags, CHROME_CHANNEL_TAG, channelName); + setDefaultTag(tags, LOCALE_TAG, Locale.getDefault().toString()); + + Map<String, String> metadata = new HashMap<>(); + DateFormat formatter = + DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.US); + metadata.put("Capture time (UTC)", formatter.format(new Date())); + metadata.put("Chrome full product version", ChromeVersionInfo.getProductVersion()); + metadata.put("Android build fingerprint", Build.FINGERPRINT); + + try { + File shotFile = File.createTempFile(shotName, IMAGE_SUFFIX, mDir); + assertTrue("Screenshot " + shotName, mDevice.takeScreenshot(shotFile)); + writeImageDescription(shotFile, tags, metadata); + } catch (IOException e) { + fail("Cannot create shot files " + e.toString()); + } + } + + private void writeImageDescription(File shotFile, Map<String, String> tags, + Map<String, String> metadata) throws IOException { + JSONObject imageDescription = new JSONObject(); + String shotFileName = shotFile.getName(); + try { + imageDescription.put("location", shotFileName); + imageDescription.put("tags", new JSONObject(tags)); + imageDescription.put("metadata", new JSONObject(metadata)); + } catch (JSONException e) { + fail("JSON error " + e.toString()); + } + String jsonFileName = + shotFileName.substring(0, shotFileName.length() - IMAGE_SUFFIX.length()) + + JSON_SUFFIX; + try (FileWriter fileWriter = new FileWriter(new File(mDir, jsonFileName));) { + fileWriter.write(imageDescription.toString()); + } + } +}
diff --git a/chrome/browser/android/vr_shell/vr_gl_thread.cc b/chrome/browser/android/vr_shell/vr_gl_thread.cc index a0c8881..9fafd34c6 100644 --- a/chrome/browser/android/vr_shell/vr_gl_thread.cc +++ b/chrome/browser/android/vr_shell/vr_gl_thread.cc
@@ -12,8 +12,7 @@ #include "chrome/browser/android/vr_shell/vr_shell_gl.h" #include "chrome/browser/vr/browser_ui_interface.h" #include "chrome/browser/vr/toolbar_state.h" -#include "chrome/browser/vr/ui_scene.h" -#include "chrome/browser/vr/ui_scene_manager.h" +#include "chrome/browser/vr/ui.h" #include "third_party/skia/include/core/SkBitmap.h" namespace vr_shell { @@ -46,28 +45,23 @@ } void VrGLThread::Init() { - scene_ = base::MakeUnique<vr::UiScene>(); - vr_shell_gl_ = base::MakeUnique<VrShellGl>(this, gvr_api_, initially_web_vr_, - reprojected_rendering_, - daydream_support_, scene_.get()); - scene_manager_ = base::MakeUnique<vr::UiSceneManager>( - this, scene_.get(), vr_shell_gl_.get(), in_cct_, initially_web_vr_, - web_vr_autopresentation_expected_); - // TODO(cjgrant): Alleviate this circular initialization dependency by moving - // ownership of all UI components into a single UI object that can manage its - // own initialization. - vr_shell_gl_->set_ui(scene_manager_.get()); + vr::UiInitialState ui_initial_state; + ui_initial_state.in_cct = in_cct_; + ui_initial_state.in_web_vr = initially_web_vr_; + ui_initial_state.web_vr_autopresentation_expected = + web_vr_autopresentation_expected_; - weak_vr_shell_gl_ = vr_shell_gl_->GetWeakPtr(); - browser_ui_ = scene_manager_->GetWeakPtr(); + vr_shell_gl_ = + base::MakeUnique<VrShellGl>(this, this, ui_initial_state, gvr_api_, + reprojected_rendering_, daydream_support_); + + browser_ui_ = vr_shell_gl_->GetBrowserUiWeakPtr(); vr_shell_gl_->Initialize(); } void VrGLThread::CleanUp() { - scene_manager_.reset(); vr_shell_gl_.reset(); - scene_.reset(); } void VrGLThread::ContentSurfaceChanged(jobject surface) {
diff --git a/chrome/browser/android/vr_shell/vr_gl_thread.h b/chrome/browser/android/vr_shell/vr_gl_thread.h index f398c3b..912e6be 100644 --- a/chrome/browser/android/vr_shell/vr_gl_thread.h +++ b/chrome/browser/android/vr_shell/vr_gl_thread.h
@@ -17,11 +17,6 @@ #include "chrome/browser/vr/ui_interface.h" #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr_types.h" -namespace vr { -class UiScene; -class UiSceneManager; -} // namespace vr - namespace vr_shell { class VrShell; @@ -92,13 +87,10 @@ bool OnGlThread() const; // Created on GL thread. - std::unique_ptr<vr::UiScene> scene_; - std::unique_ptr<vr::UiSceneManager> scene_manager_; std::unique_ptr<VrShellGl> vr_shell_gl_; base::WeakPtr<VrShell> weak_vr_shell_; - base::WeakPtr<VrShellGl> weak_vr_shell_gl_; - base::WeakPtr<BrowserUiInterface> browser_ui_; + base::WeakPtr<vr::BrowserUiInterface> browser_ui_; // This state is used for initializing vr_shell_gl_. scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.cc b/chrome/browser/android/vr_shell/vr_shell_gl.cc index f9abd4d0..f7279755a 100644 --- a/chrome/browser/android/vr_shell/vr_shell_gl.cc +++ b/chrome/browser/android/vr_shell/vr_shell_gl.cc
@@ -24,6 +24,7 @@ #include "chrome/browser/android/vr_shell/vr_usage_monitor.h" #include "chrome/browser/vr/elements/ui_element.h" #include "chrome/browser/vr/fps_meter.h" +#include "chrome/browser/vr/ui.h" #include "chrome/browser/vr/ui_interface.h" #include "chrome/browser/vr/ui_scene.h" #include "chrome/browser/vr/vr_gl_util.h" @@ -171,19 +172,19 @@ } // namespace -VrShellGl::VrShellGl(GlBrowserInterface* browser, +VrShellGl::VrShellGl(GlBrowserInterface* browser_interface, + vr::UiBrowserInterface* ui_host_interface, + const vr::UiInitialState& ui_initial_state, gvr_context* gvr_api, - bool initially_web_vr, bool reprojected_rendering, - bool daydream_support, - vr::UiScene* scene) - : web_vr_mode_(initially_web_vr), + bool daydream_support) + : ui_(base::MakeUnique<vr::Ui>(ui_host_interface, this, ui_initial_state)), + ui_scene_manager_(ui_->ui()), surfaceless_rendering_(reprojected_rendering), daydream_support_(daydream_support), task_runner_(base::ThreadTaskRunnerHandle::Get()), binding_(this), - browser_(browser), - scene_(scene), + browser_(browser_interface), fps_meter_(new vr::FPSMeter()), webvr_js_time_(new vr::SlidingAverage(kWebVRSlidingAverageSize)), webvr_render_time_(new vr::SlidingAverage(kWebVRSlidingAverageSize)), @@ -192,7 +193,7 @@ } VrShellGl::~VrShellGl() { - closePresentationBindings(); + ClosePresentationBindings(); } void VrShellGl::Initialize() { @@ -239,9 +240,9 @@ unsigned int textures[2]; glGenTextures(2, textures); - content_texture_id_ = textures[0]; + unsigned int content_texture_id = textures[0]; webvr_texture_id_ = textures[1]; - content_surface_texture_ = gl::SurfaceTexture::Create(content_texture_id_); + content_surface_texture_ = gl::SurfaceTexture::Create(content_texture_id); webvr_surface_texture_ = gl::SurfaceTexture::Create(webvr_texture_id_); CreateContentSurface(); content_surface_texture_->SetFrameAvailableCallback(base::Bind( @@ -253,7 +254,7 @@ InitializeRenderer(); - ui_->OnGlInitialized(content_texture_id_); + ui_->OnGlInitialized(content_texture_id); webvr_vsync_align_ = base::FeatureList::IsEnabled(features::kWebVrVsyncAlign); @@ -264,10 +265,6 @@ task_runner_)); } - input_manager_ = base::MakeUnique<vr::UiInputManager>(scene_); - ui_renderer_ = - base::MakeUnique<vr::UiRenderer>(scene_, vr_shell_renderer_.get()); - ready_to_draw_ = true; if (!paused_) OnVSync(base::TimeTicks::Now()); @@ -355,7 +352,7 @@ device::mojom::VRSubmitFrameClientPtrInfo submit_client_info, device::mojom::VRPresentationProviderRequest request, device::mojom::VRDisplayInfoPtr display_info) { - closePresentationBindings(); + ClosePresentationBindings(); submit_client_.Bind(std::move(submit_client_info)); binding_.Bind(std::move(request)); gfx::Size webvr_size( @@ -388,7 +385,7 @@ TRACE_EVENT1("gpu", "VrShellGl::OnWebVRFrameAvailable", "frame", frame_index); pending_frames_.pop(); - ui_->OnWebVrFrameAvailable(); + ui_scene_manager_->OnWebVrFrameAvailable(); DrawFrame(frame_index); if (web_vr_mode_) { @@ -415,7 +412,7 @@ } void VrShellGl::OnWebVrFrameTimedOut() { - ui_->OnWebVrTimedOut(); + ui_scene_manager_->OnWebVrTimedOut(); } void VrShellGl::GvrInit(gvr_context* gvr_api) { @@ -459,8 +456,6 @@ swap_chain_ = base::MakeUnique<gvr::SwapChain>(gvr_api_->CreateSwapChain(specs)); - vr_shell_renderer_ = base::MakeUnique<vr::VrShellRenderer>(); - // Allocate a buffer viewport for use in UI drawing. This isn't // initialized at this point, it'll be set from other viewport list // entries as needed. @@ -570,7 +565,7 @@ ? vr::UiInputManager::ButtonState::DOWN : vr::UiInputManager::ButtonState::UP; controller_info_.opacity = controller_->GetOpacity(); - input_manager_->HandleInput( + ui_->input_manager()->HandleInput( controller_direction, controller_info_.laser_origin, controller_info_.touchpad_button_state, &gesture_list, &controller_info_.target_point, &controller_info_.reticle_render_target); @@ -721,14 +716,15 @@ // Post a task, rather than calling the UI directly, so as not to modify // UI state in the midst of frame rendering. base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::Bind(&vr::UiInterface::OnAppButtonGesturePerformed, - base::Unretained(ui_), direction)); + FROM_HERE, + base::Bind(&vr::UiInterface::OnAppButtonGesturePerformed, + base::Unretained(ui_scene_manager_), direction)); } } if (direction == vr::UiInterface::NONE) base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&vr::UiInterface::OnAppButtonClicked, - base::Unretained(ui_))); + base::Unretained(ui_scene_manager_))); } } @@ -747,14 +743,6 @@ // DrawVrShell if needed. buffer_viewport_list_->SetToRecommendedBufferViewports(); - // Update recommended fov and uv per frame. - buffer_viewport_list_->GetBufferViewport(GVR_LEFT_EYE, - buffer_viewport_.get()); - const gvr::Rectf& fov_recommended_left = buffer_viewport_->GetSourceFov(); - buffer_viewport_list_->GetBufferViewport(GVR_RIGHT_EYE, - buffer_viewport_.get()); - const gvr::Rectf& fov_recommended_right = buffer_viewport_->GetSourceFov(); - // If needed, resize the primary buffer for use with WebVR. Resizing // needs to happen before acquiring a frame. if (ShouldDrawWebVr()) { @@ -847,8 +835,8 @@ } // Update the render position of all UI elements (including desktop). - scene_->OnBeginFrame(current_time, - GetForwardVector(render_info_primary_.head_pose)); + ui_scene_manager_->scene()->OnBeginFrame( + current_time, GetForwardVector(render_info_primary_.head_pose)); // WebVR handles controller input in OnVsync. if (!ShouldDrawWebVr()) @@ -857,24 +845,26 @@ // Ensure that all elements are ready before drawing. Eg., elements may have // been dirtied due to animation on input processing and need to regenerate // textures. - scene_->PrepareToDraw(); + ui_scene_manager_->scene()->PrepareToDraw(); UpdateEyeInfos(render_info_primary_.head_pose, kViewportListPrimaryOffset, render_info_primary_.surface_texture_size, &render_info_primary_); // Measure projected content size and bubble up if delta exceeds threshold. - ui_->OnProjMatrixChanged(render_info_primary_.left_eye_info.proj_matrix); + ui_scene_manager_->OnProjMatrixChanged( + render_info_primary_.left_eye_info.proj_matrix); // At this point, we draw non-WebVR content that could, potentially, fill the // viewport. NB: this is not just 2d browsing stuff, we may have a splash // screen showing in WebVR mode that must also fill the screen. - ui_renderer_->Draw(render_info_primary_, controller_info_); + ui_->ui_renderer()->Draw(render_info_primary_, controller_info_); frame.Unbind(); std::vector<const vr::UiElement*> overlay_elements; if (ShouldDrawWebVr()) { - overlay_elements = scene_->GetVisibleWebVrOverlayForegroundElements(); + overlay_elements = + ui_scene_manager_->scene()->GetVisibleWebVrOverlayForegroundElements(); } if (!overlay_elements.empty() && ShouldDrawWebVr()) { @@ -882,9 +872,18 @@ // on a different buffer to make sure that our UI has enough resolution. frame.BindBuffer(kFrameWebVrBrowserUiBuffer); + // Update recommended fov and uv per frame. + buffer_viewport_list_->GetBufferViewport(GVR_LEFT_EYE, + buffer_viewport_.get()); + const gvr::Rectf& fov_recommended_left = buffer_viewport_->GetSourceFov(); + buffer_viewport_list_->GetBufferViewport(GVR_RIGHT_EYE, + buffer_viewport_.get()); + const gvr::Rectf& fov_recommended_right = buffer_viewport_->GetSourceFov(); + // Set render info to recommended setting. It will be used as our base for // optimization. - render_info_webvr_browser_ui_.head_pose = render_info_primary_.head_pose; + vr::RenderInfo render_info_webvr_browser_ui; + render_info_webvr_browser_ui.head_pose = render_info_primary_.head_pose; webvr_browser_ui_left_viewport_->SetSourceFov(fov_recommended_left); webvr_browser_ui_right_viewport_->SetSourceFov(fov_recommended_right); buffer_viewport_list_->SetBufferViewport( @@ -893,15 +892,15 @@ buffer_viewport_list_->SetBufferViewport( kViewportListWebVrBrowserUiOffset + GVR_RIGHT_EYE, *webvr_browser_ui_right_viewport_); - UpdateEyeInfos(render_info_webvr_browser_ui_.head_pose, + UpdateEyeInfos(render_info_webvr_browser_ui.head_pose, kViewportListWebVrBrowserUiOffset, render_size_webvr_ui_, - &render_info_webvr_browser_ui_); + &render_info_webvr_browser_ui); gvr::Rectf minimal_fov; - GetMinimalFov(render_info_webvr_browser_ui_.left_eye_info.view_matrix, + GetMinimalFov(render_info_webvr_browser_ui.left_eye_info.view_matrix, overlay_elements, fov_recommended_left, kZNear, &minimal_fov); webvr_browser_ui_left_viewport_->SetSourceFov(minimal_fov); - GetMinimalFov(render_info_webvr_browser_ui_.right_eye_info.view_matrix, + GetMinimalFov(render_info_webvr_browser_ui.right_eye_info.view_matrix, overlay_elements, fov_recommended_right, kZNear, &minimal_fov); webvr_browser_ui_right_viewport_->SetSourceFov(minimal_fov); @@ -912,12 +911,12 @@ buffer_viewport_list_->SetBufferViewport( kViewportListWebVrBrowserUiOffset + GVR_RIGHT_EYE, *webvr_browser_ui_right_viewport_); - UpdateEyeInfos(render_info_webvr_browser_ui_.head_pose, + UpdateEyeInfos(render_info_webvr_browser_ui.head_pose, kViewportListWebVrBrowserUiOffset, render_size_webvr_ui_, - &render_info_webvr_browser_ui_); + &render_info_webvr_browser_ui); - ui_renderer_->DrawWebVrOverlayForeground(render_info_webvr_browser_ui_, - controller_info_); + ui_->ui_renderer()->DrawWebVrOverlayForeground(render_info_webvr_browser_ui, + controller_info_); frame.Unbind(); } @@ -1025,7 +1024,7 @@ } bool VrShellGl::ShouldDrawWebVr() { - return web_vr_mode_ && scene_->web_vr_rendering_enabled(); + return web_vr_mode_ && ui_scene_manager_->ShouldRenderWebVr(); } void VrShellGl::DrawWebVr() { @@ -1047,7 +1046,7 @@ glClear(GL_COLOR_BUFFER_BIT); glViewport(0, 0, webvr_surface_size_.width(), webvr_surface_size_.height()); - vr_shell_renderer_->GetWebVrRenderer()->Draw(webvr_texture_id_); + ui_->vr_shell_renderer()->GetWebVrRenderer()->Draw(webvr_texture_id_); } void VrShellGl::OnPause() { @@ -1086,7 +1085,7 @@ } if (!web_vr_mode_) { - closePresentationBindings(); + ClosePresentationBindings(); } } @@ -1107,9 +1106,13 @@ return weak_ptr_factory_.GetWeakPtr(); } +base::WeakPtr<vr::BrowserUiInterface> VrShellGl::GetBrowserUiWeakPtr() { + return ui_->GetBrowserUiWeakPtr(); +} + void VrShellGl::SetControllerModel( std::unique_ptr<vr::VrControllerModel> model) { - vr_shell_renderer_->GetControllerRenderer()->SetUp(std::move(model)); + ui_->vr_shell_renderer()->GetControllerRenderer()->SetUp(std::move(model)); } void VrShellGl::OnVSync(base::TimeTicks frame_time) { @@ -1148,7 +1151,7 @@ if (!callback_.is_null()) { mojo::ReportBadMessage( "Requested VSync before waiting for response to previous request."); - closePresentationBindings(); + ClosePresentationBindings(); return; } callback_ = std::move(callback); @@ -1246,7 +1249,7 @@ device::mojom::VRPresentationProvider::VSyncStatus::SUCCESS); } -void VrShellGl::closePresentationBindings() { +void VrShellGl::ClosePresentationBindings() { webvr_frame_timeout_.Cancel(); submit_client_.reset(); if (!callback_.is_null()) {
diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.h b/chrome/browser/android/vr_shell/vr_shell_gl.h index 378917f..e2fe2bc 100644 --- a/chrome/browser/android/vr_shell/vr_shell_gl.h +++ b/chrome/browser/android/vr_shell/vr_shell_gl.h
@@ -48,11 +48,13 @@ } // namespace gpu namespace vr { +class BrowserUiInterface; class FPSMeter; class SlidingAverage; +class Ui; +class UiBrowserInterface; class UiInterface; -class UiScene; -class VrShellRenderer; +struct UiInitialState; } // namespace vr namespace vr_shell { @@ -77,23 +79,23 @@ class VrShellGl : public device::mojom::VRPresentationProvider, public vr::ContentInputDelegate { public: - VrShellGl(GlBrowserInterface* browser, + VrShellGl(GlBrowserInterface* browser_interface, + vr::UiBrowserInterface* ui_host_interface, + const vr::UiInitialState& ui_initial_state, gvr_context* gvr_api, - bool initially_web_vr, bool reprojected_rendering, - bool daydream_support, - vr::UiScene* scene); + bool daydream_support); ~VrShellGl() override; void Initialize(); void InitializeGl(gfx::AcceleratedWidget window); - void set_ui(vr::UiInterface* ui) { ui_ = ui; } - void OnTriggerEvent(); void OnPause(); void OnResume(); + base::WeakPtr<vr::BrowserUiInterface> GetBrowserUiWeakPtr(); + scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() { return task_runner_; } @@ -186,10 +188,8 @@ void SendVSync(base::TimeTicks time, GetVSyncCallback callback); - void closePresentationBindings(); + void ClosePresentationBindings(); - // samplerExternalOES texture data for main content image. - int content_texture_id_ = 0; // samplerExternalOES texture data for WebVR content image. int webvr_texture_id_ = 0; @@ -220,8 +220,6 @@ gfx::Size render_size_default_; gfx::Size render_size_webvr_ui_; - std::unique_ptr<vr::VrShellRenderer> vr_shell_renderer_; - bool cardboard_ = false; gfx::Quaternion controller_quat_; @@ -235,6 +233,9 @@ std::vector<bool> webvr_frame_oustanding_; std::vector<gfx::Transform> webvr_head_pose_; + std::unique_ptr<vr::Ui> ui_; + vr::UiInterface* ui_scene_manager_; + bool web_vr_mode_; bool ready_to_draw_ = false; bool paused_ = true; @@ -252,11 +253,8 @@ mojo::Binding<device::mojom::VRPresentationProvider> binding_; device::mojom::VRSubmitFrameClientPtr submit_client_; - vr::UiInterface* ui_; GlBrowserInterface* browser_; - vr::UiScene* scene_ = nullptr; - uint8_t frame_index_ = 0; // Larger than frame_index_ so it can be initialized out-of-band. uint16_t last_frame_index_ = -1; @@ -273,12 +271,8 @@ gfx::Point3F pointer_start_; - std::unique_ptr<vr::UiInputManager> input_manager_; - std::unique_ptr<vr::UiRenderer> ui_renderer_; - vr::ControllerInfo controller_info_; vr::RenderInfo render_info_primary_; - vr::RenderInfo render_info_webvr_browser_ui_; AndroidVSyncHelper vsync_helper_;
diff --git a/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc b/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc index a7359655..d777b98 100644 --- a/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc +++ b/chrome/browser/extensions/api/browsing_data/browsing_data_test.cc
@@ -9,14 +9,15 @@ #include "base/memory/ref_counted.h" #include "base/strings/pattern.h" #include "base/strings/string_util.h" +#include "base/test/scoped_feature_list.h" #include "base/values.h" #include "chrome/browser/browsing_data/browsing_data_helper.h" - #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h" #include "chrome/browser/extensions/extension_function_test_utils.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/in_process_browser_test.h" #include "components/browsing_data/core/browsing_data_utils.h" @@ -60,6 +61,11 @@ } protected: + void SetUp() override { + feature_list_.InitAndEnableFeature(features::kTabsInCbd); + InProcessBrowserTest::SetUp(); + } + void SetUpOnMainThread() override { remover_ = content::BrowserContext::GetBrowsingDataRemover(browser()->profile()); @@ -154,6 +160,9 @@ int expected_origin_type_mask, int expected_removal_mask) { PrefService* prefs = browser()->profile()->GetPrefs(); + prefs->SetInteger( + browsing_data::prefs::kLastClearBrowsingDataTab, + static_cast<int>(browsing_data::ClearBrowsingDataTab::ADVANCED)); prefs->SetBoolean( browsing_data::prefs::kDeleteCache, !!(data_type_flags & content::BrowsingDataRemover::DATA_TYPE_CACHE)); @@ -183,6 +192,35 @@ !!(data_type_flags & ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA)); + VerifyRemovalMask(expected_origin_type_mask, expected_removal_mask); + } + + void SetBasicPrefsAndVerifySettings(int data_type_flags, + int expected_origin_type_mask, + int expected_removal_mask) { + PrefService* prefs = browser()->profile()->GetPrefs(); + prefs->SetInteger( + browsing_data::prefs::kLastClearBrowsingDataTab, + static_cast<int>(browsing_data::ClearBrowsingDataTab::BASIC)); + prefs->SetBoolean( + browsing_data::prefs::kDeleteCacheBasic, + !!(data_type_flags & content::BrowsingDataRemover::DATA_TYPE_CACHE)); + prefs->SetBoolean( + browsing_data::prefs::kDeleteCookiesBasic, + !!(data_type_flags & content::BrowsingDataRemover::DATA_TYPE_COOKIES)); + prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistoryBasic, + !!(data_type_flags & + ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY)); + prefs->SetBoolean( + prefs::kClearPluginLSODataEnabled, + !!(data_type_flags & + ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA)); + + VerifyRemovalMask(expected_origin_type_mask, expected_removal_mask); + } + + void VerifyRemovalMask(int expected_origin_type_mask, + int expected_removal_mask) { scoped_refptr<BrowsingDataSettingsFunction> function = new BrowsingDataSettingsFunction(); SCOPED_TRACE("settings"); @@ -259,6 +297,7 @@ } private: + base::test::ScopedFeatureList feature_list_; // Cached pointer to BrowsingDataRemover for access to testing methods. content::BrowsingDataRemover* remover_; }; @@ -397,6 +436,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, BrowsingDataRemovalInputFromSettings) { PrefService* prefs = browser()->profile()->GetPrefs(); + prefs->SetInteger( + browsing_data::prefs::kLastClearBrowsingDataTab, + static_cast<int>(browsing_data::ClearBrowsingDataTab::ADVANCED)); prefs->SetBoolean(browsing_data::prefs::kDeleteCache, true); prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, true); prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, true); @@ -496,6 +538,12 @@ SetPrefsAndVerifySettings( ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, 0, ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); + SetBasicPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_CACHE, + 0, + content::BrowsingDataRemover::DATA_TYPE_CACHE); + SetBasicPrefsAndVerifySettings( + ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, 0, + ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); } // Test cookie and app data settings. @@ -524,6 +572,9 @@ content::BrowsingDataRemover::DATA_TYPE_COOKIES | ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA, UNPROTECTED_WEB, supported_site_data); + SetBasicPrefsAndVerifySettings( + content::BrowsingDataRemover::DATA_TYPE_COOKIES, UNPROTECTED_WEB, + supported_site_data_except_plugins); } // Test an arbitrary assortment of settings.
diff --git a/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html b/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html index bc6553aa..29fbdaa8 100644 --- a/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html +++ b/chrome/browser/resources/pdf/elements/viewer-pdf-toolbar/viewer-pdf-toolbar.html
@@ -5,7 +5,6 @@ <link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animation-runner-behavior.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-toolbar/paper-toolbar.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html"> <link rel="import" href="../icons.html"> <link rel="import" href="../viewer-bookmarks-content/viewer-bookmarks-content.html"> @@ -22,8 +21,8 @@ /* We introduce a wrapper aligner element to help with laying out the main * toolbar content without changing the bottom-aligned progress bar. */ #aligner { - @apply(--layout-horizontal); - @apply(--layout-center); + align-items: center; + display: flex; padding: 0 8px; width: 100%; } @@ -68,11 +67,12 @@ width: 100%; } - paper-toolbar { - --paper-toolbar-background: rgb(50, 54, 57); - --paper-toolbar-height: 48px; + #toolbar { @apply(--shadow-elevation-2dp); + background-color: rgb(50, 54, 57); color: rgb(241, 241, 241); + display: flex; + height: 48px; } .invisible { @@ -103,7 +103,7 @@ } } </style> - <paper-toolbar> + <div id="toolbar"> <div id="aligner" class="middle"> <span id="title" title="{{docTitle}}"> <span>{{docTitle}}</span> @@ -148,7 +148,7 @@ <div class="bottom fit"> <paper-progress id="progress" value="{{loadProgress}}"></paper-progress> </div> - </paper-toolbar> + </div> </template> <script src="viewer-pdf-toolbar.js"></script> </dom-module>
diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chrome/browser/search_engines/ui_thread_search_terms_data.cc index 95f42aa0..e74689f 100644 --- a/chrome/browser/search_engines/ui_thread_search_terms_data.cc +++ b/chrome/browser/search_engines/ui_thread_search_terms_data.cc
@@ -128,15 +128,6 @@ return "chrome-ext-ansg"; } -std::string UIThreadSearchTermsData::InstantExtendedEnabledParam() const { - return search::InstantExtendedEnabledParam(); -} - -std::string UIThreadSearchTermsData::ForceInstantResultsParam( - bool for_prerender) const { - return search::ForceInstantResultsParam(for_prerender); -} - // It's acutally OK to call this method on any thread, but it's currently placed // in UIThreadSearchTermsData since SearchTermsData cannot depend on src/chrome // as it is shared with iOS.
diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.h b/chrome/browser/search_engines/ui_thread_search_terms_data.h index 551f6a0e..7e72c6cd 100644 --- a/chrome/browser/search_engines/ui_thread_search_terms_data.h +++ b/chrome/browser/search_engines/ui_thread_search_terms_data.h
@@ -27,8 +27,6 @@ std::string GetSearchClient() const override; std::string GetSuggestClient() const override; std::string GetSuggestRequestIdentifier() const override; - std::string InstantExtendedEnabledParam() const override; - std::string ForceInstantResultsParam(bool for_prerender) const override; std::string GoogleImageSearchSource() const override; #if defined(OS_ANDROID)
diff --git a/chrome/browser/vr/BUILD.gn b/chrome/browser/vr/BUILD.gn index 747ff075..c03ae87 100644 --- a/chrome/browser/vr/BUILD.gn +++ b/chrome/browser/vr/BUILD.gn
@@ -108,6 +108,8 @@ "toolbar_state.h", "transition.cc", "transition.h", + "ui.cc", + "ui.h", "ui_browser_interface.h", "ui_element_renderer.h", "ui_input_manager.cc",
diff --git a/chrome/browser/vr/test/ui_scene_manager_test.cc b/chrome/browser/vr/test/ui_scene_manager_test.cc index 9a19c9ee..c30e34a6 100644 --- a/chrome/browser/vr/test/ui_scene_manager_test.cc +++ b/chrome/browser/vr/test/ui_scene_manager_test.cc
@@ -8,6 +8,7 @@ #include "chrome/browser/vr/elements/rect.h" #include "chrome/browser/vr/test/constants.h" #include "chrome/browser/vr/test/fake_ui_element_renderer.h" +#include "chrome/browser/vr/ui.h" #include "chrome/browser/vr/ui_scene.h" #include "chrome/browser/vr/ui_scene_manager.h" #include "ui/gfx/geometry/vector3d_f.h" @@ -38,16 +39,24 @@ void UiSceneManagerTest::MakeManager(InCct in_cct, InWebVr in_web_vr) { scene_ = base::MakeUnique<UiScene>(); - manager_ = base::MakeUnique<UiSceneManager>(browser_.get(), scene_.get(), - &content_input_delegate_, in_cct, - in_web_vr, kNotAutopresented); + + UiInitialState ui_initial_state; + ui_initial_state.in_cct = in_cct; + ui_initial_state.in_web_vr = in_web_vr; + ui_initial_state.web_vr_autopresentation_expected = false; + manager_ = base::MakeUnique<UiSceneManager>( + browser_.get(), scene_.get(), &content_input_delegate_, ui_initial_state); } void UiSceneManagerTest::MakeAutoPresentedManager() { scene_ = base::MakeUnique<UiScene>(); + + UiInitialState ui_initial_state; + ui_initial_state.in_cct = false; + ui_initial_state.in_web_vr = false; + ui_initial_state.web_vr_autopresentation_expected = true; manager_ = base::MakeUnique<UiSceneManager>( - browser_.get(), scene_.get(), &content_input_delegate_, kNotInCct, - kNotInWebVr, kAutopresented); + browser_.get(), scene_.get(), &content_input_delegate_, ui_initial_state); } bool UiSceneManagerTest::IsVisible(UiElementName name) const { @@ -68,7 +77,9 @@ SCOPED_TRACE(name); auto* element = scene_->GetUiElementByName(name); EXPECT_NE(nullptr, element); - EXPECT_TRUE(element->IsVisible() && IsElementFacingCamera(element)); + if (element) { + EXPECT_TRUE(element->IsVisible() && IsElementFacingCamera(element)); + } } }
diff --git a/chrome/browser/vr/ui.cc b/chrome/browser/vr/ui.cc new file mode 100644 index 0000000..32b2f838 --- /dev/null +++ b/chrome/browser/vr/ui.cc
@@ -0,0 +1,46 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/vr/ui.h" + +#include "base/memory/ptr_util.h" +#include "base/threading/thread_task_runner_handle.h" +#include "chrome/browser/vr/ui_input_manager.h" +#include "chrome/browser/vr/ui_interface.h" +#include "chrome/browser/vr/ui_renderer.h" +#include "chrome/browser/vr/ui_scene.h" +#include "chrome/browser/vr/ui_scene_manager.h" +#include "chrome/browser/vr/vr_shell_renderer.h" + +namespace vr { + +Ui::Ui(UiBrowserInterface* browser, + ContentInputDelegate* content_input_delegate, + const vr::UiInitialState& ui_initial_state) + : scene_(base::MakeUnique<vr::UiScene>()), + scene_manager_( + base::MakeUnique<vr::UiSceneManager>(browser, + scene_.get(), + content_input_delegate, + ui_initial_state)) {} + +Ui::~Ui() = default; + +UiInterface* Ui::ui() { + return scene_manager_.get(); +} + +base::WeakPtr<vr::BrowserUiInterface> Ui::GetBrowserUiWeakPtr() { + return scene_manager_->GetWeakPtr(); +} + +void Ui::OnGlInitialized(unsigned int content_texture_id) { + ui()->OnGlInitialized(content_texture_id); + input_manager_ = base::MakeUnique<vr::UiInputManager>(scene_.get()); + vr_shell_renderer_ = base::MakeUnique<vr::VrShellRenderer>(); + ui_renderer_ = + base::MakeUnique<vr::UiRenderer>(scene_.get(), vr_shell_renderer_.get()); +} + +} // namespace vr
diff --git a/chrome/browser/vr/ui.h b/chrome/browser/vr/ui.h new file mode 100644 index 0000000..ec0a3d7 --- /dev/null +++ b/chrome/browser/vr/ui.h
@@ -0,0 +1,67 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_VR_UI_H_ +#define CHROME_BROWSER_VR_UI_H_ + +#include <memory> + +#include "base/macros.h" +#include "base/memory/weak_ptr.h" +#include "chrome/browser/vr/ui_interface.h" + +namespace vr { +class BrowserUiInterface; +class ContentInputDelegate; +class UiBrowserInterface; +class UiInputManager; +class UiRenderer; +class UiScene; +class UiSceneManager; +class VrShellRenderer; +} // namespace vr + +namespace vr { + +struct UiInitialState { + bool in_cct = false; + bool in_web_vr = false; + bool web_vr_autopresentation_expected = false; +}; + +// This class manages all GLThread owned objects and GL rendering for VrShell. +// It is not threadsafe and must only be used on the GL thread. +class Ui { + public: + Ui(UiBrowserInterface* browser, + ContentInputDelegate* content_input_delegate, + const vr::UiInitialState& ui_initial_state); + virtual ~Ui(); + + base::WeakPtr<vr::BrowserUiInterface> GetBrowserUiWeakPtr(); + + void OnGlInitialized(unsigned int content_texture_id); + + UiInterface* ui(); + + // TODO(crbug.com/767957): Refactor to hide these behind the UI interface. + UiScene* scene() { return scene_.get(); } + VrShellRenderer* vr_shell_renderer() { return vr_shell_renderer_.get(); } + UiRenderer* ui_renderer() { return ui_renderer_.get(); } + UiInputManager* input_manager() { return input_manager_.get(); } + + private: + // This state may be further abstracted into a SkiaUi object. + std::unique_ptr<vr::UiScene> scene_; + std::unique_ptr<vr::UiSceneManager> scene_manager_; + std::unique_ptr<vr::VrShellRenderer> vr_shell_renderer_; + std::unique_ptr<vr::UiInputManager> input_manager_; + std::unique_ptr<vr::UiRenderer> ui_renderer_; + + DISALLOW_COPY_AND_ASSIGN(Ui); +}; + +} // namespace vr + +#endif // CHROME_BROWSER_VR_UI_H_
diff --git a/chrome/browser/vr/ui_interface.h b/chrome/browser/vr/ui_interface.h index 89cb90e..158a4f4 100644 --- a/chrome/browser/vr/ui_interface.h +++ b/chrome/browser/vr/ui_interface.h
@@ -11,6 +11,8 @@ namespace vr { +class UiScene; + // This is the platform-specific interface to the VR UI. class UiInterface { public: @@ -24,6 +26,10 @@ virtual ~UiInterface() {} + virtual UiScene* scene() = 0; + + virtual bool ShouldRenderWebVr() = 0; + virtual void OnGlInitialized(unsigned int content_texture_id) = 0; virtual void OnAppButtonClicked() = 0; virtual void OnAppButtonGesturePerformed(
diff --git a/chrome/browser/vr/ui_scene_manager.cc b/chrome/browser/vr/ui_scene_manager.cc index 2367751..a393ec7 100644 --- a/chrome/browser/vr/ui_scene_manager.cc +++ b/chrome/browser/vr/ui_scene_manager.cc
@@ -30,6 +30,7 @@ #include "chrome/browser/vr/elements/viewport_aware_root.h" #include "chrome/browser/vr/elements/webvr_url_toast.h" #include "chrome/browser/vr/target_property.h" +#include "chrome/browser/vr/ui.h" #include "chrome/browser/vr/ui_browser_interface.h" #include "chrome/browser/vr/ui_scene.h" #include "chrome/browser/vr/vr_gl_util.h" @@ -169,15 +170,15 @@ UiSceneManager::UiSceneManager(UiBrowserInterface* browser, UiScene* scene, ContentInputDelegate* content_input_delegate, - bool in_cct, - bool in_web_vr, - bool web_vr_autopresentation_expected) + const UiInitialState& ui_initial_state) : browser_(browser), scene_(scene), - in_cct_(in_cct), - web_vr_mode_(in_web_vr), - started_for_autopresentation_(web_vr_autopresentation_expected), - showing_web_vr_splash_screen_(web_vr_autopresentation_expected), + in_cct_(ui_initial_state.in_cct), + web_vr_mode_(ui_initial_state.in_web_vr), + started_for_autopresentation_( + ui_initial_state.web_vr_autopresentation_expected), + showing_web_vr_splash_screen_( + ui_initial_state.web_vr_autopresentation_expected), weak_ptr_factory_(this) { Create2dBrowsingSubtreeRoots(); CreateWebVrRoot(); @@ -868,6 +869,14 @@ ConfigureScene(); } +UiScene* UiSceneManager::scene() { + return scene_; +} + +bool UiSceneManager::ShouldRenderWebVr() { + return scene_->web_vr_rendering_enabled(); +} + void UiSceneManager::OnGlInitialized(unsigned int content_texture_id) { main_content_->set_texture_id(content_texture_id); scene_->OnGlInitialized();
diff --git a/chrome/browser/vr/ui_scene_manager.h b/chrome/browser/vr/ui_scene_manager.h index 791bcf5..5a8f0b0 100644 --- a/chrome/browser/vr/ui_scene_manager.h +++ b/chrome/browser/vr/ui_scene_manager.h
@@ -30,6 +30,7 @@ class UiScene; class UrlBar; class ExitPrompt; +struct UiInitialState; // The scene manager creates and maintains a UiElement hierarchy. // @@ -83,20 +84,17 @@ UiSceneManager(UiBrowserInterface* browser, UiScene* scene, ContentInputDelegate* content_input_delegate, - bool in_cct, - bool in_web_vr, - bool web_vr_autopresentation_expected); - + const UiInitialState& ui_initial_state); ~UiSceneManager() override; base::WeakPtr<UiSceneManager> GetWeakPtr(); // UiBrowserInterface. + void SetWebVrMode(bool web_vr, bool show_toast) override; void SetFullscreen(bool fullscreen) override; void SetIncognito(bool incognito) override; void SetToolbarState(const ToolbarState& state) override; void SetWebVrSecureOrigin(bool secure) override; - void SetWebVrMode(bool web_vr, bool show_toast) override; void SetLoading(bool loading) override; void SetLoadProgress(float progress) override; void SetIsExiting() override; @@ -108,6 +106,8 @@ void SetHistoryButtonsEnabled(bool can_go_back, bool can_go_forward) override; // UiInterface. + UiScene* scene() override; + bool ShouldRenderWebVr() override; void OnGlInitialized(unsigned int content_texture_id) override; void OnAppButtonClicked() override; void OnAppButtonGesturePerformed(UiInterface::Direction direction) override;
diff --git a/chromeos/dbus/arc_oemcrypto_client.cc b/chromeos/dbus/arc_oemcrypto_client.cc index dab62c4..2230b5b 100644 --- a/chromeos/dbus/arc_oemcrypto_client.cc +++ b/chromeos/dbus/arc_oemcrypto_client.cc
@@ -48,8 +48,8 @@ arc_oemcrypto::kArcOemCryptoServiceName, dbus::ObjectPath(arc_oemcrypto::kArcOemCryptoServicePath)); proxy_->WaitForServiceToBeAvailable( - base::Bind(&ArcOemCryptoClientImpl::OnServiceAvailable, - weak_ptr_factory_.GetWeakPtr())); + base::BindOnce(&ArcOemCryptoClientImpl::OnServiceAvailable, + weak_ptr_factory_.GetWeakPtr())); } private:
diff --git a/chromeos/dbus/cras_audio_client.cc b/chromeos/dbus/cras_audio_client.cc index ec08396a..49e9305f 100644 --- a/chromeos/dbus/cras_audio_client.cc +++ b/chromeos/dbus/cras_audio_client.cc
@@ -207,8 +207,8 @@ } void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) override { - cras_proxy_->WaitForServiceToBeAvailable(callback); + WaitForServiceToBeAvailableCallback callback) override { + cras_proxy_->WaitForServiceToBeAvailable(std::move(callback)); } protected:
diff --git a/chromeos/dbus/cras_audio_client.h b/chromeos/dbus/cras_audio_client.h index 478bdc0..ea35b37 100644 --- a/chromeos/dbus/cras_audio_client.h +++ b/chromeos/dbus/cras_audio_client.h
@@ -13,6 +13,7 @@ #include "chromeos/chromeos_export.h" #include "chromeos/dbus/audio_node.h" #include "chromeos/dbus/dbus_client.h" +#include "chromeos/dbus/dbus_method_call_status.h" #include "chromeos/dbus/volume_state.h" namespace chromeos { @@ -82,9 +83,6 @@ // contains the detailed dbus error message. typedef base::Callback<void(const std::string&, const std::string&)> ErrorCallback; - // A callback for cras dbus method WaitForServiceToBeAvailable. - typedef base::Callback<void(bool service_is_ready)> - WaitForServiceToBeAvailableCallback; // Gets the volume state, asynchronously. virtual void GetVolumeState(const GetVolumeStateCallback& callback) = 0; @@ -149,7 +147,7 @@ // Runs the callback as soon as the service becomes available. virtual void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) = 0; + WaitForServiceToBeAvailableCallback callback) = 0; // Creates the instance. static CrasAudioClient* Create();
diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc index 90de8694..fabae14 100644 --- a/chromeos/dbus/cryptohome_client.cc +++ b/chromeos/dbus/cryptohome_client.cc
@@ -80,8 +80,8 @@ // CryptohomeClient override. void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) override { - proxy_->WaitForServiceToBeAvailable(callback); + WaitForServiceToBeAvailableCallback callback) override { + proxy_->WaitForServiceToBeAvailable(std::move(callback)); } // CryptohomeClient override.
diff --git a/chromeos/dbus/cryptohome_client.h b/chromeos/dbus/cryptohome_client.h index dfa40bf..652ac9b 100644 --- a/chromeos/dbus/cryptohome_client.h +++ b/chromeos/dbus/cryptohome_client.h
@@ -68,9 +68,6 @@ GetSystemSaltCallback; // A callback to handle LowDiskSpace signals. typedef base::Callback<void(uint64_t disk_free_bytes)> LowDiskSpaceHandler; - // A callback for WaitForServiceToBeAvailable(). - typedef base::Callback<void(bool service_is_ready)> - WaitForServiceToBeAvailableCallback; // A callback to handle responses of Pkcs11GetTpmTokenInfo method. The result // of the D-Bus call is in |call_status|. On success, |label| holds the // PKCS #11 token label. This is not useful in practice to identify a token @@ -145,7 +142,7 @@ // Runs the callback as soon as the service becomes available. virtual void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) = 0; + WaitForServiceToBeAvailableCallback callback) = 0; // Calls IsMounted method and returns true when the call succeeds. virtual void IsMounted(DBusMethodCallback<bool> callback) = 0;
diff --git a/chromeos/dbus/dbus_method_call_status.h b/chromeos/dbus/dbus_method_call_status.h index 0ad76a4..d0fb0f4 100644 --- a/chromeos/dbus/dbus_method_call_status.h +++ b/chromeos/dbus/dbus_method_call_status.h
@@ -5,6 +5,9 @@ #ifndef CHROMEOS_DBUS_DBUS_METHOD_CALL_STATUS_H_ #define CHROMEOS_DBUS_DBUS_METHOD_CALL_STATUS_H_ +// TODO(hidehiko): Rename this file to dbus_callback.h, when we fully +// get rid of DBusMethodCallStatus enum defined below. + #include <string> #include "base/callback.h" @@ -41,6 +44,10 @@ // doesn't get call status. typedef base::Callback<void(const dbus::ObjectPath& result)> ObjectPathCallback; +// Called when service becomes available. +using WaitForServiceToBeAvailableCallback = + base::OnceCallback<void(bool service_is_available)>; + // Returns an empty callback that does nothing. CHROMEOS_EXPORT VoidDBusMethodCallback EmptyVoidDBusMethodCallback();
diff --git a/chromeos/dbus/debug_daemon_client.cc b/chromeos/dbus/debug_daemon_client.cc index 1b0dd257..d49cbc7 100644 --- a/chromeos/dbus/debug_daemon_client.cc +++ b/chromeos/dbus/debug_daemon_client.cc
@@ -419,8 +419,8 @@ } void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) override { - debugdaemon_proxy_->WaitForServiceToBeAvailable(callback); + WaitForServiceToBeAvailableCallback callback) override { + debugdaemon_proxy_->WaitForServiceToBeAvailable(std::move(callback)); } void SetOomScoreAdj(const std::map<pid_t, int32_t>& pid_to_oom_score_adj,
diff --git a/chromeos/dbus/debug_daemon_client.h b/chromeos/dbus/debug_daemon_client.h index 46d1c83..e9abf79 100644 --- a/chromeos/dbus/debug_daemon_client.h +++ b/chromeos/dbus/debug_daemon_client.h
@@ -20,6 +20,7 @@ #include "base/trace_event/tracing_agent.h" #include "chromeos/chromeos_export.h" #include "chromeos/dbus/dbus_client.h" +#include "chromeos/dbus/dbus_method_call_status.h" #include "third_party/cros_system_api/dbus/service_constants.h" namespace chromeos { @@ -196,13 +197,9 @@ // Trigger uploading of crashes. virtual void UploadCrashes() = 0; - // A callback for WaitForServiceToBeAvailable(). - typedef base::Callback<void(bool service_is_ready)> - WaitForServiceToBeAvailableCallback; - // Runs the callback as soon as the service becomes available. virtual void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) = 0; + WaitForServiceToBeAvailableCallback callback) = 0; // A callback for SetOomScoreAdj(). typedef base::Callback<void(bool success, const std::string& output)>
diff --git a/chromeos/dbus/fake_cras_audio_client.cc b/chromeos/dbus/fake_cras_audio_client.cc index 3ebc6a8..5351eb4 100644 --- a/chromeos/dbus/fake_cras_audio_client.cc +++ b/chromeos/dbus/fake_cras_audio_client.cc
@@ -188,8 +188,8 @@ } void FakeCrasAudioClient::WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) { - callback.Run(true); + WaitForServiceToBeAvailableCallback callback) { + std::move(callback).Run(true); } void FakeCrasAudioClient::RemoveActiveOutputNode(uint64_t node_id) {
diff --git a/chromeos/dbus/fake_cras_audio_client.h b/chromeos/dbus/fake_cras_audio_client.h index 636113f..14fd126 100644 --- a/chromeos/dbus/fake_cras_audio_client.h +++ b/chromeos/dbus/fake_cras_audio_client.h
@@ -43,7 +43,7 @@ void SetGlobalOutputChannelRemix(int32_t channels, const std::vector<double>& mixer) override; void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) override; + WaitForServiceToBeAvailableCallback callback) override; // Modifies an AudioNode from |node_list_| based on |audio_node.id|. // if the |audio_node.id| cannot be found in list, Add an
diff --git a/chromeos/dbus/fake_cryptohome_client.cc b/chromeos/dbus/fake_cryptohome_client.cc index 5484e35..266f22b 100644 --- a/chromeos/dbus/fake_cryptohome_client.cc +++ b/chromeos/dbus/fake_cryptohome_client.cc
@@ -79,12 +79,13 @@ } void FakeCryptohomeClient::WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) { + WaitForServiceToBeAvailableCallback callback) { if (service_is_available_) { - base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, - base::Bind(callback, true)); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), true)); } else { - pending_wait_for_service_to_be_available_callbacks_.push_back(callback); + pending_wait_for_service_to_be_available_callbacks_.push_back( + std::move(callback)); } } @@ -702,12 +703,13 @@ void FakeCryptohomeClient::SetServiceIsAvailable(bool is_available) { service_is_available_ = is_available; - if (is_available) { - std::vector<WaitForServiceToBeAvailableCallback> callbacks; - callbacks.swap(pending_wait_for_service_to_be_available_callbacks_); - for (size_t i = 0; i < callbacks.size(); ++i) - callbacks[i].Run(is_available); - } + if (!is_available) + return; + + std::vector<WaitForServiceToBeAvailableCallback> callbacks; + callbacks.swap(pending_wait_for_service_to_be_available_callbacks_); + for (auto& callback : callbacks) + std::move(callback).Run(true); } void FakeCryptohomeClient::SetTpmAttestationUserCertificate(
diff --git a/chromeos/dbus/fake_cryptohome_client.h b/chromeos/dbus/fake_cryptohome_client.h index 35d5cd4..d66ad81c8 100644 --- a/chromeos/dbus/fake_cryptohome_client.h +++ b/chromeos/dbus/fake_cryptohome_client.h
@@ -34,7 +34,7 @@ void ResetAsyncCallStatusHandlers() override; void SetLowDiskSpaceHandler(const LowDiskSpaceHandler& handler) override; void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) override; + WaitForServiceToBeAvailableCallback callback) override; void IsMounted(DBusMethodCallback<bool> callback) override; void Unmount(DBusMethodCallback<bool> callback) override; void AsyncCheckKey(const cryptohome::Identification& cryptohome_id,
diff --git a/chromeos/dbus/fake_debug_daemon_client.cc b/chromeos/dbus/fake_debug_daemon_client.cc index 7423fa4..1273f7d5 100644 --- a/chromeos/dbus/fake_debug_daemon_client.cc +++ b/chromeos/dbus/fake_debug_daemon_client.cc
@@ -194,12 +194,13 @@ } void FakeDebugDaemonClient::WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) { + WaitForServiceToBeAvailableCallback callback) { if (service_is_available_) { - base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, - base::Bind(callback, true)); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), true)); } else { - pending_wait_for_service_to_be_available_callbacks_.push_back(callback); + pending_wait_for_service_to_be_available_callbacks_.push_back( + std::move(callback)); } } @@ -221,8 +222,8 @@ std::vector<WaitForServiceToBeAvailableCallback> callbacks; callbacks.swap(pending_wait_for_service_to_be_available_callbacks_); - for (size_t i = 0; i < callbacks.size(); ++i) - callbacks[i].Run(is_available); + for (auto& callback : callbacks) + std::move(callback).Run(true); } void FakeDebugDaemonClient::CupsAddManuallyConfiguredPrinter(
diff --git a/chromeos/dbus/fake_debug_daemon_client.h b/chromeos/dbus/fake_debug_daemon_client.h index a8744222..b340621 100644 --- a/chromeos/dbus/fake_debug_daemon_client.h +++ b/chromeos/dbus/fake_debug_daemon_client.h
@@ -71,7 +71,7 @@ void RemoveRootfsVerification( const EnableDebuggingCallback& callback) override; void WaitForServiceToBeAvailable( - const WaitForServiceToBeAvailableCallback& callback) override; + WaitForServiceToBeAvailableCallback callback) override; void SetOomScoreAdj(const std::map<pid_t, int32_t>& pid_to_oom_score_adj, const SetOomScoreAdjCallback& callback) override; void CupsAddManuallyConfiguredPrinter(
diff --git a/chromeos/dbus/system_clock_client.cc b/chromeos/dbus/system_clock_client.cc index fb14341..3d645e08 100644 --- a/chromeos/dbus/system_clock_client.cc +++ b/chromeos/dbus/system_clock_client.cc
@@ -66,8 +66,8 @@ base::Bind(&SystemClockClientImpl::TimeUpdatedConnected, weak_ptr_factory_.GetWeakPtr())); system_clock_proxy_->WaitForServiceToBeAvailable( - base::Bind(&SystemClockClientImpl::ServiceInitiallyAvailable, - weak_ptr_factory_.GetWeakPtr())); + base::BindOnce(&SystemClockClientImpl::ServiceInitiallyAvailable, + weak_ptr_factory_.GetWeakPtr())); } private:
diff --git a/components/autofill/core/browser/autofill_experiments.cc b/components/autofill/core/browser/autofill_experiments.cc index c5b0c44..b5cdabc 100644 --- a/components/autofill/core/browser/autofill_experiments.cc +++ b/components/autofill/core/browser/autofill_experiments.cc
@@ -39,6 +39,8 @@ "AutofillCreditCardPopupLayout", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kAutofillCreditCardLastUsedDateDisplay{ "AutofillCreditCardLastUsedDateDisplay", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kAutofillDeleteDisusedCreditCards{ + "AutofillDeleteDisusedCreditCards", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kAutofillOfferLocalSaveIfServerCardManuallyEntered{ "AutofillOfferLocalSaveIfServerCardManuallyEntered", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/components/autofill/core/browser/autofill_experiments.h b/components/autofill/core/browser/autofill_experiments.h index eac477f..ecbbc64 100644 --- a/components/autofill/core/browser/autofill_experiments.h +++ b/components/autofill/core/browser/autofill_experiments.h
@@ -33,6 +33,7 @@ extern const base::Feature kAutofillCreditCardBankNameDisplay; extern const base::Feature kAutofillCreditCardPopupLayout; extern const base::Feature kAutofillCreditCardLastUsedDateDisplay; +extern const base::Feature kAutofillDeleteDisusedCreditCards; extern const base::Feature kAutofillOfferLocalSaveIfServerCardManuallyEntered; extern const base::Feature kAutofillRationalizeFieldTypePredictions; extern const base::Feature kAutofillSuppressDisusedAddresses;
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc index b463598..84341f1c 100644 --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc
@@ -275,8 +275,7 @@ registry->RegisterIntegerPref( prefs::kAutofillCreditCardSigninPromoImpressionCount, 0); registry->RegisterBooleanPref( - prefs::kAutofillEnabled, - true, + prefs::kAutofillEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( prefs::kAutofillProfileUseDatesFixed, false, @@ -291,6 +290,8 @@ registry->RegisterIntegerPref( prefs::kAutofillAcceptSaveCreditCardPromptState, prefs::PREVIOUS_SAVE_CREDIT_CARD_PROMPT_USER_DECISION_NONE); + registry->RegisterIntegerPref( + prefs::kAutofillLastVersionDisusedCreditCardsDeleted, 0); } void AutofillManager::SetExternalDelegate(AutofillExternalDelegate* delegate) { @@ -1002,8 +1003,7 @@ void AutofillManager::OnSetDataList(const std::vector<base::string16>& values, const std::vector<base::string16>& labels) { - if (!IsValidString16Vector(values) || - !IsValidString16Vector(labels) || + if (!IsValidString16Vector(values) || !IsValidString16Vector(labels) || values.size() != labels.size()) return; @@ -1219,8 +1219,8 @@ #ifdef ENABLE_FORM_DEBUG_DUMP // Debug code for research on what autofill Chrome extracts from the last few // forms when submitting credit card data. See DumpAutofillData(). - bool dump_data = base::CommandLine::ForCurrentProcess()->HasSwitch( - "dump-autofill-data"); + bool dump_data = + base::CommandLine::ForCurrentProcess()->HasSwitch("dump-autofill-data"); // Save the form data for future dumping. if (dump_data) { @@ -1648,8 +1648,7 @@ return false; // No autofill data to return if the profiles are empty. - const std::vector<AutofillProfile*>& profiles = - personal_data_->GetProfiles(); + const std::vector<AutofillProfile*>& profiles = personal_data_->GetProfiles(); const std::vector<CreditCard*>& credit_cards = personal_data_->GetCreditCards(); @@ -1750,8 +1749,8 @@ base::string16 profile_full_name; std::string profile_language_code; if (!is_credit_card) { - profile_full_name = data_model.GetInfo( - AutofillType(NAME_FULL), app_locale_); + profile_full_name = + data_model.GetInfo(AutofillType(NAME_FULL), app_locale_); profile_language_code = static_cast<const AutofillProfile*>(&data_model)->language_code(); } @@ -1763,10 +1762,8 @@ if (iter.SameFieldAs(field)) { base::string16 value = data_model.GetInfo(autofill_field->Type(), app_locale_); - if (AutofillField::FillFormField(*autofill_field, - value, - profile_language_code, - app_locale_, + if (AutofillField::FillFormField(*autofill_field, value, + profile_language_code, app_locale_, &iter)) { // Mark the cached field as autofilled, so that we can detect when a // user edits an autofilled field (for metrics). @@ -1808,12 +1805,12 @@ base::string16 value = data_model.GetInfo(cached_field->Type(), app_locale_); - if (is_credit_card && - cached_field->Type().GetStorableType() == - CREDIT_CARD_VERIFICATION_CODE) { + if (is_credit_card && cached_field->Type().GetStorableType() == + CREDIT_CARD_VERIFICATION_CODE) { value = cvc; - } else if (is_credit_card && IsCreditCardExpirationType( - cached_field->Type().GetStorableType()) && + } else if (is_credit_card && + IsCreditCardExpirationType( + cached_field->Type().GetStorableType()) && static_cast<const CreditCard*>(&data_model) ->IsExpired(AutofillClock::Now())) { // Don't fill expired cards expiration date. @@ -1824,16 +1821,12 @@ // Only notify autofilling of empty fields and the field that initiated // the filling (note that "select-one" controls may not be empty but will // still be autofilled). - bool should_notify = - !is_credit_card && - !value.empty() && - (result.fields[i].SameFieldAs(field) || - result.fields[i].form_control_type == "select-one" || - result.fields[i].value.empty()); - if (AutofillField::FillFormField(*cached_field, - value, - profile_language_code, - app_locale_, + bool should_notify = !is_credit_card && !value.empty() && + (result.fields[i].SameFieldAs(field) || + result.fields[i].form_control_type == "select-one" || + result.fields[i].value.empty()); + if (AutofillField::FillFormField(*cached_field, value, + profile_language_code, app_locale_, &result.fields[i])) { // Mark the cached field as autofilled, so that we can detect when a // user edits an autofilled field (for metrics). @@ -1965,8 +1958,7 @@ const FormStructure* cached_form, FormStructure** updated_form) { bool needs_update = - (!cached_form || - live_form.fields.size() != cached_form->field_count()); + (!cached_form || live_form.fields.size() != cached_form->field_count()); for (size_t i = 0; !needs_update && i < cached_form->field_count(); ++i) needs_update = !cached_form->field(i)->SameFieldAs(live_form.fields[i]); @@ -2183,7 +2175,7 @@ std::string* cc_backend_id, std::string* profile_backend_id) const { int cc_int_id = (frontend_id >> std::numeric_limits<uint16_t>::digits) & - std::numeric_limits<uint16_t>::max(); + std::numeric_limits<uint16_t>::max(); int profile_int_id = frontend_id & std::numeric_limits<uint16_t>::max(); *cc_backend_id = IntToBackendID(cc_int_id); @@ -2389,8 +2381,8 @@ fputs("Got a new credit card on CC form:\n", file); else fputs("Submitted form:\n", file); - for (int i = static_cast<int>(recently_autofilled_forms_.size()) - 1; - i >= 0; i--) { + for (int i = static_cast<int>(recently_autofilled_forms_.size()) - 1; i >= 0; + i--) { for (const auto& pair : recently_autofilled_forms_[i]) { fputs(" ", file); fputs(pair.first.c_str(), file);
diff --git a/components/autofill/core/browser/autofill_metrics.cc b/components/autofill/core/browser/autofill_metrics.cc index 2b3c091..1a6c0bf 100644 --- a/components/autofill/core/browser/autofill_metrics.cc +++ b/components/autofill/core/browser/autofill_metrics.cc
@@ -908,6 +908,11 @@ } // static +void AutofillMetrics::LogNumberOfCreditCardsDeletedForDisuse(size_t num_cards) { + UMA_HISTOGRAM_COUNTS_1000("Autofill.CreditCardsDeletedForDisuse", num_cards); +} + +// static void AutofillMetrics::LogNumberOfProfilesAtAutofillableFormSubmission( size_t num_profiles) { UMA_HISTOGRAM_COUNTS(
diff --git a/components/autofill/core/browser/autofill_metrics.h b/components/autofill/core/browser/autofill_metrics.h index 4363186..b464de6 100644 --- a/components/autofill/core/browser/autofill_metrics.h +++ b/components/autofill/core/browser/autofill_metrics.h
@@ -766,6 +766,10 @@ // used. static void LogNumberOfCreditCardsSuppressedForDisuse(size_t num_cards); + // Log the number of autofill credit card deleted during major version upgrade + // because they have not been used for a long time and are expired. + static void LogNumberOfCreditCardsDeletedForDisuse(size_t num_cards); + // Log the number of profiles available when an autofillable form is // submitted. static void LogNumberOfProfilesAtAutofillableFormSubmission(
diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc index cf01f559..13128ac 100644 --- a/components/autofill/core/browser/personal_data_manager.cc +++ b/components/autofill/core/browser/personal_data_manager.cc
@@ -65,6 +65,20 @@ base::TimeDelta::FromDays(180); constexpr base::TimeDelta kDisusedCreditCardTimeDelta = base::TimeDelta::FromDays(180); +constexpr base::TimeDelta kDisusedCreditCardDeletionTimeDelta = + base::TimeDelta::FromDays(395); + +// Time delta to create test data. +base::TimeDelta DeletableUseDateDelta() { + static base::TimeDelta delta = + kDisusedCreditCardDeletionTimeDelta + base::TimeDelta::FromDays(5); + return delta; +} +base::TimeDelta DeletableExpiryDateDelta() { + static base::TimeDelta delta = + kDisusedCreditCardDeletionTimeDelta + base::TimeDelta::FromDays(45); + return delta; +} template <typename T> class FormGroupMatchesByGUIDFunctor { @@ -339,6 +353,23 @@ return credit_card; } +CreditCard CreateDisusedDeletableTestCreditCard(const std::string& locale) { + const base::Time now = AutofillClock::Now(); + const base::Time use_date = now - DeletableUseDateDelta(); + base::Time::Exploded expiry_date; + (now - DeletableExpiryDateDelta()).LocalExplode(&expiry_date); + + CreditCard credit_card; + credit_card.SetInfo(CREDIT_CARD_NAME_FULL, + base::UTF8ToUTF16("Charlie Deletable"), locale); + credit_card.SetInfo(CREDIT_CARD_NUMBER, base::UTF8ToUTF16("378282246310005"), + locale); + credit_card.SetExpirationMonth(expiry_date.month); + credit_card.SetExpirationYear(expiry_date.year); + credit_card.set_use_date(use_date); + return credit_card; +} + } // namespace const char kFrecencyFieldTrialName[] = "AutofillProfileOrderByFrecency"; @@ -418,7 +449,8 @@ // then run credit card address cleanup/startup code here. Otherwise, defer // until after sync has started. if (!IsSyncEnabledFor(sync_service, syncer::AUTOFILL_WALLET_DATA)) { - CreateTestCreditCards(); // Once per user profile startup. + DeleteDisusedCreditCards(); // Once per major version, otherwise NOP. + CreateTestCreditCards(); // Once per user profile startup. } } @@ -498,7 +530,8 @@ // Run deferred credit card startup code. // See: OnSyncServiceInitialized if (model_type == syncer::AUTOFILL_WALLET_DATA) { - CreateTestCreditCards(); // Once per user profile startup. + DeleteDisusedCreditCards(); // Once per major version, otherwise NOP. + CreateTestCreditCards(); // Once per user profile startup. } } @@ -2257,6 +2290,62 @@ AddCreditCard(CreateBasicTestCreditCard(app_locale_)); AddCreditCard(CreateDisusedTestCreditCard(app_locale_)); + AddCreditCard(CreateDisusedDeletableTestCreditCard(app_locale_)); +} + +bool PersonalDataManager::DeleteDisusedCreditCards() { + if (!base::FeatureList::IsEnabled(kAutofillDeleteDisusedCreditCards)) { + return false; + } + + // Check if credit cards deletion has already been performed this major + // version. + int current_major_version = atoi(version_info::GetVersionNumber().c_str()); + if (pref_service_->GetInteger( + prefs::kAutofillLastVersionDisusedCreditCardsDeleted) >= + current_major_version) { + DVLOG(1) + << "Autofill credit cards deletion already performed for this version"; + return false; + } + + // Set the pref to the current major version. + pref_service_->SetInteger( + prefs::kAutofillLastVersionDisusedCreditCardsDeleted, + current_major_version); + + // Only delete local cards, as server cards are managed by Payments. + auto cards = GetLocalCreditCards(); + + // Early exit when there is no local cards. + if (cards.empty()) { + return true; + } + + const base::Time deletion_threshold = + AutofillClock::Now() - kDisusedCreditCardDeletionTimeDelta; + + std::vector<std::string> guid_to_delete; + for (CreditCard* card : cards) { + if (card->use_date() < deletion_threshold && + card->IsExpired(deletion_threshold)) { + guid_to_delete.push_back(card->guid()); + } + } + + size_t num_deleted_cards = guid_to_delete.size(); + + for (auto const guid : guid_to_delete) { + database_->RemoveCreditCard(guid); + } + + if (num_deleted_cards > 0) { + Refresh(); + } + + AutofillMetrics::LogNumberOfCreditCardsDeletedForDisuse(num_deleted_cards); + + return true; } } // namespace autofill
diff --git a/components/autofill/core/browser/personal_data_manager.h b/components/autofill/core/browser/personal_data_manager.h index ed8f118a..d18b04c 100644 --- a/components/autofill/core/browser/personal_data_manager.h +++ b/components/autofill/core/browser/personal_data_manager.h
@@ -250,6 +250,10 @@ const AutofillType& type, const base::string16& field_contents); + // Tries to delete disused credit cards once per major version if the + // feature is enabled. + bool DeleteDisusedCreditCards(); + // Re-loads profiles and credit cards from the WebDatabase asynchronously. // In the general case, this is a no-op and will re-create the same // in-memory model as existed prior to the call. If any change occurred to @@ -357,6 +361,14 @@ FRIEND_TEST_ALL_PREFIXES( PersonalDataManagerTest, ConvertWalletAddressesAndUpdateWalletCards_MultipleSimilarWalletAddresses); // NOLINT + FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest, + DeleteDisusedCreditCards_OncePerVersion); + FRIEND_TEST_ALL_PREFIXES(PersonalDataManagerTest, + DeleteDisusedCreditCards_DoNothingWhenDisabled); + FRIEND_TEST_ALL_PREFIXES( + PersonalDataManagerTest, + DeleteDisusedCreditCards_OnlyDeleteExpiredDisusedLocalCards); + friend class autofill::AutofillInteractiveTest; friend class autofill::AutofillTest; friend class autofill::PersonalDataManagerFactory;
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc index 30ccafa..1066f0f 100644 --- a/components/autofill/core/browser/personal_data_manager_unittest.cc +++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -242,6 +242,23 @@ ASSERT_EQ(3U, personal_data_->GetCreditCards().size()); } + // Helper method to create a local card that was expired 400 days ago, + // and has not been used in last 400 days. This card is supposed to be + // deleted during a major version upgrade. + void CreateDeletableExpiredAndDisusedCreditCard() { + CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com"); + test::SetCreditCardInfo(&credit_card1, "Clyde Barrow", + "378282246310005" /* American Express */, "04", + "1999", "1"); + credit_card1.set_use_date(AutofillClock::Now() - + base::TimeDelta::FromDays(400)); + + personal_data_->AddCreditCard(credit_card1); + + WaitForOnPersonalDataChanged(); + EXPECT_EQ(1U, personal_data_->GetCreditCards().size()); + } + // Helper methods that simply forward the call to the private member (to avoid // having to friend every test that needs to access the private // PersonalDataManager::ImportAddressProfile or ImportCreditCard). @@ -6266,6 +6283,142 @@ EXPECT_EQ(2U, personal_data_->GetProfiles().size()); } +// Tests that DeleteDisusedCreditCards is not run if the feature is disabled. +TEST_F(PersonalDataManagerTest, + DeleteDisusedCreditCards_DoNothingWhenDisabled) { + // Make sure feature is disabled by default. + EXPECT_FALSE(base::FeatureList::IsEnabled(kAutofillDeleteDisusedCreditCards)); + + CreateDeletableExpiredAndDisusedCreditCard(); + + // DeleteDisusedCreditCards should return false to indicate it was not run. + EXPECT_FALSE(personal_data_->DeleteDisusedCreditCards()); + + personal_data_->Refresh(); + + EXPECT_EQ(1U, personal_data_->GetCreditCards().size()); +} + +// Tests that DeleteDisusedCreditCards is not run a second time on the same +// major version. +TEST_F(PersonalDataManagerTest, DeleteDisusedCreditCards_OncePerVersion) { + // Enable the feature. + base::test::ScopedFeatureList scoped_features; + scoped_features.InitAndEnableFeature(kAutofillDeleteDisusedCreditCards); + + CreateDeletableExpiredAndDisusedCreditCard(); + + // The deletion should be run a first time. + EXPECT_TRUE(personal_data_->DeleteDisusedCreditCards()); + WaitForOnPersonalDataChanged(); + + // The profiles should have been deleted. + EXPECT_EQ(0U, personal_data_->GetCreditCards().size()); + + // Add the card back. + CreateDeletableExpiredAndDisusedCreditCard(); + + // The cleanup should not be run. + EXPECT_FALSE(personal_data_->DeleteDisusedCreditCards()); + + // The card should still be present. + EXPECT_EQ(1U, personal_data_->GetCreditCards().size()); +} + +// Tests that DeleteDisusedCreditCards deletes desired credit cards only. +TEST_F(PersonalDataManagerTest, + DeleteDisusedCreditCards_OnlyDeleteExpiredDisusedLocalCards) { + // Enable the feature. + base::test::ScopedFeatureList scoped_features; + scoped_features.InitAndEnableFeature(kAutofillDeleteDisusedCreditCards); + + const char kHistogramName[] = "Autofill.CreditCardsDeletedForDisuse"; + auto now = AutofillClock::Now(); + + // Create a recently used local card, it is expected to remain. + CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com"); + test::SetCreditCardInfo(&credit_card1, "Alice", + "378282246310005" /* American Express */, "04", + "2999", "1"); + credit_card1.set_use_date(now - base::TimeDelta::FromDays(4)); + + // Create a local card that was expired 400 days ago, but recently used. + // It is expected to remain. + CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com"); + test::SetCreditCardInfo(&credit_card2, "Bob", + "378282246310006" /* American Express */, "04", + "1999", "1"); + credit_card2.set_use_date(now - base::TimeDelta::FromDays(4)); + + // Create a local card expired recently, and last used 400 days ago. + // It is expected to remain. + CreditCard credit_card3(base::GenerateGUID(), "https://www.example.com"); + test::SetCreditCardInfo(&credit_card3, "Clyde", "4111111111111111" /* Visa */, + "04", "2017", "1"); + credit_card3.set_use_date(now - base::TimeDelta::FromDays(400)); + + // Create a local card expired 400 days ago, and last used 400 days ago. + // It is expected to be deleted. + CreditCard credit_card4(base::GenerateGUID(), "https://www.example.com"); + test::SetCreditCardInfo(&credit_card4, "David", + "5105105105105100" /* Mastercard */, "04", "1999", + "1"); + credit_card4.set_use_date(now - base::TimeDelta::FromDays(400)); + personal_data_->AddCreditCard(credit_card1); + personal_data_->AddCreditCard(credit_card2); + personal_data_->AddCreditCard(credit_card3); + personal_data_->AddCreditCard(credit_card4); + + // Create a unmasked server card expired 400 days ago, and last used 400 + // days ago. + // It is expected to remain because we do not delete server cards. + CreditCard credit_card5(CreditCard::FULL_SERVER_CARD, "c789"); + test::SetCreditCardInfo(&credit_card5, "Emma", "4234567890123456" /* Visa */, + "04", "1999", "1"); + credit_card5.set_use_date(now - base::TimeDelta::FromDays(400)); + + // Create masked server card expired 400 days ago, and last used 400 days ago. + // It is expected to remain because we do not delete server cards. + CreditCard credit_card6(CreditCard::MASKED_SERVER_CARD, "c987"); + test::SetCreditCardInfo(&credit_card6, "Frank", "6543", "01", "1998", "1"); + credit_card6.set_use_date(now - base::TimeDelta::FromDays(400)); + credit_card6.SetNetworkForMaskedCard(kVisaCard); + + // Save the server cards and set used_date to desired dates. + std::vector<CreditCard> server_cards; + server_cards.push_back(credit_card5); + server_cards.push_back(credit_card6); + test::SetServerCreditCards(autofill_table_, server_cards); + personal_data_->UpdateServerCardMetadata(credit_card5); + personal_data_->UpdateServerCardMetadata(credit_card6); + + WaitForOnPersonalDataChanged(); + EXPECT_EQ(6U, personal_data_->GetCreditCards().size()); + + // Setup histograms capturing. + base::HistogramTester histogram_tester; + + // DeleteDisusedCreditCards should return true to indicate it was run. + EXPECT_TRUE(personal_data_->DeleteDisusedCreditCards()); + + // Wait for the data to be refreshed. + WaitForOnPersonalDataChanged(); + + EXPECT_EQ(5U, personal_data_->GetCreditCards().size()); + std::unordered_set<base::string16> expectedToRemain = { + base::UTF8ToUTF16("Alice"), base::UTF8ToUTF16("Bob"), + base::UTF8ToUTF16("Clyde"), base::UTF8ToUTF16("Emma"), + base::UTF8ToUTF16("Frank")}; + for (auto* card : personal_data_->GetCreditCards()) { + EXPECT_NE(expectedToRemain.end(), + expectedToRemain.find(card->GetRawInfo(CREDIT_CARD_NAME_FULL))); + } + + // Verify histograms are logged. + histogram_tester.ExpectTotalCount(kHistogramName, 1); + histogram_tester.ExpectBucketCount(kHistogramName, 1, 1); +} + // Tests that a new local profile is created if no existing one is a duplicate // of the server address. Also tests that the billing address relationship was // transferred to the converted address. @@ -7279,10 +7432,13 @@ const std::vector<CreditCard*> credit_cards = personal_data_->GetCreditCards(); ASSERT_EQ(2U, addresses.size()); - ASSERT_EQ(2U, credit_cards.size()); + ASSERT_EQ(3U, credit_cards.size()); const base::Time disused_threshold = AutofillClock::Now() - base::TimeDelta::FromDays(180); + const base::Time deletion_threshold = + AutofillClock::Now() - base::TimeDelta::FromDays(395); + // Verify that there was a valid address created. { auto it = std::find_if( @@ -7328,6 +7484,19 @@ ASSERT_TRUE(it != credit_cards.end()); EXPECT_LT((*it)->use_date(), disused_threshold); } + + // Verify that there was a disused deletable credit card created. + { + auto it = std::find_if( + credit_cards.begin(), credit_cards.end(), [this](const CreditCard* cc) { + return cc->GetInfo(CREDIT_CARD_NAME_FULL, + this->personal_data_->app_locale()) == + base::UTF8ToUTF16("Charlie Deletable"); + }); + ASSERT_TRUE(it != credit_cards.end()); + EXPECT_LT((*it)->use_date(), deletion_threshold); + EXPECT_TRUE((*it)->IsExpired(deletion_threshold)); + } } } // namespace autofill
diff --git a/components/autofill/core/common/autofill_pref_names.cc b/components/autofill/core/common/autofill_pref_names.cc index 4f3b11dc..2361815 100644 --- a/components/autofill/core/common/autofill_pref_names.cc +++ b/components/autofill/core/common/autofill_pref_names.cc
@@ -26,6 +26,11 @@ // was run. This routine will be run once per version. const char kAutofillLastVersionDeduped[] = "autofill.last_version_deduped"; +// Integer that is set to the last version where disused credit cards were +// deleted. This deletion will be run once per version. +const char kAutofillLastVersionDisusedCreditCardsDeleted[] = + "autofill.last_version_disused_credit_cards_deleted"; + // Boolean that is set to the last choice user made when prompted for saving an // unmasked server card locally. const char kAutofillWalletImportStorageCheckboxState[] =
diff --git a/components/autofill/core/common/autofill_pref_names.h b/components/autofill/core/common/autofill_pref_names.h index e18a77a..658dab4 100644 --- a/components/autofill/core/common/autofill_pref_names.h +++ b/components/autofill/core/common/autofill_pref_names.h
@@ -16,6 +16,7 @@ extern const char kAutofillEnabled[]; extern const char kAutofillProfileUseDatesFixed[]; extern const char kAutofillLastVersionDeduped[]; +extern const char kAutofillLastVersionDisusedCreditCardsDeleted[]; extern const char kAutofillWalletImportEnabled[]; extern const char kAutofillWalletImportStorageCheckboxState[];
diff --git a/components/domain_reliability/google_configs.cc b/components/domain_reliability/google_configs.cc index e5959d9..87d8a3e5 100644 --- a/components/domain_reliability/google_configs.cc +++ b/components/domain_reliability/google_configs.cc
@@ -509,6 +509,7 @@ // Origins without subdomains and with same-origin collectors. {"accounts.google.com", false, true, false}, {"apis.google.com", false, true, false}, + {"app.google.stackdriver.com", false, true, false}, {"b.mail.google.com", false, true, false}, {"chatenabled.mail.google.com", false, true, false}, {"ddm.google.com", false, true, false},
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc index ece3c01..7bbc259 100644 --- a/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc
@@ -279,8 +279,6 @@ std::string GetApplicationLocale() const override; base::string16 GetRlzParameterValue(bool from_app_list) const override; std::string GetSearchClient() const override; - std::string InstantExtendedEnabledParam() const override; - std::string ForceInstantResultsParam(bool for_prerender) const override; std::string GoogleImageSearchSource() const override; private: @@ -288,9 +286,6 @@ std::string application_locale_; base::string16 rlz_parameter_value_; std::string search_client_; - std::string instant_extended_enabled_param_; - std::string force_instant_results_param_; - std::string force_instant_results_param_for_prerender_; std::string google_image_search_source_; DISALLOW_COPY_AND_ASSIGN(SearchTermsDataSnapshot); @@ -302,12 +297,6 @@ application_locale_(search_terms_data.GetApplicationLocale()), rlz_parameter_value_(search_terms_data.GetRlzParameterValue(false)), search_client_(search_terms_data.GetSearchClient()), - instant_extended_enabled_param_( - search_terms_data.InstantExtendedEnabledParam()), - force_instant_results_param_( - search_terms_data.ForceInstantResultsParam(false)), - force_instant_results_param_for_prerender_( - search_terms_data.ForceInstantResultsParam(true)), google_image_search_source_(search_terms_data.GoogleImageSearchSource()) { } @@ -331,16 +320,6 @@ return search_client_; } -std::string SearchTermsDataSnapshot::InstantExtendedEnabledParam() const { - return instant_extended_enabled_param_; -} - -std::string SearchTermsDataSnapshot::ForceInstantResultsParam( - bool for_prerender) const { - return for_prerender ? force_instant_results_param_ : - force_instant_results_param_for_prerender_; -} - std::string SearchTermsDataSnapshot::GoogleImageSearchSource() const { return google_image_search_source_; }
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc index 44d20f2..adffaf9e 100644 --- a/components/password_manager/core/common/password_manager_features.cc +++ b/components/password_manager/core/common/password_manager_features.cc
@@ -53,7 +53,7 @@ // Enable the user to trigger password generation manually. extern const base::Feature kEnableManualPasswordGeneration = { - "enable-manual-password-generation", base::FEATURE_DISABLED_BY_DEFAULT}; + "enable-manual-password-generation", base::FEATURE_ENABLED_BY_DEFAULT}; // Enables username correction while saving username and password details. extern const base::Feature kEnableUsernameCorrection{
diff --git a/components/safe_browsing/triggers/ad_sampler_trigger.cc b/components/safe_browsing/triggers/ad_sampler_trigger.cc index 2b4dc15..a8abe44 100644 --- a/components/safe_browsing/triggers/ad_sampler_trigger.cc +++ b/components/safe_browsing/triggers/ad_sampler_trigger.cc
@@ -53,7 +53,8 @@ : kSamplerFrequencyDisabled; } -bool DetectGoogleAd(content::NavigationHandle* navigation_handle) { +bool DetectGoogleAd(content::RenderFrameHost* render_frame_host, + const GURL& frame_url) { // TODO(crbug.com/742397): This function is temporarily copied from // c/b/page_load_metrics/observers/ads_page_load_metrics_observer.cc // This code should be updated to use shared infrastructure when available. @@ -65,11 +66,8 @@ // We use the unsafe method of FindFrameByFrameTreeNodeId because we're not // concerned with which process the frame lives on (we only want to know if an // ad could be present on the page right now). - content::RenderFrameHost* current_frame_host = - navigation_handle->GetWebContents()->UnsafeFindFrameByFrameTreeNodeId( - navigation_handle->GetFrameTreeNodeId()); - if (current_frame_host) { - const std::string& frame_name = current_frame_host->GetFrameName(); + if (render_frame_host) { + const std::string& frame_name = render_frame_host->GetFrameName(); if (base::StartsWith(frame_name, "google_ads_iframe", base::CompareCase::SENSITIVE) || base::StartsWith(frame_name, "google_ads_frame", @@ -78,9 +76,8 @@ } } - const GURL& url = navigation_handle->GetURL(); - return url.host_piece() == "tpc.googlesyndication.com" && - base::StartsWith(url.path_piece(), "/safeframe", + return frame_url.host_piece() == "tpc.googlesyndication.com" && + base::StartsWith(frame_url.path_piece(), "/safeframe", base::CompareCase::SENSITIVE); } @@ -123,15 +120,14 @@ } } -// TODO(lpz): In some cases, this event may be too early for ads to finish -// loading on the page. Investigate later events or possible timer delays. -void AdSamplerTrigger::DidFinishNavigation( - content::NavigationHandle* navigation_handle) { +void AdSamplerTrigger::DidFinishLoad( + content::RenderFrameHost* render_frame_host, + const GURL& validated_url) { UMA_HISTOGRAM_ENUMERATION(kAdSamplerTriggerActionMetricName, TRIGGER_CHECK, MAX_ACTIONS); // We are using light-weight ad detection logic here so it's safe to do the // check on each navigation for the sake of metrics. - if (!DetectGoogleAd(navigation_handle)) { + if (!DetectGoogleAd(render_frame_host, validated_url)) { UMA_HISTOGRAM_ENUMERATION(kAdSamplerTriggerActionMetricName, NO_SAMPLE_NO_AD, MAX_ACTIONS); return;
diff --git a/components/safe_browsing/triggers/ad_sampler_trigger.h b/components/safe_browsing/triggers/ad_sampler_trigger.h index 526e1af..21ca643d 100644 --- a/components/safe_browsing/triggers/ad_sampler_trigger.h +++ b/components/safe_browsing/triggers/ad_sampler_trigger.h
@@ -11,10 +11,6 @@ class PrefService; -namespace content { -class NavigationHandle; -} - namespace history { class HistoryService; } @@ -69,8 +65,8 @@ history::HistoryService* history_service); // content::WebContentsObserver implementation. - void DidFinishNavigation( - content::NavigationHandle* navigation_handle) override; + void DidFinishLoad(content::RenderFrameHost* render_frame_host, + const GURL& validated_url) override; private: friend class AdSamplerTriggerTest;
diff --git a/components/safe_browsing/triggers/ad_sampler_trigger_unittest.cc b/components/safe_browsing/triggers/ad_sampler_trigger_unittest.cc index 5e83351..02bc9e5 100644 --- a/components/safe_browsing/triggers/ad_sampler_trigger_unittest.cc +++ b/components/safe_browsing/triggers/ad_sampler_trigger_unittest.cc
@@ -83,26 +83,31 @@ // Returns the final RenderFrameHost after navigation commits. RenderFrameHost* NavigateFrame(const std::string& url, RenderFrameHost* frame) { + GURL gurl(url); auto navigation_simulator = - NavigationSimulator::CreateRendererInitiated(GURL(url), frame); + NavigationSimulator::CreateRendererInitiated(gurl, frame); navigation_simulator->Commit(); - return navigation_simulator->GetFinalRenderFrameHost(); + RenderFrameHost* final_frame_host = + navigation_simulator->GetFinalRenderFrameHost(); + // Call the trigger's FinishLoad event handler directly since it doesn't + // happen as part of the navigation. + safe_browsing::AdSamplerTrigger::FromWebContents(web_contents()) + ->DidFinishLoad(final_frame_host, gurl); + return final_frame_host; } // Returns the final RenderFrameHost after navigation commits. RenderFrameHost* NavigateMainFrame(const std::string& url) { return NavigateFrame(url, web_contents()->GetMainFrame()); } + // Returns the final RenderFrameHost after navigation commits. RenderFrameHost* CreateAndNavigateSubFrame(const std::string& url, const std::string& frame_name, RenderFrameHost* parent) { RenderFrameHost* subframe = RenderFrameHostTester::For(parent)->AppendChild(frame_name); - auto navigation_simulator = - NavigationSimulator::CreateRendererInitiated(GURL(url), subframe); - navigation_simulator->Commit(); - return navigation_simulator->GetFinalRenderFrameHost(); + return NavigateFrame(url, subframe); } MockTriggerManager* get_trigger_manager() { return &trigger_manager_; }
diff --git a/components/search/search.cc b/components/search/search.cc index 69ea1c1..4a0ae2f5 100644 --- a/components/search/search.cc +++ b/components/search/search.cc
@@ -4,9 +4,7 @@ #include "components/search/search.h" -#include "base/strings/string_number_conversions.h" #include "build/build_config.h" -#include "components/google/core/browser/google_util.h" namespace search { @@ -18,22 +16,4 @@ #endif } -uint64_t EmbeddedSearchPageVersion() { -#if defined(OS_IOS) || defined(OS_ANDROID) - return 1; -#else - return 2; -#endif -} - -std::string InstantExtendedEnabledParam() { - return std::string(google_util::kInstantExtendedAPIParam) + "=" + - base::Uint64ToString(EmbeddedSearchPageVersion()) + "&"; -} - -std::string ForceInstantResultsParam(bool for_prerender) { - return (for_prerender || !IsInstantExtendedAPIEnabled()) ? "ion=1&" - : std::string(); -} - } // namespace search
diff --git a/components/search/search.h b/components/search/search.h index fd3d1f24..f2d04111 100644 --- a/components/search/search.h +++ b/components/search/search.h
@@ -5,28 +5,12 @@ #ifndef COMPONENTS_SEARCH_SEARCH_H_ #define COMPONENTS_SEARCH_SEARCH_H_ -#include <string> - namespace search { // Returns whether the Instant Extended API is enabled. This is always true on // desktop and false on mobile. bool IsInstantExtendedAPIEnabled(); -// Returns a string indicating whether InstantExtended is enabled, suitable -// for adding as a query string param to the homepage or search requests. -std::string InstantExtendedEnabledParam(); - -// Returns a string that will cause the search results page to update -// incrementally. Currently, Instant Extended passes a different param to -// search results pages that also has this effect, so by default this function -// returns the empty string when Instant Extended is enabled. However, when -// doing instant search result prerendering, we still need to pass this param, -// as Instant Extended does not cause incremental updates by default for the -// prerender page. Callers should set |for_prerender| in this case to force -// the returned string to be non-empty. -std::string ForceInstantResultsParam(bool for_prerender); - } // namespace search #endif // COMPONENTS_SEARCH_SEARCH_H_
diff --git a/components/search/search_unittest.cc b/components/search/search_unittest.cc index 6c86c76d..6d5cf8f 100644 --- a/components/search/search_unittest.cc +++ b/components/search/search_unittest.cc
@@ -15,15 +15,6 @@ EXPECT_TRUE(IsInstantExtendedAPIEnabled()); } -TEST(SearchTest, ForceInstantResultsParam) { - EXPECT_EQ("ion=1&", ForceInstantResultsParam(true)); - EXPECT_EQ(std::string(), ForceInstantResultsParam(false)); -} - -TEST(SearchTest, InstantExtendedEnabledParam) { - EXPECT_EQ("espv=2&", InstantExtendedEnabledParam()); -} - #endif // !defined(OS_IOS) && !defined(OS_ANDROID) } // namespace search
diff --git a/components/search_engines/search_terms_data.cc b/components/search_engines/search_terms_data.cc index a976227..8226775 100644 --- a/components/search_engines/search_terms_data.cc +++ b/components/search_engines/search_terms_data.cc
@@ -54,15 +54,6 @@ return std::string(); } -std::string SearchTermsData::InstantExtendedEnabledParam() const { - return std::string(); -} - -std::string SearchTermsData::ForceInstantResultsParam( - bool for_prerender) const { - return std::string(); -} - std::string SearchTermsData::GoogleImageSearchSource() const { return std::string(); }
diff --git a/components/search_engines/search_terms_data.h b/components/search_engines/search_terms_data.h index 302c906..c8a67af 100644 --- a/components/search_engines/search_terms_data.h +++ b/components/search_engines/search_terms_data.h
@@ -49,14 +49,6 @@ // This implementation returns the empty string. virtual std::string GetSuggestRequestIdentifier() const; - // Returns a string indicating whether InstantExtended is enabled, suitable - // for adding as a query string param to the homepage or search requests. - virtual std::string InstantExtendedEnabledParam() const; - - // Returns a string that will cause the search results page to update - // incrementally. - virtual std::string ForceInstantResultsParam(bool for_prerender) const; - // Returns the value to use for replacements of type // GOOGLE_IMAGE_SEARCH_SOURCE. virtual std::string GoogleImageSearchSource() const;
diff --git a/content/browser/media/media_color_browsertest.cc b/content/browser/media/media_color_browsertest.cc index 82fbe3d..6bc9300c 100644 --- a/content/browser/media/media_color_browsertest.cc +++ b/content/browser/media/media_color_browsertest.cc
@@ -22,13 +22,7 @@ // Android doesn't support Theora. #if !defined(OS_ANDROID) -// This fails on Linux: http://crbug.com/767926. -#if defined(OS_LINUX) -#define MAYBE_Yuv420pTheora DISABLED_Yuv420pTheora -#else -#define MAYBE_Yuv420pTheora Yuv420pTheora -#endif -IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuv420pTheora) { +IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pTheora) { RunColorTest("yuv420p.ogv"); } @@ -41,13 +35,7 @@ } #endif // !defined(OS_ANDROID) -// This fails on Linux: http://crbug.com/767926. -#if defined(OS_LINUX) -#define MAYBE_Yuv420pVp8 DISABLED_Yuv420pVp8 -#else -#define MAYBE_Yuv420pVp8 Yuv420pVp8 -#endif -IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuv420pVp8) { +IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pVp8) { RunColorTest("yuv420p.webm"); } @@ -58,8 +46,8 @@ #if BUILDFLAG(USE_PROPRIETARY_CODECS) // This fails on some Android devices: http://crbug.com/649199, -// and Linux: http://crbug.com/767926. -#if defined(OS_LINUX) || defined(OS_ANDROID) +// http://crbug.com/649185. +#if defined(OS_ANDROID) #define MAYBE_Yuv420pH264 DISABLED_Yuv420pH264 #else #define MAYBE_Yuv420pH264 Yuv420pH264 @@ -68,9 +56,9 @@ RunColorTest("yuv420p.mp4"); } -// This test fails on Android: http://crbug.com/647818, OSX: -// http://crbug.com/647838 and Linux: http://crbug.com/767926. -#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_ANDROID) +// This test fails on Android: http://crbug.com/647818, and OSX: +// http://crbug.com/647838. +#if defined(OS_MACOSX) || defined(OS_ANDROID) #define MAYBE_Yuvj420pH264 DISABLED_Yuvj420pH264 #else #define MAYBE_Yuvj420pH264 Yuvj420pH264
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc index 7ed8796..1d5db39 100644 --- a/content/browser/service_worker/service_worker_version.cc +++ b/content/browser/service_worker/service_worker_version.cc
@@ -1489,7 +1489,11 @@ } // Keep the live registration while starting the worker. - start_callbacks_.push_back(std::move(callback)); + start_callbacks_.push_back(base::BindOnce( + [](StatusCallback callback, + scoped_refptr<ServiceWorkerRegistration> protect, + ServiceWorkerStatusCode status) { std::move(callback).Run(status); }, + std::move(callback), protect)); if (running_status() == EmbeddedWorkerStatus::STOPPED) StartWorkerInternal();
diff --git a/content/renderer/manifest/manifest_manager.cc b/content/renderer/manifest/manifest_manager.cc index 938ecb6..55d0aa82 100644 --- a/content/renderer/manifest/manifest_manager.cc +++ b/content/renderer/manifest/manifest_manager.cc
@@ -89,8 +89,10 @@ // During document load, coalescing is disabled to maintain relative ordering // of this notification and the favicon URL reporting. if (!render_frame()->GetWebFrame()->IsLoading()) { - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(&ManifestManager::ReportManifestChange, + render_frame() + ->GetTaskRunner(blink::TaskType::kUnspecedLoading) + ->PostTask(FROM_HERE, + base::BindOnce(&ManifestManager::ReportManifestChange, weak_factory_.GetWeakPtr())); return; }
diff --git a/ios/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/ios/chrome/browser/search_engines/ui_thread_search_terms_data.cc index 03eaaba..d68b7f6 100644 --- a/ios/chrome/browser/search_engines/ui_thread_search_terms_data.cc +++ b/ios/chrome/browser/search_engines/ui_thread_search_terms_data.cc
@@ -92,17 +92,6 @@ return "chrome-ext-ansg"; } -std::string UIThreadSearchTermsData::InstantExtendedEnabledParam() const { - DCHECK(thread_checker_.CalledOnValidThread()); - return search::InstantExtendedEnabledParam(); -} - -std::string UIThreadSearchTermsData::ForceInstantResultsParam( - bool for_prerender) const { - DCHECK(thread_checker_.CalledOnValidThread()); - return search::ForceInstantResultsParam(for_prerender); -} - std::string UIThreadSearchTermsData::GoogleImageSearchSource() const { DCHECK(thread_checker_.CalledOnValidThread()); std::string version(version_info::GetProductName() + " " +
diff --git a/ios/chrome/browser/search_engines/ui_thread_search_terms_data.h b/ios/chrome/browser/search_engines/ui_thread_search_terms_data.h index 32d493a5f..71001cf 100644 --- a/ios/chrome/browser/search_engines/ui_thread_search_terms_data.h +++ b/ios/chrome/browser/search_engines/ui_thread_search_terms_data.h
@@ -26,8 +26,6 @@ std::string GetSearchClient() const override; std::string GetSuggestClient() const override; std::string GetSuggestRequestIdentifier() const override; - std::string InstantExtendedEnabledParam() const override; - std::string ForceInstantResultsParam(bool for_prerender) const override; std::string GoogleImageSearchSource() const override; private:
diff --git a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm index 9dcae0d9..7580b85 100644 --- a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm +++ b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
@@ -90,6 +90,11 @@ performAction:grey_typeText(@"chrome://newtab/#most_visited\n")]; } + // Clear the pasteboard in case there is a URL copied, triggering an omnibox + // suggestion. + UIPasteboard* pasteboard = [UIPasteboard generalPasteboard]; + [pasteboard setValue:@"" forPasteboardType:UIPasteboardNameGeneral]; + [self closeAllTabs]; ios::ChromeBrowserState* browserState = chrome_test_util::GetOriginalBrowserState();
diff --git a/ios/chrome/browser/ui/main/main_view_controller.mm b/ios/chrome/browser/ui/main/main_view_controller.mm index c48009b..10f8247 100644 --- a/ios/chrome/browser/ui/main/main_view_controller.mm +++ b/ios/chrome/browser/ui/main/main_view_controller.mm
@@ -52,6 +52,9 @@ - (void)presentViewController:(UIViewController*)viewControllerToPresent animated:(BOOL)flag completion:(void (^)())completion { + // If there is no activeViewController then this call will get inadvertently + // dropped. + DCHECK(self.activeViewController); [self.activeViewController presentViewController:viewControllerToPresent animated:flag completion:completion]; @@ -59,6 +62,9 @@ - (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)())completion { + // If there is no activeViewController then this call will get inadvertently + // dropped. + DCHECK(self.activeViewController); [self.activeViewController dismissViewControllerAnimated:flag completion:completion]; }
diff --git a/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm b/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm index 2418551..97d713b4 100644 --- a/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm +++ b/ios/chrome/browser/ui/toolbar/web_toolbar_controller.mm
@@ -316,6 +316,13 @@ - (void)handleLongPress:(UILongPressGestureRecognizer*)gesture; - (void)setImagesForNavButton:(UIButton*)button withTabHistoryVisible:(BOOL)tabHistoryVisible; +// Returns a map where the keys are names of text-to-speech notifications and +// the values are the selectors to use for these notifications. ++ (const std::map<__strong NSString*, SEL>&)selectorsForTTSNotificationNames; +// Starts or stops observing the NSNotifications from +// |-selectorsForTTSNotificationNames|. +- (void)startObservingTTSNotifications; +- (void)stopObservingTTSNotifications; // Received when a TTS player has received audio data. - (void)audioReadyForPlayback:(NSNotification*)notification; // Updates the TTS button depending on whether or not TTS is currently playing. @@ -649,26 +656,8 @@ [_voiceSearchButton setEnabled:NO]; } - // Register for text-to-speech (TTS) events on tablet. - if (idiom == IPAD_IDIOM) { - NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter]; - [defaultCenter addObserver:self - selector:@selector(audioReadyForPlayback:) - name:kTTSAudioReadyForPlaybackNotification - object:nil]; - [defaultCenter addObserver:self - selector:@selector(updateIsTTSPlaying:) - name:kTTSWillStartPlayingNotification - object:nil]; - [defaultCenter addObserver:self - selector:@selector(updateIsTTSPlaying:) - name:kTTSDidStopPlayingNotification - object:nil]; - [defaultCenter addObserver:self - selector:@selector(moveVoiceOverToVoiceSearchButton) - name:kVoiceSearchWillHideNotification - object:nil]; - } + [self startObservingTTSNotifications]; + [self.view setDelegate:self]; if (idiom == IPHONE_IDIOM) { @@ -702,6 +691,21 @@ } #pragma mark - +#pragma mark Acessors + +- (void)setDelegate:(id<WebToolbarDelegate>)delegate { + if (_delegate == delegate) + return; + + // TTS notifications cannot be handled without a delegate. + if (_delegate) + [self stopObservingTTSNotifications]; + _delegate = delegate; + if (_delegate) + [self startObservingTTSNotifications]; +} + +#pragma mark - #pragma mark Public methods. - (void)updateToolbarState { @@ -1731,6 +1735,48 @@ _forwardButtonMode = newMode; } ++ (const std::map<__strong NSString*, SEL>&)selectorsForTTSNotificationNames { + static std::map<__strong NSString*, SEL> selectorsForNotifications; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + selectorsForNotifications[kTTSAudioReadyForPlaybackNotification] = + @selector(audioReadyForPlayback:); + selectorsForNotifications[kTTSWillStartPlayingNotification] = + @selector(updateIsTTSPlaying:); + selectorsForNotifications[kTTSDidStopPlayingNotification] = + @selector(updateIsTTSPlaying:); + selectorsForNotifications[kVoiceSearchWillHideNotification] = + @selector(moveVoiceOverToVoiceSearchButton); + }); + return selectorsForNotifications; +} + +- (void)startObservingTTSNotifications { + // The toolbar is only used to play text-to-speech search results on iPads. + if (IsIPadIdiom()) { + NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter]; + const auto& selectorsForTTSNotifications = + [[self class] selectorsForTTSNotificationNames]; + for (const auto& selectorForNotification : selectorsForTTSNotifications) { + [defaultCenter addObserver:self + selector:selectorForNotification.second + name:selectorForNotification.first + object:nil]; + } + } +} + +- (void)stopObservingTTSNotifications { + NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter]; + const auto& selectorsForTTSNotifications = + [[self class] selectorsForTTSNotificationNames]; + for (const auto& selectorForNotification : selectorsForTTSNotifications) { + [defaultCenter removeObserver:self + name:selectorForNotification.first + object:nil]; + } +} + - (void)audioReadyForPlayback:(NSNotification*)notification { if (![_voiceSearchButton isHidden]) { // Only trigger TTS playback when the voice search button is visible.
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc index 1f552f42..f81c6e5 100644 --- a/net/disk_cache/entry_unittest.cc +++ b/net/disk_cache/entry_unittest.cc
@@ -4328,6 +4328,74 @@ entry->Close(); } +TEST_F(DiskCacheEntryTest, SimpleCacheSparseErrorHandling) { + // If there is corruption in sparse file, we should delete all the files + // before returning the failure. Further additional sparse operations in + // failure state should fail gracefully. + SetSimpleCacheMode(); + InitCache(); + + std::string key("a key"); + + uint64_t hash = disk_cache::simple_util::GetEntryHashKey(key); + base::FilePath path_0 = cache_path_.AppendASCII( + disk_cache::simple_util::GetFilenameFromEntryHashAndFileIndex(hash, 0)); + base::FilePath path_s = cache_path_.AppendASCII( + disk_cache::simple_util::GetSparseFilenameFromEntryHash(hash)); + + disk_cache::Entry* entry = nullptr; + ASSERT_THAT(CreateEntry(key, &entry), IsOk()); + + const int kSize = 1024; + scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kSize)); + CacheTestFillBuffer(buffer->data(), kSize, false); + + EXPECT_EQ(kSize, WriteSparseData(entry, 0, buffer.get(), kSize)); + entry->Close(); + + disk_cache::SimpleBackendImpl::FlushWorkerPoolForTesting(); + EXPECT_TRUE(base::PathExists(path_0)); + EXPECT_TRUE(base::PathExists(path_s)); + + // Now corrupt the _s file in a way that makes it look OK on open, but not on + // read. + base::File file_s(path_s, base::File::FLAG_OPEN | base::File::FLAG_READ | + base::File::FLAG_WRITE); + ASSERT_TRUE(file_s.IsValid()); + file_s.SetLength(sizeof(disk_cache::SimpleFileHeader) + + sizeof(disk_cache::SimpleFileSparseRangeHeader) + + key.size()); + file_s.Close(); + + // Re-open, it should still be fine. + ASSERT_THAT(OpenEntry(key, &entry), IsOk()); + + // Read should fail though. + EXPECT_EQ(net::ERR_CACHE_READ_FAILURE, + ReadSparseData(entry, 0, buffer.get(), kSize)); + + // At the point read returns to us, the files should already been gone. + EXPECT_FALSE(base::PathExists(path_0)); + EXPECT_FALSE(base::PathExists(path_s)); + + // Re-trying should still fail. Not DCHECK-fail. + EXPECT_EQ(net::ERR_FAILED, ReadSparseData(entry, 0, buffer.get(), kSize)); + + // Similarly for other ops. + EXPECT_EQ(net::ERR_FAILED, WriteSparseData(entry, 0, buffer.get(), kSize)); + net::TestCompletionCallback cb; + int64_t start; + int rv = entry->GetAvailableRange(0, 1024, &start, cb.callback()); + EXPECT_EQ(net::ERR_FAILED, cb.GetResult(rv)); + + entry->Close(); + disk_cache::FlushCacheThreadForTesting(); + + // Closing shouldn't resurrect files, either. + EXPECT_FALSE(base::PathExists(path_0)); + EXPECT_FALSE(base::PathExists(path_s)); +} + class DiskCacheSimplePrefetchTest : public DiskCacheEntryTest { public: DiskCacheSimplePrefetchTest()
diff --git a/net/disk_cache/simple/simple_entry_impl.cc b/net/disk_cache/simple/simple_entry_impl.cc index 0e860d7..d0a4289 100644 --- a/net/disk_cache/simple/simple_entry_impl.cc +++ b/net/disk_cache/simple/simple_entry_impl.cc
@@ -1020,6 +1020,20 @@ CreateNetLogSparseOperationCallback(sparse_offset, buf_len)); } + if (state_ == STATE_FAILURE || state_ == STATE_UNINITIALIZED) { + if (net_log_.IsCapturing()) { + net_log_.AddEvent( + net::NetLogEventType::SIMPLE_CACHE_ENTRY_READ_SPARSE_END, + CreateNetLogReadWriteCompleteCallback(net::ERR_FAILED)); + } + if (!callback.is_null()) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(callback, net::ERR_FAILED)); + } + // |this| may be destroyed after return here. + return; + } + DCHECK_EQ(STATE_READY, state_); state_ = STATE_IO_PENDING; @@ -1052,6 +1066,20 @@ CreateNetLogSparseOperationCallback(sparse_offset, buf_len)); } + if (state_ == STATE_FAILURE || state_ == STATE_UNINITIALIZED) { + if (net_log_.IsCapturing()) { + net_log_.AddEvent( + net::NetLogEventType::SIMPLE_CACHE_ENTRY_WRITE_SPARSE_END, + CreateNetLogReadWriteCompleteCallback(net::ERR_FAILED)); + } + if (!callback.is_null()) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(callback, net::ERR_FAILED)); + } + // |this| may be destroyed after return here. + return; + } + DCHECK_EQ(STATE_READY, state_); state_ = STATE_IO_PENDING; @@ -1089,6 +1117,15 @@ DCHECK(io_thread_checker_.CalledOnValidThread()); ScopedOperationRunner operation_runner(this); + if (state_ == STATE_FAILURE || state_ == STATE_UNINITIALIZED) { + if (!callback.is_null()) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(callback, net::ERR_FAILED)); + } + // |this| may be destroyed after return here. + return; + } + DCHECK_EQ(STATE_READY, state_); state_ = STATE_IO_PENDING;
diff --git a/net/disk_cache/simple/simple_synchronous_entry.cc b/net/disk_cache/simple/simple_synchronous_entry.cc index 5b86b77..953c20a 100644 --- a/net/disk_cache/simple/simple_synchronous_entry.cc +++ b/net/disk_cache/simple/simple_synchronous_entry.cc
@@ -490,6 +490,7 @@ int len_to_read = std::min(buf_len, range_len_after_offset); if (!ReadSparseRange(found_range, net_offset, len_to_read, buf)) { + Doom(); *out_result = net::ERR_CACHE_READ_FAILURE; return; } @@ -508,6 +509,7 @@ int range_len = base::saturated_cast<int>(found_range->length); int len_to_read = std::min(buf_len - read_so_far, range_len); if (!ReadSparseRange(found_range, 0, len_to_read, buf + read_so_far)) { + Doom(); *out_result = net::ERR_CACHE_READ_FAILURE; return; } @@ -533,6 +535,7 @@ int appended_so_far = 0; if (!sparse_file_open() && !CreateSparseFile()) { + Doom(); *out_result = net::ERR_CACHE_WRITE_FAILURE; return; } @@ -565,6 +568,7 @@ int len_to_write = std::min(buf_len, range_len_after_offset); if (!WriteSparseRange(found_range, net_offset, len_to_write, buf)) { + Doom(); *out_result = net::ERR_CACHE_WRITE_FAILURE; return; } @@ -583,6 +587,7 @@ if (!AppendSparseRange(offset + written_so_far, len_to_append, buf + written_so_far)) { + Doom(); *out_result = net::ERR_CACHE_WRITE_FAILURE; return; } @@ -595,6 +600,7 @@ 0, len_to_write, buf + written_so_far)) { + Doom(); *out_result = net::ERR_CACHE_WRITE_FAILURE; return; } @@ -607,6 +613,7 @@ if (!AppendSparseRange(offset + written_so_far, len_to_append, buf + written_so_far)) { + Doom(); *out_result = net::ERR_CACHE_WRITE_FAILURE; return; }
diff --git a/net/disk_cache/simple/simple_util.h b/net/disk_cache/simple/simple_util.h index ad84607..9ea7548 100644 --- a/net/disk_cache/simple/simple_util.h +++ b/net/disk_cache/simple/simple_util.h
@@ -47,11 +47,13 @@ int file_index); // Same as |GetFilenameFromKeyAndIndex| above, but using a hex string. -std::string GetFilenameFromEntryHashAndFileIndex(uint64_t entry_hash, - int file_index); +NET_EXPORT_PRIVATE std::string GetFilenameFromEntryHashAndFileIndex( + uint64_t entry_hash, + int file_index); // Given a |key| for an entry, returns the name of the sparse data file. -std::string GetSparseFilenameFromEntryHash(uint64_t entry_hash); +NET_EXPORT_PRIVATE std::string GetSparseFilenameFromEntryHash( + uint64_t entry_hash); // Given the size of a key, the size in bytes of the header at the beginning // of a simple cache file.
diff --git a/net/dns/dns_protocol.h b/net/dns/dns_protocol.h index 2c4478c4..71ed31c 100644 --- a/net/dns/dns_protocol.h +++ b/net/dns/dns_protocol.h
@@ -123,6 +123,7 @@ static const uint16_t kTypeTXT = 16; static const uint16_t kTypeAAAA = 28; static const uint16_t kTypeSRV = 33; +static const uint16_t kTypeOPT = 41; static const uint16_t kTypeNSEC = 47; // DNS reply codes (RCODEs).
diff --git a/net/dns/dns_query.cc b/net/dns/dns_query.cc index ac74ca4..2ee2a32e 100644 --- a/net/dns/dns_query.cc +++ b/net/dns/dns_query.cc
@@ -10,6 +10,7 @@ #include "net/base/io_buffer.h" #include "net/dns/dns_protocol.h" #include "net/dns/dns_util.h" +#include "net/dns/record_rdata.h" namespace net { @@ -17,15 +18,31 @@ const size_t kHeaderSize = sizeof(dns_protocol::Header); +// Size of the fixed part of an OPT RR: +// https://tools.ietf.org/html/rfc6891#section-6.1.2 +static const size_t kOptRRFixedSize = 11; + +// https://tools.ietf.org/html/rfc6891#section-6.2.5 +// TODO(robpercival): Determine a good value for this programmatically. +const uint16_t kMaxUdpPayloadSize = 4096; + +size_t OptRecordSize(const OptRecordRdata* rdata) { + return rdata == nullptr ? 0 : kOptRRFixedSize + rdata->buf().size(); +} + } // namespace // DNS query consists of a 12-byte header followed by a question section. // For details, see RFC 1035 section 4.1.1. This header template sets RD // bit, which directs the name server to pursue query recursively, and sets // the QDCOUNT to 1, meaning the question section has a single entry. -DnsQuery::DnsQuery(uint16_t id, const base::StringPiece& qname, uint16_t qtype) +DnsQuery::DnsQuery(uint16_t id, + const base::StringPiece& qname, + uint16_t qtype, + const OptRecordRdata* opt_rdata) : qname_size_(qname.size()), - io_buffer_(new IOBufferWithSize(kHeaderSize + question_size())), + io_buffer_(new IOBufferWithSize(kHeaderSize + question_size() + + OptRecordSize(opt_rdata))), header_(reinterpret_cast<dns_protocol::Header*>(io_buffer_->data())) { DCHECK(!DNSDomainToString(qname).empty()); *header_ = {}; @@ -35,10 +52,27 @@ // Write question section after the header. base::BigEndianWriter writer(io_buffer_->data() + kHeaderSize, - question_size()); + io_buffer_->size() - kHeaderSize); writer.WriteBytes(qname.data(), qname.size()); writer.WriteU16(qtype); writer.WriteU16(dns_protocol::kClassIN); + + if (opt_rdata != nullptr) { + header_->arcount = base::HostToNet16(1); + // Write OPT pseudo-resource record. + writer.WriteU8(0); // empty domain name (root domain) + writer.WriteU16(OptRecordRdata::kType); // type + writer.WriteU16(kMaxUdpPayloadSize); // class + // ttl (next 3 fields) + writer.WriteU8(0); // rcode does not apply to requests + writer.WriteU8(0); // version + // TODO(robpercival): Set "DNSSEC OK" flag if/when DNSSEC is supported: + // https://tools.ietf.org/html/rfc3225#section-3 + writer.WriteU16(0); // flags + // rdata + writer.WriteU16(opt_rdata->buf().size()); // rdata length + writer.WriteBytes(opt_rdata->buf().data(), opt_rdata->buf().size()); + } } DnsQuery::~DnsQuery() {
diff --git a/net/dns/dns_query.h b/net/dns/dns_query.h index 8266a72..b68772e 100644 --- a/net/dns/dns_query.h +++ b/net/dns/dns_query.h
@@ -17,6 +17,8 @@ namespace net { +class OptRecordRdata; + namespace dns_protocol { struct Header; } @@ -24,12 +26,16 @@ class IOBufferWithSize; // Represents on-the-wire DNS query message as an object. -// TODO(szym): add support for the OPT pseudo-RR (EDNS0/DNSSEC). class NET_EXPORT_PRIVATE DnsQuery { public: // Constructs a query message from |qname| which *MUST* be in a valid // DNS name format, and |qtype|. The qclass is set to IN. - DnsQuery(uint16_t id, const base::StringPiece& qname, uint16_t qtype); + // If opt_rdata is not null, an OPT record will be added to the "Additional" + // section of the query. + DnsQuery(uint16_t id, + const base::StringPiece& qname, + uint16_t qtype, + const OptRecordRdata* opt_rdata = nullptr); ~DnsQuery(); // Clones |this| verbatim, with ID field of the header set to |id|.
diff --git a/net/dns/dns_query_unittest.cc b/net/dns/dns_query_unittest.cc index 775fb6c7..7ee93008 100644 --- a/net/dns/dns_query_unittest.cc +++ b/net/dns/dns_query_unittest.cc
@@ -6,12 +6,20 @@ #include "net/base/io_buffer.h" #include "net/dns/dns_protocol.h" +#include "net/dns/record_rdata.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace net { namespace { +using ::testing::ElementsAreArray; + +std::tuple<char*, size_t> AsTuple(const IOBufferWithSize* buf) { + return std::make_tuple(buf->data(), buf->size()); +} + TEST(DnsQueryTest, Constructor) { // This includes \0 at the end. const char qname_data[] = "\x03""www""\x07""example""\x03""com"; @@ -33,9 +41,7 @@ base::StringPiece qname(qname_data, sizeof(qname_data)); DnsQuery q1(0xbeef, qname, dns_protocol::kTypeA); EXPECT_EQ(dns_protocol::kTypeA, q1.qtype()); - - ASSERT_EQ(static_cast<int>(sizeof(query_data)), q1.io_buffer()->size()); - EXPECT_EQ(0, memcmp(q1.io_buffer()->data(), query_data, sizeof(query_data))); + EXPECT_THAT(AsTuple(q1.io_buffer()), ElementsAreArray(query_data)); EXPECT_EQ(qname, q1.qname()); base::StringPiece question(reinterpret_cast<const char*>(query_data) + 12, @@ -57,6 +63,52 @@ EXPECT_EQ(q1.question(), q2->question()); } +TEST(DnsQueryTest, EDNS0) { + // This includes \0 at the end. + const char qname_data[] = + "\x03" + "www" + "\x07" + "example" + "\x03" + "com"; + const uint8_t query_data[] = { + // Header + 0xbe, 0xef, 0x01, 0x00, // Flags -- set RD (recursion desired) bit. + // Set QDCOUNT (question count) and ARCOUNT (additional count) to 1, all + // the rest are 0 for a query. + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + // Question + 0x03, 'w', 'w', 'w', // QNAME: www.example.com in DNS format. + 0x07, 'e', 'x', 'a', 'm', 'p', 'l', 'e', 0x03, 'c', 'o', 'm', 0x00, + + 0x00, 0x01, // QTYPE: A query. + 0x00, 0x01, // QCLASS: IN class. + + // Additional + 0x00, // QNAME: empty (root domain) + 0x00, 0x29, // TYPE: OPT + 0x10, 0x00, // CLASS: max UDP payload size + 0x00, 0x00, 0x00, 0x00, // TTL: rcode, version and flags + 0x00, 0x08, // RDATA length + 0x00, 0xFF, // OPT code + 0x00, 0x04, // OPT data size + 0xDE, 0xAD, 0xBE, 0xEF // OPT data + }; + + base::StringPiece qname(qname_data, sizeof(qname_data)); + OptRecordRdata opt_rdata; + opt_rdata.AddOpt(OptRecordRdata::Opt(255, "\xde\xad\xbe\xef")); + DnsQuery q1(0xbeef, qname, dns_protocol::kTypeA, &opt_rdata); + EXPECT_EQ(dns_protocol::kTypeA, q1.qtype()); + + EXPECT_THAT(AsTuple(q1.io_buffer()), ElementsAreArray(query_data)); + + base::StringPiece question(reinterpret_cast<const char*>(query_data) + 12, + 21); + EXPECT_EQ(question, q1.question()); +} + } // namespace } // namespace net
diff --git a/net/dns/dns_response_unittest.cc b/net/dns/dns_response_unittest.cc index 5b0635c..af3f1d9 100644 --- a/net/dns/dns_response_unittest.cc +++ b/net/dns/dns_response_unittest.cc
@@ -161,7 +161,7 @@ 0x00, 0x01, // 1 question 0x00, 0x02, // 2 RRs (answers) 0x00, 0x00, // 0 authority RRs - 0x00, 0x00, // 0 additional RRs + 0x00, 0x01, // 1 additional RRs // Question // This part is echoed back from the respective query. @@ -188,6 +188,16 @@ 0x00, 0x35, 0x00, 0x04, // RDLENGTH is 4 bytes. 0x4a, 0x7d, // RDATA is the IP: 74.125.95.121 0x5f, 0x79, + + // Additional 1 + 0x00, // NAME is empty (root domain). + 0x00, 0x29, // TYPE is OPT. + 0x10, 0x00, // CLASS is max UDP payload size (4096). + 0x00, 0x00, 0x00, 0x00, // TTL (4 bytes) is rcode, version and flags. + 0x00, 0x08, // RDLENGTH + 0x00, 0xFF, // OPT code + 0x00, 0x04, // OPT data size + 0xDE, 0xAD, 0xBE, 0xEF // OPT data }; DnsResponse resp; @@ -216,6 +226,7 @@ EXPECT_EQ(0x8180, resp.flags()); EXPECT_EQ(0x0, resp.rcode()); EXPECT_EQ(2u, resp.answer_count()); + EXPECT_EQ(1u, resp.additional_answer_count()); // Check question access. EXPECT_EQ(query->qname(), resp.qname()); @@ -227,6 +238,8 @@ EXPECT_TRUE(parser.ReadRecord(&record)); EXPECT_FALSE(parser.AtEnd()); EXPECT_TRUE(parser.ReadRecord(&record)); + EXPECT_FALSE(parser.AtEnd()); + EXPECT_TRUE(parser.ReadRecord(&record)); EXPECT_TRUE(parser.AtEnd()); EXPECT_FALSE(parser.ReadRecord(&record)); }
diff --git a/net/dns/record_parsed.cc b/net/dns/record_parsed.cc index 750bc13..a7c7db68 100644 --- a/net/dns/record_parsed.cc +++ b/net/dns/record_parsed.cc
@@ -60,6 +60,9 @@ case NsecRecordRdata::kType: rdata = NsecRecordRdata::Create(record.rdata, *parser); break; + case OptRecordRdata::kType: + rdata = OptRecordRdata::Create(record.rdata, *parser); + break; default: DVLOG(1) << "Unknown RData type for received record: " << record.type; return std::unique_ptr<const RecordParsed>();
diff --git a/net/dns/record_rdata.cc b/net/dns/record_rdata.cc index ff9434b..9282b0ed 100644 --- a/net/dns/record_rdata.cc +++ b/net/dns/record_rdata.cc
@@ -4,6 +4,8 @@ #include "net/dns/record_rdata.h" +#include <numeric> + #include "base/big_endian.h" #include "net/dns/dns_protocol.h" #include "net/dns/dns_response.h" @@ -276,4 +278,66 @@ return (bitmap_[byte_num] & (1 << bit_num)) != 0; } +OptRecordRdata::OptRecordRdata() {} + +OptRecordRdata::~OptRecordRdata() {} + +// static +std::unique_ptr<OptRecordRdata> OptRecordRdata::Create( + const base::StringPiece& data, + const DnsRecordParser& parser) { + std::unique_ptr<OptRecordRdata> rdata(new OptRecordRdata); + rdata->buf_.assign(data.begin(), data.end()); + + base::BigEndianReader reader(data.data(), data.size()); + while (reader.remaining() > 0) { + uint16_t opt_code, opt_data_size; + base::StringPiece opt_data; + + if (!(reader.ReadU16(&opt_code) && reader.ReadU16(&opt_data_size) && + reader.ReadPiece(&opt_data, opt_data_size))) { + return std::unique_ptr<OptRecordRdata>(); + } + rdata->opts_.push_back(Opt(opt_code, opt_data)); + } + + return rdata; +} + +uint16_t OptRecordRdata::Type() const { + return OptRecordRdata::kType; +} + +bool OptRecordRdata::IsEqual(const RecordRdata* other) const { + if (other->Type() != Type()) + return false; + const OptRecordRdata* opt_other = static_cast<const OptRecordRdata*>(other); + return opt_other->opts_ == opts_; +} + +void OptRecordRdata::AddOpt(const Opt& opt) { + base::StringPiece opt_data = opt.data(); + + // Resize buffer to accommodate new OPT. + const size_t orig_rdata_size = buf_.size(); + buf_.resize(orig_rdata_size + Opt::kHeaderSize + opt_data.size()); + + // Start writing from the end of the existing rdata. + base::BigEndianWriter writer(buf_.data() + orig_rdata_size, buf_.size()); + bool success = writer.WriteU16(opt.code()) && + writer.WriteU16(opt_data.size()) && + writer.WriteBytes(opt_data.data(), opt_data.size()); + DCHECK(success); + + opts_.push_back(opt); +} + +OptRecordRdata::Opt::Opt(uint16_t code, base::StringPiece data) : code_(code) { + data.CopyToString(&data_); +} + +bool OptRecordRdata::Opt::operator==(const OptRecordRdata::Opt& other) const { + return code_ == other.code_ && data_ == other.data_; +} + } // namespace net
diff --git a/net/dns/record_rdata.h b/net/dns/record_rdata.h index 0aa29d57..dab5bf0b 100644 --- a/net/dns/record_rdata.h +++ b/net/dns/record_rdata.h
@@ -15,6 +15,7 @@ #include "base/logging.h" #include "base/macros.h" #include "base/strings/string_piece.h" +#include "net/base/io_buffer.h" #include "net/base/ip_address.h" #include "net/base/net_export.h" #include "net/dns/dns_protocol.h" @@ -218,6 +219,45 @@ DISALLOW_COPY_AND_ASSIGN(NsecRecordRdata); }; +// OPT record format (https://tools.ietf.org/html/rfc6891): +class NET_EXPORT_PRIVATE OptRecordRdata : public RecordRdata { + public: + class NET_EXPORT_PRIVATE Opt { + public: + static const size_t kHeaderSize = 4; // sizeof(code) + sizeof(size) + + Opt(uint16_t code, base::StringPiece data); + + bool operator==(const Opt& other) const; + + uint16_t code() const { return code_; } + base::StringPiece data() const { return data_; } + + private: + uint16_t code_; + std::string data_; + }; + + static const uint16_t kType = dns_protocol::kTypeOPT; + + OptRecordRdata(); + ~OptRecordRdata() override; + static std::unique_ptr<OptRecordRdata> Create(const base::StringPiece& data, + const DnsRecordParser& parser); + bool IsEqual(const RecordRdata* other) const override; + uint16_t Type() const override; + + const std::vector<char>& buf() const { return buf_; } + + const std::vector<Opt>& opts() const { return opts_; } + void AddOpt(const Opt& opt); + + private: + std::vector<Opt> opts_; + std::vector<char> buf_; + + DISALLOW_COPY_AND_ASSIGN(OptRecordRdata); +}; } // namespace net
diff --git a/net/dns/record_rdata_unittest.cc b/net/dns/record_rdata_unittest.cc index f73853ed..d5765478 100644 --- a/net/dns/record_rdata_unittest.cc +++ b/net/dns/record_rdata_unittest.cc
@@ -7,9 +7,16 @@ #include <memory> #include "net/dns/dns_response.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace net { +namespace { + +using ::testing::ElementsAreArray; +using ::testing::IsNull; +using ::testing::NotNull; +using ::testing::SizeIs; base::StringPiece MakeStringPiece(const uint8_t* data, unsigned size) { const char* data_cc = reinterpret_cast<const char*>(data); @@ -224,4 +231,81 @@ ASSERT_FALSE(record_obj); } +TEST(RecordRdataTest, ParseOptRecord) { + // This is just the rdata portion of an OPT record, rather than a complete + // record. + const uint8_t rdata[] = { + // First OPT + 0x00, 0x01, // OPT code + 0x00, 0x02, // OPT data size + 0xDE, 0xAD, // OPT data + // Second OPT + 0x00, 0xFF, // OPT code + 0x00, 0x04, // OPT data size + 0xDE, 0xAD, 0xBE, 0xEF // OPT data + }; + + DnsRecordParser parser(rdata, sizeof(rdata), 0); + base::StringPiece rdata_strpiece = MakeStringPiece(rdata, sizeof(rdata)); + + std::unique_ptr<OptRecordRdata> rdata_obj = + OptRecordRdata::Create(rdata_strpiece, parser); + ASSERT_THAT(rdata_obj, NotNull()); + ASSERT_THAT(rdata_obj->opts(), SizeIs(2)); + ASSERT_EQ(1, rdata_obj->opts()[0].code()); + ASSERT_EQ("\xde\xad", rdata_obj->opts()[0].data()); + ASSERT_EQ(255, rdata_obj->opts()[1].code()); + ASSERT_EQ("\xde\xad\xbe\xef", rdata_obj->opts()[1].data()); + ASSERT_TRUE(rdata_obj->IsEqual(rdata_obj.get())); +} + +TEST(RecordRdataTest, ParseOptRecordWithShorterSizeThanData) { + // This is just the rdata portion of an OPT record, rather than a complete + // record. + const uint8_t rdata[] = { + 0x00, 0xFF, // OPT code + 0x00, 0x02, // OPT data size (incorrect, should be 4) + 0xDE, 0xAD, 0xBE, 0xEF // OPT data + }; + + DnsRecordParser parser(rdata, sizeof(rdata), 0); + base::StringPiece rdata_strpiece = MakeStringPiece(rdata, sizeof(rdata)); + + std::unique_ptr<OptRecordRdata> rdata_obj = + OptRecordRdata::Create(rdata_strpiece, parser); + ASSERT_THAT(rdata_obj, IsNull()); +} + +TEST(RecordRdataTest, ParseOptRecordWithLongerSizeThanData) { + // This is just the rdata portion of an OPT record, rather than a complete + // record. + const uint8_t rdata[] = { + 0x00, 0xFF, // OPT code + 0x00, 0x04, // OPT data size (incorrect, should be 4) + 0xDE, 0xAD // OPT data + }; + + DnsRecordParser parser(rdata, sizeof(rdata), 0); + base::StringPiece rdata_strpiece = MakeStringPiece(rdata, sizeof(rdata)); + + std::unique_ptr<OptRecordRdata> rdata_obj = + OptRecordRdata::Create(rdata_strpiece, parser); + ASSERT_THAT(rdata_obj, IsNull()); +} + +TEST(RecordRdataTest, AddOptToOptRecord) { + // This is just the rdata portion of an OPT record, rather than a complete + // record. + const uint8_t expected_rdata[] = { + 0x00, 0xFF, // OPT code + 0x00, 0x04, // OPT data size + 0xDE, 0xAD, 0xBE, 0xEF // OPT data + }; + + OptRecordRdata rdata; + rdata.AddOpt(OptRecordRdata::Opt(255, "\xde\xad\xbe\xef")); + EXPECT_THAT(rdata.buf(), ElementsAreArray(expected_rdata)); +} + +} // namespace } // namespace net
diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h index fa45c7b..caca874 100644 --- a/skia/config/SkUserConfig.h +++ b/skia/config/SkUserConfig.h
@@ -216,6 +216,10 @@ #define SK_SUPPORT_LEGACY_TILED_BITMAPS #endif +#ifndef SK_SUPPORT_LEGACY_FONTMGR_API +#define SK_SUPPORT_LEGACY_FONTMGR_API +#endif + ///////////////////////// Imported from BUILD.gn and skia_common.gypi /* In some places Skia can use static initializers for global initialization,
diff --git a/skia/tools/filter_fuzz_stub/filter_fuzz_stub.cc b/skia/tools/filter_fuzz_stub/filter_fuzz_stub.cc index 7c25f88fa..14654af 100644 --- a/skia/tools/filter_fuzz_stub/filter_fuzz_stub.cc +++ b/skia/tools/filter_fuzz_stub/filter_fuzz_stub.cc
@@ -4,6 +4,7 @@ #include "base/files/file_util.h" #include "base/logging.h" +#include "base/process/memory.h" #include "base/test/test_discardable_memory_allocator.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkCanvas.h" @@ -73,6 +74,7 @@ int main(int argc, char** argv) { int ret = 0; + base::EnableTerminationOnOutOfMemory(); base::TestDiscardableMemoryAllocator discardable_memory_allocator; base::DiscardableMemoryAllocator::SetInstance(&discardable_memory_allocator);
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG index d5834a3e..145cef34 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -32,7 +32,7 @@ crbug.com/591099 fast/text/word-space.html [ Failure ] # Glyph overflow. -crbug.com/591099 fast/text/letter-spacing-negative-opacity.html [ Failure ] +crbug.com/591099 fast/text/letter-spacing-negative-opacity.html [ Failure Pass ] crbug.com/591099 fast/text/shadow-no-blur.html [ Failure ] # Improved shaping we can rebase once we switch. @@ -100,7 +100,6 @@ crbug.com/591099 accessibility/inline-text-word-boundaries.html [ Failure ] crbug.com/591099 accessibility/input-type-password-value-and-selection.html [ Crash Failure Pass Timeout ] crbug.com/591099 accessibility/input-type-range-aria-value.html [ Failure ] -crbug.com/591099 accessibility/input-type-text-selection.html [ Crash Failure Pass Timeout ] crbug.com/591099 accessibility/misspellings.html [ Timeout ] crbug.com/591099 accessibility/name-calc-img.html [ Crash Failure ] crbug.com/591099 accessibility/presentation-owned-elements.html [ Crash Failure ] @@ -110,7 +109,6 @@ crbug.com/591099 accessibility/scroll-div-horiz-sends-notification.html [ Failure Timeout ] crbug.com/591099 accessibility/set-selection-whitespace.html [ Failure ] crbug.com/591099 accessibility/slider-thumb-bounds.html [ Failure ] -crbug.com/591099 accessibility/spin-button-detach.html [ Crash Failure Pass ] crbug.com/591099 accessibility/table-header-column-row.html [ Failure Timeout ] crbug.com/591099 accessibility/table-one-cell.html [ Failure Pass ] crbug.com/591099 accessibility/textarea-caret-position.html [ Crash Failure Timeout ] @@ -320,7 +318,6 @@ crbug.com/591099 compositing/overflow/border-radius-styles-with-composited-child.html [ Failure ] crbug.com/591099 compositing/overflow/clear-scroll-parent.html [ Failure ] crbug.com/591099 compositing/overflow/clip-descendents.html [ Failure ] -crbug.com/591099 compositing/overflow/clip-parent-across-transform-boundary.html [ Failure ] crbug.com/591099 compositing/overflow/clip-parent-reset.html [ Failure ] crbug.com/591099 compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 compositing/overflow/composited-layer-under-border-radius-under-composited-layer.html [ Failure ] @@ -462,7 +459,6 @@ crbug.com/591099 compositing/tiled-layers-hidpi.html [ Failure ] crbug.com/591099 compositing/update-paint-phases.html [ Failure ] crbug.com/591099 compositing/video-frame-size-change.html [ Failure Pass ] -crbug.com/591099 compositing/video/video-poster.html [ Failure Pass ] crbug.com/591099 compositing/visibility/layer-visible-content.html [ Failure ] crbug.com/591099 compositing/visibility/visibility-composited-transforms.html [ Failure Pass ] crbug.com/591099 compositing/visibility/visibility-composited.html [ Failure Pass ] @@ -1167,10 +1163,9 @@ crbug.com/591099 css3/filters/composited-layer-promotion-after-outset-overlap-change-using-composited-shadow.html [ Failure Pass ] crbug.com/591099 css3/filters/composited-layer-promotion-after-outset-overlap-change-using-sw-shadow.html [ Failure Pass ] crbug.com/591099 css3/filters/css-opacity-with-drop-shadow.html [ Crash Failure Pass ] -crbug.com/591099 css3/filters/effect-all-on-background.html [ Failure Pass ] crbug.com/591099 css3/filters/effect-blur-hw.html [ Failure ] crbug.com/591099 css3/filters/effect-blur.html [ Failure ] -crbug.com/591099 css3/filters/effect-brightness-clamping-hw.html [ Failure ] +crbug.com/591099 css3/filters/effect-brightness-clamping-hw.html [ Failure Timeout ] crbug.com/591099 css3/filters/effect-brightness-clamping.html [ Failure ] crbug.com/591099 css3/filters/effect-brightness-hw.html [ Failure ] crbug.com/591099 css3/filters/effect-brightness.html [ Failure ] @@ -1187,34 +1182,22 @@ crbug.com/591099 css3/filters/effect-invert.html [ Failure ] crbug.com/591099 css3/filters/effect-opacity-hw.html [ Failure ] crbug.com/591099 css3/filters/effect-opacity.html [ Failure ] -crbug.com/591099 css3/filters/effect-reference-add-hw.html [ Failure Pass ] -crbug.com/591099 css3/filters/effect-reference-source-alpha-hw.html [ Failure Pass ] -crbug.com/591099 css3/filters/effect-reference-subregion-hidpi-hw.html [ Failure Pass ] -crbug.com/591099 css3/filters/effect-reference-subregion-hidpi.html [ Failure Pass ] crbug.com/591099 css3/filters/effect-reference-subregion-nested.html [ Failure Pass ] -crbug.com/591099 css3/filters/effect-reference-subregion-zoom-hw.html [ Failure Pass ] -crbug.com/591099 css3/filters/effect-reference-subregion-zoom.html [ Failure Pass ] crbug.com/591099 css3/filters/effect-saturate-hw.html [ Failure ] crbug.com/591099 css3/filters/effect-saturate.html [ Failure ] crbug.com/591099 css3/filters/effect-sepia-hw.html [ Failure ] crbug.com/591099 css3/filters/effect-sepia.html [ Failure ] -crbug.com/591099 css3/filters/filter-repaint-shadow-clipped.html [ Failure ] -crbug.com/591099 css3/filters/filter-repaint-shadow-rotated.html [ Failure ] crbug.com/591099 css3/filters/filtered-compositing-descendant.html [ Failure ] crbug.com/591099 css3/filters/filtered-inline.html [ Failure ] -crbug.com/591099 css3/filters/nested-filter.html [ Crash Failure ] crbug.com/591099 css3/filters/regions-expanding.html [ Crash Failure ] crbug.com/591099 css3/filters/remove-filter-rendering.html [ Failure ] crbug.com/591099 css3/filters/simple-filter-rendering.html [ Failure ] crbug.com/591099 css3/flexbox/bug527039.html [ Failure ] crbug.com/591099 css3/flexbox/button.html [ Failure ] crbug.com/591099 css3/flexbox/child-overflow.html [ Failure Pass ] -crbug.com/591099 css3/flexbox/flex-algorithm.html [ Failure ] crbug.com/591099 css3/flexbox/flex-align-vertical-writing-mode.html [ Failure Pass ] -crbug.com/591099 css3/flexbox/flex-flow-auto-margins-no-available-space.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-auto-margins.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-border.html [ Failure ] -crbug.com/591099 css3/flexbox/flex-flow-margins-auto-size.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-margins.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-padding.html [ Failure ] crbug.com/591099 css3/flexbox/flex-item-contains-strict.html [ Crash Failure ] @@ -1227,7 +1210,6 @@ crbug.com/591099 css3/flexbox/position-absolute-child-with-contenteditable.html [ Failure ] crbug.com/591099 css3/flexbox/scrollbars-auto.html [ Failure ] crbug.com/591099 css3/flexbox/scrollbars.html [ Failure ] -crbug.com/591099 css3/flexbox/writing-modes.html [ Failure ] crbug.com/591099 css3/font-feature-settings-rendering.html [ Failure ] crbug.com/591099 css3/masking/clip-path-circle-filter.html [ Failure Pass ] crbug.com/591099 css3/masking/clip-path-circle-overflow-hidden.html [ Failure ] @@ -2107,7 +2089,6 @@ crbug.com/591099 editing/execCommand/format_block/no-visible-content.html [ Failure ] crbug.com/591099 editing/execCommand/forward-delete-no-scroll.html [ Failure ] crbug.com/591099 editing/execCommand/indent-empty-root.html [ Failure ] -crbug.com/591099 editing/execCommand/infinite-recursion-computeRectForRepaint.html [ Crash Failure Pass ] crbug.com/591099 editing/execCommand/insert-image-on-top-of-directional-text.html [ Failure ] crbug.com/591099 editing/execCommand/insertHTML.html [ Failure ] crbug.com/591099 editing/execCommand/insertImage-src.html [ Failure ] @@ -2117,7 +2098,6 @@ crbug.com/591099 editing/execCommand/insert_list_in_noneditable_list_parent.html [ Failure ] crbug.com/591099 editing/execCommand/justify.html [ Failure Timeout ] crbug.com/591099 editing/execCommand/keep_typing_style.html [ Failure ] -crbug.com/591099 editing/execCommand/list-wrapping-image-crash.html [ Failure Pass ] crbug.com/591099 editing/execCommand/outdent-inline-list.html [ Crash Failure ] crbug.com/591099 editing/execCommand/outdent-multiparagraph-list.html [ Crash Failure ] crbug.com/591099 editing/execCommand/outdent-selection.html [ Crash Failure ] @@ -2239,7 +2219,6 @@ crbug.com/591099 editing/pasteboard/drop-inputtext-acquires-style.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drop-text-events.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drop-text-without-selection.html [ Failure ] -crbug.com/591099 editing/pasteboard/files-during-page-drags.html [ Failure Pass ] crbug.com/591099 editing/pasteboard/get-data-text-plain-paste.html [ Failure ] crbug.com/591099 editing/pasteboard/innerText-inline-table.html [ Failure ] crbug.com/591099 editing/pasteboard/input-field-1.html [ Crash Failure ] @@ -2317,7 +2296,6 @@ crbug.com/591099 editing/selection/caret-rtl-right.html [ Failure ] crbug.com/591099 editing/selection/caret-rtl.html [ Failure ] crbug.com/591099 editing/selection/clear-selection.html [ Failure ] -crbug.com/591099 editing/selection/click-on-block-image.html [ Failure ] crbug.com/591099 editing/selection/click-start-of-line.html [ Failure ] crbug.com/591099 editing/selection/contains-boundaries.html [ Failure ] crbug.com/591099 editing/selection/contenteditable-click-inside.html [ Failure ] @@ -2556,8 +2534,6 @@ crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-003-left-overflow.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-003-right-overflow.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-004.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-001l.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-001r.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht [ Crash Failure ] @@ -2570,18 +2546,8 @@ crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-baseline-004a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-baseline-005a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-percents-001.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-width-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-percentage-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/root-box-001.xht [ Crash Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-036.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-037.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-043.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-050.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-051.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-057.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-064.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-065.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-071.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-002.xht [ Failure ] @@ -2622,44 +2588,21 @@ crbug.com/591099 external/wpt/css/CSS2/text/text-indent-012.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/text/text-indent-percent-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/text/text-transform-capitalize-003.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-align-3/distribution-values/space-evenly-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-flex-002-inline.html [ Crash Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-flex-002-none.html [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-table-001-inline.html [ Crash Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-flow-root-001.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/Flexible-order.html [ Crash Failure Pass ] -crbug.com/591099 external/wpt/css/css-flexbox-1/auto-margins-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-wrap-reverse.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-wrap.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flex-container-margin.html [ Crash Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flex-direction-with-element-insert.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flex-direction.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_box-clear.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_columns-flexitems-2.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_columns-flexitems.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_generated-flex.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-bottom-float.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-clear.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-float.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-top-float.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin-auto-overflow.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_order-box.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/percentage-heights-001.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/position-absolute-002.html [ Failure ] crbug.com/591099 external/wpt/css/css-flexbox-1/position-absolute-005.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-center.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-end.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-space-around.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-space-between.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-start.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-base.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-order.html [ Failure ] -crbug.com/591099 external/wpt/css/css-grid-1/abspos/absolute-positioning-grid-container-parent-001.html [ Failure ] -crbug.com/591099 external/wpt/css/css-grid-1/abspos/grid-positioned-items-background-rtl-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/abspos/grid-positioned-items-background-001.html [ Failure ] +crbug.com/591099 external/wpt/css/css-grid-1/abspos/grid-positioned-items-background-rtl-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/abspos/grid-sizing-positioned-items-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/abspos/orthogonal-positioned-grid-items-007.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/abspos/orthogonal-positioned-grid-items-009.html [ Failure ] @@ -2683,11 +2626,8 @@ crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-002.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-003.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-004.html [ Failure ] -crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-position-3/position-sticky-nested-left.html [ Failure ] crbug.com/591099 external/wpt/css/css-position-3/position-sticky-nested-right.html [ Failure ] -crbug.com/591099 external/wpt/css/css-position-3/position-sticky-table-th-left.html [ Failure Pass ] -crbug.com/591099 external/wpt/css/css-position-3/position-sticky-table-th-right.html [ Failure Pass ] crbug.com/591099 external/wpt/css/css-position-3/position-sticky-writing-modes.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-basic-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-boundary-001.html [ Failure ] @@ -3040,8 +2980,6 @@ crbug.com/591099 external/wpt/css/css-writing-modes-3/line-box-direction-vrl-011.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/line-box-direction-vrl-019.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/margin-collapse-vrl-010.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-writing-modes-3/margin-vlr-003.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-writing-modes-3/margin-vrl-002.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/ortho-htb-alongside-vrl-floats-002.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/ortho-htb-alongside-vrl-floats-010.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/orthogonal-parent-shrink-to-fit-001a.html [ Crash Failure ] @@ -3101,10 +3039,6 @@ crbug.com/591099 external/wpt/css/css-writing-modes-3/vertical-alignment-vrl-024.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/vertical-alignment-vrl-026.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/wm-propagation-body-006.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-writing-modes-3/wm-propagation-body-010.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-writing-modes-3/wm-propagation-body-011.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-writing-modes-3/wm-propagation-body-015.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-writing-modes-3/writing-mode-vertical-lr-002.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/writing-mode-vertical-rl-001.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/writing-mode-vertical-rl-002.xht [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes-3/writing-mode-vertical-rl-003.htm [ Failure ] @@ -3116,9 +3050,7 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-baseline-horiz-003.xhtml [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-004.xhtml [ Crash Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-003.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-004.xhtml [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-003.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-004.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-item-vert-001b.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-single-item-001a.html [ Crash Failure ] @@ -3137,7 +3069,6 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-break-inside-001.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-003.html [ Crash Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-004.html [ Crash Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-005.html [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-006.html [ Crash Failure ] crbug.com/591099 external/wpt/cssom-view/cssom-getClientRects-002.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/elementFromPoint-002.html [ Failure ] @@ -3145,7 +3076,6 @@ crbug.com/591099 external/wpt/cssom-view/elementFromPoint.html [ Crash Failure ] crbug.com/591099 external/wpt/cssom-view/elementsFromPoint-iframes.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/elementsFromPoint-svg.html [ Failure ] -crbug.com/591099 external/wpt/cssom-view/elementsFromPoint-table.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/elementsFromPoint.html [ Crash Failure ] crbug.com/591099 external/wpt/cssom/interfaces.html [ Timeout ] crbug.com/591099 external/wpt/cssom/serialize-values.html [ Pass Timeout ] @@ -3171,7 +3101,6 @@ crbug.com/591099 external/wpt/dom/ranges/Range-mutations-replaceData.html [ Pass Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-set.html [ Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-surroundContents.html [ Pass Timeout ] -crbug.com/591099 external/wpt/dom/traversal/NodeIterator.html [ Pass Timeout ] crbug.com/591099 external/wpt/dom/traversal/TreeWalker.html [ Pass Timeout ] crbug.com/591099 external/wpt/domxpath/xml_xpath_runner.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/backcolor.html [ Pass Timeout ] @@ -3290,7 +3219,6 @@ crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/flow-content-0/dialog.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/flow-content-0/div-align.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-block-formatting-context.html [ Crash Failure ] -crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-hr-element-0/align.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-hr-element-0/setting-overflow-visible.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-auto.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-percentage.html [ Failure ] @@ -3342,7 +3270,6 @@ crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-button-test_touch-manual.html [ Crash Failure Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-span-test_touch-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html [ Crash Failure Timeout ] -crbug.com/591099 external/wpt/quirks-mode/blocks-ignore-line-height.html [ Failure Pass ] crbug.com/591099 external/wpt/quirks-mode/line-height-calculation.html [ Crash Failure ] crbug.com/591099 external/wpt/quirks-mode/table-cell-width-calculation.html [ Crash Failure ] crbug.com/591099 external/wpt/scroll-anchoring/anchoring-with-bounds-clamping.html [ Failure ] @@ -3475,10 +3402,7 @@ crbug.com/591099 fast/block/align-inverted-direction.html [ Failure ] crbug.com/591099 fast/block/basic/011.html [ Failure ] crbug.com/591099 fast/block/basic/014.html [ Failure ] -crbug.com/591099 fast/block/basic/016.html [ Failure ] -crbug.com/591099 fast/block/basic/018.html [ Failure ] crbug.com/591099 fast/block/basic/020.html [ Failure ] -crbug.com/591099 fast/block/basic/fieldset-stretch-to-legend.html [ Crash Failure ] crbug.com/591099 fast/block/basic/quirk-height.html [ Failure ] crbug.com/591099 fast/block/basic/quirk-percent-height-grandchild.html [ Failure ] crbug.com/591099 fast/block/block-width-recalc-with-relative-height.html [ Crash Failure ] @@ -3496,8 +3420,6 @@ crbug.com/591099 fast/block/float/027.html [ Failure ] crbug.com/591099 fast/block/float/028.html [ Failure ] crbug.com/591099 fast/block/float/031.html [ Failure ] -crbug.com/591099 fast/block/float/032.html [ Failure ] -crbug.com/591099 fast/block/float/034.html [ Failure ] crbug.com/591099 fast/block/float/035.html [ Failure ] crbug.com/591099 fast/block/float/assert-when-moving-float-2.html [ Failure Pass ] crbug.com/591099 fast/block/float/assert-when-moving-float.html [ Crash Failure ] @@ -3515,7 +3437,6 @@ crbug.com/591099 fast/block/float/float-in-float-painting.html [ Failure ] crbug.com/591099 fast/block/float/float-inserted-into-clean-line.html [ Failure ] crbug.com/635619 fast/block/float/float-not-removed-from-first-letter.html [ Crash Failure ] -crbug.com/591099 fast/block/float/float-on-zero-height-line.html [ Failure Pass ] crbug.com/591099 fast/block/float/float-overflow-hidden-containing-block-width.html [ Failure ] crbug.com/591099 fast/block/float/floats-and-text-indent-rl.html [ Failure ] crbug.com/591099 fast/block/float/floats-and-text-indent.html [ Failure ] @@ -3533,7 +3454,6 @@ crbug.com/591099 fast/block/float/floats-wrap-inside-inline-004.htm [ Failure ] crbug.com/591099 fast/block/float/independent-align-positioning.html [ Failure ] crbug.com/591099 fast/block/float/logical-bottom-exceeds-layoutunit-max.html [ Failure ] -crbug.com/591099 fast/block/float/marquee-shrink-to-avoid-floats.html [ Failure Pass ] crbug.com/591099 fast/block/float/negative-margin-on-element-avoiding-floats-with-margin-on-parent.html [ Failure ] crbug.com/591099 fast/block/float/negative-margin-on-element-avoiding-floats.html [ Failure ] crbug.com/591099 fast/block/float/nested-clearance.html [ Failure ] @@ -3547,14 +3467,11 @@ crbug.com/591099 fast/block/float/rubybase-children-moved-crash-2.html [ Crash Failure ] crbug.com/591099 fast/block/float/selection-gap-clip-out-tiger-crash.html [ Failure Pass ] crbug.com/591099 fast/block/float/shrink-to-avoid-float-complexity.html [ Failure ] -crbug.com/591099 fast/block/float/shrink-to-fit-width.html [ Failure Pass ] crbug.com/591099 fast/block/float/trailing-float-with-columns.html [ Crash Failure ] crbug.com/591099 fast/block/float/width-update-after-clear.html [ Failure ] -crbug.com/591099 fast/block/hr-with-float.html [ Failure ] crbug.com/591099 fast/block/inflow-bottom-margin.html [ Failure ] crbug.com/591099 fast/block/inline-children-root-linebox-crash.html [ Crash Failure ] crbug.com/591099 fast/block/line-layout/floats-do-not-fit-on-line.html [ Crash Failure ] -crbug.com/591099 fast/block/line-layout/negative-max-height.html [ Failure Pass ] crbug.com/591099 fast/block/margin-collapse/001.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/005.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/032.html [ Failure ] @@ -3610,8 +3527,6 @@ crbug.com/591099 fast/block/positioning/inline-block-relposition.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/leftmargin-topmargin.html [ Failure ] crbug.com/591099 fast/block/positioning/move-with-auto-width.html [ Failure ] -crbug.com/591099 fast/block/positioning/offsetLeft-relative-iframe.html [ Crash Failure ] -crbug.com/591099 fast/block/positioning/offsetLeft-relative-td.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/padding-percent.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/positioned-child-inside-relative-positioned-anonymous-block.html [ Failure ] crbug.com/591099 fast/block/positioning/relative-overflow-block.html [ Failure ] @@ -3624,13 +3539,8 @@ crbug.com/591099 fast/block/positioning/start-ignoring-before.html [ Failure ] crbug.com/591099 fast/block/positioning/trailing-space-test.html [ Failure ] crbug.com/591099 fast/block/positioning/vertical-lr/001.html [ Failure ] -crbug.com/591099 fast/block/positioning/vertical-lr/002.html [ Failure ] -crbug.com/591099 fast/block/positioning/vertical-lr/003.html [ Failure ] -crbug.com/591099 fast/block/positioning/vertical-lr/004.html [ Failure ] crbug.com/591099 fast/block/positioning/vertical-rl/001.html [ Failure ] crbug.com/591099 fast/block/positioning/vertical-rl/002.html [ Crash Failure ] -crbug.com/591099 fast/block/positioning/vertical-rl/003.html [ Failure ] -crbug.com/591099 fast/block/positioning/vertical-rl/004.html [ Failure ] crbug.com/591099 fast/block/positioning/vertical-rl/fixed-positioning.html [ Failure ] crbug.com/591099 fast/block/positioning/window-height-change.html [ Failure ] crbug.com/591099 fast/block/scrollbar-wider-than-border-box.html [ Failure ] @@ -3715,7 +3625,6 @@ crbug.com/591099 fast/borders/border-radius-mask-video.html [ Failure ] crbug.com/591099 fast/borders/border-radius-wide-border-01.html [ Failure ] crbug.com/591099 fast/borders/border-styles-split.html [ Failure ] -crbug.com/591099 fast/borders/fieldsetBorderRadius.html [ Crash Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image-outset-vertical-rl.html [ Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image-outset.html [ Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image.html [ Failure ] @@ -3745,7 +3654,7 @@ crbug.com/591099 fast/box-shadow/single-pixel-shadow.html [ Failure Pass ] crbug.com/591099 fast/box-shadow/spread.html [ Failure ] crbug.com/591099 fast/box-shadow/transform-fringing.html [ Failure ] -crbug.com/591099 fast/box-sizing/box-sizing.html [ Failure Pass ] +crbug.com/591099 fast/canvas-api/toDataURL-supportedTypes.html [ Failure ] crbug.com/591099 fast/canvas/canvas-createImageBitmap-drawImage.html [ Timeout ] crbug.com/591099 fast/canvas/canvas-drawImage-animated-images.html [ Failure ] crbug.com/591099 fast/canvas/canvas-ellipse-connecting-line.html [ Failure Pass ] @@ -3756,10 +3665,8 @@ crbug.com/591099 fast/canvas/fill-stroke-clip-reset-path.html [ Failure ] crbug.com/591099 fast/canvas/fillrect_gradient.html [ Failure ] crbug.com/591099 fast/canvas/patternfill-repeat.html [ Failure ] -crbug.com/591099 fast/canvas-api/toDataURL-supportedTypes.html [ Failure ] crbug.com/591099 fast/clip/001.html [ Failure ] crbug.com/591099 fast/clip/004.html [ Failure ] -crbug.com/591099 fast/clip/008.html [ Failure ] crbug.com/591099 fast/clip/009.html [ Failure ] crbug.com/591099 fast/clip/010.html [ Failure ] crbug.com/591099 fast/clip/011.html [ Failure ] @@ -3919,7 +3826,6 @@ crbug.com/591099 fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/named-grid-line-get-set.html [ Failure Timeout ] crbug.com/591099 fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html [ Pass Timeout ] crbug.com/591099 fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html [ Failure ] crbug.com/591099 fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html [ Failure ] crbug.com/591099 fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update.html [ Failure ] @@ -3933,7 +3839,6 @@ crbug.com/591099 fast/css-grid-layout/scrolled-grid-painting-overflow.html [ Failure ] crbug.com/591099 fast/css-grid-layout/scrolled-grid-painting.html [ Failure ] crbug.com/591099 fast/css-grid-layout/stale-grid-layout.html [ Failure Pass ] -crbug.com/591099 fast/css-intrinsic-dimensions/css-tables.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/fillavailable-minmax-content-inlinesize-contribution-nonreplaced-blocks.html [ Crash Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/fitcontent-minmax-content-inlinesize-contribution-nonreplaced-blocks.html [ Crash Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/fixed-height-stf-img-block-child-percent-height.html [ Failure ] @@ -3945,7 +3850,6 @@ crbug.com/591099 fast/css-intrinsic-dimensions/indefinite-percent-minmax-content-inlinesize-contribution-nonreplaced-blocks.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/multicol.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/resize-inside-percent-width-overflow-hidden.html [ Failure ] -crbug.com/591099 fast/css-intrinsic-dimensions/tables.html [ Failure ] crbug.com/591099 fast/css/001.html [ Crash Failure ] crbug.com/591099 fast/css/002.html [ Failure ] crbug.com/591099 fast/css/003.html [ Failure ] @@ -3974,7 +3878,6 @@ crbug.com/591099 fast/css/background-shorthand-invalid-url.html [ Failure ] crbug.com/591099 fast/css/beforeSelectorOnCodeElement.html [ Failure ] crbug.com/591099 fast/css/begin-end-contain-selector-empty-value.html [ Failure Pass ] -crbug.com/591099 fast/css/bfc-percentage-margin.html [ Failure ] crbug.com/591099 fast/css/bidi-override-in-anonymous-block.html [ Crash Failure ] crbug.com/591099 fast/css/bogus-color-span.html [ Failure ] crbug.com/591099 fast/css/border-height.html [ Failure ] @@ -4007,7 +3910,6 @@ crbug.com/591099 fast/css/color-quirk.html [ Failure ] crbug.com/591099 fast/css/color-strict.html [ Failure Pass ] crbug.com/591099 fast/css/compare-content-style.html [ Crash Failure ] -crbug.com/591099 fast/css/computed-image-width-with-percent-height-quirksmode.html [ Failure Pass ] crbug.com/591099 fast/css/containment/size-and-layout-containment.html [ Crash Failure ] crbug.com/591099 fast/css/continuationCrash.html [ Crash Failure ] crbug.com/591099 fast/css/counters/counter-traverse-table-cell.html [ Failure ] @@ -4137,27 +4039,14 @@ crbug.com/591099 fast/css/non-standard-checkbox-size.html [ Failure ] crbug.com/591099 fast/css/nth-child-dynamic.html [ Failure ] crbug.com/591099 fast/css/number-parsing-crash.html [ Crash Failure Pass ] -crbug.com/591099 fast/css/object-fit-canvas.html [ Failure ] -crbug.com/591099 fast/css/object-fit-embed.html [ Failure Pass ] crbug.com/591099 fast/css/object-fit-grow-landscape.html [ Failure ] crbug.com/591099 fast/css/object-fit-grow-portrait.html [ Failure ] -crbug.com/591099 fast/css/object-fit-img-svg.html [ Failure ] -crbug.com/591099 fast/css/object-fit-img-svg2.html [ Failure ] -crbug.com/591099 fast/css/object-fit-img.html [ Failure Pass ] -crbug.com/591099 fast/css/object-fit-input-image.html [ Failure Pass ] -crbug.com/591099 fast/css/object-fit-object.html [ Failure Pass ] -crbug.com/591099 fast/css/object-fit-shrink.html [ Failure ] -crbug.com/591099 fast/css/object-fit-video-poster.html [ Failure ] -crbug.com/591099 fast/css/object-position-with-fit-contain.html [ Failure ] -crbug.com/591099 fast/css/object-position-with-fit-cover.html [ Failure ] -crbug.com/591099 fast/css/object-position-with-fit-none.html [ Failure ] -crbug.com/591099 fast/css/object-position.html [ Failure ] crbug.com/591099 fast/css/only-child-pseudo-class.html [ Failure ] crbug.com/591099 fast/css/only-of-type-pseudo-class.html [ Failure ] crbug.com/591099 fast/css/outline-auto-empty-rects.html [ Failure ] crbug.com/591099 fast/css/outline-auto-location.html [ Failure ] crbug.com/591099 fast/css/outline-narrowLine.html [ Failure ] -crbug.com/591099 fast/css/outline-small-visual-overflow.html [ Failure ] +crbug.com/591099 fast/css/outline-small-visual-overflow.html [ Failure Pass ] crbug.com/591099 fast/css/overflow-rtl-border-after.html [ Failure ] crbug.com/591099 fast/css/pending-stylesheet-repaint.html [ Failure ] crbug.com/591099 fast/css/pendingStylesheetFontSize.html [ Failure ] @@ -4235,7 +4124,7 @@ crbug.com/591099 fast/css/unknown-pseudo-element-matching.html [ Crash Failure ] crbug.com/591099 fast/css/vertical-align-lengths.html [ Failure ] crbug.com/591099 fast/css/vertical-lr-bfc-auto-margins-beside-float.html [ Crash Failure ] -crbug.com/591099 fast/css/vertical-lr-table-bfc-auto-margins-beside-float.html [ Failure ] +crbug.com/591099 fast/css/vertical-lr-table-bfc-auto-margins-beside-float.html [ Failure Pass ] crbug.com/591099 fast/css/vertical-lr-table-percent-margins-beside-float.html [ Crash Failure ] crbug.com/591099 fast/css/vertical-text-overflow-ellipsis-text-align-center.html [ Failure ] crbug.com/591099 fast/css/vertical-text-overflow-ellipsis-text-align-justify.html [ Failure ] @@ -4270,7 +4159,6 @@ crbug.com/591099 fast/doctypes/002.html [ Crash Failure ] crbug.com/591099 fast/doctypes/003.html [ Crash Failure ] crbug.com/591099 fast/doctypes/004.html [ Crash Failure ] -crbug.com/591099 fast/doctypes/doctype-parsing.html [ Crash Failure Pass ] crbug.com/591099 fast/dom/34176.html [ Crash Failure ] crbug.com/591099 fast/dom/52776.html [ Crash Failure ] crbug.com/591099 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-before-style.html [ Failure ] @@ -4337,7 +4225,6 @@ crbug.com/591099 fast/dom/element-attribute-js-null.html [ Timeout ] crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-iframes.html [ Failure ] crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-svg.html [ Failure ] -crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-table.html [ Failure ] crbug.com/591099 fast/dom/empty-anchor-in-overflow-scroller.html [ Failure ] crbug.com/591099 fast/dom/empty-hash-and-search.html [ Failure Pass ] crbug.com/591099 fast/dom/firstline-fixed-crash.html [ Failure ] @@ -4359,7 +4246,6 @@ crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-inline-image.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-inner-documents.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-links-and-text.html [ Failure ] -crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-table.html [ Failure ] crbug.com/591099 fast/dom/offset-parent-positioned-and-inline.html [ Failure Pass ] crbug.com/591099 fast/dom/open-and-close-by-DOM.html [ Failure ] crbug.com/591099 fast/dom/outerText.html [ Failure ] @@ -4460,9 +4346,7 @@ crbug.com/591099 fast/events/click-svganchor-blur-refocus-window.html [ Failure ] crbug.com/591099 fast/events/click-svganchor-refocus-window.html [ Failure ] crbug.com/591099 fast/events/constructors/wheel-event-constructor.html [ Failure Pass Timeout ] -crbug.com/591099 fast/events/content-changed-during-drop.html [ Crash Failure Pass ] crbug.com/591099 fast/events/context-no-deselect.html [ Crash Failure ] -crbug.com/591099 fast/events/document-elementFromPoint.html [ Failure Pass ] crbug.com/591099 fast/events/domactivate-sets-underlying-click-event-as-handled.html [ Crash Failure ] crbug.com/591099 fast/events/drag-and-drop-autoscroll-inner-frame.html [ Timeout ] crbug.com/591099 fast/events/drag-dragend-detaches.html [ Failure ] @@ -4492,7 +4376,6 @@ crbug.com/591099 fast/events/keydown-keypress-focus-change.html [ Failure ] crbug.com/591099 fast/events/keydown-keypress-preventDefault.html [ Failure ] crbug.com/591099 fast/events/keypress-focus-change.html [ Failure ] -crbug.com/591099 fast/events/keypress-removed-node.html [ Crash Failure Pass ] crbug.com/591099 fast/events/media-element-focus-tab.html [ Failure ] crbug.com/591099 fast/events/middleClickAutoscroll-in-iframe.html [ Timeout ] crbug.com/591099 fast/events/middleClickAutoscroll-nested-divs-forbidden.html [ Timeout ] @@ -4509,13 +4392,11 @@ crbug.com/591099 fast/events/mousemove-to-resizer-changes-cursor.html [ Failure ] crbug.com/591099 fast/events/mouseover-mouseout.html [ Failure ] crbug.com/591099 fast/events/no-blur-on-enter-button.html [ Failure ] -crbug.com/591099 fast/events/offsetX-offsetY.html [ Failure Timeout ] crbug.com/591099 fast/events/onblur-remove.html [ Crash Failure ] crbug.com/591099 fast/events/onchange-range-slider.html [ Failure ] crbug.com/591099 fast/events/onload-re-entry.html [ Failure ] crbug.com/591099 fast/events/onload-webkit-before-webcore.html [ Failure ] crbug.com/591099 fast/events/page-scaled-mouse-click-iframe.html [ Failure ] -crbug.com/591099 fast/events/page-visibility-iframe-delete-test.html [ Crash Failure Pass ] crbug.com/591099 fast/events/pointer-events-2.html [ Failure ] crbug.com/591099 fast/events/pointerevents/mouse-on-object.html [ Crash Failure ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Timeout ] @@ -4712,7 +4593,7 @@ crbug.com/591099 fast/forms/range/slider-transformed.html [ Failure Pass ] crbug.com/591099 fast/forms/range/slider-zoomed.html [ Failure ] crbug.com/591099 fast/forms/range/thumbslider-no-parent-slider.html [ Failure ] -crbug.com/591099 fast/forms/reportValidity-valid.html [ Crash Failure ] +crbug.com/591099 fast/forms/reportValidity-valid.html [ Crash Failure Timeout ] crbug.com/591099 fast/forms/reset-autofilled.html [ Failure ] crbug.com/591099 fast/forms/restore-selection-after-layout.html [ Crash Failure ] crbug.com/591099 fast/forms/search/search-appearance-basic.html [ Crash Failure ] @@ -4723,11 +4604,9 @@ crbug.com/591099 fast/forms/search/search-rtl.html [ Crash Failure ] crbug.com/591099 fast/forms/search/search-vertical-alignment.html [ Crash Failure ] crbug.com/591099 fast/forms/search/searchfield-heights.html [ Crash Failure ] -crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-coarse.html [ Failure ] -crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-fractional-width.html [ Failure ] +crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-fractional-width.html [ Failure Pass ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-rtl-default.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-rtl.html [ Failure ] -crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-styled.html [ Failure ] crbug.com/591099 fast/forms/select/003.html [ Crash Failure ] crbug.com/591099 fast/forms/select/004.html [ Failure ] crbug.com/591099 fast/forms/select/HTMLOptionElement_label01.html [ Failure ] @@ -4894,10 +4773,7 @@ crbug.com/591099 fast/forms/text/text-appearance-basic.html [ Crash Failure ] crbug.com/591099 fast/forms/text/text-appearance-datalist.html [ Failure ] crbug.com/591099 fast/forms/text/text-font-height-mismatch.html [ Crash Failure ] -crbug.com/591099 fast/forms/text/text-inner-overflow.html [ Failure Pass ] -crbug.com/591099 fast/forms/text/text-placeholder-in-flexbox.html [ Failure ] crbug.com/591099 fast/forms/text/text-reset.html [ Crash Failure ] -crbug.com/591099 fast/forms/text/textfield-focus-out.html [ Crash Failure Pass ] crbug.com/591099 fast/forms/text/textfield-focus-ring.html [ Failure ] crbug.com/591099 fast/forms/text/textfield-outline.html [ Crash Failure ] crbug.com/591099 fast/forms/text/textfield-overflow-by-value-update.html [ Crash Failure ] @@ -4965,7 +4841,6 @@ crbug.com/591099 fast/frames/frameset-style-recalc.html [ Failure ] crbug.com/591099 fast/frames/iframe-onload-remove-self-no-crash.html [ Failure ] crbug.com/591099 fast/frames/iframe-option-crash.xhtml [ Failure ] -crbug.com/591099 fast/frames/iframe-reparenting-unique-name.html [ Crash Failure Pass ] crbug.com/591099 fast/frames/iframe-scaling-with-scroll.html [ Failure ] crbug.com/591099 fast/frames/iframe-scrolling-attribute.html [ Failure ] crbug.com/591099 fast/frames/iframe-text-contents.html [ Failure ] @@ -5033,7 +4908,6 @@ crbug.com/591099 fast/inline-block/float-leading-whitespace.html [ Failure ] crbug.com/591099 fast/inline-block/float-no-whitespace.html [ Failure ] crbug.com/591099 fast/inline-block/float-trailing-whitespace.html [ Failure ] -crbug.com/591099 fast/inline-block/inline-block-vertical-align.html [ Failure Pass ] crbug.com/591099 fast/inline-block/tricky-baseline.html [ Failure ] crbug.com/591099 fast/inline-block/vertical-align-top-and-bottom-2.html [ Failure ] crbug.com/591099 fast/inline/absolute-positioned-inline-in-centred-block.html [ Failure ] @@ -5224,7 +5098,6 @@ crbug.com/591099 fast/multicol/client-rects-crossing-boundaries-nested.html [ Failure Timeout ] crbug.com/591099 fast/multicol/client-rects-crossing-boundaries.html [ Failure ] crbug.com/591099 fast/multicol/client-rects-rtl.html [ Failure ] -crbug.com/591099 fast/multicol/client-rects-sole-empty-block.html [ Failure ] crbug.com/591099 fast/multicol/client-rects.html [ Failure ] crbug.com/591099 fast/multicol/column-break-with-balancing.html [ Failure ] crbug.com/591099 fast/multicol/column-count-with-rules.html [ Failure ] @@ -5345,7 +5218,7 @@ crbug.com/591099 fast/multicol/inline-getclientrects.html [ Failure ] crbug.com/591099 fast/multicol/inner-multicol-in-second-column.html [ Failure ] crbug.com/591099 fast/multicol/input-type-number.html [ Failure ] -crbug.com/591099 fast/multicol/insane-column-gap.html [ Failure ] +crbug.com/591099 fast/multicol/insane-column-gap.html [ Failure Pass ] crbug.com/591099 fast/multicol/layers-in-multicol.html [ Failure ] crbug.com/591099 fast/multicol/line-in-next-row-in-fourth-inner-multicol.html [ Failure ] crbug.com/591099 fast/multicol/line-pushed-down-by-float.html [ Failure ] @@ -5401,7 +5274,6 @@ crbug.com/591099 fast/multicol/newmulticol/breaks-2-columns-3-no-balancing.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/breaks-2-columns-3.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/breaks-3-columns-3.html [ Failure Timeout ] -crbug.com/591099 fast/multicol/newmulticol/clipping-top-overflow.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/fixed-height-fill-balance-2.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/fixed-height-fill-balance.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/hide-box-vertical-lr.html [ Failure ] @@ -5434,7 +5306,6 @@ crbug.com/591099 fast/multicol/paginate-block-replaced.html [ Failure ] crbug.com/591099 fast/multicol/positioned-outside-of-columns.html [ Failure ] crbug.com/591099 fast/multicol/positioned-split.html [ Failure ] -crbug.com/591099 fast/multicol/positioned-with-constrained-height.html [ Failure Pass ] crbug.com/591099 fast/multicol/positive-leading.html [ Failure ] crbug.com/591099 fast/multicol/pushed-line-affected-by-float.html [ Failure ] crbug.com/591099 fast/multicol/regular-block-becomes-multicol.html [ Failure ] @@ -5601,12 +5472,8 @@ crbug.com/591099 fast/overflow/006.html [ Failure ] crbug.com/591099 fast/overflow/007.html [ Failure ] crbug.com/591099 fast/overflow/add-visual-overflow-and-change-container-position.html [ Failure ] -crbug.com/591099 fast/overflow/clip-rects-fixed-ancestor.html [ Failure ] crbug.com/591099 fast/overflow/float-in-relpositioned.html [ Failure ] crbug.com/591099 fast/overflow/height-during-simplified-layout.html [ Failure ] -crbug.com/591099 fast/overflow/hidden-html-auto-body.html [ Failure ] -crbug.com/591099 fast/overflow/hidden-html-hidden-body.html [ Failure Pass ] -crbug.com/591099 fast/overflow/hidden-html-paged-body.html [ Crash Failure ] crbug.com/591099 fast/overflow/image-selection-highlight.html [ Failure ] crbug.com/591099 fast/overflow/infiniteRecursion.html [ Crash Failure ] crbug.com/591099 fast/overflow/infiniteRecursionGuard.html [ Failure ] @@ -5624,13 +5491,9 @@ crbug.com/591099 fast/overflow/overflow-with-local-background-attachment.html [ Crash Failure ] crbug.com/591099 fast/overflow/overflow-x-y.html [ Crash Failure ] crbug.com/591099 fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto.html [ Crash Failure ] -crbug.com/591099 fast/overflow/scroll-html-hidden-body.html [ Failure Pass ] -crbug.com/591099 fast/overflow/scroll-html-paged-body.html [ Crash Failure Pass ] crbug.com/591099 fast/overflow/scroll-nested-positioned-layer-in-overflow.html [ Failure ] -crbug.com/591099 fast/overflow/scrollRevealButton.html [ Failure Pass ] crbug.com/591099 fast/overflow/scrollbar-restored-and-then-locked.html [ Crash Failure ] crbug.com/591099 fast/overflow/scrollbar-restored.html [ Failure ] -crbug.com/591099 fast/overflow/trailing-float-linebox.html [ Failure Pass ] crbug.com/591099 fast/overflow/unreachable-overflow-rtl-bug.html [ Failure ] crbug.com/591099 fast/pagination/auto-height-with-break.html [ Crash Failure ] crbug.com/591099 fast/pagination/break-in-paged-overflow.html [ Crash Failure ] @@ -5673,7 +5536,6 @@ crbug.com/591099 fast/parser/noscript-with-javascript-disabled.html [ Failure ] crbug.com/591099 fast/parser/open-comment-in-style.html [ Failure ] crbug.com/591099 fast/parser/open-comment-in-textarea.html [ Crash Failure ] -crbug.com/591099 fast/parser/residual-style-dom.html [ Pass Timeout ] crbug.com/591099 fast/parser/stray-end-tags-with-attributes-002-alt-quirks.html [ Failure ] crbug.com/591099 fast/parser/stray-end-tags-with-attributes-002-alt.html [ Failure ] crbug.com/591099 fast/parser/style-script-head-test.html [ Failure ] @@ -5693,7 +5555,6 @@ crbug.com/591099 fast/reflections/reflection-with-zoom.html [ Failure ] crbug.com/591099 fast/reflections/table-cell.html [ Failure ] crbug.com/591099 fast/reflections/transparent-reflected-sublayers.html [ Failure ] -crbug.com/591099 fast/replaced/008.html [ Crash Failure Pass ] crbug.com/591099 fast/replaced/absolute-position-auto-width-and-left-and-right-and-intrinsic-width-quirks.html [ Crash Failure ] crbug.com/591099 fast/replaced/absolute-position-auto-width-and-left-and-right-and-intrinsic-width.html [ Crash Failure ] crbug.com/591099 fast/replaced/absolute-position-percentage-height.html [ Failure ] @@ -5708,29 +5569,21 @@ crbug.com/591099 fast/replaced/image-map-cursor.html [ Crash Failure ] crbug.com/591099 fast/replaced/image-map-on-image-with-inline-content-data.html [ Crash Failure ] crbug.com/591099 fast/replaced/image-map.html [ Failure ] -crbug.com/591099 fast/replaced/image-onload.html [ Failure Pass ] -crbug.com/591099 fast/replaced/inline-box-wrapper-handover.html [ Failure Pass ] crbug.com/591099 fast/replaced/max-width-percent.html [ Failure ] -crbug.com/591099 fast/replaced/maxwidth-percent.html [ Failure Pass ] -crbug.com/591099 fast/replaced/minwidth-percent.html [ Failure Pass ] crbug.com/591099 fast/replaced/no-focus-ring-embed.html [ Failure Timeout ] crbug.com/591099 fast/replaced/no-focus-ring-iframe.html [ Timeout ] crbug.com/591099 fast/replaced/no-focus-ring-object.html [ Failure Pass Timeout ] -crbug.com/591099 fast/replaced/object-align-hspace-vspace.html [ Failure Pass ] crbug.com/591099 fast/replaced/object-with-non-empty-classid-triggers-fallback.html [ Crash Failure ] crbug.com/591099 fast/replaced/outline-replaced-elements.html [ Failure Pass ] crbug.com/591099 fast/replaced/percent-height-in-anonymous-block-in-table.html [ Failure ] crbug.com/591099 fast/replaced/percent-height-in-anonymous-block.html [ Failure ] crbug.com/591099 fast/replaced/preferred-widths.html [ Failure ] -crbug.com/591099 fast/replaced/replaced-breaking-mixture.html [ Failure Pass ] -crbug.com/591099 fast/replaced/replaced-breaking.html [ Failure Pass ] crbug.com/591099 fast/replaced/replaced-child-of-absolute-with-auto-height.html [ Failure ] crbug.com/591099 fast/replaced/replaced-element-with-percentage-height-anonymous-block-parent.html [ Failure ] crbug.com/591099 fast/replaced/selection-rect-transform.html [ Crash Failure ] crbug.com/591099 fast/replaced/selection-rect.html [ Failure Pass ] crbug.com/591099 fast/replaced/table-percent-height.html [ Failure ] crbug.com/591099 fast/replaced/table-replaced-element.html [ Failure ] -crbug.com/591099 fast/replaced/vertical-lr/absolute-position-percentage-width.html [ Failure ] crbug.com/591099 fast/replaced/vertical-resize-100percent-element.html [ Failure ] crbug.com/591099 fast/replaced/vertical-rl/absolute-position-percentage-width.html [ Failure ] crbug.com/591099 fast/replaced/vertical-rl/absolute-position-with-auto-height-and-top-and-bottom.html [ Failure ] @@ -5870,7 +5723,6 @@ crbug.com/591099 fast/selectors/unqualified-hover-quirks.html [ Failure ] crbug.com/591099 fast/selectors/unqualified-hover-strict.html [ Failure ] crbug.com/591099 fast/selectors/visited-descendant.html [ Failure ] -crbug.com/591099 fast/shapes/parsing/parsing-shape-outside.html [ Failure Pass Timeout ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-001.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-002.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-boxes-001.html [ Failure ] @@ -5945,7 +5797,6 @@ crbug.com/591099 fast/spatial-navigation/snav-fully-aligned-vertically.html [ Failure ] crbug.com/591099 fast/spatial-navigation/snav-hidden-iframe.html [ Failure ] crbug.com/591099 fast/spatial-navigation/snav-multiple-select-focusring.html [ Failure ] -crbug.com/591099 fast/spatial-navigation/snav-z-index.html [ Failure Pass ] crbug.com/591099 fast/sub-pixel/block-preferred-widths-with-sub-pixel-floats.html [ Failure ] crbug.com/591099 fast/sub-pixel/column-clipping.html [ Failure ] crbug.com/591099 fast/sub-pixel/computedstylemargin.html [ Failure ] @@ -5958,24 +5809,16 @@ crbug.com/591099 fast/sub-pixel/size-of-box-with-zoom.html [ Failure ] crbug.com/591099 fast/sub-pixel/sub-pixel-border-2.html [ Failure ] crbug.com/591099 fast/table/009.html [ Failure ] -crbug.com/591099 fast/table/014.html [ Failure Pass ] crbug.com/591099 fast/table/018.html [ Failure ] crbug.com/591099 fast/table/032.html [ Failure ] -crbug.com/591099 fast/table/035-vertical.html [ Failure ] -crbug.com/591099 fast/table/035.html [ Failure ] crbug.com/591099 fast/table/absolute-table-percent-lengths.html [ Failure ] crbug.com/591099 fast/table/anonymous-table-no-baseline-align.html [ Failure ] -crbug.com/591099 fast/table/auto-with-percent-height-vertical.html [ Failure ] -crbug.com/591099 fast/table/auto-with-percent-height.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-quirks-collapsed-border.html [ Failure Pass ] -crbug.com/591099 fast/table/backgr_border-table-quirks.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_layers-opacity-collapsed-border.html [ Crash Failure Pass ] crbug.com/591099 fast/table/backgr_layers-opacity.html [ Failure ] crbug.com/591099 fast/table/backgr_layers-show-collapsed-border.html [ Failure ] crbug.com/591099 fast/table/backgr_layers-show.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/003-vertical.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/004-vertical.html [ Crash Failure ] -crbug.com/591099 fast/table/border-collapsing/004.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/border-collapsing-head-foot-vertical.html [ Failure ] crbug.com/591099 fast/table/change-col-border-width.html [ Crash Failure ] crbug.com/591099 fast/table/change-row-border-width-floating-container.html [ Crash Failure ] @@ -5994,13 +5837,9 @@ crbug.com/591099 fast/table/incomplete-table-in-fragment-2.html [ Failure ] crbug.com/591099 fast/table/incomplete-table-in-fragment-hang.html [ Failure ] crbug.com/591099 fast/table/inline-table-margin-baseline.html [ Failure ] -crbug.com/591099 fast/table/invisible-cell-background.html [ Failure ] crbug.com/591099 fast/table/large-shrink-wrapped-width.html [ Failure ] crbug.com/591099 fast/table/margins-flipped-text-direction.html [ Failure ] -crbug.com/591099 fast/table/margins-perpendicular-containing-block.html [ Failure ] -crbug.com/591099 fast/table/min-width-css-block-table.html [ Failure Pass Timeout ] crbug.com/591099 fast/table/min-width-html-block-table.html [ Failure Pass Timeout ] -crbug.com/591099 fast/table/nested-percent-height-table.html [ Failure ] crbug.com/591099 fast/table/percent-height-content-in-fixed-height-cell-and-fixed-height-from-row.html [ Failure ] crbug.com/591099 fast/table/percent-height-content-in-fixed-height-cell.html [ Failure ] crbug.com/591099 fast/table/percent-height-overflow-auto-content-in-cell.html [ Failure ] @@ -6010,8 +5849,6 @@ crbug.com/591099 fast/table/percent-widths-stretch-vertical.html [ Failure ] crbug.com/591099 fast/table/recalc-section-first-body-crash-main.html [ Failure ] crbug.com/591099 fast/table/row-in-inline-block.html [ Failure ] -crbug.com/591099 fast/table/stale-grid-crash.html [ Failure Pass ] -crbug.com/591099 fast/table/table-cell-negative-start-margin-align-center.html [ Failure ] crbug.com/591099 fast/table/table-display-types-vertical.html [ Failure ] crbug.com/591099 fast/table/table-rowspan-table-height-and-row-precent-height-too-large.html [ Failure ] crbug.com/591099 fast/table/table-sections-border-spacing.html [ Failure ] @@ -6071,23 +5908,6 @@ crbug.com/591099 fast/text-autosizing/resize-window.html [ Failure ] crbug.com/591099 fast/text-autosizing/similar-clusters.html [ Failure ] crbug.com/591099 fast/text-autosizing/span-child.html [ Failure ] -crbug.com/591099 fast/text-autosizing/supercluster-multiple-layout.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/css-table-lots-of-text-many-cells.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/css-table-single-cell-lots-of-text.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/fixed-table-lots-of-text-many-cells.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/fixed-table-single-cell-lots-of-text.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/lots-of-text-many-cells.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/narrow-percentage-width.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/narrow-specified-width.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/nested-table-wrapping.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/nested-tables.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/single-cell-lots-of-text.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/single-percent-width-cell-lots-of-text.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/table-cell-inflation.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/table-for-layout.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/table-with-inline-block.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/wide-percentage-width.html [ Failure ] -crbug.com/591099 fast/text-autosizing/tables/wide-specified-width.html [ Failure ] crbug.com/591099 fast/text-autosizing/unwrappable-blocks.html [ Failure ] crbug.com/591099 fast/text-autosizing/unwrappable-inlines.html [ Failure ] crbug.com/591099 fast/text-autosizing/various-font-sizes.html [ Failure ] @@ -6102,6 +5922,7 @@ crbug.com/591099 fast/text/complex-text-opacity.html [ Failure ] crbug.com/591099 fast/text/container-align-with-inlines.html [ Failure ] crbug.com/591099 fast/text/decorations-with-text-combine.html [ Failure ] +crbug.com/591099 fast/text/descent-clip-in-scaled-page.html [ Failure ] crbug.com/591099 fast/text/ellipsis-at-edge-of-ltr-text-in-rtl-flow.html [ Failure ] crbug.com/591099 fast/text/ellipsis-at-edge-of-rtl-text-in-ltr-flow.html [ Failure ] crbug.com/591099 fast/text/ellipsis-in-absolute-block.html [ Failure ] @@ -6127,18 +5948,15 @@ crbug.com/591099 fast/text/ellipsis-rtl-text-in-rtl-flow-underline.html [ Failure ] crbug.com/591099 fast/text/ellipsis-rtl-text-in-rtl-flow.html [ Failure ] crbug.com/591099 fast/text/ellipsis-stroked.html [ Failure ] -crbug.com/591099 fast/text/emoji-web-font.html [ Failure Pass ] crbug.com/591099 fast/text/emphasis-avoid-ruby.html [ Crash Failure ] crbug.com/591099 fast/text/emphasis-combined-text.html [ Failure ] crbug.com/591099 fast/text/emphasis-complex.html [ Failure ] crbug.com/591099 fast/text/emphasis-ellipsis-complextext.html [ Failure ] crbug.com/591099 fast/text/emphasis-overlap.html [ Failure ] crbug.com/591099 fast/text/find-kana.html [ Timeout ] -crbug.com/591099 fast/text/firstline/001.html [ Failure Pass ] -crbug.com/591099 fast/text/font-ascent-mac.html [ Failure ] crbug.com/591099 fast/text/font-smallcaps-layout.html [ Failure ] -crbug.com/591099 fast/text/glyph-overflow-with-word-spacing.html [ Failure ] -crbug.com/591099 fast/text/glyph-overflow.html [ Failure ] +crbug.com/591099 fast/text/glyph-overflow-with-word-spacing.html [ Failure Pass ] +crbug.com/591099 fast/text/glyph-overflow.html [ Failure Pass ] crbug.com/591099 fast/text/hide-atomic-inlines-after-ellipsis.html [ Crash Failure ] crbug.com/591099 fast/text/international/bidi-AN-after-empty-run.html [ Failure ] crbug.com/591099 fast/text/international/bidi-LDB-2-CSS.html [ Failure ] @@ -6148,8 +5966,6 @@ crbug.com/591099 fast/text/international/bidi-linebreak-001.html [ Failure ] crbug.com/591099 fast/text/international/bidi-linebreak-002.html [ Failure ] crbug.com/591099 fast/text/international/bidi-linebreak-003.html [ Failure ] -crbug.com/591099 fast/text/international/bidi-listbox-atsui.html [ Failure Pass ] -crbug.com/591099 fast/text/international/bidi-listbox.html [ Failure Pass ] crbug.com/591099 fast/text/international/bidi-mirror-he-ar.html [ Failure ] crbug.com/591099 fast/text/international/draw-complex-text-from-to.html [ Failure ] crbug.com/591099 fast/text/international/iso-8859-8.html [ Failure ] @@ -6161,8 +5977,6 @@ crbug.com/591099 fast/text/large-text-composed-char.html [ Failure Timeout ] crbug.com/591099 fast/text/letter-spacing-leading-and-trailing.html [ Failure ] crbug.com/591099 fast/text/long-word.html [ Failure Timeout ] -crbug.com/591099 fast/text/midword-break-after-breakable-char.html [ Failure Pass ] -crbug.com/591099 fast/text/monospace-width-cache.html [ Failure Pass ] crbug.com/591099 fast/text/offsetForPosition-cluster-at-zero.html [ Failure ] crbug.com/591099 fast/text/offsetForPosition-complex-fallback.html [ Failure ] crbug.com/591099 fast/text/orientation-sideways.html [ Failure ] @@ -6234,7 +6048,6 @@ crbug.com/591099 fast/writing-mode/Kusa-Makura-background-canvas.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/auto-margins-across-boundaries.html [ Failure ] crbug.com/591099 fast/writing-mode/auto-sizing-orthogonal-flows.html [ Failure ] -crbug.com/591099 fast/writing-mode/background-vertical-lr.html [ Failure ] crbug.com/591099 fast/writing-mode/background-vertical-rl.html [ Failure ] crbug.com/591099 fast/writing-mode/basic-vertical-line.html [ Failure ] crbug.com/591099 fast/writing-mode/block-level-images.html [ Failure ] @@ -6249,7 +6062,6 @@ crbug.com/591099 fast/writing-mode/fallback-orientation.html [ Failure ] crbug.com/591099 fast/writing-mode/fieldsets.html [ Crash Failure Pass ] crbug.com/591099 fast/writing-mode/flipped-blocks-hit-test-line-edges.html [ Failure ] -crbug.com/591099 fast/writing-mode/flipped-blocks-hit-test-overflow.html [ Failure ] crbug.com/591099 fast/writing-mode/flipped-blocks-inline-map-local-to-container.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/flipped-blocks-text-map-local-to-container.html [ Failure ] crbug.com/591099 fast/writing-mode/inline-direction-positioning.html [ Crash Failure ] @@ -6259,7 +6071,6 @@ crbug.com/591099 fast/writing-mode/japanese-ruby-vertical-lr.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/japanese-ruby-vertical-rl.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/logical-height-after-clear.html [ Failure ] -crbug.com/591099 fast/writing-mode/margin-collapse.html [ Failure ] crbug.com/591099 fast/writing-mode/margins.html [ Failure ] crbug.com/591099 fast/writing-mode/orthogonal-writing-modes-available-width-absolute-crash.html [ Failure ] crbug.com/591099 fast/writing-mode/percentage-height-orthogonal-writing-modes-quirks.html [ Failure ] @@ -6293,7 +6104,6 @@ crbug.com/591099 fast/xsl/xslt-in-subframe.html [ Failure ] crbug.com/591099 fast/xsl/xslt-relative-path.xml [ Failure ] crbug.com/591099 fast/xsl/xslt_unicode.xml [ Failure ] -crbug.com/591099 fonts/fantasy.html [ Failure Pass ] crbug.com/591099 fonts/monospace.html [ Failure ] crbug.com/591099 fonts/sans-serif.html [ Failure ] crbug.com/591099 fonts/serif.html [ Failure ] @@ -6557,7 +6367,6 @@ crbug.com/591099 http/tests/devtools/sources/debugger-frameworks/frameworks-dom-xhr-event-breakpoints.html [ Crash Failure Timeout ] crbug.com/591099 http/tests/devtools/sources/debugger-pause/debugger-pause-in-internal.html [ Crash Failure Pass ] crbug.com/591099 http/tests/devtools/sources/debugger-ui/function-generator-details.html [ Crash Failure Pass ] -crbug.com/591099 http/tests/devtools/sources/debugger-ui/source-frame-count.html [ Crash Failure Pass ] crbug.com/591099 http/tests/devtools/sources/debugger-ui/watch-expressions-preserve-expansion.html [ Crash Failure Pass ] crbug.com/591099 http/tests/devtools/sources/debugger/properties-special.html [ Failure Pass ] crbug.com/591099 http/tests/devtools/startup/console/console-uncaught-promise-no-inspector.html [ Failure Pass Timeout ] @@ -6788,7 +6597,6 @@ crbug.com/591099 ietestcenter/css3/text/textshadow-010.htm [ Failure ] crbug.com/591099 images/12-55.html [ Failure ] crbug.com/591099 images/182.html [ Failure ] -crbug.com/591099 images/2-comp.html [ Failure Pass ] crbug.com/591099 images/2-dht.html [ Failure ] crbug.com/591099 images/23-55.html [ Failure ] crbug.com/591099 images/55.html [ Crash Failure ] @@ -6876,7 +6684,6 @@ crbug.com/591099 images/webp-flip.html [ Failure ] crbug.com/591099 images/zoomed-img-size.html [ Failure ] crbug.com/591099 inspector-protocol/accessibility/accessibility-ignoredNodes.js [ Crash Failure Timeout ] -crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-buttons.js [ Crash Failure Pass Timeout ] crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-img-figure.js [ Crash Failure Timeout ] crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-input-buttons.js [ Crash Timeout ] crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-input.js [ Crash Failure Timeout ] @@ -6894,7 +6701,6 @@ crbug.com/591099 intersection-observer/edge-inclusive-intersection.html [ Failure ] crbug.com/591099 intersection-observer/remove-element.html [ Failure ] crbug.com/591099 intersection-observer/same-document-root.html [ Crash Failure ] -crbug.com/591099 jquery/offset.html [ Crash Failure ] crbug.com/591099 media/autoplay/document-user-activation.html [ Failure ] crbug.com/591099 media/controls-drag-timebar-rendering.html [ Pass ] crbug.com/591099 media/controls-timeline.html [ Failure ] @@ -6905,7 +6711,6 @@ crbug.com/591099 media/controls/video-overlay-cast-dark-rendering.html [ Failure ] crbug.com/591099 media/controls/video-overlay-cast-light-rendering.html [ Failure ] crbug.com/591099 media/media-document-audio-repaint.html [ Failure ] -crbug.com/591099 media/track/media-element-move-to-new-document-assert.html [ Failure Pass ] crbug.com/591099 media/track/track-cue-rendering-horizontal.html [ Failure Pass ] crbug.com/591099 media/track/track-cue-rendering-tree-is-removed-properly.html [ Crash Failure ] crbug.com/591099 media/track/track-cue-rendering-vertical.html [ Failure Pass ] @@ -7436,13 +7241,10 @@ crbug.com/591099 paint/invalidation/svg/add-background-property-on-root.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/add-outline-property-on-root.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/animated-path-inside-transformed-html.xhtml [ Failure Pass ] -crbug.com/591099 paint/invalidation/svg/animated-svg-as-image-same-image.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/animated-svg-as-image-transformed-offscreen.html [ Failure Pass ] -crbug.com/591099 paint/invalidation/svg/animated-svg-as-image.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1.html [ Failure ] crbug.com/591099 paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2.html [ Failure ] crbug.com/591099 paint/invalidation/svg/embedded-svg-size-changes-no-layout-triggers.html [ Failure ] -crbug.com/591099 paint/invalidation/svg/embedded-svg-size-changes.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/foreign-object-repaint.svg [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/nested-embedded-svg-size-changes-no-layout-triggers-1.html [ Failure ] crbug.com/591099 paint/invalidation/svg/nested-embedded-svg-size-changes-no-layout-triggers-2.html [ Failure ] @@ -7604,7 +7406,6 @@ crbug.com/591099 plugins/mouse-click-plugin-clears-selection.html [ Crash Failure ] crbug.com/591099 plugins/mouse-events-fixedpos.html [ Failure ] crbug.com/591099 plugins/mouse-events.html [ Failure ] -crbug.com/591099 plugins/plugin-document-back-forward.html [ Pass Timeout ] crbug.com/591099 plugins/plugin-initiate-popup-window.html [ Timeout ] crbug.com/591099 plugins/refcount-leaks.html [ Failure ] crbug.com/591099 plugins/tabindex.html [ Crash Failure ] @@ -7831,7 +7632,6 @@ crbug.com/591099 svg/as-image/svg-object-intrinsic-size.html [ Failure ] crbug.com/591099 svg/as-image/svgview-references-use-counters.html [ Failure ] crbug.com/591099 svg/as-list-image/svg-list-image-intrinsic-size-zoom.html [ Failure ] -crbug.com/591099 svg/as-object/embedded-svg-immediate-offsetWidth-query.html [ Failure Pass ] crbug.com/591099 svg/as-object/object-box-sizing-no-width-height.html [ Failure Pass ] crbug.com/591099 svg/as-object/svg-embedded-in-html-in-iframe.html [ Failure Pass Timeout ] crbug.com/591099 svg/canvas/canvas-default-object-sizing.html [ Failure Pass ] @@ -7983,7 +7783,6 @@ crbug.com/591099 svg/parser/whitespace-length-invalid-2.html [ Crash Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-3.html [ Crash Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-4.html [ Crash Timeout ] -crbug.com/591099 svg/parser/whitespace-length.html [ Crash Pass Timeout ] crbug.com/591099 svg/parser/whitespace-number.html [ Crash Timeout ] crbug.com/591099 svg/stroke/empty-path.html [ Failure Pass ] crbug.com/591099 svg/text/bbox-with-glyph-overflow-on-path.html [ Failure ] @@ -8039,14 +7838,12 @@ crbug.com/591099 svg/zoom/text/zoom-hixie-mixed-009.xml [ Failure Pass ] crbug.com/591099 svg/zoom/text/zoom-hixie-rendering-model-004.xhtml [ Failure Pass ] crbug.com/591099 svg/zoom/text/zoom-svg-float-border-padding.xml [ Failure ] -crbug.com/591099 tables/hittesting/filltable-stress.html [ Pass Timeout ] crbug.com/591099 tables/layering/paint-test-layering-1.html [ Failure ] crbug.com/591099 tables/layering/paint-test-layering-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug10633.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug109043.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug110566.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug113235-1.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug113235-2.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug12008.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug126742.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug1271.html [ Failure ] @@ -8054,19 +7851,14 @@ crbug.com/591099 tables/mozilla/bugs/bug131020-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug131020.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug131020_iframe.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug13105.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug133948.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug137388-3.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug149275-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug149275-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug154780.html [ Crash Failure ] -crbug.com/591099 tables/mozilla/bugs/bug16012.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug16252.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug18440.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug18664.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug19061-1.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug19061-2.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug19599.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug196870.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2050.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug20579.html [ Failure ] @@ -8076,16 +7868,11 @@ crbug.com/591099 tables/mozilla/bugs/bug23151.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug23235.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug24200.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug2469.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug2479-3.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug269566.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug27038-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug27038-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2886.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug29326.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2962.html [ Crash Failure ] -crbug.com/591099 tables/mozilla/bugs/bug2981-2.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug30559.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug30692.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug3191.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug32205-2.html [ Crash Failure ] @@ -8093,7 +7880,6 @@ crbug.com/591099 tables/mozilla/bugs/bug3309-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug3309-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug33137.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug3454.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug3977.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4093.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4284.html [ Failure ] @@ -8107,7 +7893,6 @@ crbug.com/591099 tables/mozilla/bugs/bug53690-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug5538.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug55694.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug56563.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug57828-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug57828.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug5798.html [ Failure ] @@ -8116,15 +7901,11 @@ crbug.com/591099 tables/mozilla/bugs/bug6304.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug63785.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug641-2.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug647.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug69187.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug7112-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug7112-2.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug727.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug7342.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug82946-1.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug82946-2.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug83786.html [ Crash Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug8381.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug86708.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug88035-1.html [ Failure ] @@ -8140,29 +7921,16 @@ crbug.com/591099 tables/mozilla/core/captions.html [ Failure ] crbug.com/591099 tables/mozilla/core/cell_heights.html [ Failure ] crbug.com/591099 tables/mozilla/core/col_span.html [ Failure ] -crbug.com/591099 tables/mozilla/core/margins.html [ Failure ] crbug.com/591099 tables/mozilla/core/table_heights.html [ Failure ] -crbug.com/591099 tables/mozilla/marvin/tables_align_center.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/tfoot_char.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_table.xml [ Failure ] -crbug.com/591099 tables/mozilla/marvin/x_table_align_center.xml [ Failure ] crbug.com/591099 tables/mozilla/other/wa_table_thtd_rowspan.html [ Crash Failure ] crbug.com/591099 tables/mozilla/other/wa_table_tr_align.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug1010.html [ Crash Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug104898.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug1055-2.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug1128.html [ Failure Pass ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug14007-2.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug14489.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug19526.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug25707.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-10.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-13.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-14.html [ Crash Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-15.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-16.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-17.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-18.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug33784.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug61042-1.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug61042-2.html [ Failure ] @@ -8173,8 +7941,6 @@ crbug.com/591099 tables/mozilla_expected_failures/bugs/bug89315.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/collapsing_borders/bug41262-5.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/collapsing_borders/bug41262-6.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/core/captions1.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/core/captions2.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/backgr_fixed-bg.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom.html [ Failure ] @@ -8256,7 +8022,6 @@ crbug.com/591099 virtual/feature-policy/http/tests/feature-policy/payment-enabledforall.php [ Pass ] crbug.com/591099 virtual/gpu-rasterization/images/12-55.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/182.html [ Crash Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/2-comp.html [ Crash Failure Pass ] crbug.com/591099 virtual/gpu-rasterization/images/2-dht.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/23-55.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/55.html [ Crash Failure ] @@ -8275,7 +8040,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/color-profile-image-pseudo-content.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-image-shape.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-image.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/color-profile-layer-filter.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/color-profile-layer-filter.html [ Crash Failure Timeout ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-layer.html [ Crash Failure Timeout ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-mask-image-svg.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-munsell-adobe-to-srgb.html [ Failure ] @@ -8343,18 +8108,18 @@ crbug.com/591099 virtual/gpu-rasterization/images/sprite-no-bleed.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/webp-flip.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/zoomed-img-size.html [ Crash Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-2d-imageSmoothing-in-worker.html [ Timeout ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-createImageBitmap-colorClamping.html [ Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-createImageBitmap-drawImage.html [ Crash Timeout ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-drawImage-animated-images.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-drawImage-video-imageSmoothingEnabled.html [ Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-ellipse-connecting-line.html [ Failure Pass ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingQuality.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-measure-bidi-text.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-render-layer.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-transforms-during-path.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/fill-stroke-clip-reset-path.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/fillrect_gradient.html [ Failure ] -crbug.com/591099 virtual/gpu/fast/canvas/image-object-in-canvas.html [ Crash Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/patternfill-repeat.html [ Failure ] crbug.com/591099 virtual/high-contrast-mode/paint/high-contrast-mode/image-filter-all/text-on-backgrounds.html [ Crash Failure ] crbug.com/591099 virtual/layout_ng/ [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/SlowTests b/third_party/WebKit/LayoutTests/SlowTests index dd3efc8b..934ace0 100644 --- a/third_party/WebKit/LayoutTests/SlowTests +++ b/third_party/WebKit/LayoutTests/SlowTests
@@ -375,75 +375,70 @@ crbug.com/646528 compositing/lots-of-img-layers-with-opacity.html [ Slow ] # SwiftShader slow tests -crbug.com/726075 [ Win Linux ] animations/svg/animated-filter-svg-element.html [ Slow ] -crbug.com/726075 [ Win Linux ] compositing/culling/filter-occlusion-blur.html [ Slow ] -crbug.com/726075 [ Win Linux ] compositing/masks/mask-with-added-filters.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/blending/mix-blend-mode-with-filters.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-all-on-background-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-blur-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-brightness-clamping-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-combined-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-drop-shadow-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-reference-colorspace-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-reference-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-reference-ordering-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-reference-subregion-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/effect-reference-zoom-hw.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/filter-change-repaint.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/filter-repaint-composited-fallback-crash.html [ Slow ] -crbug.com/726075 [ Win Linux ] css3/filters/filter-repaint-composited-fallback.html [ Slow ] -crbug.com/726075 [ Win Linux ] images/color-profile-layer-filter.html [ Slow ] -crbug.com/726075 [ Win Linux ] paint/invalidation/filter-repaint-accelerated-child-with-filter-child.html [ Slow ] -crbug.com/726075 [ Win Linux ] paint/invalidation/filter-repaint-accelerated-on-accelerated-filter.html [ Slow ] -crbug.com/726075 [ Win Linux ] paint/invalidation/filter-repaint-on-accelerated-layer.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/exotic-color-space/images/color-profile-layer-filter.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu-rasterization/images/color-profile-mask-image-svg.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu-rasterization/images/color-profile-image-filter-all.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/OffscreenCanvas-filter-in-worker.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/OffscreenCanvas-filter.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-clipping.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-color-over-color.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-color-over-image.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-color-over-gradient.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-color-over-pattern.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-fill-style.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-global-alpha.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-color.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-image.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-pattern.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-gradient.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-color.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-gradient.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-image.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-pattern.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-color.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-gradient.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-image.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-pattern.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-text.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-blending-transforms.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-composite-transformclip.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-composite-video-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-fillPath-alpha-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-fillPath-gradient-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-fillPath-pattern-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-filter-origin-clean.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-filter-modified-save-restore.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-filter-modified.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-filter-removed.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-scale-drawImage-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-scale-strokePath-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/gpu/fast/canvas/canvas-strokePath-alpha-shadow.html [ Slow ] -crbug.com/726075 [ Win Linux ] virtual/threaded/animations/svg/animated-filter-svg-element.html [ Slow ] +crbug.com/726075 [ Win ] animations/svg/animated-filter-svg-element.html [ Slow ] +crbug.com/726075 [ Win ] compositing/masks/mask-with-added-filters.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-all-on-background-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-blur-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-brightness-clamping-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-combined-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-drop-shadow-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-reference-colorspace-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-reference-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-reference-ordering-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-reference-subregion-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/effect-reference-zoom-hw.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/filter-change-repaint.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/filter-repaint-composited-fallback-crash.html [ Slow ] +crbug.com/726075 [ Win ] css3/filters/filter-repaint-composited-fallback.html [ Slow ] +crbug.com/726075 [ Win ] images/color-profile-layer-filter.html [ Slow ] +crbug.com/726075 [ Win ] paint/invalidation/filter-repaint-accelerated-on-accelerated-filter.html [ Slow ] +crbug.com/726075 [ Win ] virtual/exotic-color-space/images/color-profile-layer-filter.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu-rasterization/images/color-profile-image-filter-all.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu-rasterization/images/color-profile-mask-image-svg.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/OffscreenCanvas-filter-in-worker.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/OffscreenCanvas-filter.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-color-over-pattern.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-image.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-pattern.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-gradient.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-gradient.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-image.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-pattern.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-composite-video-shadow.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-fillPath-alpha-shadow.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-fillPath-gradient-shadow.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-fillPath-pattern-shadow.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-filter-origin-clean.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-filter-removed.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-scale-strokePath-shadow.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Slow ] +crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-strokePath-alpha-shadow.html [ Slow ] -crbug.com/726075 [ Linux ] media/color-profile-video-seek-filter.html [ Slow ] -crbug.com/726075 [ Linux ] shapedetection/detection-HTMLVideoElement.html [ Slow ] -crbug.com/726075 [ Linux ] virtual/gpu/fast/canvas/canvas-strokeRect-alpha-shadow.html [ Slow ] - -crbug.com/726075 [ Linux Debug ] virtual/gpu/fast/canvas/canvas-drawImage-live-video.html [ Slow ] +crbug.com/726075 [ Win Debug ] compositing/culling/filter-occlusion-blur.html [ Slow ] +crbug.com/726075 [ Win Debug ] css3/blending/mix-blend-mode-with-filters.html [ Slow ] +crbug.com/726075 [ Win Debug ] paint/invalidation/filter-repaint-accelerated-child-with-filter-child.html [ Slow ] +crbug.com/726075 [ Win Debug ] paint/invalidation/filter-repaint-on-accelerated-layer.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-clipping.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-color-over-color.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-color-over-gradient.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-color-over-image.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-fill-style.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-global-alpha.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-color.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-image-over-color.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-image-over-gradient.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-image-over-image.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-image-over-pattern.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-color.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-shadow.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-text.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-blending-transforms.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-composite-transformclip.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-filter-modified-save-restore.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-filter-modified.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/gpu/fast/canvas/canvas-scale-drawImage-shadow.html [ Slow ] +crbug.com/726075 [ Win Debug ] virtual/threaded/animations/svg/animated-filter-svg-element.html [ Slow ] # IDB Observer tests require multiple browsing contexts/workers interacting with # IndexedDB, which can be slow.
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index dc067f1..feccf982 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -92,14 +92,13 @@ # The failure in the next line is due to virtual/gpu bots using osmesa # Under osmesa, skia's filter quality doesn't work correctly. This test is expected to pass # when we swith to swiftshader. -crbug.com/549742 [ Mac ] virtual/gpu/fast/canvas/canvas-drawImage-video-imageSmoothingEnabled.html [ Failure ] +crbug.com/549742 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-drawImage-video-imageSmoothingEnabled.html [ Failure ] # SwiftShader Failures -crbug.com/726075 [ Win Linux ] compositing/3d-cube.html [ Failure ] +crbug.com/726075 [ Win ] compositing/3d-cube.html [ Failure ] crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/2d.fillText.gradient.html [ Failure ] -crbug.com/726075 [ Win Linux ] external/wpt/webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused.html [ Failure ] -crbug.com/726075 [ Win Linux ] virtual/exotic-color-space/images/color-profile-border-fade.html [ Failure ] -crbug.com/726075 [ Linux ] shapedetection/detection-HTMLVideoElement.html [ Timeout ] +crbug.com/726075 [ Win ] external/wpt/webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused.html [ Failure ] +crbug.com/726075 [ Win Debug ] virtual/exotic-color-space/images/color-profile-border-fade.html [ Failure ] # Fails because the manual test hasn't been automated yet crbug.com/762054 external/wpt/cssom-view/scrollBoundaryBehavior-manual.html [ Skip ] @@ -1859,11 +1858,6 @@ crbug.com/626703 [ Win10 ] external/wpt/preload/delaying-onload-link-preload-after-discovery.html [ Timeout ] crbug.com/626703 external/wpt/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm [ Failure ] crbug.com/626703 external/wpt/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm [ Failure ] -crbug.com/626703 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html [ Failure ] -crbug.com/626703 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html [ Failure ] -crbug.com/626703 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html [ Failure ] -crbug.com/626703 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html [ Failure ] -crbug.com/626703 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html [ Failure ] crbug.com/626703 [ Mac ] external/wpt/2dcontext/the-canvas-state/canvas_state_restore_001.htm [ Failure ] crbug.com/626703 external/wpt/compat/webkit-text-fill-color-property-005.html [ Failure ] crbug.com/626703 external/wpt/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html [ Timeout ] @@ -2209,16 +2203,6 @@ # These external tests fail after turning on color correct rendering for canvas # since they use a non-SRGB source image. -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html [ Failure ] -crbug.com/763933 external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html [ Failure ] crbug.com/763933 virtual/display_list_2d_canvas/fast/canvas/canvas-pattern-no-repeat-with-transformations.html [ Failure ] crbug.com/763933 virtual/display_list_2d_canvas/fast/canvas/image-object-in-canvas.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/compositing/culling/filter-occlusion-blur-expected.png b/third_party/WebKit/LayoutTests/compositing/culling/filter-occlusion-blur-expected.png index 46428a3..1df89a6 100644 --- a/third_party/WebKit/LayoutTests/compositing/culling/filter-occlusion-blur-expected.png +++ b/third_party/WebKit/LayoutTests/compositing/culling/filter-occlusion-blur-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/css3/filters/effect-blur-hw-expected.png b/third_party/WebKit/LayoutTests/css3/filters/effect-blur-hw-expected.png index c0ab7c9..f92bdbb 100644 --- a/third_party/WebKit/LayoutTests/css3/filters/effect-blur-hw-expected.png +++ b/third_party/WebKit/LayoutTests/css3/filters/effect-blur-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-crash-expected.png b/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-crash-expected.png index 85fde79..4aff4f1 100644 --- a/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-crash-expected.png +++ b/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-crash-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-expected.png b/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-expected.png index 85fde79..4aff4f1 100644 --- a/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-expected.png +++ b/third_party/WebKit/LayoutTests/css3/filters/filter-repaint-composited-fallback-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/external/PRESUBMIT.py b/third_party/WebKit/LayoutTests/external/PRESUBMIT.py index e1c225a..7f297eaa 100644 --- a/third_party/WebKit/LayoutTests/external/PRESUBMIT.py +++ b/third_party/WebKit/LayoutTests/external/PRESUBMIT.py
@@ -14,7 +14,7 @@ wpt_path = input_api.os_path.join(input_api.PresubmitLocalPath(), 'wpt') linter_path = input_api.os_path.join( input_api.PresubmitLocalPath(), '..', '..', 'Tools', 'Scripts', - 'webkitpy', 'thirdparty', 'wpt', 'wpt', 'lint') + 'webkitpy', 'thirdparty', 'wpt', 'wpt', 'wpt') paths_in_wpt = [] for f in input_api.AffectedFiles(): @@ -31,6 +31,7 @@ args = [ input_api.python_executable, linter_path, + 'lint', '--repo-root=%s' % wpt_path, '--ignore-glob=*-expected.txt', ] + paths_in_wpt
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json index f51e020c..779a4e1 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -254033,7 +254033,7 @@ "testharness" ], "fetch/api/cors/cors-preflight-star.any-expected.txt": [ - "d527ea318ff61b387ab4b6d26701edb399eaba8d", + "82d5b67079d5772fed201c91f43fbbbb33445625", "support" ], "fetch/api/cors/cors-preflight-star.any.js": [ @@ -254041,7 +254041,7 @@ "testharness" ], "fetch/api/cors/cors-preflight-star.any.worker-expected.txt": [ - "d527ea318ff61b387ab4b6d26701edb399eaba8d", + "82d5b67079d5772fed201c91f43fbbbb33445625", "support" ], "fetch/api/cors/cors-preflight-status.any.js": [
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2-srgb.png b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2-srgb.png deleted file mode 100644 index 9be3156..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2-srgb.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2.png b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2.png index 276791c..9be3156 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2.png +++ b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/2x2.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html new file mode 100644 index 0000000..36bd085 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html
@@ -0,0 +1,203 @@ +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<canvas id="dest" height="100" width="100"></canvas> + +<script> +var sourceCanvasWidth = sourceCanvasHeight = 50; +var destCanvasWidth = destCanvasHeight = 100; +var blueRect = {x: 0, y: 0, w: 50, h: 50}; +var blackRect = {x: 5, y: 5, w: 40, h: 40}; +var redPixel = [255, 0, 0, 255]; +var bluePixel = [0, 0, 255, 255]; +var blackPixel = [0, 0, 0, 255]; +var transparentBlackPixel = [0, 0, 0, 0]; + +var destCanvas = document.getElementById('dest'); +var destCtx = destCanvas.getContext('2d'); +destCtx.imageSmoothingEnabled = false; + +function checkPixel(location, expected) { + var actual = destCtx.getImageData(location[0], location[1], 1, 1).data; + assert_array_equals(actual, expected); +} + +function PreparePixelTests(blueCheck, blackCheck, redCheck, testDescription) { + var pixelTests = []; + for (var i = 0; i < blueCheck.length; i++) { + var message = testDescription + 'Pixel ' + blueCheck[i][0] + ',' + blueCheck[i][1] + ' should be blue.'; + pixelTests.push([message, blueCheck[i], bluePixel]); + } + for (var i = 0; i < blackCheck.length; i++) { + var message = testDescription + 'Pixel ' + blackCheck[i][0] + ',' + blackCheck[i][1] + ' should be black.'; + pixelTests.push([message, blackCheck[i], blackPixel]); + } + for (var i = 0; i < redCheck.length; i++) { + var message = testDescription + 'Pixel ' + redCheck[i][0] + ',' + redCheck[i][1] + ' should be red.'; + pixelTests.push([message, redCheck[i], redPixel]); + } + pixelTests.push([testDescription + 'Pixel outside canvas should be transparent black.\n', [100, 100], transparentBlackPixel]); + return pixelTests; +} + +function drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription) { + destCtx.fillStyle = 'red'; + destCtx.fillRect(0, 0, destCanvasWidth, destCanvasHeight); + + var sourceCanvas = document.createElement('canvas'); + sourceCanvas.width = sourceCanvasWidth; + sourceCanvas.height = sourceCanvasHeight; + var sourceCtx = sourceCanvas.getContext('2d'); + sourceCtx.fillStyle = 'blue'; + sourceCtx.fillRect(blueRect.x, blueRect.y, blueRect.w, blueRect.h); + sourceCtx.fillStyle = 'black'; + sourceCtx.fillRect(blackRect.x, blackRect.y, blackRect.w, blackRect.h); + if (typeof sourceRect.x !== 'undefined') + destCtx.drawImage(sourceCanvas, sourceRect.x, sourceRect.y, sourceRect.w, sourceRect.h, + destRect.x, destRect.y, destRect.w, destRect.h); + else if (typeof destRect.w !== 'undefined') + destCtx.drawImage(sourceCanvas, destRect.x, destRect.y, destRect.w, destRect.h); + else + destCtx.drawImage(sourceCanvas, destRect.x, destRect.y); + var pixelTests = PreparePixelTests(blueCheck, blackCheck, redCheck, testDescription); + generate_tests(checkPixel, pixelTests); +} + +var testDescription; +var sourceRect = {}, destRect = {}; +var blueCheck, blackCheck, redCheck; + +// 2 arguments, the dest origin is 0,0 +// The source canvas will be copied to the 0,0 position of the destination canvas +testDescription = 'Test scenario 1: dx = 0, dy = 0 --- '; +destRect = {x: 0, y: 0}; +blueCheck = [[0,0], [0,49], [49,0], [49,49]]; +blackCheck = [[5,5], [5,44], [44,5], [44,44]]; +redCheck = [[50,0], [0,50], [50,50], [99,99]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// 2 arguments, the dest origin is not 0,0 +// The source canvas will copied to the 25, 25 position of the destination canvas +testDescription = 'Test scenario 2: dx = 25, dy = 25 --- '; +destRect = {x: 25, y: 25}; +blueCheck = [[25,25], [25,74], [74,25], [74,74]]; +blackCheck = [[30,30], [30,69], [69,30], [69,69]]; +redCheck = [[24,24], [24,75], [75,24], [75,75]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// 4 arguments, the source origin is not 0,0, the dest size is provided +// The source canvas will copied to the 50, 50 position of the destination canvas and +// on an area of 50x50 pixels +testDescription = 'Test scenario 3: dx = 50, dy = 50, dw = 50, dh = 50 --- '; +destRect = {x: 50, y: 50, w: 50, h: 50}; +blueCheck = [[50,50], [50,99], [99,50], [99,99]]; +blackCheck = [[55,55], [55,94], [94,55], [94,94]]; +redCheck = [[0,0], [49,49], [49,99], [99,49]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// 4 arguments, the dest origin is not 0,0 and the dest size is provided but +// does not match the size of the source. The image will be distorted +// The source canvas will copied to the 50,50 position of the destination canvas +// and it will be shrunk to a and area of 20x20 +testDescription = 'Test scenario 4: dx = 50, dy = 50, dw = 20, dh = 20 --- '; +destRect = {x: 50, y: 50, w: 20, h: 20}; +blueCheck = [[50,50], [50,69], [69,50], [69,69]]; +blackCheck = [[52,52], [52,67], [67,52], [67,67]]; +redCheck = [[49,49], [49,70], [70,49], [70,70]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// The source canvas will copied to the 50,50 position of the destination canvas +// over an area of 50x25 pixels +// The copied image will be distorted along the x axis +testDescription = 'Test scenario 5: dx = 50, dy = 50, dw = 50, dh = 20 --- '; +destRect = {x: 50, y: 50, w: 50, h: 20}; +blueCheck = [[50,50], [50,69], [99,50], [99,69]]; +blackCheck = [[55,52], [55,67], [94,52], [94,67]]; +redCheck = [[49,49], [49, 69], [99,49], [99,70]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// 8 arguments, both destination and source origins are 0, 0 +// An area of 25x25 pixels of the source image will be copied to +// an area of 25x25 pixels of the destination canvas +// destCtx.drawImage(sourceCanvas, 0, 0, 25, 25, 0, 0, 25, 25); +testDescription = 'Test scenario 6: sx = 0, sy = 0, sw = 25, sh = 25, dx = 0, dy = 0, dw = 25, dh = 25 --- '; +sourceRect = {x: 0, y: 0, w: 25, h: 25}; +destRect = {x: 0, y: 0, w: 25, h: 25}; +blueCheck = [[0,0], [4,4], [0,24], [24,0]]; +blackCheck = [[5,5], [5,24], [24,5], [24,24]]; +redCheck = [[25,25], [25, 99], [99,25], [99,99]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// 8 arguments the destination origin is not 0,0 +// An area of 25x25 pixels of the source image will be copied to +// an area of 25x25 pixels of the destination canvas in the position 25,25 +testDescription = 'Test scenario 7: sx = 0, sy = 0, sw = 25, sh = 25, dx = 25, dy = 25, dw = 25, dh = 25 --- '; +sourceRect = {x: 0, y: 0, w: 25, h: 25}; +destRect = {x: 25, y: 25, w: 25, h: 25}; +blueCheck = [[25,25], [25,49], [49,25], [29,29]]; +blackCheck = [[30,30], [30,49], [49,30], [49,49]]; +redCheck = [[24,24], [24, 50], [50,24], [50,50]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// The source rectangle overflows the source image +// The source area is clipped to fit the source image +// and the destination are is clipped in the same proportion +testDescription = 'Test scenario 8: sx = 25, sy = 25, sw = 50, sh = 50, dx = 0, dy = 0, dw = 50, dh = 50 --- '; +sourceRect = {x: 25, y: 25, w: 50, h: 50}; +destRect = {x: 0, y: 0, w: 50, h: 50}; +blueCheck = [[0,20], [20,0], [20,20], [24,24]]; +blackCheck = [[0,0], [0,19], [19,0], [19,19]]; +redCheck = [[0,25], [25, 0], [25,25], [99,99]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// The destination rectangle has negative width and height. When the source +// rectangle is outside the source image, the source rectangle must be clipped +// to the source image and the destination rectangle must be clipped in the same +// proportion. +testDescription = 'Test scenario 9: sx = 0, sy = 0, sw = 50, sh = 50, dx = 100, dy = 100, dw = -50, dh = -50 --- '; +sourceRect = {x: 0, y: 0, w: 50, h: 50}; +destRect = {x: 100, y: 100, w: -50, h: -50}; +blueCheck = [[50,50], [50,99], [99,50], [99,99]]; +blackCheck = [[55,55], [55,94], [94,55], [94,94]]; +redCheck = [[0,0], [49,49], [0,99], [99,0]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// The destination rectangle is larger than the destination canvas +// When the destination rectangle is outside the destination image (the scratch bitmap), +// the pixels that land outside the scratch bitmap are discarded, +// as if the destination was an infinite canvas whose rendering was +// clipped to the dimensions of the scratch bitmap. +testDescription = 'Test scenario 10: sx = 0, sy = 0, sw = 50, sh = 50, dx = 0, dy = 0, dw = 200, dh = 200 --- '; +sourceRect = {x: 0, y: 0, w: 50, h: 50}; +destRect = {x: 0, y: 0, w: 200, h: 200}; +blueCheck = [[0,0], [0,99], [99,0], [19,19]]; +blackCheck = [[20,20], [20,99], [99,20], [99,99]]; +redCheck = []; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// The source rectangle is larger than the source canvas +// The source area is clipped to fit the source image +// and the destination are is clipped in the same proportion +testDescription = 'Test scenario 11: sx = 0, sy = 0, sw = 100, sh = 100, dx = 0, dy = 0, dw = 50, dh = 50 --- '; +sourceRect = {x: 0, y: 0, w: 100, h: 100}; +destRect = {x: 0, y: 0, w: 50, h: 50}; +blueCheck = [[0,0], [1,1], [23,23], [24,24]]; +blackCheck = [[3,3], [3,21], [21,3], [21,21]]; +redCheck = [[0,25], [25, 0], [25,25], [99,99]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +// Negative coordinates of the source rectangle. +// The source area is clipped to fit the source image and the destination area +// is clipped in the same proportion. In this specific test: +// - source is clipped by 20 from top and left. +// - destination will get proportionally clipped by 50 from top and left as we +// are scaling the source image 2.5 times. +// - the rect will be drawn from 70,70 to 100,100. +testDescription = 'Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- '; +sourceRect = {x: -20, y: -20, w: 50, h: 50}; +destRect = {x: 20, y: 20, w: 125, h: 125}; +blueCheck = [[70,70], [70,99], [99,70], [82,82]]; +blackCheck = [[84,84], [84,99], [99,84], [99,99]]; +redCheck = [[0,69], [69, 0], [69,69]]; +drawCanvasOnCanvasUsingDrawImage(sourceRect, destRect, blueCheck, blackCheck, redCheck, testDescription); + +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html deleted file mode 100644 index 871e279..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html +++ /dev/null
@@ -1,34 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_1_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; -// 2 arguments, the dest origin is 0,0 -// The source canvas will copied to the 0,0 position of the destination canvas -destCtx.drawImage(sourceCanvas, 0, 0); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html deleted file mode 100644 index 14e15ffc..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html +++ /dev/null
@@ -1,38 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_10_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The destination rectangle is larger than the destination canvas -// When the destination rectangle is outside the destination image (the scratch bitmap), -// the pixels that land outside the scratch bitmap are discarded, -// as if the destination was an infinite canvas whose rendering was -// clipped to the dimensions of the scratch bitmap. -destCtx.drawImage(sourceCanvas, 0, 0, 50, 50, 0, 0, 200, 200); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10_ref.html deleted file mode 100644 index cd05233b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(0, 0, 100, 100); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(20, 20, 80, 80); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html deleted file mode 100644 index e06dfc0..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_11_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The source rectangle is larger than the source canvas -// The source area is clipped to fit the source image -// and the destination are is clipped in the same proportion -destCtx.drawImage(sourceCanvas, 0, 0, 100, 100, 0, 0, 50, 50); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11_ref.html deleted file mode 100644 index 970f626..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(0, 0, 25, 25); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(2, 2, 20, 20); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html deleted file mode 100644 index 47debc7..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_12_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// Negative coordinates of the source rectangle -// The source area is clipped to fit the source image -// and the destination area is clipped in the same proportion -destCtx.drawImage(sourceCanvas, -25, -25, 50, 50, 0, 0, 50, 50); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12_ref.html deleted file mode 100644 index 190f74f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(0, 0, 25, 25); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(5, 5, 20, 20); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1_ref.html deleted file mode 100644 index d0bac45..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1_ref.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - canvas { - display: block; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var sourceWidth = 50; -var sourceHeight = 50; -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(0, 0, sourceWidth, sourceHeight); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(5, 5, 40, 40); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html deleted file mode 100644 index b169d374..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html +++ /dev/null
@@ -1,35 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_2_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// 2 arguments, the dest origin is not 0,0 -// The source canvas will copied to the 25, 25 position of the destination canvas -destCtx.drawImage(sourceCanvas, 25, 25); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2_ref.html deleted file mode 100644 index 72ec289..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2_ref.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - canvas { - display: block; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var sourceWidth = 50; -var sourceHeight = 50; -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(25, 25, sourceWidth, sourceHeight); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(30, 30, 40, 40); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html deleted file mode 100644 index e59e5d3..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_3_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// 4 arguments, the source origin is not 0,0, the dest size is provided -// The source canvas will copied to the 50, 50 position of the destination canvas and -// on an area of 50x50 pixels -destCtx.drawImage(sourceCanvas, 50, 50, 50, 50); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3_ref.html deleted file mode 100644 index 3e153f1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3_ref.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - canvas { - display: block; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var sourceWidth = 50; -var sourceHeight = 50; -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(50, 50, sourceWidth, sourceHeight); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(55, 55, 40, 40); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html deleted file mode 100644 index f3dd84e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html +++ /dev/null
@@ -1,37 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_4_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// 4 arguments, the dest origin is not 0,0 and the dest size is provided but -// does not match the size of the source. The image will be distorted -// The source canvas will copied to the 50,50 position of the destination canvas -// and it will be shrunk to a and area of 20x20 -destCtx.drawImage(sourceCanvas, 50, 50, 20, 20); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4_ref.html deleted file mode 100644 index 9a8cc99..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(50, 50, 20, 20); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(52, 52, 16, 16); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html deleted file mode 100644 index 2190847..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_5_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The source canvas will copied to the 50,50 position of the destination canvas -// over an area of 50x25 pixels -// The copied image will be distorted along the x axis -destCtx.drawImage(sourceCanvas, 50, 50, 50, 20); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5_ref.html deleted file mode 100644 index 47dd63e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(50, 50, 50, 20); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(55, 52, 40, 16); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html deleted file mode 100644 index 2ce48d8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_6_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// 8 arguments, both destination and source origins are 0, 0 -// An area of 25x25 pixels of the source image will be copied to -// an area of 25x25 pixels of the destination canvas -destCtx.drawImage(sourceCanvas, 0, 0, 25, 25, 0, 0, 25, 25); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6_ref.html deleted file mode 100644 index 190f74f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(0, 0, 25, 25); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(5, 5, 20, 20); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html deleted file mode 100644 index 1952909..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_7_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// 8 arguments the destination origin is not 0,0 -// An area of 25x25 pixels of the source image will be copied to -// an area of 25x25 pixels of the destination canvas in the position 25,25 -destCtx.drawImage(sourceCanvas, 0, 0, 25, 25, 25, 25, 25, 25); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7_ref.html deleted file mode 100644 index 51b2b27..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(25, 25, 25, 25); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(30, 30, 20, 20); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html deleted file mode 100644 index c47a5b5..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html +++ /dev/null
@@ -1,36 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_8_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The source rectangle overflows the source image -// The source area is clipped to fit the source image -// and the destination are is clipped in the same proportion -destCtx.drawImage(sourceCanvas, 25, 25, 50, 50, 0, 0, 50, 50); - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8_ref.html deleted file mode 100644 index 652bf6e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8_ref.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.fillStyle = "#00FFFF"; -destCtx.fillRect(0, 0, 25, 25); -destCtx.fillStyle = "#000000"; -destCtx.fillRect(0, 0, 20, 20); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html deleted file mode 100644 index 8b48e64..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html +++ /dev/null
@@ -1,43 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_canvas_9_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 50; -var sourceHeight = 50; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceCanvas = document.createElement('canvas'); -sourceCanvas.width = sourceWidth; -sourceCanvas.height = sourceHeight; - -var sourceCtx = sourceCanvas.getContext('2d'); -sourceCtx.fillStyle = "#00FFFF"; -sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); -sourceCtx.fillStyle = "#000000"; -sourceCtx.fillRect(5,5,40,40); - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The destination rectangle has negative width and height -// An exception is raised and nothing is drawn -try { - destCtx.drawImage(sourceCanvas, 25, 50, 50, 0, 0, -100, -100); - // It makes the test fail if the exception is not thrown - destCtx.fillStyle = "#0000FF"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -} -catch(err) { -} - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9_ref.html deleted file mode 100644 index b9be7e5..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9_ref.html +++ /dev/null
@@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } -</style> -<body> -<canvas id="dest" height="100" width="100"></canvas> -<script type="text/javascript"> - -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html new file mode 100644 index 0000000..a94cfdcd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html
@@ -0,0 +1,268 @@ +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<canvas id="dest" height="100" width="100"></canvas> + +<script> +var sourceWidth = sourceHeight = 100; +var destCanvasWidth = destCanvasHeight = 100; +var redPixel = [255, 0, 0, 255]; +var lightPixel = [253, 140, 245, 255]; +var grayPixel = [41, 122, 115, 255]; +var transparentBlackPixel = [0, 0, 0, 0]; + +var destCanvas = document.getElementById('dest'); +var sourceImg = document.createElement('img'); +sourceImg.src = '../2x2.png'; +sourceImg.width = sourceWidth; +sourceImg.height = sourceHeight; +var destCtx = destCanvas.getContext('2d'); +destCtx.imageSmoothingEnabled = false; + +function checkPixel(location, expected) { + var actual = destCtx.getImageData(location[0], location[1], 1, 1).data; + assert_array_equals(actual, expected); +} + +function PreparePixelTests(lightPixelCheck, grayPixelCheck, redCheck, testDescription) { + var pixelTests = []; + for (var i = 0; i < lightPixelCheck.length; i++) { + var message = testDescription + 'Pixel ' + lightPixelCheck[i][0] + ',' + lightPixelCheck[i][1] + ' should be light purple.'; + pixelTests.push([message, lightPixelCheck[i], lightPixel]); + } + for (var i = 0; i < grayPixelCheck.length; i++) { + var message = testDescription + 'Pixel ' + grayPixelCheck[i][0] + ',' + grayPixelCheck[i][1] + ' should be gray.'; + pixelTests.push([message, grayPixelCheck[i], grayPixel]); + } + for (var i = 0; i < redCheck.length; i++) { + var message = testDescription + 'Pixel ' + redCheck[i][0] + ',' + redCheck[i][1] + ' should be red.'; + pixelTests.push([message, redCheck[i], redPixel]); + } + pixelTests.push([testDescription + 'Pixel outside canvas should be transparent black.\n', [100, 100], transparentBlackPixel]); + return pixelTests; +} + +function drawCustomImageOnCanvas(sourceImage, sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription) { + destCtx.fillStyle = 'red'; + destCtx.fillRect(0, 0, destCanvasWidth, destCanvasHeight); + if (typeof sourceRect.x !== 'undefined') + destCtx.drawImage(sourceImage, sourceRect.x, sourceRect.y, sourceRect.w, sourceRect.h, + destRect.x, destRect.y, destRect.w, destRect.h); + else if (typeof destRect.w !== 'undefined') + destCtx.drawImage(sourceImage, destRect.x, destRect.y, destRect.w, destRect.h); + else + destCtx.drawImage(sourceImage, destRect.x, destRect.y); + var pixelTests = PreparePixelTests(lightPixelCheck, grayPixelCheck, redCheck, testDescription); + generate_tests(checkPixel, pixelTests); +} + +function drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription) { + drawCustomImageOnCanvas(sourceImg, sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +var testDescription; +var sourceRect = {}, destRect = {}; +var lightPixelCheck, grayPixelCheck, redCheck; + +// 2 arguments, the dest origin is 0,0 +// The source image will copied to the 0,0 position of the destination canvas +function runDrawImageTest_dX0_dY0() { + testDescription = 'Test scenario 1: dx = 0, dy = 0 --- '; + destRect = {x: 0, y: 0}; + lightPixelCheck = [[0,0], [0,99], [99,0], [99,99]]; + grayPixelCheck = []; + redCheck = []; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// 2 arguments, the dest origin is not 0,0 +// The source canvas will copied to the 25,25 position of the destination canvas +function runDrawImageTest_dX25_dY25() { + testDescription = 'Test scenario 2: dx = 25, dy = 25 --- '; + destRect = {x: 25, y: 25}; + lightPixelCheck = [[25,25], [25,99], [99,25], [99,99]]; + grayPixelCheck = []; + redCheck = [[0,0], [24,24], [0,25], [25,0], [0,99], [99,0]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// 4 arguments, the source origin is not 0,0, the dest size is provided +// The source canvas will copied to the 50, 50 position of the destination canvas and +// on an area of 50x50 pixels +function runDrawImageTest_dX50_dY50_dW50_dH50() { + testDescription = 'Test scenario 3: dx = 50, dy = 50, dw = 50, dh = 50 --- '; + destRect = {x: 50, y: 50, w: 50, h: 50}; + lightPixelCheck = [[50,50], [99,99]]; + grayPixelCheck = [[50,99], [99,50]]; + redCheck = [[0,0], [49,49], [0,50], [50,0], [0,99], [99,0]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// 4 arguments, the dest origin is not 0,0 and the dest size is provided but +// does not match the size of the source. The image will be distorted +// The source canvas will copied to the 50,50 position of the destination canvas +// and it will be shrunk to a and area of 16x16 +function runDrawImageTest_dX50_dY50_dW16_dH16() { + testDescription = 'Test scenario 4: dx = 50, dy = 50, dw = 16, dh = 16 --- '; + destRect = {x: 50, y: 50, w: 16, h: 16}; + lightPixelCheck = [[50,50], [65,65]]; + grayPixelCheck = [[50,65], [65,50]]; + redCheck = [[0,0], [49,49], [49,66], [66,49], [66,66], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// The source canvas will copied to the 50,50 position of the destination canvas +// over an area of 64x32 pixels +// The copied image will be distorted along the x axis +function runDrawImageTest_dX50_dY50_dW64_dH32() { + testDescription = 'Test scenario 5: dx = 50, dy = 50, dw = 64, dh = 32 --- '; + destRect = {x: 50, y: 50, w: 64, h: 32}; + lightPixelCheck = [[50,50], [99,81]]; + grayPixelCheck = [[50,81], [99,50]]; + redCheck = [[0,0], [49,49], [49,82], [99,49], [99,82], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// 8 arguments, both destination and source origins are 0, 0 +// An area of 32x32 pixels of the source image will be copied to +// an area of 32x32 pixels of the destination canvas +function runDrawImageTest_sX0_sY0_sW32_sH32_dX0_dY0_dW32_dH32() { + testDescription = 'Test scenario 6: sx = 0, sy = 0, sw = 32, sh = 32, dx = 0, dy = 0, dw = 32, dh = 32 --- '; + sourceRect = {x: 0, y: 0, w: 32, h: 32}; + destRect = {x: 0, y: 0, w: 32, h: 32}; + lightPixelCheck = [[0,0], [0,31], [31,0], [31,31]]; + grayPixelCheck = []; + redCheck = [[0,32], [32,0], [32,32], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// 8 arguments the destination origin is not 0,0 +// An area of 32x32 pixels of the source image will be copied to +// an area of 32x32 pixels of the destination canvas in the position 32,32 +function runDrawImageTest_sX0_sY0_sW32_sH32_dX32_dY32_dW32_dH32() { + testDescription = 'Test scenario 7: sx = 0, sy = 0, sw = 32, sh = 32, dx = 32, dy = 32, dw = 32, dh = 32 --- '; + sourceRect = {x: 0, y: 0, w: 32, h: 32}; + destRect = {x: 32, y: 32, w: 32, h: 32}; + lightPixelCheck = [[32,32], [32,63], [63,32], [63,63]]; + grayPixelCheck = []; + redCheck = [[0,0], [31,31], [31,64], [64,31], [64,64], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// The source rectangle overflows the source image +// The source area is clipped to fit the source image +// and the destination are is clipped in the same proportion +function runDrawImageTest_sX32_sY32_sW32_sH32_dX0_dY0_dW32_dH32() { + testDescription = 'Test scenario 8: sx = 32, sy = 32, sw = 32, sh = 32, dx = 0, dy = 0, dw = 32, dh = 32 --- '; + sourceRect = {x: 32, y: 32, w: 32, h: 32}; + destRect = {x: 0, y: 0, w: 32, h: 32}; + lightPixelCheck = [[0,0], [0,31], [31,0], [31,31]]; + grayPixelCheck = []; + redCheck = [[0,32], [32,0], [32,32], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// The destination rectangle has negative width and height. When the source +// rectangle is outside the source image, the source rectangle must be clipped +// to the source image and the destination rectangle must be clipped in the same +// proportion. +function runDrawImageTest_sX0_sY0_sW32_sH32_dX32_dY32_dWm32_dHm32() { + testDescription = 'Test scenario 9: sx = 32, sy = 32, sw = 32, sh = 32, dx = 32, dy = 32, dw = -32, dh = -32 --- '; + sourceRect = {x: 32, y: 32, w: 32, h: 32}; + destRect = {x: 0, y: 0, w: 32, h: 32}; + lightPixelCheck = [[0,0], [0,31], [31,0], [31,31]]; + grayPixelCheck = []; + redCheck = [[0,32], [32,0], [32,32], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// The destination rectangle is larger than the destination canvas. +// When the destination rectangle is outside the destination image (the scratch bitmap), +// the pixels that land outside the scratch bitmap are discarded, +// as if the destination was an infinite canvas +// whose rendering was clipped to the dimensions of the scratch bitmap. +function runDrawImageTest_sX0_sY0_sW512_sH512_dX0_dY0_dW256_dH256() { + testDescription = 'Test scenario 10: sx = 0, sy = 0, sw = 512, sh = 512, dx = 0, dy = 0, dw = 256, dh = 256 --- '; + sourceRect = {x: 0, y: 0, w: 512, h: 512}; + destRect = {x: 0, y: 0, w: 256, h: 256}; + lightPixelCheck = [[0,0], [0,99], [99,0], [99,99]]; + grayPixelCheck = []; + redCheck = []; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// The source rectangle is larger than the source canvas +// The source area is clipped to fit the source image +// and the destination area is clipped in the same proportion +function runDrawImageTest_sX0_sY0_sW2048_sH2048_dX0_dY0_dW800_dH800() { + testDescription = 'Test scenario 11: sx = 0, sy = 0, sw = 2048, sh = 2048, dx = 0, dy = 0, dw = 800, dh = 800 --- '; + sourceRect = {x: 0, y: 0, w: 2048, h: 2048}; + destRect = {x: 0, y: 0, w: 800, h: 800}; + lightPixelCheck = [[0,0], [0,99], [99,0], [99,99]]; + grayPixelCheck = []; + redCheck = []; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// Negative coordinates of the source rectangle +// The source area is clipped to fit the source image +// and the destination area is clipped in the same proportion +function runDrawImageTest_sXm20_sYm20_sW50_sH50_dX20_dY20_dW125_dH125() { + testDescription = 'Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- '; + sourceRect = {x: -20, y: -20, w: 50, h: 50}; + destRect = {x: 20, y: 20, w: 125, h: 125}; + lightPixelCheck = [[70,70], [70,99], [99,70], [99,99]]; + grayPixelCheck = []; + redCheck = [[0,0], [0,99], [99,0], [69,69], [69, 99], [99,69]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// The source Image doesn't have a src url defined. +// No exception is thrown and nothing is drawn. +function runDrawImageTestImageWithuotSource() { + testDescription = 'Test scenario 13: draw an image element that does not have a source --- '; + var sourceImage = document.createElement('img'); + sourceRect = {x: 0, y: 0, w: 50, h: 50}; + destRect = {x: 0, y: 0, w: 100, h: 100}; + lightPixelCheck = []; + grayPixelCheck = []; + redCheck = [[0,0], [0,99], [99,0], [99,69]]; + drawCustomImageOnCanvas(sourceImage, sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + +// Clipping the source and down scaling to the destination +function runDrawImageTest_sX64_sY64_sW384_sH384_dX0_dY0_dW32_dH64() { + testDescription = 'Test scenario 14: sx = 64, sy = 64, sw = 384, sh = 384, dx = 0, dy = 0, dw = 32, dh = 64 --- '; + sourceRect = {x: 64, y: 64, w: 384, h: 384}; + destRect = {x: 0, y: 0, w: 32, h: 64}; + lightPixelCheck = [[0,0], [15,31], [17,33], [31,63]]; + grayPixelCheck = [[16,0], [31,31], [0, 33], [15,63]]; + redCheck = [[0,64], [32,0], [32,64], [99,99]]; + drawImageOnCanvas(sourceRect, destRect, lightPixelCheck, grayPixelCheck, redCheck, testDescription); +} + + +function runDrawImageTests() { + runDrawImageTest_dX0_dY0(); + runDrawImageTest_dX25_dY25(); + runDrawImageTest_dX50_dY50_dW50_dH50(); + runDrawImageTest_dX50_dY50_dW16_dH16(); + runDrawImageTest_dX50_dY50_dW64_dH32(); + runDrawImageTest_sX0_sY0_sW32_sH32_dX0_dY0_dW32_dH32(); + runDrawImageTest_sX0_sY0_sW32_sH32_dX32_dY32_dW32_dH32(); + runDrawImageTest_sX32_sY32_sW32_sH32_dX0_dY0_dW32_dH32(); + runDrawImageTest_sX0_sY0_sW32_sH32_dX32_dY32_dWm32_dHm32(); + runDrawImageTest_sX0_sY0_sW512_sH512_dX0_dY0_dW256_dH256(); + runDrawImageTest_sX0_sY0_sW2048_sH2048_dX0_dY0_dW800_dH800(); + runDrawImageTest_sXm20_sYm20_sW50_sH50_dX20_dY20_dW125_dH125(); + runDrawImageTestImageWithuotSource(); + runDrawImageTest_sX64_sY64_sW384_sH384_dX0_dY0_dW32_dH64(); +} + +async_test(t => { + window.onload = function() { + t.step(runDrawImageTests); + t.done(); + } +}, 'Draw 100x100 image to 100x100 canvas at 0,0.'); + +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html deleted file mode 100644 index b9de85a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html +++ /dev/null
@@ -1,30 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_1_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 2 arguments, the dest origin is 0,0 - // The source canvas will copied to the 0,0 position of the destination canvas - destCtx.drawImage(sourceImg, 0, 0); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html deleted file mode 100644 index 3b11b73..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html +++ /dev/null
@@ -1,34 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_10_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 128; -var sourceHeight = 128; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // The destination rectangle is larger than the destination canvas. - // When the destination rectangle is outside the destination image (the scratch bitmap), - // the pixels that land outside the scratch bitmap are discarded, - // as if the destination was an infinite canvas - // whose rendering was clipped to the dimensions of the scratch bitmap. - destCtx.drawImage(sourceImg, 0, 0, 512, 512, 0, 0, 256, 256); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_ref.html deleted file mode 100644 index 60545df1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_ref.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-image: url("../2x2.png"); - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_srgb.html deleted file mode 100644 index 0b2a2f698..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_srgb.html +++ /dev/null
@@ -1,49 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 128; -var sourceHeight = 128; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Image', 0, 0, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 0, 99, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 99, 0, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 99, 99, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // The destination rectangle is larger than the destination canvas. - // When the destination rectangle is outside the destination image (the scratch bitmap), - // the pixels that land outside the scratch bitmap are discarded, - // as if the destination was an infinite canvas - // whose rendering was clipped to the dimensions of the scratch bitmap. - destCtx.drawImage(sourceImg, 0, 0, 512, 512, 0, 0, 256, 256); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw a 100x100 image to a 100x100 canvas with resize and clipping.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html deleted file mode 100644 index dd1a614..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_11_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 128; -var sourceHeight = 128; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // The source rectangle is larger than the source canvas - // The source area is clipped to fit the source image - // and the destination are is clipped in the same proportion - destCtx.drawImage(sourceImg, 0, 0, 2048, 2048, 0, 0, 800, 800); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11_ref.html deleted file mode 100644 index 10d8885..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11_ref.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-color: #FA6FF2; - } -</style> -<body> -<div id="destination" height="100" width="100"></canvas> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html deleted file mode 100644 index 402a661f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_12_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 128; -var sourceHeight = 128; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // Negative coordinates of the source rectangle - // The source area is clipped to fit the source image - // and the destination area is clipped in the same proportion - destCtx.drawImage(sourceImg, -25, -25, 50, 50, 0, 0, 50, 50); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12_ref.html deleted file mode 100644 index 5f6f221..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12_ref.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - } - - #img { - position: relative; - top: 0; - left: 0; - width: 25px; - height: 25px; - background-color: #FA6FF2; - } - -</style> -<body> -<div id="destination"> - <div id="img"><div> -</div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html deleted file mode 100644 index 1faecc3..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html +++ /dev/null
@@ -1,38 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_13_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 128; -var sourceHeight = 128; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The source Image doesn't have a src url defined -// It should throw an exception because the HTMLImageElement is -// in the broken state -// https://html.spec.whatwg.org/multipage/scripting.html#check-the-usability-of-the-image-argument -try { - destCtx.drawImage(sourceImg, 0, 0); - // It makes the test fail if the exception is not thrown - destCtx.fillStyle = "#0000FF"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -} -catch(err) { -} - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13_ref.html deleted file mode 100644 index 9ac306a5..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13_ref.html +++ /dev/null
@@ -1,20 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_14.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_14.html deleted file mode 100644 index 0a28aa4..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_14.html +++ /dev/null
@@ -1,33 +0,0 @@ -<!DOCTYPE html> -<html class="reftest-wait"> -<meta charset="utf-8"> -<title>Canvas test: 2d.drawImage.crop.2x4</title> -<link rel="match" href="drawimage_html_image_14_ref.html"> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 256; -var sourceHeight = 512; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x4.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - destCtx.drawImage(sourceImg, 64, 64, 192, 448, 0, 0, 30, 70); - document.documentElement.classList.remove('reftest-wait'); -} - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_14_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_14_ref.html deleted file mode 100644 index f682f87..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_14_ref.html +++ /dev/null
@@ -1,25 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - background-image: url("../2x4.png"); - background-position: -10px -10px; - background-size: 40px 80px; - background-repeat: no-repeat; - } - -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_15.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_15.html deleted file mode 100644 index 507ff31e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_15.html +++ /dev/null
@@ -1,33 +0,0 @@ -<!DOCTYPE html> -<html class="reftest-wait"> -<meta charset="utf-8"> -<title>Canvas test: 2d.drawImage.crop.4x2</title> -<link rel="match" href="drawimage_html_image_15_ref.html"> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 512; -var sourceHeight = 256; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../4x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - destCtx.drawImage(sourceImg, 64, 64, 448, 192, 0, 0, 70, 30); - document.documentElement.classList.remove('reftest-wait'); -} - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_15_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_15_ref.html deleted file mode 100644 index a7abc3cb..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_15_ref.html +++ /dev/null
@@ -1,25 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - background-image: url("../4x2.png"); - background-position: -10px -10px; - background-size: 80px 40px; - background-repeat: no-repeat; - } - -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_ref.html deleted file mode 100644 index 60545df1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_ref.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-image: url("../2x2.png"); - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_srgb.html deleted file mode 100644 index e2e5a63..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_srgb.html +++ /dev/null
@@ -1,46 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Image', 0, 0, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 0, 99, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 99, 0, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 99, 99, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 2 arguments, the dest origin is 0,0 - // The source canvas will copied to the 0,0 position of the destination canvas - destCtx.drawImage(sourceImg, 0, 0); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw 100x100 image to 100x100 canvas at 0,0.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html deleted file mode 100644 index e20ea97e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_2_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // 2 arguments, the dest origin is not 0,0 - // The source image will copied to the 25, 25 position of the destination canvas - destCtx.drawImage(sourceImg, 25, 25); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_ref.html deleted file mode 100644 index c453528..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_ref.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - background-image: url("../2x2.png"); - background-position: 25px 25px; - background-repeat: no-repeat; - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_srgb.html deleted file mode 100644 index 14c78d1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_srgb.html +++ /dev/null
@@ -1,53 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Canvas Background', 0, 0, [255, 0, 0, 255], 1], - ['Pixel Middle Middle Canvas Background', 24, 24, [255, 0, 0, 255], 1], - ['Pixel Top Middle Canvas Background', 0, 25, [255, 0, 0, 255], 1], - ['Pixel Middle Left Canvas Background', 25, 0, [255, 0, 0, 255], 1], - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 25, 25, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 25, 99, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 99, 25, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 99, 99, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 2 arguments, the dest origin is not 0,0 - // The source canvas will copied to the 25,25 position of the destination canvas - destCtx.drawImage(sourceImg, 25, 25); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw 100x100 image to 100x100 canvas at 25,25.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html deleted file mode 100644 index e09c2ab0..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_3_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = true; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 4 arguments, the source origin is not 0,0, the dest size is provided - // The source canvas will copied to the 50, 50 position of the destination canvas and - // on an area of 50x50 pixels - destCtx.drawImage(sourceImg, 50, 50, 50, 50); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_ref.html deleted file mode 100644 index b72687a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_ref.html +++ /dev/null
@@ -1,23 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-color: red; - background-image: url("../2x2.png"); - background-position: 50px 50px; - background-repeat: no-repeat; - background-size: 50px 50px; - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_srgb.html deleted file mode 100644 index 0e2c378..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_srgb.html +++ /dev/null
@@ -1,54 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Canvas Background', 0, 0, [255, 0, 0, 255], 1], - ['Pixel Middle Middle Canvas Background', 49, 49, [255, 0, 0, 255], 1], - ['Pixel Top Middle Canvas Background', 0, 50, [255, 0, 0, 255], 1], - ['Pixel Middle Left Canvas Background', 50, 0, [255, 0, 0, 255], 1], - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 50, 50, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 50, 99, [41, 122, 115, 255], 1], - ['Pixel Bottom Left Image', 99, 50, [41, 122, 115, 255], 1], - ['Pixel Bottom Right Image', 99, 99, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 4 arguments, the source origin is not 0,0, the dest size is provided - // The source canvas will copied to the 50, 50 position of the destination canvas and - // on an area of 50x50 pixels - destCtx.drawImage(sourceImg, 50, 50, 50, 50); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw 100x100 image to 100x100 canvas at 50,50 with resize to 50x50.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html deleted file mode 100644 index 7f029ab..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_4_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 4 arguments, the dest origin is not 0,0 and the dest size is provided but - // does not match the size of the source. The image will be distorted - // The source canvas will copied to the 50,50 position of the destination canvas - // and it will be shrunk to a and area of 16x16 - destCtx.drawImage(sourceImg, 50, 50, 16, 16); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_ref.html deleted file mode 100644 index baa6591..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_ref.html +++ /dev/null
@@ -1,29 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-color: red; - } - - #destination img{ - position: absolute; - top: 50px; - left: 50px; - width: 16px; - height: 16px; - } -</style> -<body> -<div id="destination"> - <img src="../2x2.png" /> -</div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_srgb.html deleted file mode 100644 index 97b671f9..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_srgb.html +++ /dev/null
@@ -1,58 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Canvas Background', 0, 0, [255, 0, 0, 255], 1], - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - ['Pixel Bottom Right Canvas Background', 99, 99, [255, 0, 0, 255], 1], - - ['Pixel Surrounding Top Left Canvas Background', 49, 49, [255, 0, 0, 255], 1], - ['Pixel Surrounding Top Right Canvas Background', 49, 66, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Left Canvas Background', 66, 49, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Right Canvas Background', 66, 66, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 50, 50, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 50, 65, [41, 122, 115, 255], 1], - ['Pixel Bottom Left Image', 65, 50, [41, 122, 115, 255], 1], - ['Pixel Bottom Right Image', 65, 65, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 4 arguments, the dest origin is not 0,0 and the dest size is provided but - // does not match the size of the source. The image will be distorted - // The source canvas will copied to the 50,50 position of the destination canvas - // and it will be shrunk to a and area of 16x16 - destCtx.drawImage(sourceImg, 50, 50, 16, 16); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw 100x100 image to 100x100 canvas at 50,50 with resize to 16x16.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html deleted file mode 100644 index d221176a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_5_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // The source canvas will copied to the 50,50 position of the destination canvas - // over an area of 64x32 pixels - // The copied image will be distorted along the x axis - destCtx.drawImage(sourceImg, 50, 50, 64, 32); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_ref.html deleted file mode 100644 index 66b7cc19..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_ref.html +++ /dev/null
@@ -1,39 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-color: red; - overflow: hidden; - } - - #destination .img{ - position: relative; - top: 50px; - left: 50px; - width: 64px; - height: 32px; - overflow: hidden; - } - - #destination .img img{ - width: 100%; - height: 100%; - } - -</style> -<body> -<div id="destination"> - <div class="img"> - <img src="../2x2.png" /> - </div> -</div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_srgb.html deleted file mode 100644 index 3f3242b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_srgb.html +++ /dev/null
@@ -1,57 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Canvas Background', 0, 0, [255, 0, 0, 255], 1], - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - ['Pixel Bottom Right Canvas Background', 99, 99, [255, 0, 0, 255], 1], - - ['Pixel Surrounding Top Left Canvas Background', 49, 49, [255, 0, 0, 255], 1], - ['Pixel Surrounding Top Right Canvas Background', 49, 82, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Left Canvas Background', 99, 49, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Right Canvas Background', 99, 82, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 50, 50, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 50, 81, [41, 122, 115, 255], 1], - ['Pixel Bottom Left Image', 99, 50, [41, 122, 115, 255], 1], - ['Pixel Bottom Right Image', 99, 81, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // The source canvas will copied to the 50,50 position of the destination canvas - // over an area of 64x32 pixels - // The copied image will be distorted along the x axis - destCtx.drawImage(sourceImg, 50, 50, 64, 32); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw 100x100 image to 100x100 canvas at 50,50 with resize to 64x32.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html deleted file mode 100644 index a32162a4..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_6_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // 8 arguments, both destination and source origins are 0, 0 - // An area of 32x32 pixels of the source image will be copied to - // an area of 32x32 pixels of the destination canvas - destCtx.drawImage(sourceImg, 0, 0, 32, 32, 0, 0, 32, 32); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_ref.html deleted file mode 100644 index d734337..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_ref.html +++ /dev/null
@@ -1,25 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-color: red; - background-color: red; - background-image: url("../2x2.png"); - background-position: -32px -32px; - background-size: 64px 64px; - background-repeat: no-repeat; - } - -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_srgb.html deleted file mode 100644 index 79f9200..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_srgb.html +++ /dev/null
@@ -1,55 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - ['Pixel Bottom Right Canvas Background', 99, 99, [255, 0, 0, 255], 1], - - ['Pixel Surrounding Top Left Canvas Background', 0, 32, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Left Canvas Background', 32, 0, [255, 0, 0, 255], 1], - ['Pixel Surrounding Orthogonal Canvas Background', 32, 32, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 0, 0, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 0, 31, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 31, 0, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 31, 31, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 8 arguments, both destination and source origins are 0, 0 - // An area of 32x32 pixels of the source image will be copied to - // an area of 32x32 pixels of the destination canvas - destCtx.drawImage(sourceImg, 0, 0, 32, 32, 0, 0, 32, 32); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw a 32x32 area of a 100x100 image to a 32x32 area of a 100x100 canvas at 0,0.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html deleted file mode 100644 index b902df0..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_7_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // 8 arguments the destination origin is not 0,0 - // An area of 32x32 pixels of the source image will be copied to - // an area of 32x32 pixels of the destination canvas in the position 32,32 - destCtx.drawImage(sourceImg, 0, 0, 32, 32, 32, 32, 32, 32); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_ref.html deleted file mode 100644 index e823ffb..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_ref.html +++ /dev/null
@@ -1,35 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - } - - #img { - position: relative; - top: 32px; - left: 32px; - width: 32px; - height: 32px; - background-image: url("../2x2.png"); - background-position: -32px -32px; - background-size: 64px 64px; - background-repeat: no-repeat; - } - -</style> -<body> -<div id="destination"> - <div id="img"><div> -</div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_srgb.html deleted file mode 100644 index 2214c20..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_srgb.html +++ /dev/null
@@ -1,57 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Canvas Background', 0, 0, [255, 0, 0, 255], 1], - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - ['Pixel Bottom Right Canvas Background', 99, 99, [255, 0, 0, 255], 1], - - ['Pixel Surrounding Top Left Canvas Background', 31, 31, [255, 0, 0, 255], 1], - ['Pixel Surrounding Top Right Canvas Background', 31, 64, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Left Canvas Background', 64, 31, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Right Canvas Background', 64, 64, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 32, 32, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 32, 63, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 63, 32, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 63, 63, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 8 arguments the destination origin is not 0,0 - // An area of 32x32 pixels of the source image will be copied to - // an area of 32x32 pixels of the destination canvas in the position 32,32 - destCtx.drawImage(sourceImg, 0, 0, 32, 32, 32, 32, 32, 32); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw a 32x32 area of a 100x100 image to a 32x32 area of a 100x100 canvas at 32,32.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html deleted file mode 100644 index 9b2301e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_8_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - - // The source rectangle overflows the source image - // The source area is clipped to fit the source image - // and the destination are is clipped in the same proportion - destCtx.drawImage(sourceImg, 32, 32, 32, 32, 0, 0, 32, 32); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_ref.html deleted file mode 100644 index 1a025d2..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_ref.html +++ /dev/null
@@ -1,35 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - - #destination { - width: 100px; - height: 100px; - background-color: red; - } - - #img { - position: relative; - top: 0px; - left: 0px; - width: 32px; - height: 32px; - background-image: url("../2x2.png"); - background-position: -32px -32px; - background-size: 64px 64px; - background-repeat: no-repeat; - } - -</style> -<body> -<div id="destination"> - <div id="img"><div> -</div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_srgb.html deleted file mode 100644 index 1197c4297..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_srgb.html +++ /dev/null
@@ -1,55 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2-srgb.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Right Canvas Background', 0, 99, [255, 0, 0, 255], 1], - ['Pixel Bottom Left Canvas Background', 99, 0, [255, 0, 0, 255], 1], - ['Pixel Bottom Right Canvas Background', 99, 99, [255, 0, 0, 255], 1], - - ['Pixel Surrounding Top Left Canvas Background', 0, 32, [255, 0, 0, 255], 1], - ['Pixel Surrounding Bottom Left Canvas Background', 32, 0, [255, 0, 0, 255], 1], - ['Pixel Surrounding Orthogonal Canvas Background', 32, 32, [255, 0, 0, 255], 1], - - ['Pixel Top Left Image', 0, 0, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 0, 31, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 31, 0, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 31, 31, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // The source rectangle overflows the source image - // The source area is clipped to fit the source image - // and the destination are is clipped in the same proportion - destCtx.drawImage(sourceImg, 32, 32, 32, 32, 0, 0, 32, 32); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Draw a 32x32 area of a 100x100 image to a 32x32 area of a 100x100 canvas at 32,32 with clipping.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html deleted file mode 100644 index 73a872f..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html +++ /dev/null
@@ -1,37 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_html_image_9_ref.html> -<style> - html, body { - margin: 0; - } -</style> -<canvas id="dest" height="100" width="100"></canvas> -<script> - -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElement('img'); -sourceImg.src = '../2x2.png' -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; - -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = "#FF0000"; -destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -destCtx.imageSmoothingEnabled = smoothingEnabled; - -// The destination rectangle has negative width and height -// An exception is raised and nothing is drawn -try { - destCtx.drawImage(sourceImg, 25, 50, 50, 0, 0, -100, -100); - // It makes the test fail if the exception is not thrown - destCtx.fillStyle = "#0000FF"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); -} -catch(err) { -} - -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9_ref.html deleted file mode 100644 index 5341e05c..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9_ref.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-color: red; - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html index 74a00e03..385f1a5 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html +++ b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html
@@ -1,14 +1,8 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel=match href=drawimage_svg_image_1_ref.html> -<style> - html, body { - margin: 0; - } -</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> <canvas id="dest" height="100" width="100"></canvas> -<script> +<script> var sourceWidth = 100; var sourceHeight = 100; var smoothingEnabled = false; @@ -17,14 +11,36 @@ sourceImg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '../2x2.png'); sourceImg.width = sourceWidth; sourceImg.height = sourceHeight; +var destCtx = destCanvas.getContext('2d'); -sourceImg.onload = function() { - var destCtx = destCanvas.getContext('2d'); - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 2 arguments, the dest origin is 0,0 - // The source canvas will copied to the 0,0 position of the destination canvas - destCtx.drawImage(sourceImg, 0, 0); +function checkPixel(x, y, expected, epsilon) { + var actual = destCtx.getImageData(x, y, 1, 1).data; + assert_true(actual.length === expected.length); + for (var i=0; i < actual.length; i++) + assert_approx_equals(actual[i], expected[i], epsilon); } -</script> + +var pixelTests = [ + ['Pixel Top Left Image', 0, 0, [253, 140, 245, 255], 1], + ['Pixel Top Right Image', 0, 99, [253, 140, 245, 255], 1], + ['Pixel Bottom Left Image', 99, 0, [253, 140, 245, 255], 1], + ['Pixel Bottom Right Image', 99, 99, [253, 140, 245, 255], 1], +]; + +function runTest() { + destCtx.fillStyle = "#FF0000"; + destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); + destCtx.imageSmoothingEnabled = smoothingEnabled; + // 2 arguments, the dest origin is 0,0 + // The source canvas will copied to the 0,0 position of the destination canvas + destCtx.drawImage(sourceImg, 0, 0); + generate_tests(checkPixel, pixelTests); +} + +async_test(t => { + window.onload = function() { + t.step(runTest); + t.done(); + } +}, 'Load a 100x100 image to a SVG image and draw it to a 100x100 canvas.'); +</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1_ref.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1_ref.html deleted file mode 100644 index 60545df1..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1_ref.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> -</head> -<style> - html, body { - margin: 0; - } - #destination { - width: 100px; - height: 100px; - background-image: url("../2x2.png"); - } -</style> -<body> -<div id="destination"></div> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1_srgb.html b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1_srgb.html deleted file mode 100644 index fbb614d8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1_srgb.html +++ /dev/null
@@ -1,46 +0,0 @@ -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<canvas id="dest" height="100" width="100"></canvas> - -<script> -var sourceWidth = 100; -var sourceHeight = 100; -var smoothingEnabled = false; -var destCanvas = document.getElementById('dest'); -var sourceImg = document.createElementNS('http://www.w3.org/2000/svg', 'image'); -sourceImg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '../2x2-srgb.png'); -sourceImg.width = sourceWidth; -sourceImg.height = sourceHeight; -var destCtx = destCanvas.getContext('2d'); - -function checkPixel(x, y, expected, epsilon) { - var actual = destCtx.getImageData(x, y, 1, 1).data; - assert_true(actual.length === expected.length); - for (var i=0; i < actual.length; i++) - assert_approx_equals(actual[i], expected[i], epsilon); -} - -var pixelTests = [ - ['Pixel Top Left Image', 0, 0, [253, 140, 245, 255], 1], - ['Pixel Top Right Image', 0, 99, [253, 140, 245, 255], 1], - ['Pixel Bottom Left Image', 99, 0, [253, 140, 245, 255], 1], - ['Pixel Bottom Right Image', 99, 99, [253, 140, 245, 255], 1], -]; - -function runTest() { - destCtx.fillStyle = "#FF0000"; - destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); - destCtx.imageSmoothingEnabled = smoothingEnabled; - // 2 arguments, the dest origin is 0,0 - // The source canvas will copied to the 0,0 position of the destination canvas - destCtx.drawImage(sourceImg, 0, 0); - generate_tests(checkPixel, pixelTests); -} - -async_test(t => { - window.onload = function() { - t.step(runTest); - t.done(); - } -}, 'Load a 100x100 image to a SVG image and draw it to a 100x100 canvas.'); -</script> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/abort/general-serviceworker.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/abort/general-serviceworker.https-expected.txt index b18b8d79..34f2d61 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/abort/general-serviceworker.https-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/abort/general-serviceworker.https-expected.txt
@@ -1,4 +1,51 @@ This is a testharness.js-based test. -FAIL General fetch abort tests in a service worker Failed to register a ServiceWorker: The script does not have a MIME type. +FAIL Aborting rejects with AbortError promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Aborting rejects with AbortError - no-cors promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +PASS TypeError from request constructor takes priority - RequestInit's window is not null +FAIL TypeError from request constructor takes priority - Input URL is not valid promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL TypeError from request constructor takes priority - Input URL has credentials promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL TypeError from request constructor takes priority - RequestInit's mode is navigate promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL TypeError from request constructor takes priority - RequestInit's referrer is invalid promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL TypeError from request constructor takes priority - RequestInit's method is invalid promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL TypeError from request constructor takes priority - RequestInit's method is forbidden promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL TypeError from request constructor takes priority - RequestInit's mode is no-cors and method is not simple promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +PASS TypeError from request constructor takes priority - RequestInit's cache mode is only-if-cached and mode is not same-origin +PASS TypeError from request constructor takes priority - Request with cache mode: only-if-cached and fetch mode cors +PASS TypeError from request constructor takes priority - Request with cache mode: only-if-cached and fetch mode no-cors +FAIL TypeError from request constructor takes priority - Bad referrerPolicy init parameter value promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +PASS TypeError from request constructor takes priority - Bad mode init parameter value +PASS TypeError from request constructor takes priority - Bad credentials init parameter value +PASS TypeError from request constructor takes priority - Bad cache init parameter value +PASS TypeError from request constructor takes priority - Bad redirect init parameter value +FAIL Request objects have a signal property assert_true: Signal member is present & truthy expected true got false +FAIL Signal on request object promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal on request object created from request object promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal on request object created from request object, with signal on second request promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal on request object created from request object, with signal on second request overriding another promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal retained after unrelated properties are overridden by fetch promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal removed by setting to null promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Already aborted signal rejects immediately promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Request is still 'used' if signal is aborted before fetching promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL response.arrayBuffer() rejects if already aborted promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL response.blob() rejects if already aborted promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL response.formData() rejects if already aborted promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL response.json() rejects if already aborted promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL response.text() rejects if already aborted promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Already aborted signal does not make request promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Already aborted signal can be used for many fetches promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal can be used to abort other fetches, even if another fetch succeeded before aborting promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Underlying connection is closed when aborting after receiving response promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Underlying connection is closed when aborting after receiving response - no-cors promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Fetch aborted & connection closed when aborted after calling response.arrayBuffer() promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Fetch aborted & connection closed when aborted after calling response.blob() promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Fetch aborted & connection closed when aborted after calling response.formData() promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Fetch aborted & connection closed when aborted after calling response.json() promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Fetch aborted & connection closed when aborted after calling response.text() promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Stream errors once aborted. Underlying connection closed. promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Stream errors once aborted, after reading. Underlying connection closed. promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Stream will not error if body is empty. It's closed with an empty queue before it errors. promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Readable stream synchronously cancels with AbortError if aborted before reading promise_test: Unhandled rejection with value: object "ReferenceError: AbortController is not defined" +FAIL Signal state is cloned AbortController is not defined +FAIL Clone aborts with original controller AbortController is not defined Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-preflight-star.any-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-preflight-star.any-expected.txt deleted file mode 100644 index 262978b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-preflight-star.any-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -PASS CORS that succeeds with credentials: false; method: GET (allowed: get); header: X-Test,1 (allowed: x-test) -PASS CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test) -FAIL CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *) promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch" -PASS CORS that fails with credentials: true; method: OK (allowed: *); header: X-Test,1 (allowed: *) -PASS CORS that fails with credentials: true; method: PUT (allowed: *); header: (allowed: ) -PASS CORS that succeeds with credentials: true; method: PUT (allowed: PUT); header: (allowed: *) -PASS CORS that fails with credentials: true; method: PUT (allowed: put); header: (allowed: *) -PASS CORS that fails with credentials: true; method: GET (allowed: get); header: X-Test,1 (allowed: *) -PASS CORS that fails with credentials: true; method: GET (allowed: *); header: X-Test,1 (allowed: *) -PASS CORS that succeeds with credentials: true; method: * (allowed: *); header: *,1 (allowed: *) -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-preflight-star.any.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-preflight-star.any.worker-expected.txt deleted file mode 100644 index 262978b..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-preflight-star.any.worker-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -PASS CORS that succeeds with credentials: false; method: GET (allowed: get); header: X-Test,1 (allowed: x-test) -PASS CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test) -FAIL CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *) promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch" -PASS CORS that fails with credentials: true; method: OK (allowed: *); header: X-Test,1 (allowed: *) -PASS CORS that fails with credentials: true; method: PUT (allowed: *); header: (allowed: ) -PASS CORS that succeeds with credentials: true; method: PUT (allowed: PUT); header: (allowed: *) -PASS CORS that fails with credentials: true; method: PUT (allowed: put); header: (allowed: *) -PASS CORS that fails with credentials: true; method: GET (allowed: get); header: X-Test,1 (allowed: *) -PASS CORS that fails with credentials: true; method: GET (allowed: *); header: X-Test,1 (allowed: *) -PASS CORS that succeeds with credentials: true; method: * (allowed: *); header: *,1 (allowed: *) -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/images/color-profile-layer-filter-expected.png index 3a67f62..0328d65 100644 --- a/third_party/WebKit/LayoutTests/images/color-profile-layer-filter-expected.png +++ b/third_party/WebKit/LayoutTests/images/color-profile-layer-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/animations/rotate-transform-equivalent-expected.png b/third_party/WebKit/LayoutTests/platform/linux/animations/rotate-transform-equivalent-expected.png index 601284d7..6e8a77f5c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/animations/rotate-transform-equivalent-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/animations/rotate-transform-equivalent-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/animations/skew-notsequential-compositor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/animations/skew-notsequential-compositor-expected.png new file mode 100644 index 0000000..f1fb3b5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/animations/skew-notsequential-compositor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/3d-corners-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/3d-corners-expected.png new file mode 100644 index 0000000..d0a0cb8b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/3d-corners-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/backface-visibility-transformed-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/backface-visibility-transformed-expected.png new file mode 100644 index 0000000..bc9a785 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/backface-visibility-transformed-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/backface-visibility/backface-visibility-non3d-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/backface-visibility/backface-visibility-non3d-expected.png new file mode 100644 index 0000000..25e6017 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/backface-visibility/backface-visibility-non3d-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/color-matching/image-color-matching-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/color-matching/image-color-matching-expected.png index b36d906..7ff9f914 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/color-matching/image-color-matching-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/color-matching/image-color-matching-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/composited-scaled-child-with-border-radius-parent-clip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/composited-scaled-child-with-border-radius-parent-clip-expected.png new file mode 100644 index 0000000..e606756 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/composited-scaled-child-with-border-radius-parent-clip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/composited-translated-child-with-border-radius-parent-clip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/composited-translated-child-with-border-radius-parent-clip-expected.png new file mode 100644 index 0000000..5bfd018 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/composited-translated-child-with-border-radius-parent-clip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/compositing/culling/filter-occlusion-blur-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/culling/filter-occlusion-blur-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/platform/mac/compositing/culling/filter-occlusion-blur-expected.png rename to third_party/WebKit/LayoutTests/platform/linux/compositing/culling/filter-occlusion-blur-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/culling/filter-occlusion-blur-large-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/culling/filter-occlusion-blur-large-expected.png new file mode 100644 index 0000000..147f72f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/culling/filter-occlusion-blur-large-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/direct-image-compositing-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/direct-image-compositing-expected.png index 8fe6974..0c46d4069a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/direct-image-compositing-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/direct-image-compositing-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/flat-with-transformed-child-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/flat-with-transformed-child-expected.png new file mode 100644 index 0000000..ba38a6eb --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/flat-with-transformed-child-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/clipping-foreground-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/clipping-foreground-expected.png index 0bc0909..96bb0b0 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/clipping-foreground-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/clipping-foreground-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png index df09a173..80d70b5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png index 49cd3c4..34321ee 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-deep-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-deep-expected.png index 6b346b9..175396f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-deep-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-deep-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-expected.png index c1a8906..d853ebf 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/layer-due-to-layer-children-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/vertical-scroll-composited-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/vertical-scroll-composited-expected.png new file mode 100644 index 0000000..2f459985 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/vertical-scroll-composited-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-fixed-scrolling-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-fixed-scrolling-expected.png index 7bc93af..99e2a33c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-fixed-scrolling-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-fixed-scrolling-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-opacity-overlay-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-opacity-overlay-expected.png index 860cb96..258709e4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-opacity-overlay-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/geometry/video-opacity-overlay-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png index 300b9f3..35e95006 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png index c83cdd6..7a4c0e10 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/layers-inside-overflow-scroll-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/layers-inside-overflow-scroll-expected.png index 9b1e725..1238627 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/layers-inside-overflow-scroll-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/layers-inside-overflow-scroll-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/lots-of-img-layers-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/lots-of-img-layers-expected.png new file mode 100644 index 0000000..1d5e388 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/lots-of-img-layers-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/lots-of-img-layers-with-opacity-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/lots-of-img-layers-with-opacity-expected.png new file mode 100644 index 0000000..504660f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/lots-of-img-layers-with-opacity-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/direct-image-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/direct-image-mask-expected.png index 5d33323..0a42af3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/direct-image-mask-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/direct-image-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-added-filters-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-added-filters-expected.png index 5119710..c8800e2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-added-filters-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-added-filters-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-removed-filters-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-removed-filters-expected.png index 2ca7f39..e01f792 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-removed-filters-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/mask-with-removed-filters-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/masked-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/masked-ancestor-expected.png index 321cc1df..d565ad6 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/masked-ancestor-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/masked-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/multiple-masks-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/multiple-masks-expected.png index 415fe63b..b55370f2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/multiple-masks-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/multiple-masks-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/simple-composited-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/simple-composited-mask-expected.png index a624d4cc..7e2a08f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/simple-composited-mask-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/masks/simple-composited-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/opacity-with-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/opacity-with-mask-expected.png new file mode 100644 index 0000000..7792efb --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/opacity-with-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png new file mode 100644 index 0000000..31ce3d9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png new file mode 100644 index 0000000..2cee245 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png new file mode 100644 index 0000000..b60254a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png new file mode 100644 index 0000000..b9fac482 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-styles-with-composited-child-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-styles-with-composited-child-expected.png new file mode 100644 index 0000000..5fa2b0b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/border-radius-styles-with-composited-child-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..f38a1b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..f38a1b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/mask-with-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/mask-with-filter-expected.png new file mode 100644 index 0000000..fff540df --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/mask-with-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png new file mode 100644 index 0000000..ce412b6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/nested-render-surfaces-with-rotation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/nested-render-surfaces-with-rotation-expected.png new file mode 100644 index 0000000..7e616b7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/nested-render-surfaces-with-rotation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/overflow-compositing-descendant-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/overflow-compositing-descendant-expected.png index f5d9cd3..1e09c67 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/overflow-compositing-descendant-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/overflow-compositing-descendant-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-mask-expected.png index f9d24e27..c98959e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-mask-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-overflow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-overflow-expected.png new file mode 100644 index 0000000..c1c4d7ff --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scaled-overflow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scroll-ancestor-update-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scroll-ancestor-update-expected.png index 5d5a44a..8916901 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scroll-ancestor-update-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/scroll-ancestor-update-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..f38a1b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png new file mode 100644 index 0000000..00fa2b9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..ff3a0270 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/siblings-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/tiled-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/tiled-mask-expected.png new file mode 100644 index 0000000..ba320740 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/tiled-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-huge-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-huge-expected.png index 16ba49f6..769cd76b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-huge-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-huge-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-no-overlap-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-no-overlap-expected.png index 0cca7cab..eda3ec7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-no-overlap-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/children-opacity-no-overlap-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/reflection-opacity-huge-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/reflection-opacity-huge-expected.png index e00a249..5188682d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/reflection-opacity-huge-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overlap-blending/reflection-opacity-huge-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/perpendicular-layer-sorting-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/perpendicular-layer-sorting-expected.png new file mode 100644 index 0000000..f6472ac --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/perpendicular-layer-sorting-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/animation-inside-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/animation-inside-reflection-expected.png index ca973d1..e738eac 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/animation-inside-reflection-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/animation-inside-reflection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/load-video-in-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/load-video-in-reflection-expected.png index 31cc698..62dcc8f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/load-video-in-reflection-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/load-video-in-reflection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-mask-change-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-mask-change-expected.png index b69a73e..2c2cc64 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-mask-change-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-mask-change-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-opacity-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-opacity-expected.png index 0cd09ec..6bc5112 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-opacity-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/nested-reflection-opacity-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/reflection-opacity-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/reflection-opacity-expected.png index c4f4808..95bb35b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/reflection-opacity-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/reflection-opacity-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/transform-inside-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/transform-inside-reflection-expected.png index c603bb9..d0f0e23 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/transform-inside-reflection-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/reflections/transform-inside-reflection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/scaling/tiled-layer-recursion-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/scaling/tiled-layer-recursion-expected.png new file mode 100644 index 0000000..c2c43072 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/scaling/tiled-layer-recursion-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/self-painting-layers-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/self-painting-layers-expected.png index 6c0d622e..2d921e07 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/self-painting-layers-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/self-painting-layers-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/transitions/scale-transition-no-start-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/transitions/scale-transition-no-start-expected.png index ed9d6db..a6b62787 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/transitions/scale-transition-no-start-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/transitions/scale-transition-no-start-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/video-frame-size-change-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/video-frame-size-change-expected.png index 667f5187..ad074ba 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/video-frame-size-change-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/video-frame-size-change-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/video/video-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/video/video-reflection-expected.png new file mode 100644 index 0000000..635d07ac --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/video/video-reflection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/visibility/visibility-image-layers-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/visibility/visibility-image-layers-expected.png new file mode 100644 index 0000000..365ad04 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/visibility/visibility-image-layers-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/visibility/visibility-simple-video-layer-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/visibility/visibility-simple-video-layer-expected.png new file mode 100644 index 0000000..3d2a91a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/visibility/visibility-simple-video-layer-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/webgl/webgl-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/compositing/webgl/webgl-reflection-expected.png index 5b050023..f90d16e5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/webgl/webgl-reflection-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/webgl/webgl-reflection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/float_elements_in_series-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/float_elements_in_series-expected.png index a6d4d61..f0c1277 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/float_elements_in_series-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/float_elements_in_series-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/padding_inline-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/padding_inline-expected.png index 1901a6c..4d33f7d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/padding_inline-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css1/box_properties/padding_inline-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/firstline-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/firstline-expected.png index a867f30b..8fb0e49 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/firstline-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/firstline-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/pseudo_elements_in_selectors-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/pseudo_elements_in_selectors-expected.png index e780cc7..33e24d83 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/pseudo_elements_in_selectors-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css1/pseudo/pseudo_elements_in_selectors-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css1/units/percentage_units-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css1/units/percentage_units-expected.png index 5f2ae23..05f2895 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css1/units/percentage_units-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css1/units/percentage_units-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5502-mrgn-r-02-c-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5502-mrgn-r-02-c-expected.png index 102546dd..ac5b49c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5502-mrgn-r-02-c-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5502-mrgn-r-02-c-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5505-mrgn-02-c-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5505-mrgn-02-c-expected.png index 570392e..f6036bc2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5505-mrgn-02-c-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css2.1/t0803-c5505-mrgn-02-c-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css2.1/t1002-c5523-width-02-b-g-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css2.1/t1002-c5523-width-02-b-g-expected.png index 6d3dca24..65621b133 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css2.1/t1002-c5523-width-02-b-g-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css2.1/t1002-c5523-width-02-b-g-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/blending/background-blend-mode-overlapping-accelerated-elements-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/blending/background-blend-mode-overlapping-accelerated-elements-expected.png index bea958b..43b6d39 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/css3/blending/background-blend-mode-overlapping-accelerated-elements-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/blending/background-blend-mode-overlapping-accelerated-elements-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/css3/filters/effect-blur-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-blur-hw-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/platform/mac/css3/filters/effect-blur-hw-expected.png rename to third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-blur-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-brightness-clamping-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-brightness-clamping-hw-expected.png new file mode 100644 index 0000000..359468a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-brightness-clamping-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-brightness-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-brightness-hw-expected.png new file mode 100644 index 0000000..4d27e489d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-brightness-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-combined-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-combined-hw-expected.png new file mode 100644 index 0000000..c42e028 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-combined-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-drop-shadow-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-drop-shadow-hw-expected.png new file mode 100644 index 0000000..91f798b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-drop-shadow-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-grayscale-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-grayscale-hw-expected.png new file mode 100644 index 0000000..b5667035 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-grayscale-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-hue-rotate-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-hue-rotate-hw-expected.png new file mode 100644 index 0000000..a090534 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-hue-rotate-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-saturate-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-saturate-hw-expected.png new file mode 100644 index 0000000..94d27c6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-saturate-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-sepia-hw-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-sepia-hw-expected.png new file mode 100644 index 0000000..61e3630 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/effect-sepia-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-change-repaint-composited-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-change-repaint-composited-expected.png new file mode 100644 index 0000000..3e6040d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-change-repaint-composited-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-change-repaint-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-change-repaint-expected.png new file mode 100644 index 0000000..8495c55 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-change-repaint-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/css3/filters/filter-repaint-composited-fallback-crash-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-repaint-composited-fallback-crash-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/platform/mac/css3/filters/filter-repaint-composited-fallback-crash-expected.png rename to third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-repaint-composited-fallback-crash-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/css3/filters/filter-repaint-composited-fallback-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-repaint-composited-fallback-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/platform/mac/css3/filters/filter-repaint-composited-fallback-expected.png rename to third_party/WebKit/LayoutTests/platform/linux/css3/filters/filter-repaint-composited-fallback-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-luminance-gradient-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-luminance-gradient-expected.png new file mode 100644 index 0000000..1f638319 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-luminance-gradient-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-luminance-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-luminance-svg-expected.png new file mode 100644 index 0000000..8540526 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-luminance-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-round-content-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-round-content-expected.png new file mode 100644 index 0000000..6cfcdcf --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-round-content-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-border-expected.png new file mode 100644 index 0000000..a6775fa --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-content-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-content-expected.png new file mode 100644 index 0000000..de6fac53 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-content-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-padding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-padding-expected.png new file mode 100644 index 0000000..816d714 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/css3/masking/mask-repeat-space-padding-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt new file mode 100644 index 0000000..d1c9562 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +PASS Test that getContext with un-supported string throws a TypeError. +FAIL Test that getContext with supported string returns correct results assert_true: expected true got false +PASS Test that getContext twice with different context type returns null the second time +PASS Test that 2dcontext.canvas should return the original OffscreenCanvas +PASS Test that webglcontext.canvas should return the original OffscreenCanvas +FAIL Test that OffscreenCanvasRenderingContext2D with alpha disabled makes the OffscreenCanvas opaque assert_approx_equals: Green channel of the pixel at (5, 5) expected 127 +/- 2 but got 255 +PASS Test that OffscreenCanvasRenderingContext2D with alpha enabled preserves the alpha +PASS Test that 'alpha' context creation attribute is true by default +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/008-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/008-expected.png new file mode 100644 index 0000000..54121bed --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/008-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/021-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/021-expected.png index 821d7c4e..fa04624 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/021-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/float/021-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/margin-collapse/104-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/margin-collapse/104-expected.png index e5a96215..25d3074 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/block/margin-collapse/104-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/margin-collapse/104-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-block-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-block-expected.png index 0ef9c38..0a2c60b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-block-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-block-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-expected.png index 0ad16d59..b0e8180c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-float-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-float-expected.png index 263be7f..b026343 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-float-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/relative-overflow-replaced-float-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/vertical-lr/002-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/vertical-lr/002-expected.png new file mode 100644 index 0000000..b592b4df --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/vertical-lr/002-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/vertical-rl/002-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/vertical-rl/002-expected.png new file mode 100644 index 0000000..7ab4b2b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/block/positioning/vertical-rl/002-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-expected.png index af48641..81f3f975 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-xhtml-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-xhtml-expected.png index af48641..81f3f975 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-xhtml-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/001-xhtml-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-declarative-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-declarative-expected.png index bb2ac67..ea8ac8c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-declarative-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-declarative-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-expected.png index bb2ac67..ea8ac8c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-xhtml-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-xhtml-expected.png index bb2ac67..ea8ac8c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-xhtml-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/body-propagation/overflow/005-xhtml-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png index 2349e40..bbe9bc26 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png index 9da43fee..1bb76e9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png index b593f70e..fe95cd4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-canvas-with-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-expected.png index b98e15b..5fd3df6 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-ratio-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-ratio-expected.png index 6ea3eb3..c2adc3cd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-ratio-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-ratio-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-shadow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-shadow-expected.png index 957b8fc9..5e17ebf 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-shadow-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-mask-video-shadow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-with-composited-child-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-with-composited-child-expected.png index 84c3456..f840e14 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-with-composited-child-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/border-radius-with-composited-child-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-01-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-01-expected.png index 43ebf48..6a8899c2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-01-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-01-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-02-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-02-expected.png index 302086d..c6d6c7d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-02-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-02-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-03-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-03-expected.png index 4bfc994..f688ebc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-03-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/rtl-border-03-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-expected.png index a39e5ac..55b60e3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-shadow-expected.png index ee72053..ebe81ec 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-shadow-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-composite-video-shadow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-drawImage-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-drawImage-video-expected.png deleted file mode 100644 index a58254b..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-drawImage-video-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-pattern-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-pattern-video-expected.png deleted file mode 100644 index 71553edf..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/canvas-pattern-video-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/yuv-video-on-accelerated-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/yuv-video-on-accelerated-canvas-expected.png deleted file mode 100644 index f0411d4..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/canvas/yuv-video-on-accelerated-canvas-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-expected.png index 178c76c..fb12501b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-parent-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-parent-expected.png index 34d1fcf..77ee9f3d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-parent-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/clip/overflow-border-radius-composited-parent-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png index 2fa1145c..3c90c3f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/button-default-title-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/button-default-title-expected.png index 641bf6a1..dba06e5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/button-default-title-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/button-default-title-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/huge-mac-input-clamped-width-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/huge-mac-input-clamped-width-expected.png new file mode 100644 index 0000000..ab190136 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/huge-mac-input-clamped-width-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-appearance-selection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-appearance-selection-expected.png index 8868061..87b158a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-appearance-selection-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-appearance-selection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-table-expected.png index 34bd499803..b65c1ee 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-table-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-table-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/frames/iframe-scrolling-attribute-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/frames/iframe-scrolling-attribute-expected.png index 9861b1f..0fd08c9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/frames/iframe-scrolling-attribute-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/frames/iframe-scrolling-attribute-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/css3-color-stop-units-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/css3-color-stop-units-expected.png index 904e2f20..d53ba47 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/css3-color-stop-units-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/gradients/css3-color-stop-units-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png index ed91b7c..68b79b06 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/inline/inline-borders-with-bidi-override-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/inline/inline-borders-with-bidi-override-expected.png index 0660b531..4abc6cc5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/inline/inline-borders-with-bidi-override-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/inline/inline-borders-with-bidi-override-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/olstart-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/olstart-expected.png index b7d6af0..ab03c8b3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/lists/olstart-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/lists/olstart-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/media/mq-color-gamut-picture-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/media/mq-color-gamut-picture-expected.png new file mode 100644 index 0000000..32968d8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/media/mq-color-gamut-picture-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/overflow/006-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/overflow/006-expected.png index 1e6159b8..6edcdb9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/overflow/006-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/overflow/006-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png index 7bcef702..6522f71 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/023-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/023-expected.png index 1030ac3..a007f79 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/023-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/023-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/040-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/040-expected.png index 4b9c6716..0ff5526 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/040-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/040-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-cell-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-cell-expected.png index 84513c6..a6ef896 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-cell-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-cell-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-collapsed-border-expected.png index 4bd727e..6034610 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-group-expected.png index 010ec78..05883dc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-column-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-expected.png index 29c64ac15..66c969a4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-collapsed-border-expected.png index 707b7f0..3cb3102 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-expected.png index 535f451..8aa6930 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_border-table-row-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-hide-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-hide-expected.png index 4f8ea7b4..449a74d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-hide-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-hide-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-collapsed-border-expected.png index 690b06a..59728f5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-expected.png index 718169d..6fd0aba 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_layers-show-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-column-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-column-group-expected.png index 0bc70bc..8c39206 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-column-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-column-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-expected.png index e18d8ac6..4008f02 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-collapsed-border-expected.png index 93165f4..0e3a429 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-group-expected.png index 97293ab7..61e56fc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_position-table-row-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-cell-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-cell-expected.png index 6d2f3e12..4996351 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-cell-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-cell-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-collapsed-border-expected.png index 78bdac9..2c9ea75e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-group-expected.png index aaeb391..43c8a66 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-column-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-expected.png index 6f613657..d6976ec7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-row-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-row-collapsed-border-expected.png index ca82511..bd65d9e7c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-row-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/backgr_simple-table-row-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/table/empty-cells-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/table/empty-cells-expected.png index 8d98f0a..9af691d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/table/empty-cells-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/table/empty-cells-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/font-stretch-variant-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/text/font-stretch-variant-expected.png index d44170f4..1118fa4f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/text/font-stretch-variant-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/font-stretch-variant-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/vertical-text-glyph-test-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/vertical-text-glyph-test-expected.png index 1b71028..bfbf484 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/vertical-text-glyph-test-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/text/international/vertical-text-glyph-test-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/pixelated-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/pixelated-expected.png new file mode 100644 index 0000000..4c356a19 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/pixelated-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-expected.png new file mode 100644 index 0000000..22c1698 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-repaint-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-repaint-expected.png new file mode 100644 index 0000000..1ead635 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-repaint-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-tabswitching-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-tabswitching-expected.png new file mode 100644 index 0000000..329a790 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/webgl/webgl-composite-modes-tabswitching-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png index f1037c1..670713d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/writing-mode/border-radius-clipping-vertical-lr-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/hdr/color-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/hdr/color-jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..dc798e6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/hdr/color-jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/hdr/color-profile-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/hdr/color-profile-video-expected.png new file mode 100644 index 0000000..85f7439 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/hdr/color-profile-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/hdr/video-canvas-alpha-expected.png b/third_party/WebKit/LayoutTests/platform/linux/hdr/video-canvas-alpha-expected.png index f4230b7..1d92b9de 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/hdr/video-canvas-alpha-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/hdr/video-canvas-alpha-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png new file mode 100644 index 0000000..52b7c89 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/images/color-profile-layer-expected.png b/third_party/WebKit/LayoutTests/platform/linux/images/color-profile-layer-expected.png new file mode 100644 index 0000000..966445d7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/images/color-profile-layer-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/images/color-profile-layer-filter-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/platform/mac/images/color-profile-layer-filter-expected.png rename to third_party/WebKit/LayoutTests/platform/linux/images/color-profile-layer-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-0px-images-quirk-expected.png b/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-0px-images-quirk-expected.png index 9e28c435..4814771d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-0px-images-quirk-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-0px-images-quirk-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-block-flow-images-expected.png b/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-block-flow-images-expected.png index 3cf5565..b8622059 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-block-flow-images-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/images/rendering-broken-block-flow-images-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-expected.png new file mode 100644 index 0000000..132ad68c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-expected.png new file mode 100644 index 0000000..5b24f3e --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-filter-expected.png new file mode 100644 index 0000000..2b5e0b3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-object-fit-expected.png new file mode 100644 index 0000000..c4a1a2f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/media/color-profile-video-seek-object-fit-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png index 95cc3b8..c0d1ed9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png index f020e908..a7d8a8d2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-controls-with-cast-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-controls-with-cast-rendering-expected.png index c760087..6f1b9b4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-controls-with-cast-rendering-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-controls-with-cast-rendering-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-dark-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-dark-rendering-expected.png index 6881c87..21c7372e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-dark-rendering-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-dark-rendering-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-light-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-light-rendering-expected.png index 6f50ab8..f0f58639 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-light-rendering-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/controls/video-overlay-cast-light-rendering-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-horizontal-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-horizontal-expected.png index 3df7c7c..7008413b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-horizontal-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-horizontal-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-vertical-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-vertical-expected.png index 6c505bc..1511e75e8 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-vertical-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/track/track-cue-rendering-vertical-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-aspect-ratio-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-aspect-ratio-expected.png index 3cf5d65..8524387 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-aspect-ratio-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-aspect-ratio-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-alpha-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-alpha-expected.png index 15149966..6af9546 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-alpha-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-alpha-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-expected.txt deleted file mode 100644 index 1540aa9..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-canvas-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Test "video" as a source for "canvas". assert_equals: expected 9 but got 8 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv420-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv420-expected.png index 910ad86..ee15730 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv420-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv420-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv422-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv422-expected.png index da7b082..e3dd67f4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv422-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-colorspace-yuv422-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-layer-crash-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-layer-crash-expected.png index 74ec71a..9381506 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-layer-crash-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-layer-crash-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-remove-insert-repaints-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-remove-insert-repaints-expected.png new file mode 100644 index 0000000..47efc6a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-remove-insert-repaints-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-replaces-poster-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-replaces-poster-expected.png index 06015ec..f3cbb0b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-replaces-poster-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-replaces-poster-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-transformed-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-transformed-expected.png index 4cd0d6a..0f92355 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-transformed-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-transformed-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-controls-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-controls-expected.png index a8f4e32..d2673f5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-controls-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-controls-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-expected.png index 484c5b1..ae5b2dc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/media/video-zoom-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/overflow/overflow-transform-perspective-expected.png b/third_party/WebKit/LayoutTests/platform/linux/overflow/overflow-transform-perspective-expected.png index 799fdd2fb..9b31940b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/overflow/overflow-transform-perspective-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/overflow/overflow-transform-perspective-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/compositing/new-stacking-context-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/compositing/new-stacking-context-expected.png new file mode 100644 index 0000000..dc85ee8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/compositing/new-stacking-context-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/document-flipped-blocks-writing-mode-scroll-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/document-flipped-blocks-writing-mode-scroll-expected.png new file mode 100644 index 0000000..068ca5d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/document-flipped-blocks-writing-mode-scroll-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/inline-style-change-in-scrolled-view-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/inline-style-change-in-scrolled-view-expected.png index 14644fad..c48d3b52 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/inline-style-change-in-scrolled-view-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/inline-style-change-in-scrolled-view-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-move-after-scroll-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-move-after-scroll-expected.png index 4c8528e..ffb212d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-move-after-scroll-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-move-after-scroll-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-scroll-body-appear-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-scroll-body-appear-expected.png index ad3f31c..a55b4c5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-scroll-body-appear-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/overflow-scroll-body-appear-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png index c59fdf3..bfcc558 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/single-line-cells-repeating-thead-break-inside-on-thead-only-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/repaint-in-scrolled-view-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/repaint-in-scrolled-view-expected.png new file mode 100644 index 0000000..3e6b0b62 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/repaint-in-scrolled-view-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png index cf11911..b547e78 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/text-xy-updates-SVGList-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/text-xy-updates-SVGList-expected.png index 3b126dbb..991085e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/text-xy-updates-SVGList-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/text-xy-updates-SVGList-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-expected.png index dab4196..7b758b0 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-initial-empty-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-initial-empty-expected.png index dab4196..7b758b0 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-initial-empty-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-col-span-initial-empty-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-expected.png index cfbd431..37ed9c1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty-expected.png b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty-expected.png index cfbd431..37ed9c1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/return-from-printing-mode-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/return-from-printing-mode-expected.png index a634b4002..773e4cf 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/printing/return-from-printing-mode-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/printing/return-from-printing-mode-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/bug45331-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/bug45331-expected.png index f6241b28..f222469d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/bug45331-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/bug45331-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/object-sizing-no-width-height-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/object-sizing-no-width-height-expected.png new file mode 100644 index 0000000..52b7c89 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/object-sizing-no-width-height-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png new file mode 100644 index 0000000..bf174b54 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png new file mode 100644 index 0000000..65d6380 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png new file mode 100644 index 0000000..bf174b54 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png new file mode 100644 index 0000000..65d6380 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png new file mode 100644 index 0000000..5c73f57 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png new file mode 100644 index 0000000..5c73f57 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png new file mode 100644 index 0000000..5c73f57 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png new file mode 100644 index 0000000..0c0220f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/transformed-text-fill-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/transformed-text-fill-pattern-expected.png new file mode 100644 index 0000000..edafde3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/transformed-text-fill-pattern-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/wicd/test-scalable-background-image1-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/wicd/test-scalable-background-image1-expected.png index d4feca9..91d8f01 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/wicd/test-scalable-background-image1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/wicd/test-scalable-background-image1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/absolute-sized-document-scrollbars-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/absolute-sized-document-scrollbars-expected.png new file mode 100644 index 0000000..7d88073 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/absolute-sized-document-scrollbars-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-mask-with-percentages-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-mask-with-percentages-expected.png index 3a82b908..eb576f0 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-mask-with-percentages-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-mask-with-percentages-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-svg-float-border-padding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-svg-float-border-padding-expected.png index 543d529e..935371c2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-svg-float-border-padding-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-svg-float-border-padding-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/text/zoom-svg-float-border-padding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/text/zoom-svg-float-border-padding-expected.png index bd55409..3b3895a0 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/text/zoom-svg-float-border-padding-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/text/zoom-svg-float-border-padding-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug11944-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug11944-expected.png index ae671af..06cf6c4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug11944-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug11944-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug137388-2-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug137388-2-expected.png index 782abb8d3..01c17c7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug137388-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug137388-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug22019-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug22019-expected.png index 5107ea7..88634f44 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug22019-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug22019-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug2479-3-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug2479-3-expected.png index 4b028b4..aecdbbd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug2479-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug2479-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug46480-1-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug46480-1-expected.png index 8bdc814..7654882 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug46480-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug46480-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug50695-1-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug50695-1-expected.png index 852d61c..0bd343b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug50695-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug50695-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/core/bloomberg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/core/bloomberg-expected.png index 17eaac7..c33a7dd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/core/bloomberg-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/core/bloomberg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/other/nestedTables-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/other/nestedTables-expected.png index ec9435e..cec8542 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/other/nestedTables-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/other/nestedTables-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/bugs/bug10216-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/bugs/bug10216-expected.png index 48d0d28..4e48cfd2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/bugs/bug10216-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/bugs/bug10216-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png index 3bbbf80..d6babf1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png index 90e75f8..f6ba996 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png index ffec628..d0e01fa 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/2d/hindi-rotated-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/2d/hindi-rotated-expected.png index e2d31db..dbef225 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/2d/hindi-rotated-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/2d/hindi-rotated-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/cssmatrix-3d-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/cssmatrix-3d-zoom-expected.png new file mode 100644 index 0000000..ba6d122 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/cssmatrix-3d-zoom-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/perspective-units-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/perspective-units-expected.png index f616e7d..ee8ae7a9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/perspective-units-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/perspective-units-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/transform-origin-z-change-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/transform-origin-z-change-expected.png new file mode 100644 index 0000000..d761571 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/general/transform-origin-z-change-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-2-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-2-expected.png index a72f9457..204fb52 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-3-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-3-expected.png index 1387a47..728737e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png index 25b2ffa..d951566 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png index 4043e9f..d30d202 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-expected.png index af5c408..dc77e554 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png index bbe385a..277e6100f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png index e745925..f7653ee 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png index df0605e..63ab0ef 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transitions/opacity-transform-transitions-inside-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transitions/opacity-transform-transitions-inside-iframe-expected.png new file mode 100644 index 0000000..65d5a58 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/transitions/opacity-transform-transitions-inside-iframe-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transitions/opacity-transition-zindex-expected.png b/third_party/WebKit/LayoutTests/platform/linux/transitions/opacity-transition-zindex-expected.png new file mode 100644 index 0000000..43c5d9c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/transitions/opacity-transition-zindex-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/full-screen-iframe-allowed-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/full-screen-iframe-allowed-video-expected.png index be759256..abfb363 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/full-screen-iframe-allowed-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/full-screen-iframe-allowed-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png index be759256..abfb363 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png index be759256..abfb363 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-expected.png index a39e5ac..55b60e3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-shadow-expected.png index ee72053..ebe81ec 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-shadow-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-shadow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-drawImage-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-drawImage-video-expected.png deleted file mode 100644 index a58254b..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-drawImage-video-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-pattern-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-pattern-video-expected.png index 71553edf..f31bb59 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-pattern-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/canvas-pattern-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/pixelated-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/pixelated-expected.png new file mode 100644 index 0000000..4c356a19 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/pixelated-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-expected.png new file mode 100644 index 0000000..22c1698 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-repaint-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-repaint-expected.png new file mode 100644 index 0000000..1ead635 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-repaint-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-tabswitching-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-tabswitching-expected.png new file mode 100644 index 0000000..329a790 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-tabswitching-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/yuv-video-on-accelerated-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/yuv-video-on-accelerated-canvas-expected.png deleted file mode 100644 index f0411d4..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/display_list_2d_canvas/fast/canvas/yuv-video-on-accelerated-canvas-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/12-55-expected.png index 36618e9..72c2990 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/12-55-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/12-55-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/182-expected.png index 87fc45e7..ebb07cef 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/182-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/182-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-comp-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-comp-expected.png new file mode 100644 index 0000000..02dde9f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-comp-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-dht-expected.png index db69097b..1cd57312 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-dht-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/2-dht-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/23-55-expected.png index 0bba402..178e3905 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/23-55-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/23-55-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/55-expected.png index 3ef5d582..66273619 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/55-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/55-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cHRM_color_spin-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cHRM_color_spin-expected.png new file mode 100644 index 0000000..4c304cbc --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cHRM_color_spin-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..c10cd0b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-animate-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-animate-expected.png new file mode 100644 index 0000000..874c69a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-animate-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-animate-rotate-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-animate-rotate-expected.png new file mode 100644 index 0000000..9623b7a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-animate-rotate-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-clip-text-expected.png new file mode 100644 index 0000000..8ec4a0d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-clip-text-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png new file mode 100644 index 0000000..dc931ce --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cross-fade-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cross-fade-expected.png new file mode 100644 index 0000000..2a47876 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cross-fade-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cross-fade-png-expected.png new file mode 100644 index 0000000..2a47876 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-cross-fade-png-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-repeat-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-repeat-expected.png new file mode 100644 index 0000000..6de6b5545 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-repeat-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png new file mode 100644 index 0000000..9e5603dc --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-fade-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-fade-expected.png new file mode 100644 index 0000000..2202536 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-fade-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-image-expected.png new file mode 100644 index 0000000..e27948c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-image-source-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-image-source-expected.png new file mode 100644 index 0000000..51f8501 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-image-source-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-radius-expected.png new file mode 100644 index 0000000..ef3128d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-border-radius-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-clip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-clip-expected.png new file mode 100644 index 0000000..b208b128 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-clip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-filter-expected.png new file mode 100644 index 0000000..695d466 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-group-expected.png new file mode 100644 index 0000000..f32fb4b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-iframe-expected.png new file mode 100644 index 0000000..3814e41 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-iframe-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-expected.png new file mode 100644 index 0000000..ab7bb2da --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-pattern-expected.png new file mode 100644 index 0000000..6e84da6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-pattern-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-svg-expected.png new file mode 100644 index 0000000..4f0b1ca --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-canvas-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-expected.png new file mode 100644 index 0000000..7ac8cac --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-filter-all-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-filter-all-expected.png index cbebdf2..930406a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-filter-all-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-object-fit-expected.png new file mode 100644 index 0000000..56bf0512 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-object-fit-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-profile-match-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-profile-match-expected.png new file mode 100644 index 0000000..356bfef07a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-profile-match-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-pseudo-content-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-pseudo-content-expected.png new file mode 100644 index 0000000..a931591 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-pseudo-content-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-shape-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-shape-expected.png index fe02a6b1..951b57f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-shape-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-shape-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-svg-resource-url-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-svg-resource-url-expected.png new file mode 100644 index 0000000..28870ea --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-image-svg-resource-url-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-layer-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-layer-expected.png new file mode 100644 index 0000000..0cd64e5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-layer-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png new file mode 100644 index 0000000..56c7926 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-mask-image-svg-expected.png new file mode 100644 index 0000000..a03e7cd --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-mask-image-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-adobe-to-srgb-expected.png index 535922d..c5c3efb7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-adobe-to-srgb-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-adobe-to-srgb-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-srgb-to-srgb-expected.png index 4669db6c..6f42dc9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-srgb-to-srgb-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-munsell-srgb-to-srgb-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-object-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-object-expected.png new file mode 100644 index 0000000..3c32c5a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-object-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-expected.png new file mode 100644 index 0000000..9ee60756 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png index 66498a7..4be12c1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-foreign-object-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-foreign-object-expected.png new file mode 100644 index 0000000..1d78a19 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-foreign-object-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-background-size-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-background-size-expected.png new file mode 100644 index 0000000..392819d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-background-size-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-diff-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-diff-expected.png index d53d4c6b..374cbae 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-diff-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-diff-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-expected.png index 7f1965e..6b147f2c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/cross-fade-svg-size-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-css-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-css-expected.png index 17b41b6..ed78fd1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-css-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-css-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-expected.png index e74ca10..529f7bb 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-height-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-height-image-document-expected.png new file mode 100644 index 0000000..6366d72 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-height-image-document-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-image-document-expected.png index 84a95e1..bdefba6fe 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-image-document-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/exif-orientation-image-document-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/icon-0colors-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/icon-0colors-expected.png new file mode 100644 index 0000000..e51659c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/icon-0colors-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/icon-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/icon-decoding-expected.png new file mode 100644 index 0000000..07ff309 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/icon-decoding-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/image-map-anchor-children-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/image-map-anchor-children-expected.png index 0232d9ef..39f9010e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/image-map-anchor-children-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/image-map-anchor-children-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png index 94279e8..d5a6a16 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png index 9271b93..e1b87ee6 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png index e405907..e479ae1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png index f92650c..3f0744b7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png index f780c29..c11b9d4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png index cf6ce28..5880f18 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png index 2f3eff0..d42a2dbc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png index a30781b..f3a0d48f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-with-color-profile-expected.png index 5b9db4ac9..64c5248 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-with-color-profile-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-image-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-image-decoding-expected.png index 9322a516..41d34c5f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-image-decoding-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-image-decoding-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-progressive-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-progressive-canvas-expected.png new file mode 100644 index 0000000..5eaf3fc --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-progressive-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-progressive-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-progressive-image-expected.png new file mode 100644 index 0000000..d717325 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/jpeg-yuv-progressive-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/motion-jpeg-single-frame-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/motion-jpeg-single-frame-expected.png new file mode 100644 index 0000000..5f3feea --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/motion-jpeg-single-frame-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/optimize-contrast-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/optimize-contrast-canvas-expected.png new file mode 100644 index 0000000..e934c35 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/optimize-contrast-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/optimize-contrast-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/optimize-contrast-image-expected.png new file mode 100644 index 0000000..c183378 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/optimize-contrast-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/paint-subrect-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/paint-subrect-expected.png new file mode 100644 index 0000000..e7d8dd3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/paint-subrect-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/paletted-png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/paletted-png-with-color-profile-expected.png new file mode 100644 index 0000000..3789e07 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/paletted-png-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pdf-as-background-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pdf-as-background-expected.png new file mode 100644 index 0000000..7abc7f6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pdf-as-background-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pdf-as-tiled-background-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pdf-as-tiled-background-expected.png new file mode 100644 index 0000000..7abc7f6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pdf-as-tiled-background-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-background-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-background-image-expected.png new file mode 100644 index 0000000..20448ec --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-background-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-canvas-expected.png new file mode 100644 index 0000000..f9f84b5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-image-expected.png new file mode 100644 index 0000000..2764b3a9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-svg-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-svg-image-expected.png new file mode 100644 index 0000000..2764b3a9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/pixelated-svg-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-suite/test-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-suite/test-expected.png new file mode 100644 index 0000000..f44fe3b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-suite/test-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-with-color-profile-expected.png index 5b9db4ac9..64c5248 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-with-color-profile-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png_per_row_alpha_decoding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png_per_row_alpha_decoding-expected.png new file mode 100644 index 0000000..2a18e29 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/png_per_row_alpha_decoding-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png index 6bfe8c2..da0be55 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-0px-images-quirk-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png index 3fe7b5a..6d14458a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rendering-broken-block-flow-images-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rgb-jpeg-with-adobe-marker-only-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rgb-jpeg-with-adobe-marker-only-expected.png new file mode 100644 index 0000000..f8eb0237 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rgb-jpeg-with-adobe-marker-only-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rgb-png-with-cmyk-color-profile-expected.png new file mode 100644 index 0000000..2a330d9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/rgb-png-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/sprite-no-bleed-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/sprite-no-bleed-expected.png new file mode 100644 index 0000000..7cf8f27 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossless-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossless-expected.png new file mode 100644 index 0000000..032e35e --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossless-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossy-alpha-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossy-alpha-expected.png new file mode 100644 index 0000000..cf8d19f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossy-alpha-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossy-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossy-expected.png new file mode 100644 index 0000000..ccbd467 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/webp-color-profile-lossy-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/ycbcr-with-cmyk-color-profile-expected.png new file mode 100644 index 0000000..5609d55 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/exotic-color-space/images/ycbcr-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/12-55-expected.png index b13a651b..69c864e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/12-55-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/12-55-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/182-expected.png index 9712bd9..44823062 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/182-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/182-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/2-dht-expected.png index f2cc835f..37bd5e1 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/2-dht-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/2-dht-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/23-55-expected.png index cf48d29..0925e715 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/23-55-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/23-55-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/55-expected.png index cc72599..01b56ff 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/55-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/55-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cHRM_color_spin-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cHRM_color_spin-expected.png new file mode 100644 index 0000000..23ed1e4c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cHRM_color_spin-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..1d56780 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-animate-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-animate-expected.png new file mode 100644 index 0000000..d25115f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-animate-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-animate-rotate-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-animate-rotate-expected.png new file mode 100644 index 0000000..8a079e3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-animate-rotate-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png new file mode 100644 index 0000000..22dbbdf --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cross-fade-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cross-fade-expected.png new file mode 100644 index 0000000..29613cd --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cross-fade-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cross-fade-png-expected.png new file mode 100644 index 0000000..29613cd --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-cross-fade-png-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png new file mode 100644 index 0000000..17cda7d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-fade-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-fade-expected.png new file mode 100644 index 0000000..7407960 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-fade-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-image-expected.png new file mode 100644 index 0000000..e523275 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-image-source-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-image-source-expected.png new file mode 100644 index 0000000..a1f66eb --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-image-source-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-radius-expected.png new file mode 100644 index 0000000..a91be93 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-border-radius-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-clip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-clip-expected.png new file mode 100644 index 0000000..e433f51 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-clip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-filter-expected.png new file mode 100644 index 0000000..476e395b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-iframe-expected.png new file mode 100644 index 0000000..268c768 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-iframe-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png new file mode 100644 index 0000000..c164551 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png new file mode 100644 index 0000000..181b748 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-svg-expected.png new file mode 100644 index 0000000..cbefd899 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-canvas-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-expected.png new file mode 100644 index 0000000..669869dd --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png index 5953f52..02f1d5f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-object-fit-expected.png new file mode 100644 index 0000000..9398e0a4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-object-fit-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-profile-match-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-profile-match-expected.png new file mode 100644 index 0000000..1cf0831 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-profile-match-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-pseudo-content-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-pseudo-content-expected.png new file mode 100644 index 0000000..cb38667 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-pseudo-content-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png index 2e9b32ce..49b5989 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-svg-resource-url-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-svg-resource-url-expected.png new file mode 100644 index 0000000..33cf925 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-svg-resource-url-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png rename to third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-adobe-to-srgb-expected.png index a0aee0a..5d6ebd9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-adobe-to-srgb-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-adobe-to-srgb-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-srgb-to-srgb-expected.png index 9dd17226..f82f529 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-srgb-to-srgb-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-munsell-srgb-to-srgb-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-object-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-object-expected.png new file mode 100644 index 0000000..c6d91224 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-object-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-foreign-object-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-foreign-object-expected.png new file mode 100644 index 0000000..66548d51 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-foreign-object-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-background-size-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-background-size-expected.png new file mode 100644 index 0000000..31ff33d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-background-size-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-invalidation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-invalidation-expected.png new file mode 100644 index 0000000..03e8eef --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-invalidation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-overflow-position-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-overflow-position-expected.png new file mode 100644 index 0000000..e49d2e89 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/cross-fade-overflow-position-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-expected.png index cf791fa6..421d50f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-height-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-height-image-document-expected.png new file mode 100644 index 0000000..e2fc9cae --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-height-image-document-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-image-document-expected.png index 181028f7..9b89d38 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-image-document-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/exif-orientation-image-document-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/gray-scale-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/gray-scale-jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..8caaa7bd --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/gray-scale-jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png index d4f7e79..9947e82 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png index 0f4ff2a6..120c622 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png index 2eeb5d0..17b62cf9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png index cca3649..54b9fca 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index 5e6d6ac..2ebf6b2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png index 7e3d20d..1751c4b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png index 9498a91..c77dc5fa 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png index 0ad634a..b046dba 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zero-outline-width-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zero-outline-width-expected.png index d2b8d51..51ccf93 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zero-outline-width-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zero-outline-width-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png index d052bbc..d4d0a98 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png index 75afe18..c6223975 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png index 2c9e772..ed41a17 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png index cc4da1a..232540fc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png index dacadc04..8443216 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-yuv-progressive-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-yuv-progressive-image-expected.png new file mode 100644 index 0000000..fec0280a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-yuv-progressive-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/motion-jpeg-single-frame-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/motion-jpeg-single-frame-expected.png new file mode 100644 index 0000000..9dda35f --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/motion-jpeg-single-frame-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/optimize-contrast-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/optimize-contrast-canvas-expected.png new file mode 100644 index 0000000..c15e7eb2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/optimize-contrast-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/optimize-contrast-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/optimize-contrast-image-expected.png new file mode 100644 index 0000000..c15e7eb2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/optimize-contrast-image-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale-expected.png index 97ac605..460e5d9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-suite/test-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-suite/test-expected.png new file mode 100644 index 0000000..7eccc40 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-suite/test-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-with-color-profile-expected.png index dacadc04..8443216 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-with-color-profile-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/png-with-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png index acc5324..7f290eb 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png index a661f82..41a9d19 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rendering-broken-block-flow-images-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png new file mode 100644 index 0000000..8025909 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png new file mode 100644 index 0000000..80de5a89 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossless-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossless-expected.png new file mode 100644 index 0000000..920523b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossless-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossy-alpha-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossy-alpha-expected.png new file mode 100644 index 0000000..ef294951 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossy-alpha-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossy-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossy-expected.png new file mode 100644 index 0000000..b896e672 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/webp-color-profile-lossy-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png new file mode 100644 index 0000000..d7efc45 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-arc-circumference-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-arc-circumference-expected.png new file mode 100644 index 0000000..61f628a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-arc-circumference-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-arc-circumference-fill-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-arc-circumference-fill-expected.png new file mode 100644 index 0000000..0ce8cd4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-arc-circumference-fill-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-expected.png index d810784f..60043c2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-shadow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-shadow-expected.png index 24a9022..f9dbdb3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-shadow-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-shadow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-transformclip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-transformclip-expected.png new file mode 100644 index 0000000..dae93154 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-transformclip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-expected.png index dc6b5f8..1311c4d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png new file mode 100644 index 0000000..502b853 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-drawImage-antiAlias-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-drawImage-antiAlias-expected.png new file mode 100644 index 0000000..408324c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-drawImage-antiAlias-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-drawImage-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-drawImage-video-expected.png new file mode 100644 index 0000000..564b4dc --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-drawImage-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill-expected.png new file mode 100644 index 0000000..4801274 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png new file mode 100644 index 0000000..9f4d81b0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png index 736ddc8..1b78a18 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-no-repeat-with-transformations-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-no-repeat-with-transformations-expected.png new file mode 100644 index 0000000..d8fdd0c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-no-repeat-with-transformations-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-video-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-video-expected.png index 71553edf..f31bb59 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-video-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-pattern-video-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png index 233086c43..9f1f528a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-alignment-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-alignment-expected.png index 6c38c2a..bc5c79f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-alignment-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-alignment-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-expected.png index 89cbb593..f8e9716 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-tiny-fonts-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-tiny-fonts-expected.png index 1875c53f..cc18a7df 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-tiny-fonts-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-text-baseline-tiny-fonts-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-jpeg-maximum-quality-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-jpeg-maximum-quality-expected.png index 46a7bff..be38e06 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-jpeg-maximum-quality-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-jpeg-maximum-quality-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-webp-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-webp-expected.png new file mode 100644 index 0000000..159962c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-toDataURL-webp-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-transforms-during-path-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-transforms-during-path-expected.png index 416fcc5..ed697ce 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-transforms-during-path-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-transforms-during-path-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-zero-length-lineCap-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-zero-length-lineCap-expected.png new file mode 100644 index 0000000..adf0a6d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-zero-length-lineCap-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/fillrect_gradient-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/fillrect_gradient-expected.png index 049947f..064078d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/fillrect_gradient-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/fillrect_gradient-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/image-object-in-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/image-object-in-canvas-expected.png index 7bc4765..030291a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/image-object-in-canvas-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/image-object-in-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/pixelated-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/pixelated-expected.png new file mode 100644 index 0000000..e1e0e2d --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/pixelated-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png index a962931..59111ac 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/pixelated-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/pixelated-expected.png new file mode 100644 index 0000000..4c356a19 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/pixelated-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-expected.png new file mode 100644 index 0000000..22c1698 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint-expected.png new file mode 100644 index 0000000..1ead635 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-tabswitching-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-tabswitching-expected.png new file mode 100644 index 0000000..329a790 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-tabswitching-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas-expected.png index f0411d4..a23bd9d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/008-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/008-expected.png new file mode 100644 index 0000000..54121bed --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/008-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/021-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/021-expected.png index 821d7c4e..fa04624 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/021-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/float/021-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/margin-collapse/104-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/margin-collapse/104-expected.png index e5a96215..25d3074 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/margin-collapse/104-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/fast/block/margin-collapse/104-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/overflow/overflow-transform-perspective-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/overflow/overflow-transform-perspective-expected.png index 799fdd2fb..9b31940b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/overflow/overflow-transform-perspective-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng/overflow/overflow-transform-perspective-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/float_elements_in_series-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/float_elements_in_series-expected.png index a6d4d61..f0c1277 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/float_elements_in_series-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/float_elements_in_series-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/padding_inline-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/padding_inline-expected.png index 1901a6c..4d33f7d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/padding_inline-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/box_properties/padding_inline-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/firstline-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/firstline-expected.png index a867f30b..8fb0e49 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/firstline-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/firstline-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/pseudo_elements_in_selectors-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/pseudo_elements_in_selectors-expected.png index e780cc7..33e24d83 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/pseudo_elements_in_selectors-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/pseudo/pseudo_elements_in_selectors-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/units/percentage_units-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/units/percentage_units-expected.png index 5f2ae23..05f2895 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/units/percentage_units-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/css1/units/percentage_units-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/023-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/023-expected.png index 1030ac3..a007f79 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/023-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/023-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/040-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/040-expected.png index 4b9c6716..0ff5526 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/040-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/040-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-cell-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-cell-expected.png index 84513c6..a6ef896 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-cell-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-cell-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-collapsed-border-expected.png index 4bd727e..6034610 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-group-expected.png index 010ec78..05883dc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-column-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-expected.png deleted file mode 100644 index 29c64ac15..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-collapsed-border-expected.png index 707b7f0..3cb3102 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-expected.png index 535f451..8aa6930 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_border-table-row-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-hide-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-hide-expected.png index 4f8ea7b4..449a74d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-hide-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-hide-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-collapsed-border-expected.png index 690b06a..59728f5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-expected.png index 718169d..6fd0aba 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_layers-show-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-column-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-column-group-expected.png index 0bc70bc..8c39206 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-column-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-column-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-expected.png index e18d8ac6..4008f02 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-collapsed-border-expected.png index 93165f4..0e3a429 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-group-expected.png index 97293ab7..61e56fc 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_position-table-row-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-cell-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-cell-expected.png index 6d2f3e12..4996351 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-cell-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-cell-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-collapsed-border-expected.png index 78bdac9..2c9ea75e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-group-expected.png index aaeb391..43c8a66 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-group-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-column-group-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-expected.png index 6f613657..d6976ec7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-row-collapsed-border-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-row-collapsed-border-expected.png index ca82511..bd65d9e7c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-row-collapsed-border-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/backgr_simple-table-row-collapsed-border-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/empty-cells-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/empty-cells-expected.png index 8d98f0a..9af691d 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/empty-cells-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/fast/table/empty-cells-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png new file mode 100644 index 0000000..52b7c89 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-loading/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png index 95cc3b8..c0d1ed9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-custom-bg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-expected.png index f020e908..a7d8a8d2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-controls-with-cast-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-controls-with-cast-rendering-expected.png index c760087..6f1b9b4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-controls-with-cast-rendering-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-controls-with-cast-rendering-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-dark-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-dark-rendering-expected.png index 6881c87..21c7372e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-dark-rendering-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-dark-rendering-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-light-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-light-rendering-expected.png index 6f50ab8..f0f58639 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-light-rendering-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/new-remote-playback-pipeline/media/controls/video-overlay-cast-light-rendering-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png new file mode 100644 index 0000000..31ce3d9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png new file mode 100644 index 0000000..2cee245 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png new file mode 100644 index 0000000..b60254a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png new file mode 100644 index 0000000..b9fac482 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-styles-with-composited-child-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-styles-with-composited-child-expected.png new file mode 100644 index 0000000..5fa2b0b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-styles-with-composited-child-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..f38a1b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..f38a1b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/mask-with-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/mask-with-filter-expected.png new file mode 100644 index 0000000..fff540df --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/mask-with-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-expected.png new file mode 100644 index 0000000..df1e8d1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png new file mode 100644 index 0000000..ce412b6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-rotation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-rotation-expected.png new file mode 100644 index 0000000..b474717 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-rotation-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-compositing-descendant-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-compositing-descendant-expected.png index f5d9cd3..1e09c67 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-compositing-descendant-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-compositing-descendant-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-mask-expected.png index f9d24e27..c98959e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-mask-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-overflow-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-overflow-expected.png new file mode 100644 index 0000000..c1c4d7ff --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-overflow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-ancestor-update-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-ancestor-update-expected.png index 5d5a44a..8916901 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-ancestor-update-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-ancestor-update-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..f38a1b2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png new file mode 100644 index 0000000..00fa2b9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-with-border-radius-ancestor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..ff3a0270 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/tiled-mask-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/tiled-mask-expected.png new file mode 100644 index 0000000..ba320740 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/tiled-mask-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbars-on-positioned-content-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbars-on-positioned-content-expected.png index d559c37..1f5c550 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbars-on-positioned-content-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/scrollbars-on-positioned-content-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 3fa71a05..1fee21c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 3669d2a..1864cbd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 3669d2a..1864cbd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/rotate-transform-equivalent-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/rotate-transform-equivalent-expected.png index 0a3a04a..867a086 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/rotate-transform-equivalent-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/rotate-transform-equivalent-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/skew-notsequential-compositor-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/skew-notsequential-compositor-expected.png new file mode 100644 index 0000000..7fdff4b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/animations/skew-notsequential-compositor-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/visibility/visibility-image-layers-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/visibility/visibility-image-layers-expected.png new file mode 100644 index 0000000..365ad04 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/visibility/visibility-image-layers-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/visibility/visibility-simple-video-layer-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/visibility/visibility-simple-video-layer-expected.png new file mode 100644 index 0000000..3d2a91a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/visibility/visibility-simple-video-layer-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/webgl/webgl-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/webgl/webgl-reflection-expected.png index 5b050023..f90d16e5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/webgl/webgl-reflection-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/compositing/webgl/webgl-reflection-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/return-from-printing-mode-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/return-from-printing-mode-expected.png index a634b4002..773e4cf 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/return-from-printing-mode-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/return-from-printing-mode-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/transitions/opacity-transform-transitions-inside-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/transitions/opacity-transform-transitions-inside-iframe-expected.png new file mode 100644 index 0000000..70fc03d6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/transitions/opacity-transform-transitions-inside-iframe-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/transitions/opacity-transition-zindex-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/transitions/opacity-transition-zindex-expected.png new file mode 100644 index 0000000..43c5d9c --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/transitions/opacity-transition-zindex-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt deleted file mode 100644 index 7df452b1..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Test that loading a graph in which a module is already errored results in that module's error. assert_array_equals: property 2, expected object "SyntaxError: The requested module does not provide an export named 'something'" but got object "SyntaxError: The requested module does not provide an export named 'something'" -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt deleted file mode 100644 index 7df452b1..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac-retina/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Test that loading a graph in which a module is already errored results in that module's error. assert_array_equals: property 2, expected object "SyntaxError: The requested module does not provide an export named 'something'" but got object "SyntaxError: The requested module does not provide an export named 'something'" -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/platform/win/compositing/culling/filter-occlusion-blur-expected.png b/third_party/WebKit/LayoutTests/platform/win/compositing/culling/filter-occlusion-blur-expected.png new file mode 100644 index 0000000..46428a3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/compositing/culling/filter-occlusion-blur-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-blur-hw-expected.png b/third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-blur-hw-expected.png new file mode 100644 index 0000000..c0ab7c9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-blur-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/css3/filters/effect-brightness-clamping-hw-expected.png b/third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-brightness-clamping-hw-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/css3/filters/effect-brightness-clamping-hw-expected.png rename to third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-brightness-clamping-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/css3/filters/effect-combined-hw-expected.png b/third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-combined-hw-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/css3/filters/effect-combined-hw-expected.png rename to third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-combined-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/css3/filters/effect-drop-shadow-hw-expected.png b/third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-drop-shadow-hw-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/css3/filters/effect-drop-shadow-hw-expected.png rename to third_party/WebKit/LayoutTests/platform/win/css3/filters/effect-drop-shadow-hw-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/css3/filters/filter-repaint-composited-fallback-crash-expected.png b/third_party/WebKit/LayoutTests/platform/win/css3/filters/filter-repaint-composited-fallback-crash-expected.png new file mode 100644 index 0000000..85fde79 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/css3/filters/filter-repaint-composited-fallback-crash-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/css3/filters/filter-repaint-composited-fallback-expected.png b/third_party/WebKit/LayoutTests/platform/win/css3/filters/filter-repaint-composited-fallback-expected.png new file mode 100644 index 0000000..85fde79 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/css3/filters/filter-repaint-composited-fallback-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/win/images/color-profile-layer-filter-expected.png new file mode 100644 index 0000000..3a67f62 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/images/color-profile-layer-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png similarity index 100% rename from third_party/WebKit/LayoutTests/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png rename to third_party/WebKit/LayoutTests/platform/win/virtual/exotic-color-space/images/color-profile-layer-filter-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png new file mode 100644 index 0000000..fffa76b --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png new file mode 100644 index 0000000..748d85e --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png index fffa76b..589b7dd 100644 --- a/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png +++ b/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png b/third_party/WebKit/LayoutTests/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png deleted file mode 100644 index 89065d6..0000000 --- a/third_party/WebKit/LayoutTests/virtual/gpu/fast/canvas/canvas-composite-video-shadow-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8AbstractEventListener.cpp b/third_party/WebKit/Source/bindings/core/v8/V8AbstractEventListener.cpp index dca66e2..a9cf21a 100644 --- a/third_party/WebKit/Source/bindings/core/v8/V8AbstractEventListener.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/V8AbstractEventListener.cpp
@@ -52,7 +52,7 @@ : EventListener(kJSEventListenerType), listener_(nullptr), is_attribute_(is_attribute), - world_(world), + world_(&world), isolate_(isolate), worker_global_scope_(nullptr) { if (IsMainThread())
diff --git a/third_party/WebKit/Source/core/dom/ModulatorImplBase.cpp b/third_party/WebKit/Source/core/dom/ModulatorImplBase.cpp index 160518a..6fbe2121 100644 --- a/third_party/WebKit/Source/core/dom/ModulatorImplBase.cpp +++ b/third_party/WebKit/Source/core/dom/ModulatorImplBase.cpp
@@ -4,6 +4,7 @@ #include "core/dom/ModulatorImplBase.h" +#include "core/dom/DynamicModuleResolver.h" #include "core/dom/ExecutionContext.h" #include "core/dom/ModuleMap.h" #include "core/dom/ModuleScript.h" @@ -29,7 +30,8 @@ tree_linker_registry_(ModuleTreeLinkerRegistry::Create()), script_module_resolver_(ScriptModuleResolverImpl::Create( this, - ExecutionContext::From(script_state_.Get()))) { + ExecutionContext::From(script_state_.Get()))), + dynamic_module_resolver_(DynamicModuleResolver::Create(this)) { DCHECK(script_state_); DCHECK(task_runner_); } @@ -104,11 +106,13 @@ return script_state_->ContextIsValid(); } -void ModulatorImplBase::ResolveDynamically(const String& specifier, - const String& referrer_url, - const ReferrerScriptInfo&, - ScriptPromiseResolver*) { - NOTIMPLEMENTED(); +void ModulatorImplBase::ResolveDynamically( + const String& specifier, + const String& referrer_url, + const ReferrerScriptInfo& referrer_info, + ScriptPromiseResolver* resolver) { + dynamic_module_resolver_->ResolveDynamically(specifier, referrer_url, + referrer_info, resolver); } ScriptModule ModulatorImplBase::CompileModule( @@ -246,6 +250,7 @@ visitor->Trace(loader_registry_); visitor->Trace(tree_linker_registry_); visitor->Trace(script_module_resolver_); + visitor->Trace(dynamic_module_resolver_); } DEFINE_TRACE_WRAPPERS(ModulatorImplBase) {
diff --git a/third_party/WebKit/Source/core/dom/ModulatorImplBase.h b/third_party/WebKit/Source/core/dom/ModulatorImplBase.h index 8070b18..1b873445 100644 --- a/third_party/WebKit/Source/core/dom/ModulatorImplBase.h +++ b/third_party/WebKit/Source/core/dom/ModulatorImplBase.h
@@ -14,6 +14,7 @@ namespace blink { +class DynamicModuleResolver; class ExecutionContext; class ModuleMap; class ModuleScriptLoaderRegistry; @@ -82,6 +83,7 @@ Member<ModuleScriptLoaderRegistry> loader_registry_; TraceWrapperMember<ModuleTreeLinkerRegistry> tree_linker_registry_; Member<ScriptModuleResolver> script_module_resolver_; + Member<DynamicModuleResolver> dynamic_module_resolver_; }; } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/events/CustomEvent.cpp b/third_party/WebKit/Source/core/dom/events/CustomEvent.cpp index 97c1d2e..5fd80896 100644 --- a/third_party/WebKit/Source/core/dom/events/CustomEvent.cpp +++ b/third_party/WebKit/Source/core/dom/events/CustomEvent.cpp
@@ -36,7 +36,7 @@ const AtomicString& type, const CustomEventInit& initializer) : Event(type, initializer), detail_(this) { - world_ = RefPtr<DOMWrapperWorld>(script_state->World()); + world_ = WrapRefPtr(&script_state->World()); if (initializer.hasDetail()) { detail_.Set(initializer.detail().GetIsolate(), initializer.detail().V8Value()); @@ -51,7 +51,7 @@ bool cancelable, const ScriptValue& script_value) { initEvent(type, can_bubble, cancelable); - world_ = RefPtr<DOMWrapperWorld>(script_state->World()); + world_ = WrapRefPtr(&script_state->World()); if (!IsBeingDispatched() && !script_value.IsEmpty()) detail_.Set(script_value.GetIsolate(), script_value.V8Value()); }
diff --git a/third_party/WebKit/Source/core/events/ErrorEvent.cpp b/third_party/WebKit/Source/core/events/ErrorEvent.cpp index b27b021e..8737109 100644 --- a/third_party/WebKit/Source/core/events/ErrorEvent.cpp +++ b/third_party/WebKit/Source/core/events/ErrorEvent.cpp
@@ -41,7 +41,7 @@ : sanitized_message_(), location_(SourceLocation::Create(String(), 0, 0, nullptr)), error_(this), - world_(DOMWrapperWorld::Current(v8::Isolate::GetCurrent())) {} + world_(&DOMWrapperWorld::Current(v8::Isolate::GetCurrent())) {} ErrorEvent::ErrorEvent(ScriptState* script_state, const AtomicString& type, @@ -49,7 +49,7 @@ : Event(type, initializer), sanitized_message_(), error_(this), - world_(script_state->World()) { + world_(&script_state->World()) { if (initializer.hasMessage()) sanitized_message_ = initializer.message(); location_ = SourceLocation::Create(
diff --git a/third_party/WebKit/Source/core/events/PopStateEvent.cpp b/third_party/WebKit/Source/core/events/PopStateEvent.cpp index d4e0ef5..d329df8 100644 --- a/third_party/WebKit/Source/core/events/PopStateEvent.cpp +++ b/third_party/WebKit/Source/core/events/PopStateEvent.cpp
@@ -39,7 +39,7 @@ const PopStateEventInit& initializer) : Event(type, initializer), state_(this), history_(nullptr) { if (initializer.hasState()) { - world_ = RefPtr<DOMWrapperWorld>(script_state->World()); + world_ = WrapRefPtr(&script_state->World()); state_.Set(initializer.state().GetIsolate(), initializer.state().V8Value()); } }
diff --git a/third_party/WebKit/Source/core/events/PromiseRejectionEvent.cpp b/third_party/WebKit/Source/core/events/PromiseRejectionEvent.cpp index 253046d..de4e73ad 100644 --- a/third_party/WebKit/Source/core/events/PromiseRejectionEvent.cpp +++ b/third_party/WebKit/Source/core/events/PromiseRejectionEvent.cpp
@@ -13,7 +13,7 @@ const AtomicString& type, const PromiseRejectionEventInit& initializer) : Event(type, initializer), - world_(state->World()), + world_(&state->World()), promise_(this), reason_(this) { DCHECK(initializer.hasPromise());
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.cpp b/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.cpp index 120e5204..1714bd6 100644 --- a/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.cpp
@@ -62,8 +62,8 @@ node, sample_rate), buffer_(nullptr), - playback_rate_(playback_rate), - detune_(detune), + playback_rate_(&playback_rate), + detune_(&detune), is_looping_(false), did_set_looping_(false), loop_start_(0),
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioSummingJunction.cpp b/third_party/WebKit/Source/modules/webaudio/AudioSummingJunction.cpp index 5162fe9..86b4c9c 100644 --- a/third_party/WebKit/Source/modules/webaudio/AudioSummingJunction.cpp +++ b/third_party/WebKit/Source/modules/webaudio/AudioSummingJunction.cpp
@@ -30,7 +30,7 @@ namespace blink { AudioSummingJunction::AudioSummingJunction(DeferredTaskHandler& handler) - : deferred_task_handler_(handler), rendering_state_need_updating_(false) {} + : deferred_task_handler_(&handler), rendering_state_need_updating_(false) {} AudioSummingJunction::~AudioSummingJunction() { GetDeferredTaskHandler().RemoveMarkedSummingJunction(this);
diff --git a/third_party/WebKit/Source/modules/webaudio/BiquadProcessor.cpp b/third_party/WebKit/Source/modules/webaudio/BiquadProcessor.cpp index 628289c..e567721 100644 --- a/third_party/WebKit/Source/modules/webaudio/BiquadProcessor.cpp +++ b/third_party/WebKit/Source/modules/webaudio/BiquadProcessor.cpp
@@ -39,10 +39,10 @@ AudioParamHandler& detune) : AudioDSPKernelProcessor(sample_rate, number_of_channels), type_(kLowPass), - parameter1_(frequency), - parameter2_(q), - parameter3_(gain), - parameter4_(detune), + parameter1_(&frequency), + parameter2_(&q), + parameter3_(&gain), + parameter4_(&detune), filter_coefficients_dirty_(true), has_sample_accurate_values_(false) {}
diff --git a/third_party/WebKit/Source/modules/webaudio/ConstantSourceNode.cpp b/third_party/WebKit/Source/modules/webaudio/ConstantSourceNode.cpp index 34352f2..e85d7f68 100644 --- a/third_party/WebKit/Source/modules/webaudio/ConstantSourceNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/ConstantSourceNode.cpp
@@ -20,7 +20,7 @@ float sample_rate, AudioParamHandler& offset) : AudioScheduledSourceHandler(kNodeTypeConstantSource, node, sample_rate), - offset_(offset), + offset_(&offset), sample_accurate_values_(AudioUtilities::kRenderQuantumFrames) { // A ConstantSource is always mono. AddOutput(1);
diff --git a/third_party/WebKit/Source/modules/webaudio/DelayProcessor.cpp b/third_party/WebKit/Source/modules/webaudio/DelayProcessor.cpp index 93058da..52629b52 100644 --- a/third_party/WebKit/Source/modules/webaudio/DelayProcessor.cpp +++ b/third_party/WebKit/Source/modules/webaudio/DelayProcessor.cpp
@@ -36,7 +36,7 @@ AudioParamHandler& delay_time, double max_delay_time) : AudioDSPKernelProcessor(sample_rate, number_of_channels), - delay_time_(delay_time), + delay_time_(&delay_time), max_delay_time_(max_delay_time) {} DelayProcessor::~DelayProcessor() {
diff --git a/third_party/WebKit/Source/modules/webaudio/DynamicsCompressorNode.cpp b/third_party/WebKit/Source/modules/webaudio/DynamicsCompressorNode.cpp index d647e6c..f27c549 100644 --- a/third_party/WebKit/Source/modules/webaudio/DynamicsCompressorNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/DynamicsCompressorNode.cpp
@@ -47,12 +47,12 @@ AudioParamHandler& attack, AudioParamHandler& release) : AudioHandler(kNodeTypeDynamicsCompressor, node, sample_rate), - threshold_(threshold), - knee_(knee), - ratio_(ratio), + threshold_(&threshold), + knee_(&knee), + ratio_(&ratio), reduction_(0), - attack_(attack), - release_(release) { + attack_(&attack), + release_(&release) { AddInput(); AddOutput(defaultNumberOfOutputChannels); Initialize();
diff --git a/third_party/WebKit/Source/modules/webaudio/GainNode.cpp b/third_party/WebKit/Source/modules/webaudio/GainNode.cpp index c7f3f3d..89886ca 100644 --- a/third_party/WebKit/Source/modules/webaudio/GainNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/GainNode.cpp
@@ -37,7 +37,7 @@ AudioParamHandler& gain) : AudioHandler(kNodeTypeGain, node, sample_rate), last_gain_(1.0), - gain_(gain), + gain_(&gain), sample_accurate_gain_values_( AudioUtilities::kRenderQuantumFrames) // FIXME: can probably // share temp buffer
diff --git a/third_party/WebKit/Source/modules/webaudio/OscillatorNode.cpp b/third_party/WebKit/Source/modules/webaudio/OscillatorNode.cpp index e7dce5e5..d01e5b93 100644 --- a/third_party/WebKit/Source/modules/webaudio/OscillatorNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/OscillatorNode.cpp
@@ -46,8 +46,8 @@ AudioParamHandler& frequency, AudioParamHandler& detune) : AudioScheduledSourceHandler(kNodeTypeOscillator, node, sample_rate), - frequency_(frequency), - detune_(detune), + frequency_(&frequency), + detune_(&detune), first_render_(true), virtual_read_index_(0), phase_increments_(AudioUtilities::kRenderQuantumFrames),
diff --git a/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp b/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp index 0501046..4859c43 100644 --- a/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp
@@ -61,12 +61,12 @@ cached_azimuth_(0), cached_elevation_(0), cached_distance_cone_gain_(1.0f), - position_x_(position_x), - position_y_(position_y), - position_z_(position_z), - orientation_x_(orientation_x), - orientation_y_(orientation_y), - orientation_z_(orientation_z) { + position_x_(&position_x), + position_y_(&position_y), + position_z_(&position_z), + orientation_x_(&orientation_x), + orientation_y_(&orientation_y), + orientation_z_(&orientation_z) { AddInput(); AddOutput(2);
diff --git a/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp b/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp index 9c7f2fbb..d992528 100644 --- a/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp +++ b/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp
@@ -20,7 +20,7 @@ float sample_rate, AudioParamHandler& pan) : AudioHandler(kNodeTypeStereoPanner, node, sample_rate), - pan_(pan), + pan_(&pan), sample_accurate_pan_values_(AudioUtilities::kRenderQuantumFrames) { AddInput(); AddOutput(2);
diff --git a/third_party/WebKit/Source/modules/webmidi/MIDIPort.cpp b/third_party/WebKit/Source/modules/webmidi/MIDIPort.cpp index 8a617f731..29aef64 100644 --- a/third_party/WebKit/Source/modules/webmidi/MIDIPort.cpp +++ b/third_party/WebKit/Source/modules/webmidi/MIDIPort.cpp
@@ -195,6 +195,11 @@ } void MIDIPort::OpenAsynchronously(ScriptPromiseResolver* resolver) { + // The frame should exist, but it may be already detached and the execution + // context may be lost here. + if (!GetExecutionContext()) + return; + UseCounter::Count(*ToDocument(GetExecutionContext()), WebFeature::kMIDIPortOpen); DCHECK_NE(0u, running_open_count_); @@ -219,6 +224,11 @@ } void MIDIPort::CloseAsynchronously(ScriptPromiseResolver* resolver) { + // The frame should exist, but it may be already detached and the execution + // context may be lost here. + if (!GetExecutionContext()) + return; + DCHECK(resolver); // TODO(toyoshim): Do clear() operation on MIDIOutput. // TODO(toyoshim): Add blink API to perform a real close operation.
diff --git a/third_party/WebKit/Source/platform/exported/WebCORSPreflightResultCache.cpp b/third_party/WebKit/Source/platform/exported/WebCORSPreflightResultCache.cpp index 43d894c..86220d0 100644 --- a/third_party/WebKit/Source/platform/exported/WebCORSPreflightResultCache.cpp +++ b/third_party/WebKit/Source/platform/exported/WebCORSPreflightResultCache.cpp
@@ -185,6 +185,9 @@ bool WebCORSPreflightResultCacheItem::AllowsCrossOriginHeaders( const WebHTTPHeaderMap& request_headers, WebString& error_description) const { + if (!credentials_ && headers_.find("*") != headers_.end()) + return true; + for (const auto& header : request_headers.GetHTTPHeaderMap()) { if (headers_.find(header.key.Ascii().data()) == headers_.end() && !FetchUtils::IsCORSSafelistedHeader(header.key, header.value) &&
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp index 26762098..9fff5b4d 100644 --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
@@ -33,17 +33,13 @@ class ResourceLoadSchedulerTest : public ::testing::Test { public: void SetUp() override { - // TODO(toyoshim): blink_platform_unittests should enable experimental - // runtime features by default. - DCHECK(!RuntimeEnabledFeatures::ResourceLoadSchedulerEnabled()); - RuntimeEnabledFeatures::SetResourceLoadSchedulerEnabled(true); + DCHECK(RuntimeEnabledFeatures::ResourceLoadSchedulerEnabled()); scheduler_ = ResourceLoadScheduler::Create( MockFetchContext::Create(MockFetchContext::kShouldNotLoadNewResource)); scheduler()->SetOutstandingLimitForTesting(1); } void TearDown() override { scheduler()->Shutdown(); - RuntimeEnabledFeatures::SetResourceLoadSchedulerEnabled(false); } ResourceLoadScheduler* scheduler() { return scheduler_; }
diff --git a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp b/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp index 4f0493f5..8149613 100644 --- a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp +++ b/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp
@@ -63,6 +63,7 @@ #include "public/platform/WebContentLayer.h" #include "public/platform/WebExternalTextureLayer.h" #include "public/platform/WebImageLayer.h" +#include "public/platform/WebRuntimeFeatures.h" #include "public/platform/WebScrollbarLayer.h" namespace blink { @@ -370,6 +371,8 @@ InitializePlatformLanguage(); FontFamilyNames::init(); + WebRuntimeFeatures::EnableExperimentalFeatures(true); + WebRuntimeFeatures::EnableTestOnlyFeatures(true); } ScopedUnittestsEnvironmentSetup::~ScopedUnittestsEnvironmentSetup() {}
diff --git a/third_party/WebKit/Source/platform/wtf/RefPtr.h b/third_party/WebKit/Source/platform/wtf/RefPtr.h index 980b0ed..8b18772e 100644 --- a/third_party/WebKit/Source/platform/wtf/RefPtr.h +++ b/third_party/WebKit/Source/platform/wtf/RefPtr.h
@@ -70,7 +70,6 @@ ALWAYS_INLINE RefPtr() : ptr_(nullptr) {} ALWAYS_INLINE RefPtr(std::nullptr_t) : ptr_(nullptr) {} ALWAYS_INLINE RefPtr(T* ptr) : ptr_(ptr) { RefIfNotNull(ptr); } - ALWAYS_INLINE explicit RefPtr(T& ref) : ptr_(&ref) { ptr_->Ref(); } ALWAYS_INLINE RefPtr(const RefPtr& o) : ptr_(o.ptr_) { RefIfNotNull(ptr_); } template <typename U> RefPtr(const RefPtr<U>& o, EnsurePtrConvertibleArgDecl(U, T))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve.py index 776171c..8d0d378 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve.py
@@ -40,9 +40,9 @@ path_to_wpt_config = fs.join(path_to_wpt_support, 'wpt.config.json') path_to_wpt_tests = fs.abspath(fs.join(self._port_obj.layout_tests_dir(), 'external', 'wpt')) path_to_ws_handlers = fs.join(path_to_wpt_tests, 'websockets', 'handlers') - serve_script = fs.join(path_to_wpt_root, 'serve') + wpt_script = fs.join(path_to_wpt_root, 'wpt') start_cmd = [self._port_obj.host.executable, - '-u', serve_script, + '-u', wpt_script, 'serve', '--config', path_to_wpt_config, '--doc_root', path_to_wpt_tests]
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py index ad3c736..62233f82 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py
@@ -22,7 +22,8 @@ [ 'python', '-u', - '/mock-checkout/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/serve', + '/mock-checkout/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt', + 'serve', '--config', '/mock-checkout/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt.config.json', '--doc_root',
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/README.chromium b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/README.chromium index 7877c8e..3f6152b 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/README.chromium +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/README.chromium
@@ -51,9 +51,9 @@ Name: web-platform-tests - Test Suites for Web Platform specifications Short Name: wpt URL: https://github.com/w3c/web-platform-tests/ -Version: 32aa301b33136f71b1e15594f07ea5345a6305db +Version: 53008fece70040f1886d2ba5ff92a97eed1e4037 License: LICENSES FOR W3C TEST SUITES (http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html) -License File: wpt/wpt/LICENSE +License File: wpt/wpt/LICENSE.md Security Critical: no Description: This includes code for the manifest tool, lint tool, and wptserve. Used to run all supported web-platform-tests as part of Blink
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/WPTWhiteList b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/WPTWhiteList index bece23fa..73c8fd4 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/WPTWhiteList +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/WPTWhiteList
@@ -1,15 +1,18 @@ ./.gitignore -./__init__.py -./config.default.json ./CONTRIBUTING.md ./LICENSE.md -./lint -./manifest -./serve +./config.default.json ./serve.py +./wpt +./wpt.py +./tools ./tools/__init__.py +./tools/gitignore ./tools/gitignore/__init__.py ./tools/gitignore/gitignore.py +./tools/html5lib +./tools/html5lib/LICENSE +./tools/html5lib/README.rst ./tools/html5lib/html5lib ./tools/html5lib/html5lib/__init__.py ./tools/html5lib/html5lib/constants.py @@ -53,38 +56,57 @@ ./tools/html5lib/html5lib/trie/datrie.py ./tools/html5lib/html5lib/trie/py.py ./tools/html5lib/html5lib/utils.py -./tools/html5lib/LICENSE -./tools/html5lib/README.rst -./tools/LICENSE +./tools/lint ./tools/lint/__init__.py +./tools/lint/commands.json ./tools/lint/fnmatch.py ./tools/lint/lint.py ./tools/localpaths.py +./tools/manifest +./tools/manifest/XMLParser.py ./tools/manifest/__init__.py +./tools/manifest/catalog ./tools/manifest/catalog/xhtml.dtd +./tools/manifest/commands.json ./tools/manifest/item.py ./tools/manifest/log.py ./tools/manifest/manifest.py ./tools/manifest/sourcefile.py -./tools/manifest/tests ./tools/manifest/update.py ./tools/manifest/utils.py ./tools/manifest/vcs.py -./tools/manifest/XMLParser.py +./tools/serve ./tools/serve/__init__.py +./tools/serve/commands.json ./tools/serve/serve.py +./tools/six ./tools/six/CHANGES ./tools/six/CONTRIBUTORS ./tools/six/LICENSE ./tools/six/README ./tools/six/six.py +./tools/sslutils ./tools/sslutils/__init__.py ./tools/sslutils/base.py ./tools/sslutils/openssl.py ./tools/sslutils/pregenerated.py -./tools/wptserve/.gitignore +./tools/wpt +./tools/wpt/__init__.py +./tools/wpt/browser.py +./tools/wpt/commands.json +./tools/wpt/install.py +./tools/wpt/markdown.py +./tools/wpt/paths +./tools/wpt/run.py +./tools/wpt/stability.py +./tools/wpt/testfiles.py +./tools/wpt/utils.py +./tools/wpt/virtualenv.py +./tools/wpt/wpt.py +./tools/wptserve ./tools/wptserve/LICENSE ./tools/wptserve/README.md +./tools/wptserve/wptserve ./tools/wptserve/wptserve/__init__.py ./tools/wptserve/wptserve/constants.py ./tools/wptserve/wptserve/handlers.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/checkout.sh b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/checkout.sh index 10d57ba..fc763e8 100755 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/checkout.sh +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/checkout.sh
@@ -9,7 +9,7 @@ TARGET_DIR=$DIR/wpt REMOTE_REPO="https://chromium.googlesource.com/external/w3c/web-platform-tests.git" -WPT_HEAD=32aa301b33136f71b1e15594f07ea5345a6305db +WPT_HEAD=53008fece70040f1886d2ba5ff92a97eed1e4037 function clone { # Remove existing repo if already exists. @@ -19,6 +19,11 @@ git clone $REMOTE_REPO $TARGET_DIR cd $TARGET_DIR && git checkout $WPT_HEAD echo "WPTHead: " `git rev-parse HEAD` + + # Apply local changes. + cd $DIR && git apply chromium.patch + # Chromium presubmit requires scripts with shebang to be executable. + chmod 755 $TARGET_DIR/tools/manifest/update.py } function reduce { @@ -39,7 +44,4 @@ $action done -# Chromium presubmit requires scripts with shebang to be executable. -chmod 755 $TARGET_DIR/tools/manifest/update.py - # TODO(burnik): Handle the SSL certs and other configuration.
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/chromium.patch b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/chromium.patch new file mode 100644 index 0000000..9ad1c2c --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/chromium.patch
@@ -0,0 +1,43 @@ +diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py +--- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py ++++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py +@@ -725,6 +725,7 @@ def create_parser(): + help="Run CSS testsuite specific lints") + parser.add_argument("--repo-root", help="The WPT directory. Use this" + "option if the lint script exists outside the repository") ++ parser.add_argument("--ignore-glob", help="Additional file glob to ignore.") + parser.add_argument("--all", action="store_true", help="If no paths are passed, try to lint the whole " + "working directory, not just files that changed") + return parser +@@ -746,16 +747,21 @@ def main(**kwargs): + + paths = lint_paths(kwargs, repo_root) + +- return lint(repo_root, paths, output_format, kwargs.get("css_mode", False)) ++ ignore_glob = kwargs.get("ignore_glob") + ++ return lint(repo_root, paths, output_format, kwargs.get("css_mode", False), ignore_glob) + +-def lint(repo_root, paths, output_format, css_mode): ++ ++def lint(repo_root, paths, output_format, css_mode, ignore_glob): + error_count = defaultdict(int) + last = None + + with open(os.path.join(repo_root, "lint.whitelist")) as f: + whitelist, ignored_files = parse_whitelist(f) + ++ if ignore_glob: ++ ignored_files.add(ignore_glob) ++ + output_errors = {"json": output_errors_json, + "markdown": output_errors_markdown, + "normal": output_errors_text}[output_format] +diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths +--- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths ++++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths +@@ -1,4 +1,3 @@ +-tools/ci/ + tools/lint/ + tools/manifest/ + tools/serve/
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/.gitignore b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/.gitignore index e92e080..ad1e88e 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/.gitignore +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/.gitignore
@@ -15,3 +15,4 @@ .DS_Store *.rej _venv +webdriver/.cache
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/config.default.json b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/config.default.json index 47ad74b..a55b17c 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/config.default.json +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/config.default.json
@@ -9,7 +9,7 @@ "check_subdomains": true, "log_level":"debug", "bind_hostname": true, - "ssl": {"type": "openssl", + "ssl": {"type": "pregenerated", "encrypt_after_connect": false, "openssl": { "openssl_binary": "openssl", @@ -18,8 +18,8 @@ "base_conf_path": null }, "pregenerated": { - "host_key_path": null, - "host_cert_path": null + "host_key_path": "tools/certs/web-platform.test.key", + "host_cert_path": "tools/certs/web-platform.test.pem" }, "none": {} },
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/lint b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/lint deleted file mode 100755 index 388db4f7..0000000 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/lint +++ /dev/null
@@ -1,11 +0,0 @@ -#!/usr/bin/env python -import sys - -try: - from tools.lint import lint -except ImportError: - print("tools.lint not found.") - sys.exit(2) - -args = lint.parse_args() -sys.exit(0 if lint.main(**vars(args)) == 0 else 1)
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/manifest b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/manifest deleted file mode 100755 index edebae6..0000000 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/manifest +++ /dev/null
@@ -1,8 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -from tools.manifest import update - -update.main(default_tests_root= - os.path.abspath(os.path.dirname(__file__)))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/serve b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/serve deleted file mode 100755 index 51761b0..0000000 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/serve +++ /dev/null
@@ -1,5 +0,0 @@ -#!/usr/bin/env python -import serve - -if __name__ == "__main__": - serve.main()
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/commands.json b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/commands.json new file mode 100644 index 0000000..a8e9844f --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/commands.json
@@ -0,0 +1,3 @@ +{"lint": + {"path": "lint.py", "script": "main", "parser": "create_parser", "help": "Run the lint", + "virtualenv": false}}
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py index 1871b12..1381fa25 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/lint/lint.py
@@ -12,9 +12,10 @@ from collections import defaultdict -from .. import localpaths from . import fnmatch +from .. import localpaths from ..gitignore.gitignore import PathFilter +from ..wpt import testfiles from manifest.sourcefile import SourceFile, js_meta_re, python_meta_re from six import binary_type, iteritems, itervalues @@ -126,6 +127,13 @@ return [] +def check_ahem_copy(repo_root, path, css_mode): + lpath = path.lower() + if "ahem" in lpath and lpath.endswith(".ttf"): + return [("AHEM COPY", "Don't add extra copies of Ahem, use /fonts/Ahem.ttf", path, None)] + return [] + + drafts_csswg_re = re.compile(r"https?\:\/\/drafts\.csswg\.org\/([^/?#]+)") w3c_tr_re = re.compile(r"https?\:\/\/www\.w3c?\.org\/TR\/([^/?#]+)") w3c_dev_re = re.compile(r"https?\:\/\/dev\.w3c?\.org\/[^/?#]+\/([^/?#]+)") @@ -335,6 +343,12 @@ file_extensions = [".html", ".htm", ".js", ".xht", ".xhtml", ".svg"] description = "Console logging API used" +class GenerateTestsRegexp(Regexp): + pattern = b"generate_tests\s*\(" + error = "GENERATE_TESTS" + file_extensions = [".html", ".htm", ".js", ".xht", ".xhtml", ".svg"] + description = "generate_tests used" + class PrintRegexp(Regexp): pattern = b"print(?:\s|\s*\()" error = "PRINT STATEMENT" @@ -349,6 +363,7 @@ W3CTestOrgRegexp, Webidl2Regexp, ConsoleRegexp, + GenerateTestsRegexp, PrintRegexp]] def check_regexp_line(repo_root, path, f, css_mode): @@ -636,6 +651,7 @@ pos_string += ":%s" % line_number logger.error("%s: %s (%s)" % (pos_string, description, error_type)) + def output_errors_markdown(errors): if not errors: return @@ -651,6 +667,7 @@ pos_string += ":%s" % line_number logger.error("%s | %s | %s |" % (error_type, pos_string, description)) + def output_errors_json(errors): for error_type, error, path, line_number in errors: print(json.dumps({"path": path, "lineno": line_number, @@ -669,7 +686,34 @@ else: logger.info("There were %d errors (%s)" % (count, by_type)) -def parse_args(): + +def changed_files(wpt_root): + revish = testfiles.get_revish(revish=None) + changed, _ = testfiles.files_changed(revish, set(), include_uncommitted=True, include_new=True) + return [os.path.relpath(item, wpt_root) for item in changed] + + +def lint_paths(kwargs, wpt_root): + if kwargs.get("paths"): + paths = kwargs["paths"] + elif kwargs["all"]: + paths = list(all_filesystem_paths(wpt_root)) + else: + changed_paths = changed_files(wpt_root) + force_all = False + # If we changed the lint itself ensure that we retest everything + for path in changed_paths: + path = path.replace(os.path.sep, "/") + if path == "lint.whitelist" or path.startswith("tools/lint/"): + force_all = True + break + paths = (list(changed_paths) if not force_all + else list(all_filesystem_paths(wpt_root))) + + return paths + + +def create_parser(): parser = argparse.ArgumentParser() parser.add_argument("paths", nargs="*", help="List of paths to lint") @@ -679,10 +723,12 @@ help="Output markdown") parser.add_argument("--css-mode", action="store_true", help="Run CSS testsuite specific lints") - parser.add_argument("--repo-root", help="This is the root of the WPT directory tree. Use this" + parser.add_argument("--repo-root", help="The WPT directory. Use this" "option if the lint script exists outside the repository") parser.add_argument("--ignore-glob", help="Additional file glob to ignore.") - return parser.parse_args() + parser.add_argument("--all", action="store_true", help="If no paths are passed, try to lint the whole " + "working directory, not just files that changed") + return parser def main(**kwargs): @@ -691,16 +737,16 @@ sys.exit(2) repo_root = kwargs.get('repo_root') or localpaths.repo_root - output_format = {(True, False): "json", (False, True): "markdown", (False, False): "normal"}[(kwargs.get("json", False), kwargs.get("markdown", False))] - paths = list(kwargs.get("paths") if kwargs.get("paths") else all_filesystem_paths(repo_root)) if output_format == "markdown": setup_logging(True) + paths = lint_paths(kwargs, repo_root) + ignore_glob = kwargs.get("ignore_glob") return lint(repo_root, paths, output_format, kwargs.get("css_mode", False), ignore_glob) @@ -768,12 +814,12 @@ logger.info(line) return sum(itervalues(error_count)) -path_lints = [check_path_length, check_worker_collision] +path_lints = [check_path_length, check_worker_collision, check_ahem_copy] all_paths_lints = [check_css_globally_unique] file_lints = [check_regexp_line, check_parsed, check_python_ast, check_script_metadata] if __name__ == "__main__": - args = parse_args() + args = create_parser().parse_args() error_count = main(**vars(args)) if error_count > 0: sys.exit(1)
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/localpaths.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/localpaths.py index c932ef4b..9d59cf81 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/localpaths.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/localpaths.py
@@ -5,7 +5,6 @@ repo_root = os.path.abspath(os.path.join(here, os.pardir)) sys.path.insert(0, os.path.join(here)) -sys.path.insert(0, os.path.join(here, "browserutils")) sys.path.insert(0, os.path.join(here, "six")) sys.path.insert(0, os.path.join(here, "html5lib")) sys.path.insert(0, os.path.join(here, "wptserve"))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/commands.json b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/commands.json new file mode 100644 index 0000000..322cc598 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/commands.json
@@ -0,0 +1,3 @@ +{"manifest": + {"path": "update.py", "script": "run", "parser": "create_parser", "help": "Update the MANIFEST.json file", + "virtualenv": false}}
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/log.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/log.py index 671154b..55ff6e8 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/log.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/log.py
@@ -2,11 +2,13 @@ import sys logger = logging.getLogger("manifest") -logger.setLevel(logging.DEBUG) -handler = logging.StreamHandler(sys.stdout) -formatter = logging.Formatter(logging.BASIC_FORMAT, None) -handler.setFormatter(formatter) -logger.addHandler(handler) + +def setup(): + logger.setLevel(logging.DEBUG) + handler = logging.StreamHandler(sys.stdout) + formatter = logging.Formatter(logging.BASIC_FORMAT, None) + handler.setFormatter(formatter) + logger.addHandler(handler) def get_logger(): return logger
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/manifest.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/manifest.py index b510006b..b153798 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/manifest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/manifest.py
@@ -51,6 +51,15 @@ for test in type_tests.get(path, set()): yield test + def iterdir(self, dir_name): + if not dir_name.endswith(os.path.sep): + dir_name = dir_name + os.path.sep + for type_tests in self._data.values(): + for path, tests in type_tests.iteritems(): + if path.startswith(dir_name): + for test in tests: + yield test + @property def reftest_nodes_by_url(self): if self._reftest_nodes_by_url is None: @@ -228,6 +237,9 @@ def write(manifest, manifest_path): + dir_name = os.path.dirname(manifest_path) + if not os.path.exists(dir_name): + os.makedirs(dir_name) with open(manifest_path, "wb") as f: json.dump(manifest.to_json(), f, sort_keys=True, indent=1, separators=(',', ': ')) f.write("\n")
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/sourcefile.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/sourcefile.py index 0798c44..758da81 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/sourcefile.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/sourcefile.py
@@ -227,7 +227,7 @@ rel_dir_tree = self.rel_path.split(os.path.sep) return (rel_dir_tree[0] == "webdriver" and len(rel_dir_tree) > 1 and - self.filename != "__init__.py" and + self.filename not in ("__init__.py", "conftest.py") and fnmatch(self.filename, wd_pattern)) @property
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/update.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/update.py index be34441..0bbbefb 100755 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/update.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/update.py
@@ -10,6 +10,8 @@ here = os.path.dirname(__file__) +wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir)) + def update(tests_root, manifest, working_copy=False): tree = None @@ -57,7 +59,7 @@ parser.add_argument( "-p", "--path", type=abs_path, help="Path to manifest file.") parser.add_argument( - "--tests-root", type=abs_path, help="Path to root of tests.") + "--tests-root", type=abs_path, default=wpt_root, help="Path to root of tests.") parser.add_argument( "-r", "--rebuild", action="store_true", default=False, help="Force a full rebuild of the manifest.") @@ -81,24 +83,14 @@ return rv -def main(default_tests_root=None): +def run(**kwargs): + if kwargs["path"] is None: + kwargs["path"] = os.path.join(kwargs["tests_root"], "MANIFEST.json") + + update_from_cli(**kwargs) + + +def main(): opts = create_parser().parse_args() - if opts.tests_root is None: - tests_root = None - if default_tests_root is not None: - tests_root = default_tests_root - else: - tests_root = find_top_repo() - - if tests_root is None: - print >> sys.stderr, """No git repo found; could not determine test root. -Run again with --test-root""" - sys.exit(1) - - opts.tests_root = tests_root - - if opts.path is None: - opts.path = os.path.join(opts.tests_root, "MANIFEST.json") - - update_from_cli(**vars(opts)) + run(**vars(opts))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/commands.json b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/commands.json new file mode 100644 index 0000000..abcb297 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/commands.json
@@ -0,0 +1,2 @@ +{"serve": {"path": "serve.py", "script": "run", "parser": "get_parser", "help": "Run wptserve server", + "virtualenv": false}}
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/serve.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/serve.py index c099136..96417c32 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/serve.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/serve/serve.py
@@ -40,6 +40,8 @@ __meta__ = abc.ABCMeta + headers = [] + def __init__(self, base_path=None, url_base="/"): self.base_path = base_path self.url_base = url_base @@ -49,6 +51,9 @@ self.handler(request, response) def handle_request(self, request, response): + for header_name, header_value in self.headers: + response.headers.set(header_name, header_value) + path = self._get_path(request.url_parts.path, True) meta = "\n".join(self._get_meta(request)) response.content = self.wrapper % {"meta": meta, "path": path} @@ -169,6 +174,7 @@ class AnyWorkerHandler(WrapperHandler): + headers = [('Content-Type', 'text/javascript')] path_replace = [(".any.worker.js", ".any.js")] wrapper = """%(meta)s self.GLOBAL = { @@ -762,10 +768,9 @@ return parser -def main(): - kwargs = vars(get_parser().parse_args()) - config = load_config("config.default.json", - "config.json", +def run(**kwargs): + config = load_config(os.path.join(repo_root, "config.default.json"), + os.path.join(repo_root, "config.json"), **kwargs) setup_logger(config["log_level"]) @@ -784,3 +789,8 @@ item.join(1) except KeyboardInterrupt: logger.info("Shutting down") + + +def main(): + kwargs = vars(get_parser().parse_args()) + return run(**kwargs)
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/__init__.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/__init__.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/browser.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/browser.py new file mode 100644 index 0000000..68ffb2a --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/browser.py
@@ -0,0 +1,374 @@ +import logging +import os +import platform +import re +import stat +from abc import ABCMeta, abstractmethod +from ConfigParser import RawConfigParser +from distutils.spawn import find_executable + +from utils import call, get, untar, unzip + +logger = logging.getLogger(__name__) + +uname = platform.uname() + +def path(path, exe): + path = path.replace("/", os.path.sep) + if exe and uname[0] == "Windows": + path += ".exe" + return path + + +class Browser(object): + __metaclass__ = ABCMeta + + @abstractmethod + def install(self, dest=None): + return NotImplemented + + @abstractmethod + def install_webdriver(self): + return NotImplemented + + @abstractmethod + def version(self): + return NotImplemented + + @abstractmethod + def requirements(self): + """Name of the browser-specific wptrunner requirements file""" + return NotImplemented + + def prepare_environment(self): + """Do any additional setup of the environment required to start the + browser successfully + """ + pass + + +class Firefox(Browser): + """Firefox-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "firefox" + binary = "firefox/firefox" + platform_ini = "firefox/platform.ini" + requirements = "requirements_firefox.txt" + + + def platform_string(self): + platform = { + "Linux": "linux", + "Windows": "win", + "Darwin": "mac" + }.get(uname[0]) + + if platform is None: + raise ValueError("Unable to construct a valid Firefox package name for current platform") + + if platform == "linux": + bits = "-%s" % uname[-1] + elif platform == "win": + bits = "64" if uname[-1] == "x86_64" else "32" + else: + bits = "" + + return "%s%s" % (platform, bits) + + def platform_string_geckodriver(self): + platform = { + "Linux": "linux", + "Windows": "win", + "Darwin": "macos" + }.get(uname[0]) + + if platform is None: + raise ValueError("Unable to construct a valid Geckodriver package name for current platform") + + if platform in ("linux", "win"): + bits = "64" if uname[-1] == "x86_64" else "32" + else: + bits = "" + + return "%s%s" % (platform, bits) + + def latest_nightly_listing(self): + return get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/") + + def get_from_nightly(self, pattern): + index = self.latest_nightly_listing() + filename = re.compile(pattern).search(index.text).group(1) + return get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/%s" % + filename) + + def install(self, dest=None): + """Install Firefox.""" + if dest is None: + dest = os.getcwd() + + resp = self.get_from_nightly("<a[^>]*>(firefox-\d+\.\d(?:\w\d)?.en-US.%s\.tar\.bz2)" % self.platform_string()) + untar(resp.raw, dest=dest) + return find_executable("firefox", os.path.join(dest, "firefox")) + + def find_binary(self, path=None): + return find_executable("firefox", path) + + def find_certutil(self): + path = find_executable("certutil") + if path is None: + return None + if os.path.splitdrive(path)[1].split(os.path.sep) == ["", "Windows", "system32", "certutil.exe"]: + return None + return path + + def find_webdriver(self): + return find_executable("geckodriver") + + def install_certutil(self, dest=None): + # TODO: this doesn't really work because it just gets the binary, and is missing the + # libnss3 library. Getting that means either downloading the corresponding Firefox + # and extracting the library (which is hard on mac becase DMG), or maybe downloading from + # nss's treeherder builds? + if dest is None: + dest = os.pwd + + # Don't create a path like bin/bin/certutil + split = os.path.split(dest) + if split[1] == "bin": + dest = split[0] + + resp = self.get_from_nightly( + "<a[^>]*>(firefox-\d+\.\d(?:\w\d)?.en-US.%s\.common\.tests.zip)</a>" % self.platform_string()) + bin_path = path("bin/certutil", exe=True) + unzip(resp.raw, dest=dest, limit=[bin_path]) + + return os.path.join(dest, bin_path) + + def install_prefs(self, dest=None): + if dest is None: + dest = os.pwd + + dest = os.path.join(dest, "profiles") + if not os.path.exists(dest): + os.makedirs(dest) + with open(os.path.join(dest, "prefs_general.js"), "wb") as f: + resp = get("https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/profiles/prefs_general.js") + f.write(resp.content) + + return dest + + def _latest_geckodriver_version(self): + """Get and return latest version number for geckodriver.""" + # This is used rather than an API call to avoid rate limits + tags = call("git", "ls-remote", "--tags", "--refs", + "https://github.com/mozilla/geckodriver.git") + release_re = re.compile(".*refs/tags/v(\d+)\.(\d+)\.(\d+)") + latest_release = 0 + for item in tags.split("\n"): + m = release_re.match(item) + if m: + version = [int(item) for item in m.groups()] + if version > latest_release: + latest_release = version + assert latest_release != 0 + return "v%s.%s.%s" % tuple(str(item) for item in latest_release) + + def install_webdriver(self, dest=None): + """Install latest Geckodriver.""" + if dest is None: + dest = os.getcwd() + + version = self._latest_geckodriver_version() + format = "zip" if uname[0] == "Windows" else "tar.gz" + logger.debug("Latest geckodriver release %s" % version) + url = ("https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-%s.%s" % + (version, version, self.platform_string_geckodriver(), format)) + if format == "zip": + unzip(get(url).raw, dest=dest) + else: + untar(get(url).raw, dest=dest) + return find_executable(os.path.join(dest, "geckodriver")) + + def version(self, root): + """Retrieve the release version of the installed browser.""" + platform_info = RawConfigParser() + + with open(os.path.join(root, self.platform_ini), "r") as fp: + platform_info.readfp(BytesIO(fp.read())) + return "BuildID %s; SourceStamp %s" % ( + platform_info.get("Build", "BuildID"), + platform_info.get("Build", "SourceStamp")) + + +class Chrome(Browser): + """Chrome-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "chrome" + binary = "/usr/bin/google-chrome" + requirements = "requirements_chrome.txt" + + def install(self, dest=None): + raise NotImplementedError + + def platform_string(self): + platform = { + "Linux": "linux", + "Windows": "win", + "Darwin": "mac" + }.get(uname[0]) + + if platform is None: + raise ValueError("Unable to construct a valid Chrome package name for current platform") + + if platform == "linux": + bits = "64" if uname[-1] == "x86_64" else "32" + elif platform == "mac": + bits = "64" + elif platform == "win": + bits = "32" + + return "%s%s" % (platform, bits) + + def find_webdriver(self): + return find_executable("chromedriver") + + def install_webdriver(self, dest=None): + """Install latest Webdriver.""" + if dest is None: + dest = os.pwd + latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip() + url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_%s.zip" % (latest, + self.platform_string()) + unzip(get(url).raw, dest) + + path = find_executable("chromedriver", dest) + st = os.stat(path) + os.chmod(path, st.st_mode | stat.S_IEXEC) + return path + + def version(self, root): + """Retrieve the release version of the installed browser.""" + output = call(self.binary, "--version") + return re.search(r"[0-9\.]+( [a-z]+)?$", output.strip()).group(0) + + def prepare_environment(self): + # https://bugs.chromium.org/p/chromium/issues/detail?id=713947 + logger.debug("DBUS_SESSION_BUS_ADDRESS %s" % os.environ.get("DBUS_SESSION_BUS_ADDRESS")) + if "DBUS_SESSION_BUS_ADDRESS" not in os.environ: + if find_executable("dbus-launch"): + logger.debug("Attempting to start dbus") + dbus_conf = subprocess.check_output(["dbus-launch"]) + logger.debug(dbus_conf) + + # From dbus-launch(1): + # + # > When dbus-launch prints bus information to standard output, + # > by default it is in a simple key-value pairs format. + for line in dbus_conf.strip().split("\n"): + key, _, value = line.partition("=") + os.environ[key] = value + else: + logger.critical("dbus not running and can't be started") + sys.exit(1) + + +class Edge(Browser): + """Edge-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "edge" + requirements = "requirements_edge.txt" + + def install(self, dest=None): + raise NotImplementedError + + def find_webdriver(self): + return find_executable("MicrosoftWebDriver") + + def install_webdriver(self, dest=None): + """Install latest Webdriver.""" + raise NotImplementedError + + def version(self): + raise NotImplementedError + + +class InternetExplorer(Browser): + """Internet Explorer-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "ie" + requirements = "requirements_ie.txt" + + def install(self, dest=None): + raise NotImplementedError + + def find_webdriver(self): + return find_executable("IEDriverServer.exe") + + def install_webdriver(self, dest=None): + """Install latest Webdriver.""" + raise NotImplementedError + + def version(self): + raise NotImplementedError + + +class Servo(Browser): + """Servo-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "servo" + requirements = "requirements_servo.txt" + + def install(self, dest=None): + raise NotImplementedError + + def find_binary(self, path=None): + return find_executable("servo") + + def find_webdriver(self): + return None + + def install_webdriver(self): + raise NotImplementedError + + def version(self, root): + return None + + +class Sauce(Browser): + """Sauce-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "sauce" + requirements = "requirements_sauce.txt" + + def install(self, dest=None): + raise NotImplementedError + + def find_binary(self, path=None): + return None + + def find_webdriver(self): + return None + + def install_webdriver(self): + raise NotImplementedError + + def version(self, root): + return None
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/commands.json b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/commands.json new file mode 100644 index 0000000..1ab767fe --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/commands.json
@@ -0,0 +1,9 @@ +{ + "run": {"path": "run.py", "script": "run", "parser": "create_parser", "help": "Run tests in a browser", + "virtualenv": true, "install": ["requests"], "requirements": ["../wptrunner/requirements.txt"]}, + "files-changed": {"path": "testfiles.py", "script": "run_changed_files", "parser": "get_parser", + "help": "Get a list of files that have changed", "virtualenv": false}, + "tests-affected": {"path": "testfiles.py", "script": "run_tests_affected", "parser": "get_parser_affected", + "help": "Get a list of tests affected by changes", "virtualenv": false}, + "install": {"path": "install.py", "script": "run", "parser": "get_parser", "help": "Install browser components"} +}
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/install.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/install.py new file mode 100644 index 0000000..408744a --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/install.py
@@ -0,0 +1,46 @@ +import argparse +import browser +import sys + +def get_parser(): + parser = argparse.ArgumentParser() + parser.add_argument('browser', choices=['firefox', 'chrome'], + help='name of web browser product') + parser.add_argument('component', choices=['browser', 'webdriver'], + help='name of component') + parser.add_argument('-d', '--destination', + help='filesystem directory to place the component') + return parser + + +def run(venv, **kwargs): + browser = kwargs["browser"] + destination = kwargs["destination"] + + if destination is None: + if venv: + if kwargs["component"] == "browser": + destination = venv.path + else: + destination = venv.bin_path + else: + raise argparse.ArgumentError(None, + "No --destination argument, and no default for the environment") + + install(browser, kwargs["component"], destination) + + +def install(name, component, destination): + if component == 'webdriver': + method = 'install_webdriver' + else: + method = 'install' + + subclass = getattr(browser, name.title()) + sys.stdout.write('Now installing %s %s...\n' % (name, component)) + getattr(subclass(), method)(dest=destination) + + +if __name__ == '__main__': + args = parser.parse_args() + run(None, **vars(args))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/markdown.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/markdown.py new file mode 100644 index 0000000..8701891 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/markdown.py
@@ -0,0 +1,55 @@ +def format_comment_title(product): + """Produce a Markdown-formatted string based on a given "product"--a string + containing a browser identifier optionally followed by a colon and a + release channel. (For example: "firefox" or "chrome:dev".) The generated + title string is used both to create new comments and to locate (and + subsequently update) previously-submitted comments.""" + parts = product.split(":") + title = parts[0].title() + + if len(parts) > 1: + title += " (%s)" % parts[1] + + return "# %s #" % title + + +def markdown_adjust(s): + """Escape problematic markdown sequences.""" + s = s.replace('\t', u'\\t') + s = s.replace('\n', u'\\n') + s = s.replace('\r', u'\\r') + s = s.replace('`', u'') + s = s.replace('|', u'\\|') + return s + + +def table(headings, data, log): + """Create and log data to specified logger in tabular format.""" + cols = range(len(headings)) + assert all(len(item) == len(cols) for item in data) + max_widths = reduce(lambda prev, cur: [(len(cur[i]) + 2) + if (len(cur[i]) + 2) > prev[i] + else prev[i] + for i in cols], + data, + [len(item) + 2 for item in headings]) + log("|%s|" % "|".join(item.center(max_widths[i]) for i, item in enumerate(headings))) + log("|%s|" % "|".join("-" * max_widths[i] for i in cols)) + for row in data: + log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols)) + log("") + + +def err_string(results_dict, iterations): + """Create and return string with errors from test run.""" + rv = [] + total_results = sum(results_dict.values()) + for key, value in sorted(results_dict.items()): + rv.append("%s%s" % + (key, ": %s/%s" % (value, iterations) if value != iterations else "")) + if total_results < iterations: + rv.append("MISSING: %s/%s" % (iterations - total_results, iterations)) + rv = ", ".join(rv) + if is_inconsistent(results_dict, iterations): + rv = "**%s**" % rv + return rv
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths new file mode 100644 index 0000000..93c97dc --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/paths
@@ -0,0 +1,4 @@ +tools/lint/ +tools/manifest/ +tools/serve/ +tools/wpt/
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/run.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/run.py new file mode 100644 index 0000000..1567a72 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/run.py
@@ -0,0 +1,419 @@ +import argparse +import os +import platform +import shutil +import subprocess +import sys +import tarfile +from distutils.spawn import find_executable + +wpt_root = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)) +sys.path.insert(0, os.path.abspath(os.path.join(wpt_root, "tools"))) + +from . import browser, utils, virtualenv +logger = None + + +class WptrunError(Exception): + pass + + +class WptrunnerHelpAction(argparse.Action): + def __init__(self, + option_strings, + dest=argparse.SUPPRESS, + default=argparse.SUPPRESS, + help=None): + super(WptrunnerHelpAction, self).__init__( + option_strings=option_strings, + dest=dest, + default=default, + nargs=0, + help=help) + + def __call__(self, parser, namespace, values, option_string=None): + from wptrunner import wptcommandline + wptparser = wptcommandline.create_parser() + wptparser.usage = parser.usage + wptparser.print_help() + parser.exit() + + +def create_parser(): + from wptrunner import wptcommandline + + parser = argparse.ArgumentParser(add_help=False) + parser.add_argument("product", action="store", + help="Browser to run tests in") + parser.add_argument("--yes", "-y", dest="prompt", action="store_false", default=True, + help="Don't prompt before installing components") + parser.add_argument("--stability", action="store_true", + help="Stability check tests") + parser.add_argument("--install-browser", action="store_true", + help="Install the latest development version of the browser") + parser._add_container_actions(wptcommandline.create_parser()) + return parser + + +def exit(msg): + logger.error(msg) + sys.exit(1) + + +def args_general(kwargs): + kwargs.set_if_none("tests_root", wpt_root) + kwargs.set_if_none("metadata_root", wpt_root) + kwargs.set_if_none("manifest_update", True) + + if kwargs["ssl_type"] in (None, "pregenerated"): + cert_root = os.path.join(wpt_root, "tools", "certs") + if kwargs["ca_cert_path"] is None: + kwargs["ca_cert_path"] = os.path.join(cert_root, "cacert.pem") + + if kwargs["host_key_path"] is None: + kwargs["host_key_path"] = os.path.join(cert_root, "web-platform.test.key") + + if kwargs["host_cert_path"] is None: + kwargs["host_cert_path"] = os.path.join(cert_root, "web-platform.test.pem") + elif kwargs["ssl_type"] == "openssl": + if not find_executable(kwargs["openssl_binary"]): + if os.uname()[0] == "Windows": + raise WptrunError("""OpenSSL binary not found. If you need HTTPS tests, install OpenSSL from + +https://slproweb.com/products/Win32OpenSSL.html + +Ensuring that libraries are added to /bin and add the resulting bin directory to +your PATH. + +Otherwise run with --ssl-type=none""") + else: + raise WptrunError("""OpenSSL not found. If you don't need HTTPS support run with --ssl-type=none, +otherwise install OpenSSL and ensure that it's on your $PATH.""") + + +def check_environ(product): + if product not in ("firefox", "servo"): + expected_hosts = ["web-platform.test", + "www.web-platform.test", + "www1.web-platform.test", + "www2.web-platform.test", + "xn--n8j6ds53lwwkrqhv28a.web-platform.test", + "xn--lve-6lad.web-platform.test", + "nonexistent-origin.web-platform.test"] + missing_hosts = set(expected_hosts) + if platform.uname()[0] != "Windows": + hosts_path = "/etc/hosts" + else: + hosts_path = "C:\Windows\System32\drivers\etc\hosts" + with open(hosts_path, "r") as f: + for line in f: + line = line.split("#", 1)[0].strip() + parts = line.split() + if len(parts) == 2: + host = parts[1] + missing_hosts.discard(host) + if missing_hosts: + raise WptrunError("""Missing hosts file configuration. Expected entries like: + +%s + +See README.md for more details.""" % "\n".join("%s\t%s" % + ("127.0.0.1" if "nonexistent" not in host else "0.0.0.0", host) + for host in expected_hosts)) + + +class BrowserSetup(object): + name = None + browser_cls = None + + def __init__(self, venv, prompt=True, sub_product=None): + self.browser = self.browser_cls() + self.venv = venv + self.prompt = prompt + self.sub_product = sub_product + + def prompt_install(self, component): + if not self.prompt: + return True + while True: + resp = raw_input("Download and install %s [Y/n]? " % component).strip().lower() + if not resp or resp == "y": + return True + elif resp == "n": + return False + + def install(self, venv): + if self.prompt_install(self.name): + return self.browser.install(venv.path) + + def setup(self, kwargs): + self.venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", self.browser.requirements)) + self.setup_kwargs(kwargs) + + +class Firefox(BrowserSetup): + name = "firefox" + browser_cls = browser.Firefox + + def setup_kwargs(self, kwargs): + if kwargs["binary"] is None: + binary = self.browser.find_binary() + if binary is None: + raise WptrunError("""Firefox binary not found on $PATH. + +Install Firefox or use --binary to set the binary path""") + kwargs["binary"] = binary + + if kwargs["certutil_binary"] is None and kwargs["ssl_type"] != "none": + certutil = self.browser.find_certutil() + + if certutil is None: + # Can't download this for now because it's missing the libnss3 library + raise WptrunError("""Can't find certutil. + +This must be installed using your OS package manager or directly e.g. + +Debian/Ubuntu: + sudo apt install libnss3-tools + +macOS/Homebrew: + brew install nss + +Others: + Download the firefox archive and common.tests.zip archive for your platform + from https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/ + + Then extract certutil[.exe] from the tests.zip package and + libnss3[.so|.dll|.dynlib] and but the former on your path and the latter on + your library path. +""") + else: + print("Using certutil %s" % certutil) + + if certutil is not None: + kwargs["certutil_binary"] = certutil + else: + print("Unable to find or install certutil, setting ssl-type to none") + kwargs["ssl_type"] = "none" + + if kwargs["webdriver_binary"] is None and "wdspec" in kwargs["test_types"]: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + install = self.prompt_install("geckodriver") + + if install: + print("Downloading geckodriver") + webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path) + else: + print("Using webdriver binary %s" % webdriver_binary) + + if webdriver_binary: + kwargs["webdriver_binary"] = webdriver_binary + else: + print("Unable to find or install geckodriver, skipping wdspec tests") + kwargs["test_types"].remove("wdspec") + + if kwargs["prefs_root"] is None: + print("Downloading gecko prefs") + prefs_root = self.browser.install_prefs(self.venv.path) + kwargs["prefs_root"] = prefs_root + + +class Chrome(BrowserSetup): + name = "chrome" + browser_cls = browser.Chrome + + def setup_kwargs(self, kwargs): + if kwargs["webdriver_binary"] is None: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + install = self.prompt_install("chromedriver") + + if install: + print("Downloading chromedriver") + webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path) + else: + print("Using webdriver binary %s" % webdriver_binary) + + if webdriver_binary: + kwargs["webdriver_binary"] = webdriver_binary + else: + raise WptrunError("Unable to locate or install chromedriver binary") + + +class Edge(BrowserSetup): + name = "edge" + browser_cls = browser.Edge + + def install(self, venv): + raise NotImplementedError + + def setup_kwargs(self, kwargs): + if kwargs["webdriver_binary"] is None: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + raise WptrunError("""Unable to find WebDriver and we aren't yet clever enough to work out which +version to download. Please go to the following URL and install the correct +version for your Edge/Windows release somewhere on the %PATH%: + +https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ +""") + kwargs["webdriver_binary"] = webdriver_binary + + +class InternetExplorer(BrowserSetup): + name = "ie" + browser_cls = browser.InternetExplorer + + def install(self, venv): + raise NotImplementedError + + def setup_kwargs(self, kwargs): + if kwargs["webdriver_binary"] is None: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + raise WptrunError("""Unable to find WebDriver and we aren't yet clever enough to work out which +version to download. Please go to the following URL and install the driver for Internet Explorer +somewhere on the %PATH%: + +https://selenium-release.storage.googleapis.com/index.html +""") + kwargs["webdriver_binary"] = webdriver_binary + + +class Sauce(BrowserSetup): + name = "sauce" + browser_cls = browser.Sauce + + def install(self, venv): + raise NotImplementedError + + def setup_kwargs(self, kwargs): + kwargs.set_if_none("sauce_browser", self.sub_product[0]) + kwargs.set_if_none("sauce_version", self.sub_product[1]) + kwargs["test_types"] = ["testharness", "reftest"] + + +class Servo(BrowserSetup): + name = "servo" + browser_cls = browser.Servo + + def install(self, venv): + raise NotImplementedError + + def setup_kwargs(self, kwargs): + if kwargs["binary"] is None: + binary = self.browser.find_binary() + + if binary is None: + raise WptrunError("Unable to find servo binary on the PATH") + kwargs["binary"] = binary + + +product_setup = { + "firefox": Firefox, + "chrome": Chrome, + "edge": Edge, + "ie": InternetExplorer, + "servo": Servo, + "sauce": Sauce, +} + + +def setup_wptrunner(venv, prompt=True, install=False, **kwargs): + from wptrunner import wptrunner, wptcommandline + + global logger + + kwargs = utils.Kwargs(kwargs.iteritems()) + + product_parts = kwargs["product"].split(":") + kwargs["product"] = product_parts[0] + sub_product = product_parts[1:] + + wptrunner.setup_logging(kwargs, {"mach": sys.stdout}) + logger = wptrunner.logger + + check_environ(kwargs["product"]) + args_general(kwargs) + + if kwargs["product"] not in product_setup: + raise WptrunError("Unsupported product %s" % kwargs["product"]) + + setup_cls = product_setup[kwargs["product"]](venv, prompt, sub_product) + + if install: + logger.info("Installing browser") + kwargs["binary"] = setup_cls.install(venv) + + setup_cls.setup(kwargs) + + wptcommandline.check_args(kwargs) + + wptrunner_path = os.path.join(wpt_root, "tools", "wptrunner") + + venv.install_requirements(os.path.join(wptrunner_path, "requirements.txt")) + + return kwargs + + +def run(venv, **kwargs): + #Remove arguments that aren't passed to wptrunner + prompt = kwargs.pop("prompt", True) + stability = kwargs.pop("stability", True) + install_browser = kwargs.pop("install_browser", False) + + kwargs = setup_wptrunner(venv, + prompt=prompt, + install=install_browser, + **kwargs) + + if stability: + import stability + iterations, results, inconsistent = stability.run(venv, logger, **kwargs) + + def log(x): + print(x) + + if inconsistent: + stability.write_inconsistent(log, inconsistent, iterations) + else: + log("All tests stable") + rv = len(inconsistent) > 0 + else: + rv = run_single(venv, **kwargs) > 0 + + return rv + + +def run_single(venv, **kwargs): + from wptrunner import wptrunner + return wptrunner.start(**kwargs) + + +def main(): + try: + parser = create_parser() + args = parser.parse_args() + + venv = virtualenv.Virtualenv(os.path.join(wpt_root, "_venv_%s") % platform.uname()[0]) + venv.start() + venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", "requirements.txt")) + venv.install("requests") + + return run(venv, vars(args)) + except WptrunError as e: + exit(e.message) + + +if __name__ == "__main__": + import pdb + from tools import localpaths + try: + main() + except: + pdb.post_mortem()
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/stability.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/stability.py new file mode 100644 index 0000000..b3c8570 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/stability.py
@@ -0,0 +1,195 @@ +import os +import sys +from collections import OrderedDict, defaultdict + +from mozlog import reader +from mozlog.formatters import JSONFormatter, TbplFormatter +from mozlog.handlers import BaseHandler, LogLevelFilter, StreamHandler + +from markdown import markdown_adjust, table +from wptrunner import wptrunner + + +class LogActionFilter(BaseHandler): + + """Handler that filters out messages not of a given set of actions. + + Subclasses BaseHandler. + + :param inner: Handler to use for messages that pass this filter + :param actions: List of actions for which to fire the handler + """ + + def __init__(self, inner, actions): + """Extend BaseHandler and set inner and actions props on self.""" + BaseHandler.__init__(self, inner) + self.inner = inner + self.actions = actions + + def __call__(self, item): + """Invoke handler if action is in list passed as constructor param.""" + if item["action"] in self.actions: + return self.inner(item) + + +class LogHandler(reader.LogHandler): + + """Handle updating test and subtest status in log. + + Subclasses reader.LogHandler. + """ + def __init__(self): + self.results = OrderedDict() + + def find_or_create_test(self, data): + test_name = data["test"] + if self.results.get(test_name): + return self.results[test_name] + + test = { + "subtests": OrderedDict(), + "status": defaultdict(int) + } + self.results[test_name] = test + return test + + def find_or_create_subtest(self, data): + test = self.find_or_create_test(data) + subtest_name = data["subtest"] + + if test["subtests"].get(subtest_name): + return test["subtests"][subtest_name] + + subtest = { + "status": defaultdict(int), + "messages": set() + } + test["subtests"][subtest_name] = subtest + + return subtest + + def test_status(self, data): + subtest = self.find_or_create_subtest(data) + subtest["status"][data["status"]] += 1 + if data.get("message"): + subtest["messages"].add(data["message"]) + + def test_end(self, data): + test = self.find_or_create_test(data) + test["status"][data["status"]] += 1 + + +def is_inconsistent(results_dict, iterations): + """Return whether or not a single test is inconsistent.""" + return len(results_dict) > 1 or sum(results_dict.values()) != iterations + + +def process_results(log, iterations): + """Process test log and return overall results and list of inconsistent tests.""" + inconsistent = [] + handler = LogHandler() + reader.handle_log(reader.read(log), handler) + results = handler.results + for test_name, test in results.iteritems(): + if is_inconsistent(test["status"], iterations): + inconsistent.append((test_name, None, test["status"], [])) + for subtest_name, subtest in test["subtests"].iteritems(): + if is_inconsistent(subtest["status"], iterations): + inconsistent.append((test_name, subtest_name, subtest["status"], subtest["messages"])) + return results, inconsistent + + +def err_string(results_dict, iterations): + """Create and return string with errors from test run.""" + rv = [] + total_results = sum(results_dict.values()) + for key, value in sorted(results_dict.items()): + rv.append("%s%s" % + (key, ": %s/%s" % (value, iterations) if value != iterations else "")) + if total_results < iterations: + rv.append("MISSING: %s/%s" % (iterations - total_results, iterations)) + rv = ", ".join(rv) + if is_inconsistent(results_dict, iterations): + rv = "**%s**" % rv + return rv + + +def write_inconsistent(log, inconsistent, iterations): + """Output inconsistent tests to logger.error.""" + log("## Unstable results ##\n") + strings = [( + "`%s`" % markdown_adjust(test), + ("`%s`" % markdown_adjust(subtest)) if subtest else "", + err_string(results, iterations), + ("`%s`" % markdown_adjust(";".join(messages))) if len(messages) else "") + for test, subtest, results, messages in inconsistent] + table(["Test", "Subtest", "Results", "Messages"], strings, log) + + +def write_results(log, results, iterations, pr_number=None, use_details=False): + log("## All results ##\n") + if use_details: + log("<details>\n") + log("<summary>%i %s ran</summary>\n\n" % (len(results), + "tests" if len(results) > 1 + else "test")) + + for test_name, test in results.iteritems(): + baseurl = "http://w3c-test.org/submissions" + if "https" in os.path.splitext(test_name)[0].split(".")[1:]: + baseurl = "https://w3c-test.org/submissions" + title = test_name + if use_details: + log("<details>\n") + if pr_number: + title = "<a href=\"%s/%s%s\">%s</a>" % (baseurl, pr_number, test_name, title) + log('<summary>%s</summary>\n\n' % title) + else: + log("### %s ###" % title) + strings = [("", err_string(test["status"], iterations), "")] + + strings.extend((( + ("`%s`" % markdown_adjust(subtest_name)) if subtest else "", + err_string(subtest["status"], iterations), + ("`%s`" % markdown_adjust(';'.join(subtest["messages"]))) if len(subtest["messages"]) else "") + for subtest_name, subtest in test["subtests"].items())) + table(["Subtest", "Results", "Messages"], strings, log) + if use_details: + log("</details>\n") + + if use_details: + log("</details>\n") + + +def run(venv, logger, **kwargs): + kwargs["pause_after_test"] = False + if kwargs["repeat"] == 1: + kwargs["repeat"] = 10 + + handler = LogActionFilter( + LogLevelFilter( + StreamHandler( + sys.stdout, + TbplFormatter() + ), + "WARNING"), + ["log", "process_output"]) + + # There is a public API for this in the next mozlog + initial_handlers = logger._state.handlers + logger._state.handlers = [] + + with open("raw.log", "wb") as log: + # Setup logging for wptrunner that keeps process output and + # warning+ level logs only + logger.add_handler(handler) + logger.add_handler(StreamHandler(log, JSONFormatter())) + + wptrunner.run_tests(**kwargs) + + logger._state.handlers = initial_handlers + + with open("raw.log", "rb") as log: + results, inconsistent = process_results(log, kwargs["repeat"]) + + return kwargs["repeat"], results, inconsistent
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/testfiles.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/testfiles.py new file mode 100644 index 0000000..89e6e276 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/testfiles.py
@@ -0,0 +1,286 @@ +import argparse +import itertools +import logging +import os +import subprocess +import sys + +from ..manifest import manifest, update + +here = os.path.dirname(__file__) +wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir)) + +logger = logging.getLogger() + + +def get_git_cmd(repo_path): + """Create a function for invoking git commands as a subprocess.""" + def git(cmd, *args): + full_cmd = ["git", cmd] + list(item.decode("utf8") if isinstance(item, bytes) else item for item in args) + try: + logger.debug(" ".join(full_cmd)) + return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT).decode("utf8").strip() + except subprocess.CalledProcessError as e: + logger.error("Git command exited with status %i" % e.returncode) + logger.error(e.output) + sys.exit(1) + return git + + +def branch_point(): + git = get_git_cmd(wpt_root) + if os.environ.get("TRAVIS_PULL_REQUEST", "false") != "false": + # This is a PR, so the base branch is in TRAVIS_BRANCH + travis_branch = os.environ.get("TRAVIS_BRANCH") + assert travis_branch, "TRAVIS_BRANCH environment variable is defined" + branch_point = git("rev-parse", travis_branch) + else: + # Otherwise we aren't on a PR, so we try to find commits that are only in the + # current branch c.f. + # http://stackoverflow.com/questions/13460152/find-first-ancestor-commit-in-another-branch + head = git("rev-parse", "HEAD") + not_heads = [item for item in git("rev-parse", "--not", "--all").split("\n") + if item.strip() and head not in item] + commits = git("rev-list", "HEAD", *not_heads).split("\n") + branch_point = None + if len(commits): + first_commit = commits[-1] + if first_commit: + branch_point = git("rev-parse", first_commit + "^") + + # The above heuristic will fail in the following cases: + # + # - The current branch has fallen behind the version retrieved via the above + # `fetch` invocation + # - Changes on the current branch were rebased and therefore do not exist on any + # other branch. This will result in the selection of a commit that is earlier + # in the history than desired (as determined by calculating the later of the + # branch point and the merge base) + # + # In either case, fall back to using the merge base as the branch point. + merge_base = git("merge-base", "HEAD", "origin/master") + if (branch_point is None or + (branch_point != merge_base and + not git("log", "--oneline", "%s..%s" % (merge_base, branch_point)).strip())): + logger.debug("Using merge-base as the branch point") + branch_point = merge_base + else: + logger.debug("Using first commit on another branch as the branch point") + + logger.debug("Branch point from master: %s" % branch_point) + return branch_point + + +def files_changed(revish, ignore_dirs=None, include_uncommitted=False, include_new=False): + """Get and return files changed since current branch diverged from master, + excluding those that are located within any directory specifed by + `ignore_changes`.""" + if ignore_dirs is None: + ignore_dirs = [] + + git = get_git_cmd(wpt_root) + files = git("diff", "--name-only", "-z", revish).split("\0") + assert not files[-1] + files = set(files[:-1]) + + if include_uncommitted: + entries = git("status", "-z").split("\0") + assert not entries[-1] + entries = entries[:-1] + for item in entries: + status, path = item.split() + if status == "??" and not include_new: + continue + else: + if not os.path.isdir(path): + files.add(path) + else: + for dirpath, dirnames, filenames in os.walk(path): + for filename in filenames: + files.add(os.path.join(dirpath, filename)) + + if not files: + return [], [] + + changed = [] + ignored = [] + for item in sorted(files): + fullpath = os.path.join(wpt_root, item) + topmost_dir = item.split(os.sep, 1)[0] + if topmost_dir in ignore_dirs: + ignored.append(fullpath) + else: + changed.append(fullpath) + + return changed, ignored + + +def _in_repo_root(full_path): + rel_path = os.path.relpath(full_path, wpt_root) + path_components = rel_path.split(os.sep) + return len(path_components) < 2 + +def _init_manifest_cache(): + c = {} + + def load(manifest_path=None): + if manifest_path is None: + manifest_path = os.path.join(wpt_root, "MANIFEST.json") + if c.get(manifest_path): + return c[manifest_path] + # cache at most one path:manifest + c.clear() + wpt_manifest = manifest.load(wpt_root, manifest_path) + if wpt_manifest is None: + wpt_manifest = manifest.Manifest() + update.update(wpt_root, wpt_manifest) + c[manifest_path] = wpt_manifest + return c[manifest_path] + return load + +load_manifest = _init_manifest_cache() + + +def affected_testfiles(files_changed, skip_tests, manifest_path=None): + """Determine and return list of test files that reference changed files.""" + affected_testfiles = set() + # Exclude files that are in the repo root, because + # they are not part of any test. + files_changed = [f for f in files_changed if not _in_repo_root(f)] + nontests_changed = set(files_changed) + wpt_manifest = load_manifest(manifest_path) + + test_types = ["testharness", "reftest", "wdspec"] + support_files = {os.path.join(wpt_root, path) + for _, path, _ in wpt_manifest.itertypes("support")} + wdspec_test_files = {os.path.join(wpt_root, path) + for _, path, _ in wpt_manifest.itertypes("wdspec")} + test_files = {os.path.join(wpt_root, path) + for _, path, _ in wpt_manifest.itertypes(*test_types)} + + nontests_changed = nontests_changed.intersection(support_files) + + tests_changed = set(item for item in files_changed if item in test_files) + + nontest_changed_paths = set() + for full_path in nontests_changed: + rel_path = os.path.relpath(full_path, wpt_root) + path_components = rel_path.split(os.sep) + top_level_subdir = path_components[0] + if top_level_subdir in skip_tests: + continue + repo_path = "/" + os.path.relpath(full_path, wpt_root).replace(os.path.sep, "/") + nontest_changed_paths.add((full_path, repo_path)) + + def affected_by_wdspec(test): + affected = False + if test in wdspec_test_files: + for support_full_path, _ in nontest_changed_paths: + # parent of support file or of "support" directory + parent = os.path.dirname(support_full_path) + if os.path.basename(parent) == "support": + parent = os.path.dirname(parent) + relpath = os.path.relpath(test, parent) + if not relpath.startswith(os.pardir): + # testfile is in subtree of support file + affected = True + break + return affected + + for root, dirs, fnames in os.walk(wpt_root): + # Walk top_level_subdir looking for test files containing either the + # relative filepath or absolute filepath to the changed files. + if root == wpt_root: + for dir_name in skip_tests: + dirs.remove(dir_name) + for fname in fnames: + test_full_path = os.path.join(root, fname) + # Skip any file that's not a test file. + if test_full_path not in test_files: + continue + if affected_by_wdspec(test_full_path): + affected_testfiles.add(test_full_path) + continue + + with open(test_full_path, "rb") as fh: + file_contents = fh.read() + if file_contents.startswith("\xfe\xff"): + file_contents = file_contents.decode("utf-16be", "replace") + elif file_contents.startswith("\xff\xfe"): + file_contents = file_contents.decode("utf-16le", "replace") + else: + file_contents = file_contents.decode("utf8", "replace") + for full_path, repo_path in nontest_changed_paths: + rel_path = os.path.relpath(full_path, root).replace(os.path.sep, "/") + if rel_path in file_contents or repo_path in file_contents: + affected_testfiles.add(test_full_path) + continue + + return tests_changed, affected_testfiles + + +def get_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("revish", default=None, help="Commits to consider. Defaults to the commits on the current branch", nargs="?") + parser.add_argument("--ignore-dirs", nargs="*", type=set, default=set(["resources"]), + help="Directories to exclude from the list of changes") + parser.add_argument("--modified", action="store_true", + help="Include files under version control that have been modified or staged") + parser.add_argument("--new", action="store_true", + help="Include files in the worktree that are not in version control") + parser.add_argument("--show-type", action="store_true", + help="Print the test type along with each affected test") + return parser + + +def get_parser_affected(): + parser = get_parser() + parser.add_argument("--metadata", + dest="metadata_root", + action="store", + default=wpt_root, + help="Directory that will contain MANIFEST.json") + return parser + +def get_revish(**kwargs): + revish = kwargs["revish"] + if kwargs["revish"] is None: + revish = "%s..HEAD" % branch_point() + return revish + + +def run_changed_files(**kwargs): + revish = get_revish(**kwargs) + changed, _ = files_changed(revish, kwargs["ignore_dirs"], + include_uncommitted=kwargs["modified"], + include_new=kwargs["new"]) + for item in sorted(changed): + print(os.path.relpath(item, wpt_root)) + + +def run_tests_affected(**kwargs): + revish = get_revish(**kwargs) + changed, _ = files_changed(revish, kwargs["ignore_dirs"], + include_uncommitted=kwargs["modified"], + include_new=kwargs["new"]) + manifest_path = os.path.join(kwargs["metadata_root"], "MANIFEST.json") + tests_changed, dependents = affected_testfiles( + changed, + set(["conformance-checkers", "docs", "tools"]), + manifest_path=manifest_path + ) + + message = "{path}" + if kwargs["show_type"]: + wpt_manifest = load_manifest(manifest_path) + message = "{path}\t{item_type}" + for item in sorted(tests_changed | dependents): + results = { + "path": os.path.relpath(item, wpt_root) + } + if kwargs["show_type"]: + item_types = {i.item_type for i in wpt_manifest.iterpath(results["path"])} + if len(item_types) != 1: + item_types = [" ".join(item_types)] + results["item_type"] = item_types.pop() + print(message.format(**results))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/utils.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/utils.py new file mode 100644 index 0000000..32e780f --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/utils.py
@@ -0,0 +1,113 @@ +import logging +import os +import subprocess +import sys +import tarfile +import zipfile +from io import BytesIO + +logger = logging.getLogger(__name__) + + +class Kwargs(dict): + def set_if_none(self, name, value, err_fn=None, desc=None, extra_cond=None): + if desc is None: + desc = name + + if self[name] is None: + if extra_cond is not None and not extra_cond(self): + return + if callable(value): + value = value() + if not value: + if err_fn is not None: + return err_fn(kwargs, "Failed to find %s" % desc) + else: + return + self[name] = value + logger.info("Set %s to %s" % (desc, value)) + + +def call(*args): + """Log terminal command, invoke it as a subprocess. + + Returns a bytestring of the subprocess output if no error. + """ + logger.debug("%s" % " ".join(args)) + try: + return subprocess.check_output(args) + except subprocess.CalledProcessError as e: + logger.critical("%s exited with return code %i" % + (e.cmd, e.returncode)) + logger.critical(e.output) + raise + + +def get_git_cmd(repo_path): + """Create a function for invoking git commands as a subprocess.""" + def git(cmd, *args): + full_cmd = ["git", cmd] + list(args) + try: + logger.debug(" ".join(full_cmd)) + return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT).strip() + except subprocess.CalledProcessError as e: + logger.error("Git command exited with status %i" % e.returncode) + logger.error(e.output) + sys.exit(1) + return git + + +def seekable(fileobj): + """Attempt to use file.seek on given file, with fallbacks.""" + try: + fileobj.seek(fileobj.tell()) + except Exception: + return BytesIO(fileobj.read()) + else: + return fileobj + + +def untar(fileobj, dest="."): + """Extract tar archive.""" + logger.debug("untar") + fileobj = seekable(fileobj) + with tarfile.open(fileobj=fileobj) as tar_data: + tar_data.extractall(path=dest) + + +def unzip(fileobj, dest=None, limit=None): + """Extract zip archive.""" + logger.debug("unzip") + fileobj = seekable(fileobj) + with zipfile.ZipFile(fileobj) as zip_data: + for info in zip_data.infolist(): + if limit is not None and info.filename not in limit: + continue + zip_data.extract(info, path=dest) + perm = info.external_attr >> 16 & 0x1FF + os.chmod(os.path.join(dest, info.filename), perm) + + +class pwd(object): + """Create context for temporarily changing present working directory.""" + def __init__(self, dir): + self.dir = dir + self.old_dir = None + + def __enter__(self): + self.old_dir = os.path.abspath(os.curdir) + os.chdir(self.dir) + + def __exit__(self, *args, **kwargs): + os.chdir(self.old_dir) + self.old_dir = None + + +def get(url): + """Issue GET request to a given URL and return the response.""" + import requests + + logger.debug("GET %s" % url) + resp = requests.get(url, stream=True) + resp.raise_for_status() + return resp
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/virtualenv.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/virtualenv.py new file mode 100644 index 0000000..8f36aa9 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/virtualenv.py
@@ -0,0 +1,52 @@ +import os +import sys +import logging +from distutils.spawn import find_executable + +from tools.wpt.utils import call + +logger = logging.getLogger(__name__) + +class Virtualenv(object): + def __init__(self, path): + self.path = path + self.virtualenv = find_executable("virtualenv") + if not self.virtualenv: + raise ValueError("virtualenv must be installed and on the PATH") + + @property + def exists(self): + return os.path.isdir(self.path) + + def create(self): + if os.path.exists(self.path): + shutil.rmtree(self.path) + call(self.virtualenv, self.path) + + @property + def bin_path(self): + if sys.platform in ("win32", "cygwin"): + return os.path.join(self.path, "Scripts") + return os.path.join(self.path, "bin") + + @property + def pip_path(self): + path = find_executable("pip", self.bin_path) + if path is None: + raise ValueError("pip not found") + return path + + def activate(self): + path = os.path.join(self.bin_path, "activate_this.py") + execfile(path, {"__file__": path}) + + def start(self): + if not self.exists: + self.create() + self.activate() + + def install(self, *requirements): + call(self.pip_path, "install", *requirements) + + def install_requirements(self, requirements_path): + call(self.pip_path, "install", "-r", requirements_path)
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/wpt.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/wpt.py new file mode 100644 index 0000000..cf94ce03 --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wpt/wpt.py
@@ -0,0 +1,142 @@ +import argparse +import os +import json +import sys + +from tools import localpaths + +from six import iteritems +from . import virtualenv + + +here = os.path.dirname(__file__) +wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir)) + + +def load_commands(): + rv = {} + with open(os.path.join(here, "paths"), "r") as f: + paths = [item.strip().replace("/", os.path.sep) for item in f if item.strip()] + for path in paths: + abs_path = os.path.join(wpt_root, path, "commands.json") + base_dir = os.path.dirname(abs_path) + with open(abs_path, "r") as f: + data = json.load(f) + for command, props in iteritems(data): + assert "path" in props + assert "script" in props + rv[command] = { + "path": os.path.join(base_dir, props["path"]), + "script": props["script"], + "parser": props.get("parser"), + "parse_known": props.get("parse_known", False), + "help": props.get("help"), + "virtualenv": props.get("virtualenv", True), + "install": props.get("install", []), + "requirements": [os.path.join(base_dir, item) + for item in props.get("requirements", [])] + } + return rv + + +def parse_args(argv, commands): + parser = argparse.ArgumentParser() + parser.add_argument("--venv", action="store", help="Path to an existing virtualenv to use") + parser.add_argument("--debug", action="store_true", help="Run the debugger in case of an exception") + subparsers = parser.add_subparsers(dest="command") + for command, props in iteritems(commands): + sub_parser = subparsers.add_parser(command, help=props["help"], add_help=False) + + args, extra = parser.parse_known_args(argv) + + return args, extra + + +def import_command(prog, command, props): + # This currently requires the path to be a module, + # which probably isn't ideal but it means that relative + # imports inside the script work + rel_path = os.path.relpath(props["path"], wpt_root) + + parts = os.path.splitext(rel_path)[0].split(os.path.sep) + + mod_name = ".".join(parts) + + mod = __import__(mod_name) + for part in parts[1:]: + mod = getattr(mod, part) + + script = getattr(mod, props["script"]) + if props["parser"] is not None: + parser = getattr(mod, props["parser"])() + parser.prog = "%s %s" % (os.path.basename(prog), command) + else: + parser = None + + return script, parser + + +def setup_virtualenv(path, props): + if path is None: + path = os.path.join(wpt_root, "_venv") + venv = virtualenv.Virtualenv(path) + venv.start() + for name in props["install"]: + venv.install(name) + for path in props["requirements"]: + venv.install_requirements(path) + return venv + + +def main(prog=None, argv=None): + if prog is None: + prog = sys.argv[0] + if argv is None: + argv = sys.argv[1:] + + commands = load_commands() + + main_args, command_args = parse_args(argv, commands) + + if not(len(argv) and argv[0] in commands): + sys.exit(1) + + command = main_args.command + props = commands[command] + venv = None + if props["virtualenv"]: + venv = setup_virtualenv(main_args.venv, props) + script, parser = import_command(prog, command, props) + if parser: + if props["parse_known"]: + kwargs, extras = parser.parse_known_args(command_args) + extras = (extras,) + kwargs = vars(kwargs) + else: + extras = () + kwargs = vars(parser.parse_args(command_args)) + else: + extras = () + kwargs = {} + + if venv is not None: + args = (venv,) + extras + else: + args = extras + + if script: + try: + rv = script(*args, **kwargs) + if rv is not None: + sys.exit(int(rv)) + except Exception: + if main_args.debug: + import pdb + pdb.post_mortem() + else: + raise + sys.exit(0) + + +if __name__ == "__main__": + main()
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/.gitignore b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/.gitignore deleted file mode 100644 index 8e87d38..0000000 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/.gitignore +++ /dev/null
@@ -1,40 +0,0 @@ -*.py[cod] -*~ -\#* - -docs/_build/ - -# C extensions -*.so - -# Packages -*.egg -*.egg-info -dist -build -eggs -parts -bin -var -sdist -develop-eggs -.installed.cfg -lib -lib64 - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox -nosetests.xml -tests/functional/html/* - -# Translations -*.mo - -# Mr Developer -.mr.developer.cfg -.project -.pydevproject
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/wptserve/response.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/wptserve/response.py index 6c073fe..50ff00d 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/wptserve/response.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/wptserve/wptserve/response.py
@@ -465,9 +465,11 @@ raise ValueError def flush(self): - """Flush the output.""" + """Flush the output. Returns False if the flush failed due to + the socket being closed by the remote end.""" try: self._wfile.flush() + return True except socket.error: # This can happen if the socket got closed by the remote end - pass + return False
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt new file mode 100755 index 0000000..a24bc83a --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt
@@ -0,0 +1,5 @@ +#!/usr/bin/env python + +if __name__ == "__main__": + from tools.wpt import wpt + wpt.main()
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt.py new file mode 100644 index 0000000..0736186c --- /dev/null +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt.py
@@ -0,0 +1 @@ +execfile("wpt") \ No newline at end of file
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer_unittest.py index 792afcb..eeba35ed 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer_unittest.py
@@ -327,7 +327,8 @@ [ [ 'python', - blink_path + '/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/manifest', + blink_path + '/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt', + 'manifest', '--work', '--tests-root', blink_path + '/LayoutTests/external/wpt',
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest.py index 0afdf8d..6e973784 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest.py
@@ -125,9 +125,9 @@ """Generates MANIFEST.json on the specified directory.""" executive = host.executive finder = PathFinder(host.filesystem) - manifest_exec_path = finder.path_from_tools_scripts('webkitpy', 'thirdparty', 'wpt', 'wpt', 'manifest') + wpt_exec_path = finder.path_from_tools_scripts('webkitpy', 'thirdparty', 'wpt', 'wpt', 'wpt') - cmd = ['python', manifest_exec_path, '--work', '--tests-root', dest_path] + cmd = ['python', wpt_exec_path, 'manifest', '--work', '--tests-root', dest_path] _log.debug('Running command: %s', ' '.join(cmd)) proc = executive.popen(cmd, stdout=executive.PIPE, stderr=executive.PIPE, stdin=executive.PIPE) out, err = proc.communicate('')
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest_unittest.py index a1681f19..fd72080 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest_unittest.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_manifest_unittest.py
@@ -24,7 +24,8 @@ [ [ 'python', - webkit_base + '/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/manifest', + webkit_base + '/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt', + 'manifest', '--work', '--tests-root', webkit_base + '/LayoutTests/external/wpt', @@ -48,7 +49,8 @@ [ [ 'python', - webkit_base + '/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/manifest', + webkit_base + '/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/wpt', + 'manifest', '--work', '--tests-root', webkit_base + '/LayoutTests/external/wpt',
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium index 2511f8e2..9e6e738 100644 --- a/third_party/freetype/README.chromium +++ b/third_party/freetype/README.chromium
@@ -1,7 +1,7 @@ Name: FreeType URL: http://www.freetype.org/ -Version: VER-2-8-1-9 -Revision: 1ad07c1c79841e54ff3d5c37e28bfb91f402ee84 +Version: VER-2-8-1-23 +Revision: 6f2b6f8f72ffb5017ab00fca83185b21f1a9f56d License: Custom license "inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses" License File: src/docs/FTL.TXT
diff --git a/third_party/freetype/roll-freetype.sh b/third_party/freetype/roll-freetype.sh index 2b70a8b..0ac67c0 100755 --- a/third_party/freetype/roll-freetype.sh +++ b/third_party/freetype/roll-freetype.sh
@@ -15,7 +15,7 @@ rm ${TMPFILE} && git add third_party/freetype/include/freetype-custom-config/ftconfig.h && -FTVERSION=`git -C third_party/freetype/src/ describe` && +FTVERSION=`git -C third_party/freetype/src/ describe --long` && FTCOMMIT=`git -C third_party/freetype/src/ rev-parse HEAD` && sed -i "s/^Version: .*\$/Version: ${FTVERSION%-*}/" third_party/freetype/README.chromium && sed -i "s/^Revision: .*\$/Revision: ${FTCOMMIT}/" third_party/freetype/README.chromium &&
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index bd12f408..dcdb497 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -4552,6 +4552,14 @@ </summary> </histogram> +<histogram name="Autofill.CreditCardsDeletedForDisuse"> + <owner>wuandy@chromium.org</owner> + <summary> + The number of credit card deleted during a major version upgrade because + they have not been used recently enough and are expired. + </summary> +</histogram> + <histogram name="Autofill.CreditCardsSuppressedForDisuse"> <owner>wuandy@chromium.org</owner> <summary>
diff --git a/ui/gl/gl_implementation.cc b/ui/gl/gl_implementation.cc index 011939b..c97e8f37 100644 --- a/ui/gl/gl_implementation.cc +++ b/ui/gl/gl_implementation.cc
@@ -82,7 +82,7 @@ } GLImplementation GetSoftwareGLImplementation() { -#if (defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(USE_OZONE))) +#if defined(OS_WIN) return kGLImplementationSwiftShaderGL; #else return kGLImplementationOSMesaGL;