diff --git a/DEPS b/DEPS index 4b288ab..780b27f 100644 --- a/DEPS +++ b/DEPS
@@ -181,11 +181,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': 'f72e48dd2ff0ca9ecea2655eaa45e29c8ac587dd', + 'skia_revision': '504032e57526923e9deda5cca6ae5380772195cc', # 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': 'c83d5e246faef119952f4ad645062d380b79781c', + 'v8_revision': 'd2cad7137654e04a5328728551c51a1b79145a5d', # 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. @@ -193,11 +193,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'dcc57015f8922c93e9680f15c300d7c353082e00', + 'angle_revision': 'c792a6bacf68778aa38a1a5850f1fdca6f117e41', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': '110236f3ce70c292658b1b7372903dc55f43ad35', + 'swiftshader_revision': 'f6d3cbb2830306f3ef51a72cd3f798684d107c14', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. @@ -244,7 +244,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '9dbcda838560ceb6eb6ce90e92152a60ed95dcb3', + 'catapult_revision': 'f6f813d450e5e09c1e5f3c0f0afa00c5892864f4', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -252,7 +252,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': '5a8f4d89e1e624ade403ee72cb4c0de70262a397', + 'devtools_frontend_revision': '2ef3661d276c4d31381479c25e0f2cd4153fe6eb', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -308,11 +308,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'shaderc_revision': '0b9a2992c73d41debe4924d9f39260f773b5840a', + 'shaderc_revision': '3f24b6829b3e7da9c97b779402311ece81264ca8', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'e6441b604f58bf01a17ee991fa82f864fc6fc087', + 'dawn_revision': '5fc2c82c11e078928e6a0f9c447b69fe208815f8', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -879,7 +879,7 @@ # Build tools for Chrome OS. Note: This depends on third_party/pyelftools. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'c80b27e14b360133f92c7b7f9fee869e0461dd9a', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'd911a9f90cdf517f5e55a4c591198af46a886618', 'condition': 'checkout_linux', }, @@ -1297,7 +1297,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '63dded1f4d55df31f1d0d74fcb1646a5d26c5145', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '920683437e19b65d3a6a23a0c539cf9106f1a5cb', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1498,7 +1498,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '88d715c9115a5ce65c0bf660209dfeee9131ccd0', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '9b289b2c2973a35d5da3929b6dabf1d26ca49cba', + Var('webrtc_git') + '/src.git' + '@' + '4b07059139178636809b3d9eee961da0b9c92437', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1568,7 +1568,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@079a14224dd125991756d2d512944d9fcd1a46c7', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@3f1bd1b88a315c2ff9cca3c5efde1be681128bba', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc index c7afc0a..22262d8 100644 --- a/android_webview/common/aw_content_client.cc +++ b/android_webview/common/aw_content_client.cc
@@ -17,7 +17,6 @@ #include "content/public/common/content_switches.h" #include "gpu/config/gpu_info.h" #include "gpu/config/gpu_util.h" -#include "ipc/ipc_message.h" #include "mojo/public/cpp/bindings/binder_map.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "ui/base/l10n/l10n_util.h" @@ -52,14 +51,6 @@ resource_id); } -bool AwContentClient::CanSendWhileSwappedOut(const IPC::Message* message) { - // For legacy API support we perform a few browser -> renderer synchronous IPC - // messages that block the browser. However, the synchronous IPC replies might - // be dropped by the renderer during a swap out, deadlocking the browser. - // Because of this we should never drop any synchronous IPC replies. - return message->type() == IPC_REPLY_ID; -} - void AwContentClient::SetGpuInfo(const gpu::GPUInfo& gpu_info) { gpu_fingerprint_ = gpu_info.gl_version + '|' + gpu_info.gl_vendor + '|' + gpu_info.gl_renderer;
diff --git a/android_webview/common/aw_content_client.h b/android_webview/common/aw_content_client.h index 8071233..cbb7dd2 100644 --- a/android_webview/common/aw_content_client.h +++ b/android_webview/common/aw_content_client.h
@@ -23,7 +23,6 @@ base::StringPiece GetDataResource(int resource_id, ui::ScaleFactor scale_factor) override; base::RefCountedMemory* GetDataResourceBytes(int resource_id) override; - bool CanSendWhileSwappedOut(const IPC::Message* message) override; void SetGpuInfo(const gpu::GPUInfo& gpu_info) override; bool UsingSynchronousCompositing() override; media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override;
diff --git a/android_webview/docs/aosp-system-integration.md b/android_webview/docs/aosp-system-integration.md index ea7ef0d..3b8a0764 100644 --- a/android_webview/docs/aosp-system-integration.md +++ b/android_webview/docs/aosp-system-integration.md
@@ -195,10 +195,6 @@ # Disable Google-specific branding/features is_chrome_branded = false use_official_google_api_keys = false - -# Significantly reduces binary size at the cost of preventing Android's native -# crash handler from being able to produce useful stack unwindings. -exclude_unwind_tables = true ``` The `target_cpu` option must be set to @@ -271,6 +267,24 @@ proprietary_codecs = true ``` +#### Crash stack unwinding + +By default, builds using `is_official_build = true` exclude unwind tables from +the binaries, as they significantly increase binary size. Google's builds rely +on crashes being reported using Crashpad, which can then be decoded server-side. +If you don't intend to enable Crashpad and set up dedicated crash reporting +infrastructure for your WebView, you may wish to re-enable the unwind tables +with the following GN argument: + +``` gn +exclude_unwind_tables = false +``` + +This will allow Android's debuggerd to produce meaningful stack traces for +crashes that occur inside WebView's native code. We don't recommend using this +setting in shipping builds due to the binary size impact, but it may be the only +alternative if using Crashpad is impractical. + #### Other build options Other build options may be used but are not supported by the WebView team and
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java index da6e00f..b7b24aab 100644 --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
@@ -30,6 +30,7 @@ import org.chromium.android_webview.AwServiceWorkerController; import org.chromium.android_webview.AwTracingController; import org.chromium.android_webview.HttpAuthDatabase; +import org.chromium.android_webview.ProductConfig; import org.chromium.android_webview.R; import org.chromium.android_webview.VariationsSeedLoader; import org.chromium.android_webview.WebViewChromiumRunQueue; @@ -40,6 +41,7 @@ import org.chromium.android_webview.gfx.AwDrawFnImpl; import org.chromium.base.BuildConfig; import org.chromium.base.BuildInfo; +import org.chromium.base.BundleUtils; import org.chromium.base.ContextUtils; import org.chromium.base.FieldTrialList; import org.chromium.base.JNIUtils; @@ -147,6 +149,8 @@ ResourceBundle.setAvailablePakLocales( new String[] {}, AwLocaleConfig.getWebViewSupportedPakLocales()); + BundleUtils.setIsBundle(ProductConfig.IS_BUNDLE); + // We are rewriting Java resources in the background. // NOTE: Any reference to Java resources will cause a crash.
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java index 0761e49..fefc338 100644 --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -34,10 +34,10 @@ import org.chromium.android_webview.AwBrowserProcess; import org.chromium.android_webview.AwSettings; import org.chromium.android_webview.AwSwitches; +import org.chromium.android_webview.ProductConfig; import org.chromium.android_webview.WebViewChromiumRunQueue; import org.chromium.android_webview.common.CommandLineUtil; import org.chromium.base.BuildInfo; -import org.chromium.base.BundleUtils; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; import org.chromium.base.Log; @@ -391,7 +391,7 @@ public static boolean preloadInZygote() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O - && Build.VERSION.SDK_INT < Build.VERSION_CODES.P && BundleUtils.isBundle()) { + && Build.VERSION.SDK_INT < Build.VERSION_CODES.P && ProductConfig.IS_BUNDLE) { // Apply workaround if we're a bundle on O, where the split APK handling bug exists. SplitApkWorkaround.apply(); }
diff --git a/base/android/bundle_utils.cc b/base/android/bundle_utils.cc index e2ee545b..d227b7c 100644 --- a/base/android/bundle_utils.cc +++ b/base/android/bundle_utils.cc
@@ -63,7 +63,8 @@ // static bool BundleUtils::IsBundle() { - return Java_BundleUtils_isBundle(base::android::AttachCurrentThread()); + return Java_BundleUtils_isBundleForNative( + base::android::AttachCurrentThread()); } // static
diff --git a/base/android/java/src/org/chromium/base/BundleUtils.java b/base/android/java/src/org/chromium/base/BundleUtils.java index 7e2b490..138398f 100644 --- a/base/android/java/src/org/chromium/base/BundleUtils.java +++ b/base/android/java/src/org/chromium/base/BundleUtils.java
@@ -8,12 +8,51 @@ import org.chromium.base.annotations.CalledByNative; -/** Utils to help working with android app bundles. */ -public class BundleUtils { - /* Returns true if the current build is a bundle. */ +/** + * Utils for working with android app bundles. + * + * Important notes about bundle status as interpreted by this class: + * + * <ul> + * <li>If {@link BuildConfig#BUNDLES_SUPPORTED} is false, then we are definitely not in a bundle, + * and ProGuard is able to strip out the bundle support library.</li> + * <li>If {@link BuildConfig#BUNDLES_SUPPORTED} is true, then we MIGHT be in a bundle. + * {@link BundleUtils#sIsBundle} is the source of truth.</li> + * </ul> + * + * We need two fields to store one bit of information here to ensure that ProGuard can optimize out + * the bundle support library (since {@link BuildConfig#BUNDLES_SUPPORTED} is final) and so that + * we can dynamically set whether or not we're in a bundle for targets that use static shared + * library APKs. + */ +public final class BundleUtils { + private static Boolean sIsBundle; + + /** + * {@link BundleUtils#isBundle()} is not called directly by native because + * {@link CalledByNative} prevents inlining, causing the bundle support lib to not be + * removed non-bundle builds. + * + * @return true if the current build is a bundle. + */ @CalledByNative + public static boolean isBundleForNative() { + return isBundle(); + } + + /** + * @return true if the current build is a bundle. + */ public static boolean isBundle() { - return BuildConfig.IS_BUNDLE; + if (!BuildConfig.BUNDLES_SUPPORTED) { + return false; + } + assert sIsBundle != null; + return sIsBundle; + } + + public static void setIsBundle(boolean isBundle) { + sIsBundle = isBundle; } /* Returns absolute path to a native library in a feature module. */
diff --git a/base/android/java/templates/BuildConfig.template b/base/android/java/templates/BuildConfig.template index f09ebf0..4f80588 100644 --- a/base/android/java/templates/BuildConfig.template +++ b/base/android/java/templates/BuildConfig.template
@@ -69,11 +69,10 @@ public static MAYBE_FINAL int MIN_SDK_VERSION = 1; #endif - // Not making this final for BundleTestRule to modify. -#if defined(_IS_BUNDLE) - public static boolean IS_BUNDLE = true; +#if defined(_BUNDLES_SUPPORTED) + public static MAYBE_FINAL boolean BUNDLES_SUPPORTED = true; #else - public static boolean IS_BUNDLE; + public static MAYBE_FINAL boolean BUNDLES_SUPPORTED MAYBE_FALSE; #endif #if defined(_IS_INCREMENTAL_INSTALL)
diff --git a/base/test/android/javatests/src/org/chromium/base/test/BundleTestRule.java b/base/test/android/javatests/src/org/chromium/base/test/BundleTestRule.java index 9e1db3e3..9ab0024 100644 --- a/base/test/android/javatests/src/org/chromium/base/test/BundleTestRule.java +++ b/base/test/android/javatests/src/org/chromium/base/test/BundleTestRule.java
@@ -8,7 +8,7 @@ import org.junit.runner.Description; import org.junit.runners.model.Statement; -import org.chromium.base.BuildConfig; +import org.chromium.base.BundleUtils; /** * Ensures that BundleUtils#isBundle returns true for the duration of the test. @@ -19,12 +19,12 @@ return new Statement() { @Override public void evaluate() throws Throwable { - boolean oldValue = BuildConfig.IS_BUNDLE; + boolean oldValue = BundleUtils.isBundle(); try { - BuildConfig.IS_BUNDLE = true; + BundleUtils.setIsBundle(true); base.evaluate(); } finally { - BuildConfig.IS_BUNDLE = oldValue; + BundleUtils.setIsBundle(oldValue); } } };
diff --git a/base/test/task_environment.cc b/base/test/task_environment.cc index 2f730e6..9085791f 100644 --- a/base/test/task_environment.cc +++ b/base/test/task_environment.cc
@@ -354,11 +354,13 @@ MainThreadType main_thread_type, ThreadPoolExecutionMode thread_pool_execution_mode, ThreadingMode threading_mode, + ThreadPoolCOMEnvironment thread_pool_com_environment, bool subclass_creates_default_taskrunner, trait_helpers::NotATraitTag) : main_thread_type_(main_thread_type), thread_pool_execution_mode_(thread_pool_execution_mode), threading_mode_(threading_mode), + thread_pool_com_environment_(thread_pool_com_environment), subclass_creates_default_taskrunner_(subclass_creates_default_taskrunner), sequence_manager_( CreateSequenceManagerForMainThreadType(main_thread_type)), @@ -434,18 +436,10 @@ ThreadPoolInstance::InitParams init_params(kMaxThreads); init_params.suggested_reclaim_time = TimeDelta::Max(); #if defined(OS_WIN) - // Enable the MTA in unit tests to match the browser process's - // ThreadPoolInstance configuration. - // - // This has the adverse side-effect of enabling the MTA in non-browser unit - // tests as well but the downside there is not as bad as not having it in - // browser unit tests. It just means some COM asserts may pass in unit tests - // where they wouldn't in integration tests or prod. That's okay because unit - // tests are already generally very loose on allowing I/O, waits, etc. Such - // misuse will still be caught in later phases (and COM usage should already - // be pretty much inexistent in sandboxed processes). - init_params.common_thread_pool_environment = - ThreadPoolInstance::InitParams::CommonThreadPoolEnvironment::COM_MTA; + if (thread_pool_com_environment_ == ThreadPoolCOMEnvironment::COM_MTA) { + init_params.common_thread_pool_environment = + ThreadPoolInstance::InitParams::CommonThreadPoolEnvironment::COM_MTA; + } #endif auto task_tracker = std::make_unique<TestTaskTracker>();
diff --git a/base/test/task_environment.h b/base/test/task_environment.h index 01d19d9..c8d1d71 100644 --- a/base/test/task_environment.h +++ b/base/test/task_environment.h
@@ -156,6 +156,28 @@ DEFAULT = MULTIPLE_THREADS }; + // On Windows, sets the COM environment for the ThreadPoolInstance. Ignored + // on other platforms. + enum class ThreadPoolCOMEnvironment { + // Do not initialize COM for the pool's workers. + NONE, + + // Place the pool's workers in a COM MTA. + COM_MTA, + + // Enable the MTA by default in unit tests to match the browser process's + // ThreadPoolInstance configuration. + // + // This has the adverse side-effect of enabling the MTA in non-browser unit + // tests as well but the downside there is not as bad as not having it in + // browser unit tests. It just means some COM asserts may pass in unit + // tests where they wouldn't in integration tests or prod. That's okay + // because unit tests are already generally very loose on allowing I/O, + // waits, etc. Such misuse will still be caught in later phases (and COM + // usage should already be pretty much inexistent in sandboxed processes). + DEFAULT = COM_MTA, + }; + // List of traits that are valid inputs for the constructor below. struct ValidTraits { ValidTraits(TimeSource); @@ -163,6 +185,7 @@ ValidTraits(ThreadPoolExecutionMode); ValidTraits(SubclassCreatesDefaultTaskRunner); ValidTraits(ThreadingMode); + ValidTraits(ThreadPoolCOMEnvironment); }; // Constructor accepts zero or more traits which customize the testing @@ -180,6 +203,9 @@ ThreadPoolExecutionMode::DEFAULT>(traits...), trait_helpers::GetEnum<ThreadingMode, ThreadingMode::DEFAULT>( traits...), + trait_helpers::GetEnum<ThreadPoolCOMEnvironment, + ThreadPoolCOMEnvironment::DEFAULT>( + traits...), trait_helpers::HasTrait<SubclassCreatesDefaultTaskRunner, TaskEnvironmentTraits...>(), trait_helpers::NotATraitTag()) {} @@ -329,12 +355,14 @@ MainThreadType main_thread_type, ThreadPoolExecutionMode thread_pool_execution_mode, ThreadingMode threading_mode, + ThreadPoolCOMEnvironment thread_pool_com_environment, bool subclass_creates_default_taskrunner, trait_helpers::NotATraitTag tag); const MainThreadType main_thread_type_; const ThreadPoolExecutionMode thread_pool_execution_mode_; const ThreadingMode threading_mode_; + const ThreadPoolCOMEnvironment thread_pool_com_environment_; const bool subclass_creates_default_taskrunner_; std::unique_ptr<sequence_manager::SequenceManager> sequence_manager_;
diff --git a/base/test/task_environment_unittest.cc b/base/test/task_environment_unittest.cc index e6a929e..623ec9dd 100644 --- a/base/test/task_environment_unittest.cc +++ b/base/test/task_environment_unittest.cc
@@ -44,6 +44,10 @@ #include "base/files/file_descriptor_watcher_posix.h" #endif // defined(OS_POSIX) +#if defined(OS_WIN) +#include "base/win/scoped_com_initializer.h" +#endif + namespace base { namespace test { @@ -1199,5 +1203,58 @@ run_loop.Run(); } +#if defined(OS_WIN) +namespace { + +enum class ApartmentType { + kSTA, + kMTA, +}; + +void InitializeSTAApartment() { + base::win::ScopedCOMInitializer initializer; + EXPECT_TRUE(initializer.Succeeded()); +} + +void InitializeMTAApartment() { + base::win::ScopedCOMInitializer initializer( + base::win::ScopedCOMInitializer::kMTA); + EXPECT_TRUE(initializer.Succeeded()); +} + +void InitializeCOMOnWorker( + TaskEnvironment::ThreadPoolCOMEnvironment com_environment, + ApartmentType apartment_type) { + TaskEnvironment task_environment(com_environment); + PostTask(FROM_HERE, BindOnce(apartment_type == ApartmentType::kSTA + ? &InitializeSTAApartment + : &InitializeMTAApartment)); + task_environment.RunUntilIdle(); +} + +} // namespace + +TEST_F(TaskEnvironmentTest, DefaultCOMEnvironment) { + // Attempt to initialize an MTA COM apartment. Expect this to succeed since + // the thread is already in an MTA apartment. + InitializeCOMOnWorker(TaskEnvironment::ThreadPoolCOMEnvironment::DEFAULT, + ApartmentType::kMTA); + + // Attempt to initialize an STA COM apartment. Expect this to fail since the + // thread is already in an MTA apartment. + EXPECT_DCHECK_DEATH(InitializeCOMOnWorker( + TaskEnvironment::ThreadPoolCOMEnvironment::DEFAULT, ApartmentType::kSTA)); +} + +TEST_F(TaskEnvironmentTest, NoCOMEnvironment) { + // Attempt to initialize both MTA and STA COM apartments. Both should succeed + // when the thread is not already in an apartment. + InitializeCOMOnWorker(TaskEnvironment::ThreadPoolCOMEnvironment::NONE, + ApartmentType::kMTA); + InitializeCOMOnWorker(TaskEnvironment::ThreadPoolCOMEnvironment::NONE, + ApartmentType::kSTA); +} +#endif + } // namespace test } // namespace base
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h index 04b9fce..5c8844f 100644 --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h
@@ -184,7 +184,6 @@ X(TRACE_DISABLED_BY_DEFAULT("gpu.device")) \ X(TRACE_DISABLED_BY_DEFAULT("gpu.service")) \ X(TRACE_DISABLED_BY_DEFAULT("histogram_samples")) \ - X(TRACE_DISABLED_BY_DEFAULT("ipc.flow")) \ X(TRACE_DISABLED_BY_DEFAULT("java-heap-profiler")) \ X(TRACE_DISABLED_BY_DEFAULT("layer-element")) \ X(TRACE_DISABLED_BY_DEFAULT("lifecycles")) \
diff --git a/base/util/type_safety/id_type.h b/base/util/type_safety/id_type.h index 29d1eb8e..7874879 100644 --- a/base/util/type_safety/id_type.h +++ b/base/util/type_safety/id_type.h
@@ -49,7 +49,30 @@ template <typename TypeMarker, typename WrappedType, WrappedType kInvalidValue> class IdType : public StrongAlias<TypeMarker, WrappedType> { public: + static_assert(kInvalidValue <= 0, + "The invalid value should be negative or equal to zero to " + "avoid overflow issues."); + using StrongAlias<TypeMarker, WrappedType>::StrongAlias; + + // This class can be used to generate unique IdTypes. It keeps an internal + // counter that is continually increased by one every time an ID is generated. + class Generator { + public: + Generator() = default; + ~Generator() = default; + + // Generates the next unique ID. + IdType GenerateNextId() { return FromUnsafeValue(next_id_++); } + + // Non-copyable. + Generator(const Generator&) = delete; + Generator& operator=(const Generator&) = delete; + + private: + WrappedType next_id_ = kInvalidValue + 1; + }; + // Default-construct in the null state. IdType() : StrongAlias<TypeMarker, WrappedType>::StrongAlias(kInvalidValue) {}
diff --git a/base/util/type_safety/id_type_unittest.cc b/base/util/type_safety/id_type_unittest.cc index ad76acb..04be50f 100644 --- a/base/util/type_safety/id_type_unittest.cc +++ b/base/util/type_safety/id_type_unittest.cc
@@ -26,6 +26,20 @@ EXPECT_FALSE(foo_id.is_null()); } +TEST(IdType, Generator) { + FooId::Generator foo_id_generator; + for (int i = 1; i < 10; i++) + EXPECT_EQ(foo_id_generator.GenerateNextId(), FooId::FromUnsafeValue(i)); +} + +TEST(IdType, GeneratorWithNonZeroInvalidValue) { + using TestId = IdType<class TestIdTag, int, -1>; + + TestId::Generator test_id_generator; + for (int i = 0; i < 10; i++) + EXPECT_EQ(test_id_generator.GenerateNextId(), TestId::FromUnsafeValue(i)); +} + class IdTypeSpecificValueTest : public ::testing::TestWithParam<int> { protected: FooId test_id() { return FooId::FromUnsafeValue(GetParam()); }
diff --git a/build/android/java/templates/ProductConfig.template b/build/android/java/templates/ProductConfig.template index cf4ba125..dee8f82 100644 --- a/build/android/java/templates/ProductConfig.template +++ b/build/android/java/templates/ProductConfig.template
@@ -8,10 +8,12 @@ #define MAYBE_FINAL final #define MAYBE_USE_CHROMIUM_LINKER = USE_CHROMIUM_LINKER_VALUE #define MAYBE_USE_MODERN_LINKER = USE_MODERN_LINKER_VALUE +#define MAYBE_IS_BUNDLE = IS_BUNDLE_VALUE #else #define MAYBE_FINAL #define MAYBE_USE_CHROMIUM_LINKER #define MAYBE_USE_MODERN_LINKER +#define MAYBE_IS_BUNDLE #endif /** @@ -37,4 +39,5 @@ public static MAYBE_FINAL boolean USE_CHROMIUM_LINKER MAYBE_USE_CHROMIUM_LINKER; public static MAYBE_FINAL boolean USE_MODERN_LINKER MAYBE_USE_MODERN_LINKER; + public static MAYBE_FINAL boolean IS_BUNDLE MAYBE_IS_BUNDLE; }
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni index 982efeb..f7257bb 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni
@@ -1939,7 +1939,9 @@ # variables must not be set. # enable_multidex: Value for ENABLE_MULTIDEX. # min_sdk_version: Value for MIN_SDK_VERSION. - # + # bundles_supported: Whether or not this target can be treated as a bundle. + # resources_version_variable: + # is_incremental_install: template("generate_build_config_srcjar") { java_cpp_template(target_name) { package_path = "org/chromium/base" @@ -1963,8 +1965,8 @@ defines += [ "_IS_CHROME_BRANDED" ] } - if (defined(invoker.is_bundle_module) && invoker.is_bundle_module) { - defines += [ "_IS_BUNDLE" ] + if (defined(invoker.bundles_supported) && invoker.bundles_supported) { + defines += [ "_BUNDLES_SUPPORTED" ] } if (defined(invoker.is_incremental_install) && @@ -2001,15 +2003,17 @@ # # Variables: # build_config: Path to build_config used for locale lists. + # is_bundle_module: Whether or not this target is part of a bundle build. # java_package: Java package for the generated class. # use_chromium_linker: # use_modern_linker: template("generate_product_config_srcjar") { java_cpp_template(target_name) { defines = [] - _use_final = defined(invoker.build_config) || - defined(invoker.use_chromium_linker) || - defined(invoker.use_modern_linker) + _use_final = + defined(invoker.build_config) || + defined(invoker.use_chromium_linker) || + defined(invoker.use_modern_linker) || defined(invoker.is_bundle) if (_use_final) { defines += [ "USE_FINAL" ] } @@ -2024,9 +2028,11 @@ defined(invoker.use_chromium_linker) && invoker.use_chromium_linker _use_modern_linker = defined(invoker.use_modern_linker) && invoker.use_modern_linker + _is_bundle = defined(invoker.is_bundle_module) && invoker.is_bundle_module defines += [ "USE_CHROMIUM_LINKER_VALUE=$_use_chromium_linker", "USE_MODERN_LINKER_VALUE=$_use_modern_linker", + "IS_BUNDLE_VALUE=$_is_bundle", ] if (defined(invoker.build_config)) { forward_variables_from(invoker, @@ -2149,6 +2155,8 @@ # use when compiling the sources given to this target (optional). # processor_args_javac: List of args to pass to annotation processors when # compiling sources given to this target (optional). + # bundles_supported: Enable Java code to treat this target as a bundle + # whether (by default determined by the target type). template("android_apk_or_module") { forward_variables_from(invoker, [ "testonly" ]) assert(defined(invoker.android_manifest)) @@ -2729,11 +2737,12 @@ if (_generate_buildconfig_java) { generate_build_config_srcjar("${_template_name}__build_config_srcjar") { - forward_variables_from(invoker, - [ - "is_bundle_module", - "min_sdk_version", - ]) + forward_variables_from(invoker, [ "min_sdk_version" ]) + _bundles_supported = _is_bundle_module || _is_static_library_provider + if (defined(invoker.bundles_supported)) { + _bundles_supported = invoker.bundles_supported + } + bundles_supported = _bundles_supported use_final_fields = true enable_multidex = _enable_multidex is_incremental_install = _incremental_apk @@ -2753,6 +2762,7 @@ _locale_target_name = "${_template_name}_${_package}__product_config_srcjar" generate_product_config_srcjar("$_locale_target_name") { + forward_variables_from(invoker, [ "is_bundle_module" ]) build_config = _build_config java_package = _package use_chromium_linker = _use_chromium_linker @@ -3472,6 +3482,7 @@ "apk_under_test", "app_as_shared_lib", "build_hooks_android_impl_deps", + "bundles_supported", "chromium_code", "command_line_flags_file", "create_apk_script",
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index d9253fb..d8c4fd6e 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -143,10 +143,11 @@ # rest with 0xAA. This makes behavior of uninitialized memory bugs consistent, # recognizeble in debugger, and crashes memory accesses by uninitialized # pointers. - # TODO(vitalybuka): + # TODO(vitalybuka): investigate why some debug windows bots fail tests. # 'is_android' breaks content_shell_test_apk on android-kitkat-arm-rel. # 'use_xcode_clang' may call old clang. - init_stack_vars = !is_android && !use_xcode_clang && !is_official_build + init_stack_vars = !is_android && !(is_win && is_debug) && !use_xcode_clang && + !is_official_build } declare_args() {
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni index 2a11c00..0766109 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni
@@ -85,19 +85,21 @@ # is_component_build=false. Very large debug symbols can have unwanted side # effects so this is enforced by default for chromium. forbid_non_component_debug_builds = build_with_chromium + + # Exclude unwind tables by default for official builds as unwinding can be + # done from stack dumps produced by Crashpad at a later time "offline" in the + # crash server. Since this increases binary size, we don't recommend including + # them in shipping builds. + # For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet + # which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able + # to unwind at runtime. + exclude_unwind_tables = + is_official_build || (is_chromecast && !is_cast_desktop_build && + !is_debug && !cast_is_debug && !is_fuchsia) } assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO") -# Exclude unwind tables for official builds as unwinding can be done from stack -# dumps produced by Crashpad at a later time "offline" in the crash server. -# For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet -# which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able -# to unwind at runtime. -exclude_unwind_tables = - is_official_build || (is_chromecast && !is_cast_desktop_build && - !is_debug && !cast_is_debug && !is_fuchsia) - # If true, optimize for size. Does not affect windows builds. # Linux & Mac favor speed over size. # TODO(brettw) it's weird that Mac and desktop Linux are different. We should
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 08e3ec8a..36ab6a0e 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8891669784849215056 \ No newline at end of file +8891642320425975984 \ No newline at end of file
diff --git a/cc/metrics/frame_sequence_tracker.cc b/cc/metrics/frame_sequence_tracker.cc index 9010d82..1048155f 100644 --- a/cc/metrics/frame_sequence_tracker.cc +++ b/cc/metrics/frame_sequence_tracker.cc
@@ -417,6 +417,16 @@ FrameSequenceTracker::~FrameSequenceTracker() { } +void FrameSequenceTracker::ScheduleTerminate() { + termination_status_ = TerminationStatus::kScheduledForTermination; + // It could happen that a main/impl frame is generated, but never processed + // (didn't report no damage and didn't submit) when this happens. + if (last_processed_impl_sequence_ < last_started_impl_sequence_) { + impl_throughput().frames_expected -= + begin_impl_frame_data_.previous_sequence_delta; + } +} + void FrameSequenceTracker::ReportMetricsForTesting() { metrics_->ReportMetrics(); } @@ -437,12 +447,12 @@ DCHECK_EQ(last_started_impl_sequence_, 0u) << TRACKER_DCHECK_MSG; DCHECK_EQ(last_processed_impl_sequence_, 0u) << TRACKER_DCHECK_MSG; - last_started_impl_sequence_ = args.frame_id.sequence_number; if (args.type == viz::BeginFrameArgs::NORMAL) impl_frames_.insert(args.frame_id); #endif + last_started_impl_sequence_ = args.frame_id.sequence_number; if (reset_all_state_) { begin_impl_frame_data_ = {}; begin_main_frame_data_ = {}; @@ -507,9 +517,9 @@ #if DCHECK_IS_ON() DCHECK(is_inside_frame_) << TRACKER_DCHECK_MSG; - last_processed_impl_sequence_ = ack.frame_id.sequence_number; #endif + last_processed_impl_sequence_ = ack.frame_id.sequence_number; if (first_submitted_frame_ == 0) first_submitted_frame_ = frame_token; last_submitted_frame_ = frame_token; @@ -587,8 +597,9 @@ DCHECK_EQ(last_started_impl_sequence_, last_processed_impl_sequence_) << TRACKER_DCHECK_MSG; is_inside_frame_ = false; - last_started_impl_sequence_ = last_processed_impl_sequence_ = 0; #endif + + last_started_impl_sequence_ = last_processed_impl_sequence_ = 0; } void FrameSequenceTracker::ReportFramePresented( @@ -693,10 +704,7 @@ if (ShouldIgnoreSequence(ack.frame_id.sequence_number)) return; -#if DCHECK_IS_ON() last_processed_impl_sequence_ = ack.frame_id.sequence_number; -#endif - // If there is no damage for this frame (and no frame is submitted), then the // impl-sequence needs to be reset. However, this should be done after the // processing the frame is complete (i.e. in ReportFrameEnd()), so that other
diff --git a/cc/metrics/frame_sequence_tracker.h b/cc/metrics/frame_sequence_tracker.h index 1d8354d..8ee948a 100644 --- a/cc/metrics/frame_sequence_tracker.h +++ b/cc/metrics/frame_sequence_tracker.h
@@ -291,9 +291,7 @@ return metrics_->main_throughput(); } - void ScheduleTerminate() { - termination_status_ = TerminationStatus::kScheduledForTermination; - } + void ScheduleTerminate(); struct TrackedFrameData { // Represents the |BeginFrameArgs::source_id| and @@ -393,6 +391,9 @@ // Report the throughput metrics every 5 seconds. const base::TimeDelta time_delta_to_report_ = base::TimeDelta::FromSeconds(5); + uint64_t last_started_impl_sequence_ = 0; + uint64_t last_processed_impl_sequence_ = 0; + #if DCHECK_IS_ON() bool is_inside_frame_ = false; @@ -406,9 +407,6 @@ // when DCHECK is on. std::stringstream frame_sequence_trace_; - uint64_t last_started_impl_sequence_ = 0; - uint64_t last_processed_impl_sequence_ = 0; - uint64_t last_started_main_sequence_ = 0; // If ReportBeginImplFrame is never called on a arg, then ReportBeginMainFrame
diff --git a/cc/metrics/frame_sequence_tracker_unittest.cc b/cc/metrics/frame_sequence_tracker_unittest.cc index f0f14328..740abe3 100644 --- a/cc/metrics/frame_sequence_tracker_unittest.cc +++ b/cc/metrics/frame_sequence_tracker_unittest.cc
@@ -696,4 +696,14 @@ EXPECT_EQ(MainThroughput().frames_produced, 0u); } +TEST_F(FrameSequenceTrackerTest, BeginImplFrameBeforeTerminate) { + const char sequence[] = "b(1)s(1)e(1)b(4)P(1)"; + GenerateSequence(sequence); + EXPECT_EQ(ImplThroughput().frames_expected, 4u); + EXPECT_EQ(ImplThroughput().frames_produced, 1u); + collection_.StopSequence(FrameSequenceTrackerType::kTouchScroll); + EXPECT_EQ(ImplThroughput().frames_expected, 1u); + EXPECT_EQ(ImplThroughput().frames_produced, 1u); +} + } // namespace cc
diff --git a/cc/trees/occlusion_tracker.cc b/cc/trees/occlusion_tracker.cc index 363461f..d0dcf64 100644 --- a/cc/trees/occlusion_tracker.cc +++ b/cc/trees/occlusion_tracker.cc
@@ -37,7 +37,7 @@ Occlusion OcclusionTracker::GetCurrentOcclusionForContributingSurface( const gfx::Transform& draw_transform) const { DCHECK(!stack_.empty()); - if (stack_.size() < 2) + if (stack_.size() < 2 || stack_.back().ignores_parent_occlusion) return Occlusion(); // A contributing surface doesn't get occluded by things inside its own // surface, so only things outside the surface can occlude it. That occlusion @@ -49,10 +49,12 @@ const RenderSurfaceImpl* OcclusionTracker::OcclusionSurfaceForContributingSurface() const { + if (stack_.size() < 2 || stack_.back().ignores_parent_occlusion) + return nullptr; // A contributing surface doesn't get occluded by things inside its own // surface, so only things outside the surface can occlude it. That occlusion // is found just below the top of the stack (if it exists). - return (stack_.size() < 2) ? nullptr : stack_[stack_.size() - 2].target; + return stack_[stack_.size() - 2].target; } void OcclusionTracker::EnterLayer( @@ -162,8 +164,10 @@ !entering_unoccluded_subtree && have_transform_from_screen_to_new_target && !entering_root_target; - if (!copy_outside_occlusion_forward) + if (!copy_outside_occlusion_forward) { + stack_.back().ignores_parent_occlusion = true; return; + } size_t last_index = stack_.size() - 1; gfx::Transform old_target_to_new_target_transform(
diff --git a/cc/trees/occlusion_tracker.h b/cc/trees/occlusion_tracker.h index 09c7aec..d249867 100644 --- a/cc/trees/occlusion_tracker.h +++ b/cc/trees/occlusion_tracker.h
@@ -64,6 +64,7 @@ const RenderSurfaceImpl* target; SimpleEnclosedRegion occlusion_from_outside_target; SimpleEnclosedRegion occlusion_from_inside_target; + bool ignores_parent_occlusion = false; }; // The stack holds occluded regions for subtrees in the
diff --git a/cc/trees/occlusion_tracker_unittest.cc b/cc/trees/occlusion_tracker_unittest.cc index 282133c..841c4bf 100644 --- a/cc/trees/occlusion_tracker_unittest.cc +++ b/cc/trees/occlusion_tracker_unittest.cc
@@ -992,6 +992,63 @@ ALL_OCCLUSIONTRACKER_TEST(OcclusionTrackerTestFilters) +class OcclusionTrackerTestFiltersRenderSurfaceOcclusion + : public OcclusionTrackerTest { + protected: + using OcclusionTrackerTest::OcclusionTrackerTest; + + void RunMyTest() override { + TestContentLayerImpl* parent = CreateRoot(gfx::Size(500, 500)); + TestContentLayerImpl* blur_layer = CreateDrawingSurface( + parent, gfx::Transform(), gfx::PointF(100.f, 100.f), gfx::Size(50, 50), + true); + TestContentLayerImpl* opacity_layer = CreateDrawingSurface( + parent, gfx::Transform(), gfx::PointF(200.f, 100.f), gfx::Size(50, 50), + true); + + // This layer fully covers the layer bounds of the above filtered layers, + // but not the blur filter extent of |blur_layer|. + TestContentLayerImpl* occluding_layer = + CreateDrawingLayer(parent, gfx::Transform(), gfx::PointF(100.f, 100.f), + gfx::Size(300, 100), true); + + FilterOperations filters; + filters.Append(FilterOperation::CreateBlurFilter(10.f)); + GetEffectNode(blur_layer)->filters = filters; + + filters.Clear(); + filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); + GetEffectNode(opacity_layer)->filters = filters; + + CalcDrawEtc(); + TestOcclusionTrackerWithClip occlusion(gfx::Rect(0, 0, 1000, 1000)); + + ASSERT_NO_FATAL_FAILURE(VisitLayer(occluding_layer, &occlusion)); + + // The render surface of |opacity_layer| (which has a filter that doesn't + // move pixels) is occluded by |occluding_layer|. + ASSERT_NO_FATAL_FAILURE(VisitLayer(opacity_layer, &occlusion)); + ASSERT_NO_FATAL_FAILURE( + EnterContributingSurface(opacity_layer, &occlusion)); + EXPECT_EQ(gfx::Rect(), + occlusion.UnoccludedSurfaceContentRect( + opacity_layer, gfx::Rect(opacity_layer->bounds()))); + ASSERT_NO_FATAL_FAILURE( + LeaveContributingSurface(opacity_layer, &occlusion)); + + // The render surface of |blur_layer| (which has a filter that moves pixels) + // is not occluded by |occluding_layer|. + ASSERT_NO_FATAL_FAILURE(VisitLayer(blur_layer, &occlusion)); + ASSERT_NO_FATAL_FAILURE(EnterContributingSurface(blur_layer, &occlusion)); + EXPECT_EQ(gfx::Rect(blur_layer->bounds()), + occlusion.UnoccludedSurfaceContentRect( + blur_layer, gfx::Rect(blur_layer->bounds()))); + ASSERT_NO_FATAL_FAILURE(LeaveContributingSurface(blur_layer, &occlusion)); + } +}; + +ALL_OCCLUSIONTRACKER_TEST(OcclusionTrackerTestFiltersRenderSurfaceOcclusion) + class OcclusionTrackerTestOpaqueContentsRegionEmpty : public OcclusionTrackerTest { protected:
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 2d216d2..11105d8 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -1988,6 +1988,7 @@ testonly = true target_type = "instrumentation_test_apk" shared_library_for_unwind_asset = "chromefortest" + bundles_supported = true deps = _chrome_public_shared_deps + invoker.deps + [ ":chrome_apk_pak_assets", @@ -2964,6 +2965,7 @@ sources = [ "native_java_unittests/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorTest.java", "native_java_unittests/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderTest.java", + "native_java_unittests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] @@ -2976,5 +2978,6 @@ sources = [ "native_java_unittests/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorTest.java", "native_java_unittests/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderTest.java", + "native_java_unittests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java", ] }
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni index 09e03c2a..37061f40 100644 --- a/chrome/android/chrome_junit_test_java_sources.gni +++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -114,7 +114,6 @@ "junit/src/org/chromium/chrome/browser/nfc/NfcSystemLevelPromptTest.java", "junit/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateControllerTest.java", "junit/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateProviderHolderTest.java", - "junit/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java", "junit/src/org/chromium/chrome/browser/notifications/NotificationSystemStatusUtilUnitTest.java", "junit/src/org/chromium/chrome/browser/notifications/NotificationTriggerBackgroundTaskTest.java", "junit/src/org/chromium/chrome/browser/notifications/NotificationTriggerSchedulerTest.java", @@ -192,6 +191,7 @@ "junit/src/org/chromium/chrome/browser/signin/ConfirmManagedSyncDataDialogTest.java", "junit/src/org/chromium/chrome/browser/signin/ConfirmSyncDataStateMachineDelegateTest.java", "junit/src/org/chromium/chrome/browser/signin/ConfirmSyncDataStateMachineTest.java", + "junit/src/org/chromium/chrome/browser/signin/SignOutDialogFragmentTest.java", "junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java", "junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java", "junit/src/org/chromium/chrome/browser/signin/SigninUtilsStartActivityTest.java",
diff --git a/chrome/android/features/autofill_assistant/BUILD.gn b/chrome/android/features/autofill_assistant/BUILD.gn index f79e8d2..edbac41 100644 --- a/chrome/android/features/autofill_assistant/BUILD.gn +++ b/chrome/android/features/autofill_assistant/BUILD.gn
@@ -261,6 +261,7 @@ "//chrome/android:chrome_test_util_java", "//chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library:feed_lib_java", "//chrome/browser/image_fetcher:java", + "//chrome/browser/preferences:java", "//chrome/browser/ui/android/widget:java", "//chrome/test/android:chrome_java_test_support", "//components/autofill_assistant/browser:proto_java",
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java index 1049b5e..5b40f450 100644 --- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java +++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java
@@ -5,15 +5,11 @@ package org.chromium.chrome.browser.autofill_assistant.user_data; import android.app.Activity; -import android.content.Context; import android.view.View; import android.view.ViewGroup; -import androidx.annotation.Nullable; - import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.ChromeVersionInfo; -import org.chromium.chrome.browser.autofill.PersonalDataManager; import org.chromium.chrome.browser.autofill.prefeditor.EditorDialog; import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantAdditionalSectionContainer; import org.chromium.chrome.browser.payments.AddressEditor; @@ -93,10 +89,6 @@ mDividerTag = dividerTag; mActivity = activity; } - - public Context getContext() { - return mActivity; - } } @Override @@ -215,38 +207,35 @@ */ private boolean updateSectionContents( AssistantCollectUserDataModel model, PropertyKey propertyKey, ViewHolder view) { - if (propertyKey == AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS + if (propertyKey == AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS || propertyKey == AssistantCollectUserDataModel.WEB_CONTENTS) { - WebContents webContents = model.get(AssistantCollectUserDataModel.WEB_CONTENTS); - List<AssistantCollectUserDataModel.PaymentTuple> paymentTuples = - model.get(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS); - - List<AutofillPaymentInstrument> availablePaymentMethods; - if (webContents != null && paymentTuples != null) { - availablePaymentMethods = - getPaymentInstrumentsFromPaymentTuples(webContents, paymentTuples); - } else { - availablePaymentMethods = Collections.emptyList(); - } - view.mPaymentMethodSection.onAvailablePaymentMethodsChanged(availablePaymentMethods); - return true; - } else if (propertyKey == AssistantCollectUserDataModel.AVAILABLE_PROFILES) { - List<PersonalDataManager.AutofillProfile> autofillProfiles = - model.get(AssistantCollectUserDataModel.AVAILABLE_PROFILES); - if (autofillProfiles == null) { - autofillProfiles = Collections.emptyList(); - } - if (shouldShowContactDetails(model)) { - view.mContactDetailsSection.onProfilesChanged(autofillProfiles, - model.get(AssistantCollectUserDataModel.REQUEST_EMAIL), - model.get(AssistantCollectUserDataModel.REQUEST_NAME), - model.get(AssistantCollectUserDataModel.REQUEST_PHONE)); - } if (model.get(AssistantCollectUserDataModel.REQUEST_PAYMENT)) { - view.mPaymentMethodSection.onProfilesChanged(autofillProfiles); + List<AutofillPaymentInstrument> paymentInstruments; + if (model.get(AssistantCollectUserDataModel.WEB_CONTENTS) == null) { + paymentInstruments = Collections.emptyList(); + } else { + paymentInstruments = + model.get(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS); + } + view.mPaymentMethodSection.onAvailablePaymentMethodsChanged(paymentInstruments); } + return true; + } else if (propertyKey == AssistantCollectUserDataModel.AVAILABLE_CONTACTS) { + if (shouldShowContactDetails(model)) { + view.mContactDetailsSection.onContactsChanged( + model.get(AssistantCollectUserDataModel.AVAILABLE_CONTACTS)); + } + return true; + } else if (propertyKey == AssistantCollectUserDataModel.AVAILABLE_SHIPPING_ADDRESSES) { if (model.get(AssistantCollectUserDataModel.REQUEST_SHIPPING_ADDRESS)) { - view.mShippingAddressSection.onProfilesChanged(autofillProfiles); + view.mShippingAddressSection.onAddressesChanged( + model.get(AssistantCollectUserDataModel.AVAILABLE_SHIPPING_ADDRESSES)); + } + return true; + } else if (propertyKey == AssistantCollectUserDataModel.AVAILABLE_BILLING_ADDRESSES) { + if (model.get(AssistantCollectUserDataModel.REQUEST_PAYMENT)) { + view.mPaymentMethodSection.onAddressesChanged( + model.get(AssistantCollectUserDataModel.AVAILABLE_BILLING_ADDRESSES)); } return true; } else if (propertyKey == AssistantCollectUserDataModel.REQUIRE_BILLING_POSTAL_CODE @@ -376,10 +365,10 @@ */ private boolean updateSectionSelectedItem( AssistantCollectUserDataModel model, PropertyKey propertyKey, ViewHolder view) { - if (propertyKey == AssistantCollectUserDataModel.SHIPPING_ADDRESS) { + if (propertyKey == AssistantCollectUserDataModel.SELECTED_SHIPPING_ADDRESS) { if (model.get(AssistantCollectUserDataModel.REQUEST_SHIPPING_ADDRESS)) { - AutofillAddress shippingAddress = getAddressFromProfile(view.getContext(), - model.get(AssistantCollectUserDataModel.SHIPPING_ADDRESS)); + AutofillAddress shippingAddress = + model.get(AssistantCollectUserDataModel.SELECTED_SHIPPING_ADDRESS); if (shippingAddress != null) { view.mShippingAddressSection.addOrUpdateItem( shippingAddress, /* select= */ true); @@ -387,11 +376,10 @@ // No need to reset selection if null, this will be handled by setItems(). } return true; - } else if (propertyKey == AssistantCollectUserDataModel.PAYMENT_METHOD) { + } else if (propertyKey == AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT) { if (model.get(AssistantCollectUserDataModel.REQUEST_PAYMENT)) { - AutofillPaymentInstrument paymentInstrument = getPaymentInstrumentFromPaymentTuple( - model.get(AssistantCollectUserDataModel.WEB_CONTENTS), - model.get(AssistantCollectUserDataModel.PAYMENT_METHOD)); + AutofillPaymentInstrument paymentInstrument = + model.get(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT); if (paymentInstrument != null) { view.mPaymentMethodSection.addOrUpdateItem( paymentInstrument, /* select= */ true); @@ -399,13 +387,10 @@ // No need to reset selection if null, this will be handled by setItems(). } return true; - } else if (propertyKey == AssistantCollectUserDataModel.CONTACT_DETAILS) { + } else if (propertyKey == AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS) { if (shouldShowContactDetails(model)) { - AutofillContact contact = getContactFromProfile(view.getContext(), - model.get(AssistantCollectUserDataModel.CONTACT_DETAILS), - model.get(AssistantCollectUserDataModel.REQUEST_NAME), - model.get(AssistantCollectUserDataModel.REQUEST_PHONE), - model.get(AssistantCollectUserDataModel.REQUEST_EMAIL)); + AutofillContact contact = + model.get(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS); if (contact != null) { view.mContactDetailsSection.addOrUpdateItem(contact, /* select= */ true); } @@ -616,55 +601,4 @@ return methodData; } - - private List<AutofillPaymentInstrument> getPaymentInstrumentsFromPaymentTuples( - WebContents webContents, - List<AssistantCollectUserDataModel.PaymentTuple> paymentTuples) { - List<AutofillPaymentInstrument> paymentInstruments = new ArrayList<>(paymentTuples.size()); - - for (AssistantCollectUserDataModel.PaymentTuple tuple : paymentTuples) { - paymentInstruments.add(new AutofillPaymentInstrument(webContents, tuple.getCreditCard(), - tuple.getBillingAddress(), MethodStrings.BASIC_CARD, - /* matchesMerchantCardTypeExactly= */ true)); - } - - return paymentInstruments; - } - - @Nullable - private AutofillAddress getAddressFromProfile( - Context context, @Nullable PersonalDataManager.AutofillProfile profile) { - if (profile == null) { - return null; - } - return new AutofillAddress(context, profile); - } - - @Nullable - private AutofillContact getContactFromProfile(Context context, - @Nullable PersonalDataManager.AutofillProfile profile, boolean requestName, - boolean requestPhone, boolean requestEmail) { - if (profile == null) { - return null; - } - ContactEditor editor = new ContactEditor(requestName, requestPhone, requestEmail, false); - String name = profile.getFullName(); - String phone = profile.getPhoneNumber(); - String email = profile.getEmailAddress(); - return new AutofillContact(context, profile, name, phone, email, - editor.checkContactCompletionStatus(name, phone, email), requestName, requestPhone, - requestEmail); - } - - @Nullable - private AutofillPaymentInstrument getPaymentInstrumentFromPaymentTuple( - @Nullable WebContents webContents, - @Nullable AssistantCollectUserDataModel.PaymentTuple paymentTuple) { - if (webContents == null || paymentTuple == null) { - return null; - } - return new AutofillPaymentInstrument(webContents, paymentTuple.getCreditCard(), - paymentTuple.getBillingAddress(), MethodStrings.BASIC_CARD, - /* matchesMerchantCardTypeExactly= */ true); - } }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java index 9d126906..ea96452 100644 --- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java +++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java
@@ -4,7 +4,9 @@ package org.chromium.chrome.browser.autofill_assistant.user_data; +import android.content.Context; import android.support.annotation.Nullable; +import android.support.annotation.VisibleForTesting; import android.view.View; import org.chromium.base.annotations.CalledByNative; @@ -16,11 +18,17 @@ import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputSection; import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputSection.TextInputFactory; import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputType; +import org.chromium.chrome.browser.payments.AutofillAddress; +import org.chromium.chrome.browser.payments.AutofillContact; +import org.chromium.chrome.browser.payments.AutofillPaymentInstrument; +import org.chromium.chrome.browser.payments.ContactEditor; +import org.chromium.components.payments.MethodStrings; import org.chromium.content_public.browser.WebContents; import org.chromium.ui.modelutil.PropertyModel; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -30,31 +38,6 @@ public class AssistantCollectUserDataModel extends PropertyModel { // TODO(crbug.com/806868): Add |setSelectedLogin|. - /** - * This class holds a the credit card and billing address information required to create an - * {@code AutofillPaymentInstrument}. - */ - public static class PaymentTuple { - private final PersonalDataManager.CreditCard mCreditCard; - @Nullable - private final PersonalDataManager.AutofillProfile mBillingAddress; - - public PaymentTuple(PersonalDataManager.CreditCard creditCard, - @Nullable PersonalDataManager.AutofillProfile billingAddress) { - mCreditCard = creditCard; - mBillingAddress = billingAddress; - } - - public PersonalDataManager.CreditCard getCreditCard() { - return mCreditCard; - } - - @Nullable - public PersonalDataManager.AutofillProfile getBillingAddress() { - return mBillingAddress; - } - } - public static final WritableObjectPropertyKey<AssistantCollectUserDataDelegate> DELEGATE = new WritableObjectPropertyKey<>(); @@ -65,16 +48,16 @@ public static final WritableBooleanPropertyKey VISIBLE = new WritableBooleanPropertyKey(); /** The chosen shipping address. */ - public static final WritableObjectPropertyKey<PersonalDataManager.AutofillProfile> - SHIPPING_ADDRESS = new WritableObjectPropertyKey<>(); + public static final WritableObjectPropertyKey<AutofillAddress> SELECTED_SHIPPING_ADDRESS = + new WritableObjectPropertyKey<>(); /** The chosen payment method (including billing address). */ - public static final WritableObjectPropertyKey<AssistantCollectUserDataModel.PaymentTuple> - PAYMENT_METHOD = new WritableObjectPropertyKey<>(); + public static final WritableObjectPropertyKey<AutofillPaymentInstrument> + SELECTED_PAYMENT_INSTRUMENT = new WritableObjectPropertyKey<>(); /** The chosen contact details. */ - public static final WritableObjectPropertyKey<PersonalDataManager.AutofillProfile> - CONTACT_DETAILS = new WritableObjectPropertyKey<>(); + public static final WritableObjectPropertyKey<AutofillContact> SELECTED_CONTACT_DETAILS = + new WritableObjectPropertyKey<>(); /** The login section title. */ public static final WritableObjectPropertyKey<String> LOGIN_SECTION_TITLE = @@ -101,11 +84,17 @@ public static final WritableBooleanPropertyKey REQUEST_LOGIN_CHOICE = new WritableBooleanPropertyKey(); - public static final WritableObjectPropertyKey<List<PersonalDataManager.AutofillProfile>> - AVAILABLE_PROFILES = new WritableObjectPropertyKey<>(); + public static final WritableObjectPropertyKey<List<AutofillAddress>> + AVAILABLE_BILLING_ADDRESSES = new WritableObjectPropertyKey<>(); - public static final WritableObjectPropertyKey<List<AssistantCollectUserDataModel.PaymentTuple>> - AVAILABLE_AUTOFILL_PAYMENT_METHODS = new WritableObjectPropertyKey<>(); + public static final WritableObjectPropertyKey<List<AutofillContact>> AVAILABLE_CONTACTS = + new WritableObjectPropertyKey<>(); + + public static final WritableObjectPropertyKey<List<AutofillAddress>> + AVAILABLE_SHIPPING_ADDRESSES = new WritableObjectPropertyKey<>(); + + public static final WritableObjectPropertyKey<List<AutofillPaymentInstrument>> + AVAILABLE_PAYMENT_INSTRUMENTS = new WritableObjectPropertyKey<>(); public static final WritableObjectPropertyKey<List<String>> SUPPORTED_BASIC_CARD_NETWORKS = new WritableObjectPropertyKey<>(); @@ -158,11 +147,12 @@ new WritableObjectPropertyKey<>(); public AssistantCollectUserDataModel() { - super(DELEGATE, WEB_CONTENTS, VISIBLE, SHIPPING_ADDRESS, PAYMENT_METHOD, CONTACT_DETAILS, - LOGIN_SECTION_TITLE, SELECTED_LOGIN, TERMS_STATUS, REQUEST_NAME, REQUEST_EMAIL, - REQUEST_PHONE, REQUEST_SHIPPING_ADDRESS, REQUEST_PAYMENT, - ACCEPT_TERMS_AND_CONDITIONS_TEXT, SHOW_TERMS_AS_CHECKBOX, REQUEST_LOGIN_CHOICE, - AVAILABLE_PROFILES, AVAILABLE_AUTOFILL_PAYMENT_METHODS, + super(DELEGATE, WEB_CONTENTS, VISIBLE, SELECTED_SHIPPING_ADDRESS, + SELECTED_PAYMENT_INSTRUMENT, SELECTED_CONTACT_DETAILS, LOGIN_SECTION_TITLE, + SELECTED_LOGIN, TERMS_STATUS, REQUEST_NAME, REQUEST_EMAIL, REQUEST_PHONE, + REQUEST_SHIPPING_ADDRESS, REQUEST_PAYMENT, ACCEPT_TERMS_AND_CONDITIONS_TEXT, + SHOW_TERMS_AS_CHECKBOX, REQUEST_LOGIN_CHOICE, AVAILABLE_BILLING_ADDRESSES, + AVAILABLE_CONTACTS, AVAILABLE_SHIPPING_ADDRESSES, AVAILABLE_PAYMENT_INSTRUMENTS, SUPPORTED_BASIC_CARD_NETWORKS, AVAILABLE_LOGINS, EXPANDED_SECTION, REQUIRE_BILLING_POSTAL_CODE, BILLING_POSTAL_CODE_MISSING_TEXT, CREDIT_CARD_EXPIRED_TEXT, REQUEST_DATE_RANGE, DATE_RANGE_START, @@ -185,8 +175,12 @@ set(REQUIRE_BILLING_POSTAL_CODE, false); set(DATE_RANGE_START_LABEL, ""); set(DATE_RANGE_END_LABEL, ""); - set(PREPENDED_SECTIONS, new ArrayList<>()); - set(APPENDED_SECTIONS, new ArrayList<>()); + set(PREPENDED_SECTIONS, Collections.emptyList()); + set(APPENDED_SECTIONS, Collections.emptyList()); + set(AVAILABLE_PAYMENT_INSTRUMENTS, Collections.emptyList()); + set(AVAILABLE_CONTACTS, Collections.emptyList()); + set(AVAILABLE_SHIPPING_ADDRESSES, Collections.emptyList()); + set(AVAILABLE_BILLING_ADDRESSES, Collections.emptyList()); } @CalledByNative @@ -275,23 +269,20 @@ } @CalledByNative - private void setContactDetails(@Nullable PersonalDataManager.AutofillProfile contact) { - set(CONTACT_DETAILS, contact); + private void setSelectedContactDetails(@Nullable AutofillContact contact) { + set(SELECTED_CONTACT_DETAILS, contact); } @CalledByNative - private void setShippingAddress(@Nullable PersonalDataManager.AutofillProfile shippingAddress) { - set(SHIPPING_ADDRESS, shippingAddress); + private void setSelectedShippingAddress(@Nullable AutofillAddress shippingAddress) { + set(SELECTED_SHIPPING_ADDRESS, shippingAddress); } @CalledByNative - private void setPaymentMethod(@Nullable PersonalDataManager.CreditCard card, - @Nullable PersonalDataManager.AutofillProfile billingAddress) { - if (card == null) { - set(PAYMENT_METHOD, null); - } else { - set(PAYMENT_METHOD, new PaymentTuple(card, billingAddress)); - } + private void setSelectedPaymentInstrument(@Nullable PersonalDataManager.CreditCard card, + @Nullable PersonalDataManager.AutofillProfile billingProfile) { + set(SELECTED_PAYMENT_INSTRUMENT, + createAutofillPaymentInstrument(get(WEB_CONTENTS), card, billingProfile)); } /** Creates an empty list of login options. */ @@ -406,39 +397,109 @@ } @CalledByNative - private static List<PersonalDataManager.AutofillProfile> createAutofillProfileList() { + private static List<AutofillContact> createAutofillContactList() { return new ArrayList<>(); } @CalledByNative - private static void addAutofillProfile(List<PersonalDataManager.AutofillProfile> profiles, - PersonalDataManager.AutofillProfile profile) { - profiles.add(profile); + private static void addAutofillContact( + List<AutofillContact> contacts, AutofillContact contact) { + contacts.add(contact); + } + + @VisibleForTesting + @CalledByNative + @Nullable + public static AutofillContact createAutofillContact(Context context, + @Nullable PersonalDataManager.AutofillProfile profile, boolean requestName, + boolean requestPhone, boolean requestEmail) { + if (profile == null || !(requestName || requestPhone || requestEmail)) { + return null; + } + ContactEditor editor = + new ContactEditor(requestName, requestPhone, requestEmail, /* saveToDisk= */ false); + String name = profile.getFullName(); + String phone = profile.getPhoneNumber(); + String email = profile.getEmailAddress(); + return new AutofillContact(context, profile, name, phone, email, + editor.checkContactCompletionStatus(name, phone, email), requestName, requestPhone, + requestEmail); } @CalledByNative - private void setAutofillProfiles(List<PersonalDataManager.AutofillProfile> profiles) { - set(AVAILABLE_PROFILES, profiles); + private void setAvailableContacts(List<AutofillContact> contacts) { + set(AVAILABLE_CONTACTS, contacts); } @CalledByNative - private static List<AssistantCollectUserDataModel.PaymentTuple> - createAutofillPaymentMethodList() { + private static List<AutofillAddress> createAutofillAddressList() { return new ArrayList<>(); } @CalledByNative - private static void addAutofillPaymentMethod( - List<AssistantCollectUserDataModel.PaymentTuple> paymentTuples, - PersonalDataManager.CreditCard card, - @Nullable PersonalDataManager.AutofillProfile billingAddress) { - paymentTuples.add(new PaymentTuple(card, billingAddress)); + private static void addAutofillAddress( + List<AutofillAddress> addresses, AutofillAddress address) { + addresses.add(address); + } + + @VisibleForTesting + @CalledByNative + @Nullable + public static AutofillAddress createAutofillAddress( + Context context, @Nullable PersonalDataManager.AutofillProfile profile) { + if (profile == null) { + return null; + } + return new AutofillAddress(context, profile); } @CalledByNative - private void setAutofillPaymentMethods( - List<AssistantCollectUserDataModel.PaymentTuple> paymentTuples) { - set(AVAILABLE_AUTOFILL_PAYMENT_METHODS, paymentTuples); + private void setAvailableShippingAddresses(List<AutofillAddress> addresses) { + set(AVAILABLE_SHIPPING_ADDRESSES, addresses); + } + + @CalledByNative + private void setAvailableBillingAddresses(List<AutofillAddress> addresses) { + set(AVAILABLE_BILLING_ADDRESSES, addresses); + } + + @CalledByNative + private static List<AutofillPaymentInstrument> createAutofillPaymentInstrumentList() { + return new ArrayList<>(); + } + + // TODO(b/144005336): Make this method static. + @CalledByNative + private void addAutofillPaymentInstrument(List<AutofillPaymentInstrument> paymentInstruments, + @Nullable PersonalDataManager.CreditCard card, + @Nullable PersonalDataManager.AutofillProfile billingProfile) { + AutofillPaymentInstrument paymentInstrument = + createAutofillPaymentInstrument(get(WEB_CONTENTS), card, billingProfile); + if (paymentInstrument != null) { + paymentInstruments.add(paymentInstrument); + } + } + + // TODO(b/144005336): Call from native instead. + @VisibleForTesting + @Nullable + public static AutofillPaymentInstrument createAutofillPaymentInstrument( + @Nullable WebContents webContents, @Nullable PersonalDataManager.CreditCard card, + @Nullable PersonalDataManager.AutofillProfile billingProfile) { + if (webContents == null) { + return null; + } + if (card == null) { + return null; + } + return new AutofillPaymentInstrument(webContents, card, billingProfile, + MethodStrings.BASIC_CARD, /* matchesMerchantCardTypeExactly= */ true); + } + + @CalledByNative + private void setAvailablePaymentInstruments( + List<AutofillPaymentInstrument> paymentInstruments) { + set(AVAILABLE_PAYMENT_INSTRUMENTS, paymentInstruments); } @CalledByNative
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantContactDetailsSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantContactDetailsSection.java index f3f981b0..a41f16a 100644 --- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantContactDetailsSection.java +++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantContactDetailsSection.java
@@ -14,12 +14,9 @@ import androidx.annotation.Nullable; import org.chromium.chrome.autofill_assistant.R; -import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile; import org.chromium.chrome.browser.payments.AutofillContact; import org.chromium.chrome.browser.payments.ContactEditor; -import org.chromium.chrome.browser.payments.ui.ContactDetailsSection; -import java.util.ArrayList; import java.util.List; /** @@ -140,39 +137,21 @@ /** * The Chrome profiles have changed externally. This will rebuild the UI with the new/changed - * set of profiles, while keeping the selected item if possible. + * set of contacts derived from the profiles, while keeping the selected item if possible. */ - void onProfilesChanged(List<AutofillProfile> profiles, boolean requestPayerEmail, - boolean requestPayerName, boolean requestPayerPhone) { + void onContactsChanged(List<AutofillContact> contacts) { if (mIgnoreProfileChangeNotifications) { return; } - - if (!requestPayerEmail && !requestPayerName && !requestPayerPhone) { - return; - } - - // Note: we create a temporary editor (necessary for converting profiles to contacts) - // instead of using mEditor, which may be null. - ContactEditor tempEditor = - new ContactEditor(requestPayerName, requestPayerPhone, requestPayerEmail, false); - - // Convert profiles into a list of |AutofillContact|. int selectedContactIndex = -1; - ContactDetailsSection sectionInformation = - new ContactDetailsSection(mContext, profiles, tempEditor, null); - List<AutofillContact> contacts = new ArrayList<>(); - for (int i = 0; i < sectionInformation.getSize(); i++) { - AutofillContact contact = (AutofillContact) sectionInformation.getItem(i); - if (contact == null) { - continue; - } - contacts.add(contact); - if (mSelectedOption != null && areEqual(contact, mSelectedOption)) { - selectedContactIndex = i; + if (mSelectedOption != null) { + for (int i = 0; i < contacts.size(); i++) { + if (areEqual(contacts.get(i), mSelectedOption)) { + selectedContactIndex = i; + break; + } } } - // Replace current set of items, keep selection if possible. setItems(contacts, selectedContactIndex); }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java index cbfe148f..d6235f7 100644 --- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java +++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java
@@ -57,7 +57,7 @@ String guid = method.getCard().getBillingAddressId(); PersonalDataManager.AutofillProfile profile = personalDataManager.getProfile(guid); if (profile != null) { - addAutocompleteInformationToEditor(profile); + addAutocompleteInformationToEditor(new AutofillAddress(mContext, profile)); } } } @@ -167,10 +167,10 @@ return TextUtils.equals(profileA.getGUID(), profileB.getGUID()); } - void onProfilesChanged(List<PersonalDataManager.AutofillProfile> profiles) { + void onAddressesChanged(List<AutofillAddress> addresses) { // TODO(crbug.com/806868): replace suggested billing addresses (remove if necessary). - for (PersonalDataManager.AutofillProfile profile : profiles) { - addAutocompleteInformationToEditor(profile); + for (AutofillAddress address : addresses) { + addAutocompleteInformationToEditor(address); } } @@ -209,12 +209,12 @@ mCreditCardExpiredText = text; } - private void addAutocompleteInformationToEditor(PersonalDataManager.AutofillProfile profile) { + private void addAutocompleteInformationToEditor(AutofillAddress address) { // The check for non-null label is necessary to prevent crash in editor when opening. - if (mEditor == null || profile.getLabel() == null) { + if (mEditor == null || address.getProfile().getLabel() == null) { return; } - mEditor.updateBillingAddressIfComplete(new AutofillAddress(mContext, profile)); + mEditor.updateBillingAddressIfComplete(address); } private void setErrorMessage(TextView errorMessageView, AutofillPaymentInstrument method) {
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java index e53d823a..22b17dc 100644 --- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java +++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java
@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.payments.AddressEditor; import org.chromium.chrome.browser.payments.AutofillAddress; -import java.util.ArrayList; import java.util.List; /** @@ -125,21 +124,23 @@ return TextUtils.equals(optionA.getProfile().getGUID(), optionB.getProfile().getGUID()); } - void onProfilesChanged(List<PersonalDataManager.AutofillProfile> profiles) { + /** + * The Chrome profiles have changed externally. This will rebuild the UI with the new/changed + * set of addresses derived from the profiles, while keeping the selected item if possible. + */ + void onAddressesChanged(List<AutofillAddress> addresses) { if (mIgnoreProfileChangeNotifications) { return; } - int selectedAddressIndex = -1; - List<AutofillAddress> addresses = new ArrayList<>(); - for (int i = 0; i < profiles.size(); i++) { - AutofillAddress autofillAddress = new AutofillAddress(mContext, profiles.get(i)); - if (mSelectedOption != null && areEqual(mSelectedOption, autofillAddress)) { - selectedAddressIndex = i; + if (mSelectedOption != null) { + for (int i = 0; i < addresses.size(); i++) { + if (areEqual(addresses.get(i), mSelectedOption)) { + selectedAddressIndex = i; + break; + } } - addresses.add(autofillAddress); } - // Replace current set of items, keep selection if possible. setItems(addresses, selectedAddressIndex); }
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java index 01aebea..fc01bee 100644 --- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java +++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java
@@ -64,6 +64,9 @@ import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputSection.TextInputFactory; import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputType; import org.chromium.chrome.browser.customtabs.CustomTabActivityTestRule; +import org.chromium.chrome.browser.payments.AutofillAddress; +import org.chromium.chrome.browser.payments.AutofillContact; +import org.chromium.chrome.browser.payments.AutofillPaymentInstrument; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.content_public.browser.test.util.TestThreadUtils; @@ -131,17 +134,18 @@ /* Test initial model state. */ assertThat(model.get(AssistantCollectUserDataModel.VISIBLE), is(false)); - assertThat(model.get(AssistantCollectUserDataModel.AVAILABLE_PROFILES), nullValue()); - assertThat(model.get(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS), - nullValue()); + assertThat(model.get(AssistantCollectUserDataModel.AVAILABLE_CONTACTS), empty()); + assertThat(model.get(AssistantCollectUserDataModel.AVAILABLE_SHIPPING_ADDRESSES), empty()); + assertThat(model.get(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS), empty()); assertThat(model.get(AssistantCollectUserDataModel.SUPPORTED_BASIC_CARD_NETWORKS), nullValue()); assertThat(model.get(AssistantCollectUserDataModel.EXPANDED_SECTION), nullValue()); assertThat(model.get(AssistantCollectUserDataModel.DELEGATE), nullValue()); assertThat(model.get(AssistantCollectUserDataModel.WEB_CONTENTS), nullValue()); - assertThat(model.get(AssistantCollectUserDataModel.SHIPPING_ADDRESS), nullValue()); - assertThat(model.get(AssistantCollectUserDataModel.PAYMENT_METHOD), nullValue()); - assertThat(model.get(AssistantCollectUserDataModel.CONTACT_DETAILS), nullValue()); + assertThat(model.get(AssistantCollectUserDataModel.SELECTED_SHIPPING_ADDRESS), nullValue()); + assertThat( + model.get(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT), nullValue()); + assertThat(model.get(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS), nullValue()); assertThat(model.get(AssistantCollectUserDataModel.TERMS_STATUS), is(AssistantTermsAndConditionsState.NOT_SELECTED)); assertThat(model.get(AssistantCollectUserDataModel.SELECTED_LOGIN), nullValue()); @@ -378,8 +382,8 @@ model.set(AssistantCollectUserDataModel.WEB_CONTENTS, mTestRule.getWebContents()); model.set(AssistantCollectUserDataModel.REQUEST_NAME, true); model.set(AssistantCollectUserDataModel.REQUEST_EMAIL, true); - model.set(AssistantCollectUserDataModel.AVAILABLE_PROFILES, Collections.emptyList()); - model.set(AssistantCollectUserDataModel.CONTACT_DETAILS, null); + model.set(AssistantCollectUserDataModel.AVAILABLE_CONTACTS, Collections.emptyList()); + model.set(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS, null); model.set(AssistantCollectUserDataModel.VISIBLE, true); }); @@ -390,12 +394,14 @@ assertThat(viewHolder.mContactList.getItemCount(), is(0)); // Add profile to the list and send the updated model. - PersonalDataManager.AutofillProfile profile = - mHelper.createDummyProfile("John Doe", "john@gmail.com"); TestThreadUtils.runOnUiThreadBlocking(() -> { - model.set(AssistantCollectUserDataModel.AVAILABLE_PROFILES, - Collections.singletonList(profile)); - model.set(AssistantCollectUserDataModel.CONTACT_DETAILS, profile); + AutofillContact contact = AssistantCollectUserDataModel.createAutofillContact( + mTestRule.getActivity(), + mHelper.createDummyProfile("John Doe", "john@gmail.com"), + /* requestName= */ true, /* requestPhone= */ true, /* requestEmail= */ false); + model.set(AssistantCollectUserDataModel.AVAILABLE_CONTACTS, + Collections.singletonList(contact)); + model.set(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS, contact); }); // Contact details section should now contain and have pre-selected the new contact. @@ -409,8 +415,8 @@ // Remove profile from the list and send the updated model. Section should be empty again. TestThreadUtils.runOnUiThreadBlocking(() -> { - model.set(AssistantCollectUserDataModel.AVAILABLE_PROFILES, Collections.emptyList()); - model.set(AssistantCollectUserDataModel.CONTACT_DETAILS, null); + model.set(AssistantCollectUserDataModel.AVAILABLE_CONTACTS, Collections.emptyList()); + model.set(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS, null); }); onView(allOf(withId(R.id.section_title_add_button), @@ -443,9 +449,9 @@ model.set(AssistantCollectUserDataModel.WEB_CONTENTS, mTestRule.getWebContents()); model.set(AssistantCollectUserDataModel.REQUEST_PAYMENT, true); model.set(AssistantCollectUserDataModel.VISIBLE, true); - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, Collections.emptyList()); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, null); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, null); }); // Payment method section should be empty and show the 'add' button in the title. @@ -459,13 +465,14 @@ mHelper.createDummyProfile("Jill Doe", "jill@gmail.com"); String billingAddressId = mHelper.setProfile(billingAddress); PersonalDataManager.CreditCard creditCard = mHelper.createDummyCreditCard(billingAddressId); - AssistantCollectUserDataModel.PaymentTuple paymentTuple = - new AssistantCollectUserDataModel.PaymentTuple(creditCard, billingAddress); TestThreadUtils.runOnUiThreadBlocking(() -> { - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, - Collections.singletonList(paymentTuple)); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, paymentTuple); + AutofillPaymentInstrument paymentInstrument = + AssistantCollectUserDataModel.createAutofillPaymentInstrument( + mTestRule.getWebContents(), creditCard, billingAddress); + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, + Collections.singletonList(paymentInstrument)); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, paymentInstrument); }); // Payment method section contains the new credit card, which should be pre-selected. @@ -479,9 +486,9 @@ // Remove credit card from the list. Section should be empty again. TestThreadUtils.runOnUiThreadBlocking(() -> { - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, Collections.emptyList()); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, null); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, null); }); onView(allOf(withId(R.id.section_title_add_button), isDescendantOfA(is(viewHolder.mPaymentSection)))) @@ -508,17 +515,18 @@ mHelper.createDummyProfile("Jill Doe", "jill@gmail.com"); String billingAddressId = mHelper.setProfile(billingAddress); PersonalDataManager.CreditCard creditCard = mHelper.createDummyCreditCard(billingAddressId); - AssistantCollectUserDataModel.PaymentTuple paymentTuple = - new AssistantCollectUserDataModel.PaymentTuple(creditCard, billingAddress); TestThreadUtils.runOnUiThreadBlocking(() -> { // WEB_CONTENTS are necessary for the creation of the editors. model.set(AssistantCollectUserDataModel.WEB_CONTENTS, mTestRule.getWebContents()); model.set(AssistantCollectUserDataModel.REQUEST_PAYMENT, true); model.set(AssistantCollectUserDataModel.VISIBLE, true); - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, - Collections.singletonList(paymentTuple)); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, paymentTuple); + AutofillPaymentInstrument paymentInstrument = + AssistantCollectUserDataModel.createAutofillPaymentInstrument( + mTestRule.getWebContents(), creditCard, billingAddress); + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, + Collections.singletonList(paymentInstrument)); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, paymentInstrument); }); // Payment method section contains the new credit card, which should be pre-selected. @@ -569,8 +577,6 @@ new PersonalDataManager.CreditCard("", "https://example.com", true, true, "Jon Doe", "4111111111111111", "1111", "12", "2050", "visa", R.drawable.visa_card, CardType.UNKNOWN, /* billingAddressId= */ "GUID", /* serverId= */ ""); - AssistantCollectUserDataModel.PaymentTuple paymentTuple = - new AssistantCollectUserDataModel.PaymentTuple(creditCard, profile); AssistantCollectUserDataModel model = new AssistantCollectUserDataModel(); AssistantCollectUserDataCoordinator coordinator = createCollectUserDataCoordinator(model); @@ -590,13 +596,23 @@ model.set(AssistantCollectUserDataModel.REQUEST_EMAIL, true); model.set(AssistantCollectUserDataModel.REQUEST_PAYMENT, true); model.set(AssistantCollectUserDataModel.REQUEST_SHIPPING_ADDRESS, true); - model.set(AssistantCollectUserDataModel.AVAILABLE_PROFILES, - Collections.singletonList(profile)); - model.set(AssistantCollectUserDataModel.CONTACT_DETAILS, profile); - model.set(AssistantCollectUserDataModel.SHIPPING_ADDRESS, profile); - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, - Collections.singletonList(paymentTuple)); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, paymentTuple); + AutofillContact contact = AssistantCollectUserDataModel.createAutofillContact( + mTestRule.getActivity(), profile, /* requestName= */ true, + /* requestPhone= */ true, /* requestEmail= */ true); + model.set(AssistantCollectUserDataModel.AVAILABLE_CONTACTS, + Collections.singletonList(contact)); + model.set(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS, contact); + AutofillAddress address = AssistantCollectUserDataModel.createAutofillAddress( + mTestRule.getActivity(), profile); + model.set(AssistantCollectUserDataModel.AVAILABLE_SHIPPING_ADDRESSES, + Collections.singletonList(address)); + model.set(AssistantCollectUserDataModel.SELECTED_SHIPPING_ADDRESS, address); + AutofillPaymentInstrument paymentInstrument = + AssistantCollectUserDataModel.createAutofillPaymentInstrument( + mTestRule.getWebContents(), creditCard, profile); + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, + Collections.singletonList(paymentInstrument)); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, paymentInstrument); model.set(AssistantCollectUserDataModel.VISIBLE, true); model.set(AssistantCollectUserDataModel.REQUEST_LOGIN_CHOICE, true); model.set(AssistantCollectUserDataModel.AVAILABLE_LOGINS, @@ -820,9 +836,6 @@ PersonalDataManager.CreditCard creditCard = mHelper.createDummyCreditCard(profileId); creditCard.setYear("2019"); - AssistantCollectUserDataModel.PaymentTuple expiredPaymentTuple = - new AssistantCollectUserDataModel.PaymentTuple(creditCard, profile); - AssistantCollectUserDataModel model = new AssistantCollectUserDataModel(); AssistantCollectUserDataCoordinator coordinator = createCollectUserDataCoordinator(model); AutofillAssistantCollectUserDataTestHelper @@ -835,9 +848,13 @@ model.set(AssistantCollectUserDataModel.REQUEST_PAYMENT, true); model.set(AssistantCollectUserDataModel.CREDIT_CARD_EXPIRED_TEXT, "Card is expired"); model.set(AssistantCollectUserDataModel.VISIBLE, true); - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, - Collections.singletonList(expiredPaymentTuple)); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, expiredPaymentTuple); + AutofillPaymentInstrument expiredPaymentInstrument = + AssistantCollectUserDataModel.createAutofillPaymentInstrument( + mTestRule.getWebContents(), creditCard, profile); + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, + Collections.singletonList(expiredPaymentInstrument)); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, + expiredPaymentInstrument); }); // check that the card is not accepted (i.e. an error message is shown). @@ -846,12 +863,15 @@ .check(matches(withText("Card is expired"))); creditCard.setYear("2050"); - AssistantCollectUserDataModel.PaymentTuple validPaymentTuple = - new AssistantCollectUserDataModel.PaymentTuple(creditCard, profile); + TestThreadUtils.runOnUiThreadBlocking(() -> { - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, - Collections.singletonList(validPaymentTuple)); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, validPaymentTuple); + AutofillPaymentInstrument validPaymentInstrument = + AssistantCollectUserDataModel.createAutofillPaymentInstrument( + mTestRule.getWebContents(), creditCard, profile); + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, + Collections.singletonList(validPaymentInstrument)); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, + validPaymentInstrument); }); // check that the card is now accepted. @@ -890,8 +910,6 @@ AutofillAssistantCollectUserDataTestHelper .ViewHolder viewHolder = TestThreadUtils.runOnUiThreadBlocking( () -> new AutofillAssistantCollectUserDataTestHelper.ViewHolder(coordinator)); - AssistantCollectUserDataModel.PaymentTuple paymentTuple = - new AssistantCollectUserDataModel.PaymentTuple(creditCard, profile); TestThreadUtils.runOnUiThreadBlocking(() -> { // WEB_CONTENTS are necessary for the creation of AutofillPaymentInstrument. @@ -902,9 +920,12 @@ model.set(AssistantCollectUserDataModel.BILLING_POSTAL_CODE_MISSING_TEXT, "Billing postcode missing"); model.set(AssistantCollectUserDataModel.REQUEST_PAYMENT, true); - model.set(AssistantCollectUserDataModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS, - Collections.singletonList(paymentTuple)); - model.set(AssistantCollectUserDataModel.PAYMENT_METHOD, paymentTuple); + AutofillPaymentInstrument paymentInstrument = + AssistantCollectUserDataModel.createAutofillPaymentInstrument( + mTestRule.getWebContents(), creditCard, profile); + model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS, + Collections.singletonList(paymentInstrument)); + model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT, paymentInstrument); model.set(AssistantCollectUserDataModel.VISIBLE, true); });
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantDirectActionHandlerTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantDirectActionHandlerTest.java index 9744878..5c7980f4 100644 --- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantDirectActionHandlerTest.java +++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantDirectActionHandlerTest.java
@@ -26,7 +26,6 @@ import org.junit.runner.RunWith; import org.chromium.base.Callback; -import org.chromium.base.ContextUtils; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DisableIf; @@ -37,6 +36,8 @@ import org.chromium.chrome.browser.directactions.DirectActionReporter; import org.chromium.chrome.browser.directactions.DirectActionReporter.Type; import org.chromium.chrome.browser.directactions.FakeDirectActionReporter; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetController; import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @@ -54,6 +55,8 @@ private BottomSheetController mBottomSheetController; private DirectActionHandler mHandler; private TestingAutofillAssistantModuleEntryProvider mModuleEntryProvider; + private final SharedPreferencesManager mSharedPreferencesManager = + SharedPreferencesManager.getInstance(); @Before public void setUp() throws Exception { @@ -69,11 +72,10 @@ mActivity.getScrim(), mActivity.getTabModelSelector()::getCurrentTab, mModuleEntryProvider); - ContextUtils.getAppSharedPreferences() - .edit() - .remove(AutofillAssistantPreferencesUtil.AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED) - .remove(AutofillAssistantPreferencesUtil.AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN) - .apply(); + mSharedPreferencesManager.removeKey( + ChromePreferenceKeys.AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED); + mSharedPreferencesManager.removeKey( + ChromePreferenceKeys.AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN); } @Test
diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java index dbfd567..d29c6bb1 100644 --- a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java +++ b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java
@@ -4,41 +4,29 @@ package org.chromium.chrome.browser.autofill_assistant; -import androidx.annotation.VisibleForTesting; - -import org.chromium.base.ContextUtils; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; /** Autofill Assistant related preferences util class. */ -@SuppressWarnings("UseSharedPreferencesManagerFromChromeCheck") class AutofillAssistantPreferencesUtil { // Avoid instatiation by accident. private AutofillAssistantPreferencesUtil() {} - /** Peference keeping track of whether the onboarding has been accepted. */ - @VisibleForTesting - static final String AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED = - "AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED"; - - /** LEGACY preference for when the `do not show again' checkbox still existed. */ - @VisibleForTesting - static final String AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN = "AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN"; - /** Checks whether the Autofill Assistant switch preference in settings is on. */ static boolean isAutofillAssistantSwitchOn() { - return ContextUtils.getAppSharedPreferences().getBoolean( + return SharedPreferencesManager.getInstance().readBoolean( ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, true); } /** Checks whether the Autofill Assistant onboarding has been accepted. */ static boolean isAutofillOnboardingAccepted() { - return ContextUtils.getAppSharedPreferences().getBoolean( - AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED, false) + return SharedPreferencesManager.getInstance().readBoolean( + ChromePreferenceKeys.AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED, false) || /* Legacy treatment: users of earlier versions should not have to see the onboarding again if they checked the `do not show again' checkbox*/ - ContextUtils.getAppSharedPreferences().getBoolean( - AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN, false); + SharedPreferencesManager.getInstance().readBoolean( + ChromePreferenceKeys.AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN, false); } /** Checks whether the Autofill Assistant onboarding screen should be shown. */ @@ -52,13 +40,9 @@ * @param accept Flag indicating whether the ToS have been accepted. */ static void setInitialPreferences(boolean accept) { - ContextUtils.getAppSharedPreferences() - .edit() - .putBoolean(ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, accept) - .apply(); - ContextUtils.getAppSharedPreferences() - .edit() - .putBoolean(AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED, accept) - .apply(); + SharedPreferencesManager.getInstance().writeBoolean( + ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, accept); + SharedPreferencesManager.getInstance().writeBoolean( + ChromePreferenceKeys.AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED, accept); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java index 126456d..6363dad 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java
@@ -16,6 +16,7 @@ import org.chromium.base.ApplicationStatus; import org.chromium.base.BuildConfig; import org.chromium.base.BuildInfo; +import org.chromium.base.BundleUtils; import org.chromium.base.CommandLineInitUtil; import org.chromium.base.ContextUtils; import org.chromium.base.JNIUtils; @@ -81,6 +82,7 @@ super.attachBaseContext(context); ContextUtils.initApplicationContext(this); maybeInitProcessType(isBrowserProcess); + BundleUtils.setIsBundle(ProductConfig.IS_BUNDLE); if (isBrowserProcess) { if (BuildConfig.IS_MULTIDEX_ENABLED) { ChromiumMultiDexInstaller.install(this);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java b/chrome/android/java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java index 42c24be..f0039d8 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java
@@ -5,12 +5,11 @@ package org.chromium.chrome.browser.identity; import android.content.Context; -import android.content.SharedPreferences; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import java.util.UUID; @@ -29,8 +28,8 @@ @Override public String getUniqueId(@Nullable String salt) { - SharedPreferences preferences = ContextUtils.getAppSharedPreferences(); - String storedUniqueId = preferences.getString(mPreferenceKey, null); + SharedPreferencesManager preferences = SharedPreferencesManager.getInstance(); + String storedUniqueId = preferences.readString(mPreferenceKey, null); if (storedUniqueId != null) { return storedUniqueId; } @@ -39,9 +38,7 @@ String uniqueId = getUUID(); // Store the field so we ensure we always return the same unique ID. - SharedPreferences.Editor editor = preferences.edit(); - editor.putString(mPreferenceKey, uniqueId); - editor.apply(); + preferences.writeString(mPreferenceKey, uniqueId); return uniqueId; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java index 1c9f743..7065bda 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -6,7 +6,6 @@ import android.annotation.TargetApi; import android.content.Context; -import android.content.SharedPreferences; import android.os.Build; import android.os.SystemClock; import android.text.format.DateUtils; @@ -69,6 +68,8 @@ import org.chromium.chrome.browser.partnercustomizations.HomepageManager; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.photo_picker.PhotoPickerDialog; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.rlz.RevenueStats; import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider; @@ -109,12 +110,10 @@ public class ProcessInitializationHandler { private static final String TAG = "ProcessInitHandler"; - private static final String SESSIONS_UUID_PREF_KEY = "chromium.sync.sessions.id"; private static final String DEV_TOOLS_SERVER_SOCKET_PREFIX = "chrome"; /** Prevents race conditions when deleting snapshot database. */ private static final Object SNAPSHOT_DATABASE_LOCK = new Object(); - private static final String SNAPSHOT_DATABASE_REMOVED = "snapshot_database_removed"; private static final String SNAPSHOT_DATABASE_NAME = "snapshots.db"; private static ProcessInitializationHandler sInstance; @@ -183,7 +182,8 @@ // in the SyncController constructor. UniqueIdentificationGeneratorFactory.registerGenerator(SyncController.GENERATOR_ID, new UuidBasedUniqueIdentificationGenerator( - application, SESSIONS_UUID_PREF_KEY), false); + application, ChromePreferenceKeys.SYNC_SESSIONS_UUID), + false); // Set up the DownloadCollectionBridge early as display names may be immediately retrieved // after native is loaded. @@ -640,10 +640,10 @@ @WorkerThread private void removeSnapshotDatabase() { synchronized (SNAPSHOT_DATABASE_LOCK) { - SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); - if (!prefs.getBoolean(SNAPSHOT_DATABASE_REMOVED, false)) { + SharedPreferencesManager prefs = SharedPreferencesManager.getInstance(); + if (!prefs.readBoolean(ChromePreferenceKeys.SNAPSHOT_DATABASE_REMOVED, false)) { ContextUtils.getApplicationContext().deleteDatabase(SNAPSHOT_DATABASE_NAME); - prefs.edit().putBoolean(SNAPSHOT_DATABASE_REMOVED, true).apply(); + prefs.writeBoolean(ChromePreferenceKeys.SNAPSHOT_DATABASE_REMOVED, true); } } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/UniqueIdInvalidationClientNameGenerator.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/UniqueIdInvalidationClientNameGenerator.java index da70ba7..6cc5dbc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/UniqueIdInvalidationClientNameGenerator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/UniqueIdInvalidationClientNameGenerator.java
@@ -9,6 +9,7 @@ import org.chromium.base.ApiCompatibilityUtils; import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator; import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerator; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.components.sync.notifier.InvalidationClientNameGenerator; import org.chromium.components.sync.notifier.InvalidationClientNameProvider; @@ -19,17 +20,14 @@ * are unique and consistent across restarts. */ public class UniqueIdInvalidationClientNameGenerator implements InvalidationClientNameGenerator { - // Pref key to use for UUID-based generator. - private static final String INVALIDATIONS_UUID_PREF_KEY = "chromium.invalidations.uuid"; - /** * Called during early init to make this InvalidationClientNameGenerator the default. * - * This should be called very early during initialization to setup the invalidaiton client name. + * This should be called very early during initialization to setup the invalidation client name. */ public static void doInitializeAndInstallGenerator(Context context) { - UniqueIdentificationGenerator idGenerator = - new UuidBasedUniqueIdentificationGenerator(context, INVALIDATIONS_UUID_PREF_KEY); + UniqueIdentificationGenerator idGenerator = new UuidBasedUniqueIdentificationGenerator( + context, ChromePreferenceKeys.INVALIDATIONS_UUID_PREF_KEY); InvalidationClientNameGenerator clientNameGenerator = new UniqueIdInvalidationClientNameGenerator(idGenerator); InvalidationClientNameProvider.get().setPreferredClientNameGenerator(clientNameGenerator);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java index 1fc74ae..c117e7c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java
@@ -10,7 +10,6 @@ import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; -import android.content.SharedPreferences; import android.content.UriMatcher; import android.content.pm.PackageManager; import android.database.Cursor; @@ -29,7 +28,6 @@ import androidx.annotation.IntDef; import androidx.annotation.VisibleForTesting; -import org.chromium.base.ContextUtils; import org.chromium.base.ThreadUtils; import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.NativeMethods; @@ -40,6 +38,8 @@ import org.chromium.chrome.browser.database.SQLiteCursor; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.content_public.browser.BrowserStartupController; import org.chromium.content_public.browser.UiThreadTaskTraits; @@ -140,8 +140,6 @@ // ID used to indicate an invalid id for bookmark nodes. private static final long INVALID_BOOKMARK_ID = -1; - private static final String LAST_MODIFIED_BOOKMARK_FOLDER_ID_KEY = "last_bookmark_folder_id"; - private static final int URI_MATCH_BOOKMARKS = 0; private static final int URI_MATCH_BOOKMARKS_ID = 1; private static final int URL_MATCH_API_BOOKMARK = 2; @@ -274,10 +272,8 @@ */ private long getLastModifiedBookmarkFolderId() { if (mLastModifiedBookmarkFolderId == INVALID_BOOKMARK_ID) { - SharedPreferences sharedPreferences = - ContextUtils.getAppSharedPreferences(); - mLastModifiedBookmarkFolderId = sharedPreferences.getLong( - LAST_MODIFIED_BOOKMARK_FOLDER_ID_KEY, INVALID_BOOKMARK_ID); + mLastModifiedBookmarkFolderId = SharedPreferencesManager.getInstance().readLong( + ChromePreferenceKeys.BOOKMARKS_LAST_MODIFIED_FOLDER_ID, INVALID_BOOKMARK_ID); } return mLastModifiedBookmarkFolderId; } @@ -605,11 +601,9 @@ if (getLastModifiedBookmarkFolderId() == id) return; mLastModifiedBookmarkFolderId = id; - SharedPreferences sharedPreferences = - ContextUtils.getAppSharedPreferences(); - sharedPreferences.edit() - .putLong(LAST_MODIFIED_BOOKMARK_FOLDER_ID_KEY, mLastModifiedBookmarkFolderId) - .apply(); + SharedPreferencesManager.getInstance().writeLong( + ChromePreferenceKeys.BOOKMARKS_LAST_MODIFIED_FOLDER_ID, + mLastModifiedBookmarkFolderId); } @VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/AccountManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/AccountManagementFragment.java index 5ed0bce..2b04e86e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/AccountManagementFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/AccountManagementFragment.java
@@ -72,6 +72,7 @@ * The key for an integer value in arguments bundle to * specify the correct GAIA service that has triggered the dialog. * If the argument is not set, GAIA_SERVICE_TYPE_NONE is used as the origin of the dialog. + * TODO(https://crbug.com/1038924): Set the TAG variables of this class to private */ public static final String SHOW_GAIA_SERVICE_TYPE_EXTRA = "ShowGAIAServiceType"; @@ -212,11 +213,8 @@ SigninUtils.logEvent( ProfileAccountManagementMetrics.TOGGLE_SIGNOUT, mGaiaServiceType); - SignOutDialogFragment signOutFragment = new SignOutDialogFragment(); - Bundle args = new Bundle(); - args.putInt(SHOW_GAIA_SERVICE_TYPE_EXTRA, mGaiaServiceType); - signOutFragment.setArguments(args); - + SignOutDialogFragment signOutFragment = + SignOutDialogFragment.create(mGaiaServiceType); signOutFragment.setTargetFragment(AccountManagementFragment.this, 0); signOutFragment.show(getFragmentManager(), SIGN_OUT_DIALOG_TAG); @@ -398,6 +396,7 @@ @Override public void onSignOutDialogDismissed(boolean signOutClicked) { + // TODO(https://crbug.com/1038924): Signout is recorded twice when cancelled if (!signOutClicked) { SigninUtils.logEvent(ProfileAccountManagementMetrics.SIGNOUT_CANCEL, mGaiaServiceType); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SignOutDialogFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SignOutDialogFragment.java index 7a1835e..8aafc32 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SignOutDialogFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SignOutDialogFragment.java
@@ -28,7 +28,7 @@ /** * The extra key used to specify the GAIA service that triggered this dialog. */ - public static final String SHOW_GAIA_SERVICE_TYPE_EXTRA = "ShowGAIAServiceType"; + private static final String SHOW_GAIA_SERVICE_TYPE_EXTRA = "ShowGAIAServiceType"; /** * Receives updates when the user clicks "Sign out" or dismisses the dialog. @@ -58,6 +58,14 @@ */ private @GAIAServiceType int mGaiaServiceType = GAIAServiceType.GAIA_SERVICE_TYPE_NONE; + public static SignOutDialogFragment create(@GAIAServiceType int gaiaServiceType) { + SignOutDialogFragment signOutFragment = new SignOutDialogFragment(); + Bundle args = new Bundle(); + args.putInt(SHOW_GAIA_SERVICE_TYPE_EXTRA, gaiaServiceType); + signOutFragment.setArguments(args); + return signOutFragment; + } + @Override public Dialog onCreateDialog(Bundle savedInstanceState) { if (getArguments() != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java index 841b12f..a56990a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java
@@ -105,9 +105,6 @@ * Displays a UI that allows the user to reauthenticate and retrieve the sync encryption keys. */ public void displayKeyRetrievalDialog(Context context) { - // TODO(crbug.com/1012659): Before starting the intent, one last attempt - // should be made to read the currently-available keys. - Intent intent = createKeyRetrievalIntent(); if (intent == null) return; @@ -129,6 +126,16 @@ } /** + * Notifies all registered native clients (in practice, exactly one) that keys in the backend + * may have changed, which usually leads to refetching the keys from the backend. + */ + public void notifyKeysChanged() { + for (long nativeTrustedVaultClientAndroid : mNativeTrustedVaultClientAndroidSet) { + TrustedVaultClientJni.get().notifyKeysChanged(nativeTrustedVaultClientAndroid); + } + } + + /** * Registers a C++ client, which is a prerequisite before interacting with Java. */ @CalledByNative @@ -207,5 +214,6 @@ interface Natives { void fetchKeysCompleted(long nativeTrustedVaultClientAndroid, String gaiaId, byte[][] keys); void markKeysAsStaleCompleted(long nativeTrustedVaultClientAndroid, boolean result); + void notifyKeysChanged(long nativeTrustedVaultClientAndroid); } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGeneratorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGeneratorTest.java index 13a7368..cacaee6 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGeneratorTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGeneratorTest.java
@@ -14,6 +14,7 @@ import org.chromium.base.test.util.AdvancedMockContext; import org.chromium.base.test.util.Feature; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; @RunWith(ChromeJUnit4ClassRunner.class) @@ -25,6 +26,7 @@ @Before public void setUp() { mContext = new AdvancedMockContext(InstrumentationRegistry.getTargetContext()); + SharedPreferencesManager.getInstance().disableKeyCheckerForTesting(); } @Test
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SignOutDialogFragmentTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SignOutDialogFragmentTest.java new file mode 100644 index 0000000..fd8fc26 --- /dev/null +++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SignOutDialogFragmentTest.java
@@ -0,0 +1,169 @@ +// Copyright 2019 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.signin; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.mockito.MockitoAnnotations.initMocks; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentManager; +import android.support.v7.app.AlertDialog; +import android.widget.TextView; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Spy; +import org.robolectric.Robolectric; +import org.robolectric.shadows.ShadowAlertDialog; + +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.test.DisableNativeTestRule; +import org.chromium.base.test.util.JniMocker; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.profiles.ProfileAccountManagementMetrics; +import org.chromium.components.signin.GAIAServiceType; + +/** Tests for {@link SignOutDialogFragment}. */ +@RunWith(BaseRobolectricTestRunner.class) +public class SignOutDialogFragmentTest { + private static final String TEST_DOMAIN = "test.domain.example.com"; + + private class DummySignOutTargetFragment + extends Fragment implements SignOutDialogFragment.SignOutDialogListener { + @Override + public void onSignOutClicked(boolean forceWipeUserData) {} + + @Override + public void onSignOutDialogDismissed(boolean signOutClicked) {} + } + + @Rule + public final DisableNativeTestRule mDisableNative = new DisableNativeTestRule(); + + @Rule + public final JniMocker mocker = new JniMocker(); + + @Mock + private SigninUtils.Natives mSigninUtilsNativeMock; + + @Mock + private SigninManager mSigninManagerMock; + + @Spy + private final DummySignOutTargetFragment mTargetFragment = new DummySignOutTargetFragment(); + + private SignOutDialogFragment mSignOutDialog; + + private FragmentManager mFragmentManager; + + @Before + public void setUp() { + initMocks(this); + mocker.mock(SigninUtilsJni.TEST_HOOKS, mSigninUtilsNativeMock); + IdentityServicesProvider.setInstanceForTests(mock(IdentityServicesProvider.class)); + when(IdentityServicesProvider.get().getSigninManager()).thenReturn(mSigninManagerMock); + setUpSignOutDialog(); + } + + private void setUpSignOutDialog() { + mFragmentManager = + Robolectric.setupActivity(FragmentActivity.class).getSupportFragmentManager(); + mFragmentManager.beginTransaction().add(mTargetFragment, null).commit(); + mSignOutDialog = SignOutDialogFragment.create(GAIAServiceType.GAIA_SERVICE_TYPE_NONE); + mSignOutDialog.setTargetFragment(mTargetFragment, 0); + } + + @Test + public void testMessageWhenAccountIsManaged() { + when(mSigninManagerMock.getManagementDomain()).thenReturn(TEST_DOMAIN); + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + TextView messageTextView = alertDialog.findViewById(android.R.id.message); + assertEquals( + mSignOutDialog.getString(R.string.signout_managed_account_message, TEST_DOMAIN), + messageTextView.getText()); + } + + @Test + public void testPositiveButtonWhenAccountIsManaged() { + when(mSigninManagerMock.getManagementDomain()).thenReturn(TEST_DOMAIN); + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); + verify(mSigninUtilsNativeMock) + .logEvent(ProfileAccountManagementMetrics.SIGNOUT_SIGNOUT, + GAIAServiceType.GAIA_SERVICE_TYPE_NONE); + verify(mTargetFragment).onSignOutClicked(false); + } + + @Test + public void testPositiveButtonWhenAccountIsNotManagedAndRemoveLocalDataNotChecked() { + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); + verify(mSigninUtilsNativeMock) + .logEvent(ProfileAccountManagementMetrics.SIGNOUT_SIGNOUT, + GAIAServiceType.GAIA_SERVICE_TYPE_NONE); + verify(mTargetFragment).onSignOutClicked(false); + } + + @Test + public void testPositiveButtonWhenAccountIsNotManagedAndRemoveLocalDataChecked() { + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.findViewById(R.id.remove_local_data).performClick(); + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); + verify(mSigninUtilsNativeMock) + .logEvent(ProfileAccountManagementMetrics.SIGNOUT_SIGNOUT, + GAIAServiceType.GAIA_SERVICE_TYPE_NONE); + verify(mTargetFragment).onSignOutClicked(true); + } + + @Test + public void testNegativeButtonHasNoEffectWhenAccountIsManaged() { + when(mSigninManagerMock.getManagementDomain()).thenReturn(TEST_DOMAIN); + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).performClick(); + verify(mTargetFragment, never()).onSignOutClicked(anyBoolean()); + } + + @Test + public void testNegativeButtonHasNoEffectWhenAccountIsNotManaged() { + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).performClick(); + verify(mTargetFragment, never()).onSignOutClicked(anyBoolean()); + } + + @Test + public void testDismissWhenPositiveButtonIsNotClicked() { + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.dismiss(); + verify(mSigninUtilsNativeMock) + .logEvent(ProfileAccountManagementMetrics.SIGNOUT_CANCEL, + GAIAServiceType.GAIA_SERVICE_TYPE_NONE); + verify(mTargetFragment).onSignOutDialogDismissed(false); + } + + @Test + public void testDismissWhenPositiveButtonIsClicked() { + AlertDialog alertDialog = getSignOutAlertDialogAfterShowingIt(); + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); + alertDialog.dismiss(); + verify(mSigninUtilsNativeMock) + .logEvent(ProfileAccountManagementMetrics.SIGNOUT_CANCEL, + GAIAServiceType.GAIA_SERVICE_TYPE_NONE); + verify(mTargetFragment).onSignOutDialogDismissed(true); + } + + private AlertDialog getSignOutAlertDialogAfterShowingIt() { + mSignOutDialog.show(mFragmentManager, null); + return (AlertDialog) ShadowAlertDialog.getLatestDialog(); + } +}
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java b/chrome/android/native_java_unittests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java similarity index 94% rename from chrome/android/junit/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java rename to chrome/android/native_java_unittests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java index 4fab7f3..e17317f 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java +++ b/chrome/android/native_java_unittests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java
@@ -10,11 +10,8 @@ import android.app.Notification; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.annotation.Config; - -import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.annotations.CalledByNative; +import org.chromium.base.annotations.CalledByNativeJavaTest; import org.chromium.base.test.util.Feature; import org.chromium.chrome.browser.notifications.channels.ChannelDefinitions; import org.chromium.chrome.browser.notifications.channels.SiteChannelsManager; @@ -24,17 +21,18 @@ /** * Unit tests for NotificationPlatformBridge. */ -@RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE) public class NotificationPlatformBridgeUnitTest { + @CalledByNative + private NotificationPlatformBridgeUnitTest() {} + /** * Verifies that the getOriginFromTag method returns the origin for valid input, and null for * invalid input. * * This is defined in functions in notification_id_generator.cc. */ - @Test @Feature({"Browser", "Notifications"}) + @CalledByNativeJavaTest public void testGetOriginFromNotificationTag() { // The common case. assertEquals("https://example.com", @@ -62,8 +60,8 @@ * Verifies that the getOriginFromChannelId method returns the origin for a site channel, * and null for any other channel or a null channel id. */ - @Test @Feature({"Browser", "Notifications"}) + @CalledByNativeJavaTest public void testGetOriginFromChannelId() { // Returns the expected origin for a channel id associated with a particular origin. assertEquals("https://example.com", @@ -83,8 +81,8 @@ /** * Verifies that the makeDefaults method returns the generated notification defaults. */ - @Test @Feature({"Browser", "Notifications"}) + @CalledByNativeJavaTest public void testMakeDefaults() { // 0 should be returned if pattern length is 0, silent is true, and vibration is enabled. assertEquals(0, NotificationPlatformBridge.makeDefaults(0, true, true)); @@ -109,8 +107,8 @@ * Verifies that the makeVibrationPattern method returns vibration pattern used * in Android notification. */ - @Test @Feature({"Browser", "Notifications"}) + @CalledByNativeJavaTest public void testMakeVibrationPattern() { assertTrue(Arrays.equals(new long[] {0, 100, 200, 300}, NotificationPlatformBridge.makeVibrationPattern(new int[] {100, 200, 300})));
diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn index 8dc7f15..f87bc1d 100644 --- a/chrome/app/BUILD.gn +++ b/chrome/app/BUILD.gn
@@ -135,7 +135,7 @@ "//chrome/utility", "//components/gwp_asan/buildflags", "//components/nacl/common:buildflags", - "//components/startup_metric_utils/browser:lib", + "//components/startup_metric_utils/browser", "//content/public/app:both", "//content/public/common", "//content/public/common:service_names",
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index ca6f766..c8af1cb 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp
@@ -907,8 +907,8 @@ <message name="IDS_APP_START_WAIT_FOR_APP_WINDOW_MESSAGE" desc="Message displayed while waiting for the application to create its window in kiosk mode."> Waiting for application window... </message> - <message name="IDS_APP_START_WAIT_FOR_APP_WINDOW_INSTALL_FAILED_MESSAGE" desc="Message displayed when kiosk app installation fails, but we still try to run the app."> - Failed to obtain app data, still trying to run the app... + <message name="IDS_APP_START_WAIT_FOR_APP_WINDOW_INSTALL_FAILED_MESSAGE" desc="Message displayed when kiosk app meta-data obtention fails, but we try to run the app anyway without it."> + Failed to obtain app data, trying to run the app anyway... </message>
diff --git a/chrome/app/generated_resources_grd/IDS_SYNC_ERROR_USER_MENU_RETRIEVE_KEYS_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_SYNC_ERROR_USER_MENU_RETRIEVE_KEYS_BUTTON.png.sha1 new file mode 100644 index 0000000..63f5582 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_SYNC_ERROR_USER_MENU_RETRIEVE_KEYS_BUTTON.png.sha1
@@ -0,0 +1 @@ +0a129f2b186ca99e1df0f56197f6846290692368 \ No newline at end of file
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index 499473f..ef7867c 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -4445,6 +4445,27 @@ <message name="IDS_SETTINGS_PERSONALIZE_GOOGLE_SERVICES_TITLE" desc="Title of the personalize Google services section. When clicked, takes the user to the Google Activity Controls."> Control how your browsing history is used to personalize Search, ads, and more </message> + <message name="IDS_SETTINGS_USE_HISTORY_TO_PERSONALIZE_GOOGLE_SERVICES_TITLE" desc="Title of the use your history to personalize Google services section. When clicked, takes the user to the Google Activity Controls." translateable="false"> + Use your History to personalize Search and other Google services + </message> + <message name="IDS_SETTINGS_SWAA_ON" desc="The sWAA state that shows in the use history to personalize google services row" translateable="false"> + On + </message> + <message name="IDS_SETTINGS_SWAA_OFF" desc="The sWAA state that shows in the use history to personalize google services row" translateable="false"> + Off + </message> + <message name="IDS_SETTINGS_SWAA_ON_HINT" desc="Hint that shows when sWAA is On in the use history to personalize google services row" translateable="false"> + For example, get suggestions in YouTube based on Chrome browsing + </message> + <message name="IDS_SETTINGS_DATA_ENCRYPTED_HINT" desc="Hint that shows when sWAA is off in the use history to personalize google services row because data is encrypted with custom passphrase" translateable="false"> + Your synced data was encrypted + </message> + <message name="IDS_SETTINGS_HISTORY_SYNC_OFF_HINT" desc="Hint that shows when sWAA is off in the use history to personalize google services row because history sync is off" translateable="false"> + Turned off because you disabled syncing history + </message> + <message name="IDS_SETTINGS_SWAA_OFF_HINT" desc="Hint that shows when sWAA is off in the use history to personalize google services row because history recording is disabled in Web and App Activity" translateable="false"> + History recording is turned off in Activity controls. + </message> <if expr="not chromeos"> <!-- Import Settings Dialog -->
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 8bb1c2a..b524820 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2093,8 +2093,7 @@ "//components/signin/public/webdata", "//components/spellcheck:buildflags", "//components/ssl_errors", - "//components/startup_metric_utils/browser:host", - "//components/startup_metric_utils/browser:lib", + "//components/startup_metric_utils/browser", "//components/storage_monitor", "//components/strings", "//components/subresource_filter/content/browser",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 1f7381d..50448e9 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -1701,6 +1701,9 @@ {"enable-webassembly-threads", flag_descriptions::kEnableWasmThreadsName, flag_descriptions::kEnableWasmThreadsDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWebAssemblyThreads)}, + {"enable-webassembly-tiering", flag_descriptions::kEnableWasmTieringName, + flag_descriptions::kEnableWasmTieringDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kWebAssemblyTiering)}, {"shared-array-buffer", flag_descriptions::kEnableSharedArrayBufferName, flag_descriptions::kEnableSharedArrayBufferDescription, kOsAll, FEATURE_VALUE_TYPE(features::kSharedArrayBuffer)}, @@ -4834,6 +4837,13 @@ FEATURE_VALUE_TYPE(chrome::android::kProfileCard)}, #endif // defined(OS_ANDROID) +#if !defined(OS_ANDROID) + {"sync-setup-friendly-settings", + flag_descriptions::kSyncSetupFriendlySettingsName, + flag_descriptions::kSyncSetupFriendlySettingsDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSyncSetupFriendlySettings)}, +#endif // !defined(OS_ANDROID) + // NOTE: Adding a new flag requires adding a corresponding entry to enum // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android.cc b/chrome/browser/android/autofill_assistant/ui_controller_android.cc index 3927e6f8..a7266ca3 100644 --- a/chrome/browser/android/autofill_assistant/ui_controller_android.cc +++ b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
@@ -1031,6 +1031,9 @@ return; } + auto jcontext = + Java_AutofillAssistantUiController_getContext(env, java_object_); + if (field_change == UserData::FieldChange::ALL || field_change == UserData::FieldChange::TERMS_AND_CONDITIONS) { Java_AssistantCollectUserDataModel_setTermsStatus( @@ -1039,65 +1042,119 @@ if (field_change == UserData::FieldChange::ALL || field_change == UserData::FieldChange::AVAILABLE_PROFILES) { - auto sorted_profile_indices = SortByCompleteness(*collect_user_data_options, - state->available_profiles); - auto jlist = - Java_AssistantCollectUserDataModel_createAutofillProfileList(env); - for (int index : sorted_profile_indices) { - Java_AssistantCollectUserDataModel_addAutofillProfile( - env, jlist, + // Contact profiles. + auto jcontactlist = + Java_AssistantCollectUserDataModel_createAutofillContactList(env); + auto contact_indices = SortContactsByCompleteness( + *collect_user_data_options, state->available_profiles); + for (int index : contact_indices) { + auto jcontact = Java_AssistantCollectUserDataModel_createAutofillContact( + env, jcontext, autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative( - env, *state->available_profiles[index])); + env, *state->available_profiles[index]), + collect_user_data_options->request_payer_name, + collect_user_data_options->request_payer_phone, + collect_user_data_options->request_payer_email); + if (jcontact) { + Java_AssistantCollectUserDataModel_addAutofillContact(env, jcontactlist, + jcontact); + } } - Java_AssistantCollectUserDataModel_setAutofillProfiles(env, jmodel, jlist); + Java_AssistantCollectUserDataModel_setAvailableContacts(env, jmodel, + jcontactlist); // Ignore changes to FieldChange::CONTACT_PROFILE, this is already coming // from the view. autofill::AutofillProfile* contact_profile = state->contact_profile.get(); - Java_AssistantCollectUserDataModel_setContactDetails( + Java_AssistantCollectUserDataModel_setSelectedContactDetails( env, jmodel, contact_profile == nullptr ? nullptr - : autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative( - env, *contact_profile)); + : Java_AssistantCollectUserDataModel_createAutofillContact( + env, jcontext, + autofill::PersonalDataManagerAndroid:: + CreateJavaProfileFromNative(env, *contact_profile), + collect_user_data_options->request_payer_name, + collect_user_data_options->request_payer_phone, + collect_user_data_options->request_payer_email)); + + // Billing addresses profiles. + auto jbillinglist = + Java_AssistantCollectUserDataModel_createAutofillAddressList(env); + for (const auto& profile : state->available_profiles) { + auto jaddress = Java_AssistantCollectUserDataModel_createAutofillAddress( + env, jcontext, + autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative( + env, *profile)); + if (jaddress) { + Java_AssistantCollectUserDataModel_addAutofillAddress(env, jbillinglist, + jaddress); + } + } + Java_AssistantCollectUserDataModel_setAvailableBillingAddresses( + env, jmodel, jbillinglist); + + // Address profiles. + auto jshippinglist = + Java_AssistantCollectUserDataModel_createAutofillAddressList(env); + auto address_indices = SortAddressesByCompleteness( + *collect_user_data_options, state->available_profiles); + for (int index : address_indices) { + auto jaddress = Java_AssistantCollectUserDataModel_createAutofillAddress( + env, jcontext, + autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative( + env, *state->available_profiles[index])); + if (jaddress) { + Java_AssistantCollectUserDataModel_addAutofillAddress( + env, jshippinglist, jaddress); + } + } + Java_AssistantCollectUserDataModel_setAvailableShippingAddresses( + env, jmodel, jshippinglist); // Ignore changes to FieldChange::SHIPPING_ADDRESS, this is already coming // from the view. autofill::AutofillProfile* shipping_address = state->shipping_address.get(); - Java_AssistantCollectUserDataModel_setShippingAddress( + Java_AssistantCollectUserDataModel_setSelectedShippingAddress( env, jmodel, shipping_address == nullptr ? nullptr - : autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative( - env, *shipping_address)); + : Java_AssistantCollectUserDataModel_createAutofillAddress( + env, jcontext, + autofill::PersonalDataManagerAndroid:: + CreateJavaProfileFromNative(env, *shipping_address))); } if (field_change == UserData::FieldChange::ALL || field_change == UserData::FieldChange::AVAILABLE_PAYMENT_INSTRUMENTS) { - auto sorted_payment_instrument_indices = SortByCompleteness( - *collect_user_data_options, state->available_payment_instruments); auto jlist = - Java_AssistantCollectUserDataModel_createAutofillPaymentMethodList(env); + Java_AssistantCollectUserDataModel_createAutofillPaymentInstrumentList( + env); + auto sorted_payment_instrument_indices = + SortPaymentInstrumentsByCompleteness( + *collect_user_data_options, state->available_payment_instruments); for (int index : sorted_payment_instrument_indices) { const auto& instrument = state->available_payment_instruments[index]; - Java_AssistantCollectUserDataModel_addAutofillPaymentMethod( - env, jlist, - autofill::PersonalDataManagerAndroid::CreateJavaCreditCardFromNative( - env, *(instrument->card)), + Java_AssistantCollectUserDataModel_addAutofillPaymentInstrument( + env, jmodel, jlist, + instrument->card == nullptr + ? nullptr + : autofill::PersonalDataManagerAndroid:: + CreateJavaCreditCardFromNative(env, *(instrument->card)), instrument->billing_address == nullptr ? nullptr : autofill::PersonalDataManagerAndroid:: CreateJavaProfileFromNative( env, *(instrument->billing_address))); } - Java_AssistantCollectUserDataModel_setAutofillPaymentMethods(env, jmodel, - jlist); + Java_AssistantCollectUserDataModel_setAvailablePaymentInstruments( + env, jmodel, jlist); // Ignore changes to FieldChange::CARD, this is already coming from the // view. autofill::CreditCard* card = state->card.get(); autofill::AutofillProfile* billing_address = state->billing_address.get(); - Java_AssistantCollectUserDataModel_setPaymentMethod( + Java_AssistantCollectUserDataModel_setSelectedPaymentInstrument( env, jmodel, card == nullptr ? nullptr : autofill::PersonalDataManagerAndroid::
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h index 1f7190e..90448ea 100644 --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h
@@ -403,9 +403,6 @@ void BindHostReceiverForRenderer( content::RenderProcessHost* render_process_host, mojo::GenericPendingReceiver receiver) override; - void BindHostReceiverForRendererOnIOThread( - int render_process_id, - mojo::GenericPendingReceiver* receiver) override; void WillStartServiceManager() override; base::Optional<service_manager::Manifest> GetServiceManifestOverlay( base::StringPiece name) override;
diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc index aed1cbb..4cf2683 100644 --- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc +++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
@@ -32,7 +32,6 @@ #include "components/safe_browsing/buildflags.h" #include "components/safe_browsing/content/browser/mojo_safe_browsing_impl.h" #include "components/spellcheck/spellcheck_buildflags.h" -#include "components/startup_metric_utils/browser/startup_metric_host_impl.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/resource_context.h" @@ -339,15 +338,3 @@ } #endif // BUILDFLAG(ENABLE_PLUGINS) } - -void ChromeContentBrowserClient::BindHostReceiverForRendererOnIOThread( - int render_process_id, - mojo::GenericPendingReceiver* receiver) { - if (auto host_receiver = - receiver->As<startup_metric_utils::mojom::StartupMetricHost>()) { - startup_metric_utils::StartupMetricHostImpl::Create( - std::move(host_receiver)); - return; - } -} -
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index cd23290..1e50e18 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -2357,6 +2357,8 @@ "extensions/input_method_api.h", "extensions/login_screen/login/login_api.cc", "extensions/login_screen/login/login_api.h", + "extensions/login_screen/login/login_api_lock_handler.cc", + "extensions/login_screen/login/login_api_lock_handler.h", "extensions/login_screen/login_screen_storage/login_screen_storage_api.cc", "extensions/login_screen/login_screen_storage/login_screen_storage_api.h", "extensions/login_screen/login_screen_ui/login_screen_ui_api.cc",
diff --git a/chrome/browser/chromeos/crostini/ansible/ansible_management_service.cc b/chrome/browser/chromeos/crostini/ansible/ansible_management_service.cc index 1b261f3..996cde11 100644 --- a/chrome/browser/chromeos/crostini/ansible/ansible_management_service.cc +++ b/chrome/browser/chromeos/crostini/ansible/ansible_management_service.cc
@@ -179,13 +179,15 @@ } void AnsibleManagementService::OnApplyAnsiblePlaybookProgress( - vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::Status status) { + vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::Status status, + const std::string& failure_details) { switch (status) { case vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::SUCCEEDED: OnConfigurationFinished(true); break; case vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::FAILED: - LOG(ERROR) << "Ansible playbook application has failed"; + LOG(ERROR) << "Ansible playbook application has failed with reason:\n" + << failure_details; OnConfigurationFinished(false); break; case vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::IN_PROGRESS:
diff --git a/chrome/browser/chromeos/crostini/ansible/ansible_management_service.h b/chrome/browser/chromeos/crostini/ansible/ansible_management_service.h index eebd2a0..0cfb62c 100644 --- a/chrome/browser/chromeos/crostini/ansible/ansible_management_service.h +++ b/chrome/browser/chromeos/crostini/ansible/ansible_management_service.h
@@ -52,7 +52,8 @@ int progress_percent) override; void OnApplyAnsiblePlaybookProgress( - vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::Status status); + vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::Status status, + const std::string& failure_details); void AddObserver(Observer* observer); void RemoveObserver(Observer* observer);
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.cc b/chrome/browser/chromeos/crostini/crostini_manager.cc index 44857fd..bc7b0064 100644 --- a/chrome/browser/chromeos/crostini/crostini_manager.cc +++ b/chrome/browser/chromeos/crostini/crostini_manager.cc
@@ -2322,7 +2322,8 @@ // TODO(okalitova): Add an observer. AnsibleManagementService::GetForProfile(profile_) - ->OnApplyAnsiblePlaybookProgress(signal.status()); + ->OnApplyAnsiblePlaybookProgress(signal.status(), + signal.failure_details()); } void CrostiniManager::OnUpgradeContainerProgress(
diff --git a/chrome/browser/chromeos/extensions/login_screen/login/login_api.cc b/chrome/browser/chromeos/extensions/login_screen/login/login_api.cc index 1dcb43a..f3c21f5 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login/login_api.cc +++ b/chrome/browser/chromeos/extensions/login_screen/login/login_api.cc
@@ -7,16 +7,21 @@ #include <memory> #include <string> +#include "base/bind.h" #include "base/logging.h" #include "base/values.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.h" #include "chrome/browser/chromeos/login/existing_user_controller.h" #include "chrome/browser/chromeos/login/signin_specifics.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/common/extensions/api/login.h" #include "chrome/common/pref_names.h" +#include "chromeos/login/auth/key.h" #include "chromeos/login/auth/user_context.h" #include "components/prefs/pref_service.h" +#include "components/session_manager/core/session_manager.h" #include "components/user_manager/user.h" #include "components/user_manager/user_manager.h" #include "components/user_manager/user_type.h" @@ -25,8 +30,12 @@ namespace { -const char kErrorNoManagedGuestSessionAccounts[] = - "No managed guest session accounts"; +std::string GetLaunchExtensionIdPrefValue(const user_manager::User* user) { + Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUser(user); + DCHECK(profile); + PrefService* prefs = profile->GetPrefs(); + return prefs->GetString(prefs::kLoginExtensionApiLaunchExtensionId); +} } // namespace @@ -39,6 +48,25 @@ } // namespace login_api +namespace login_api_errors { + +const char kAlreadyActiveSession[] = "There is already an active session"; +const char kAnotherLoginAttemptInProgress[] = + "Another login attempt is in progress"; +const char kNoManagedGuestSessionAccounts[] = + "No managed guest session accounts"; +const char kNoPermissionToLock[] = + "The extension does not have permission to lock this session"; +const char kSessionIsNotActive[] = "Session is not active"; +const char kNoPermissionToUnlock[] = + "The extension does not have permission to unlock this session"; +const char kSessionIsNotLocked[] = "Session is not locked"; +const char kAnotherUnlockAttemptInProgress[] = + "Another unlock attempt is in progress"; +const char kAuthenticationFailed[] = "Authentication failed"; + +} // namespace login_api_errors + LoginLaunchManagedGuestSessionFunction:: LoginLaunchManagedGuestSessionFunction() = default; LoginLaunchManagedGuestSessionFunction:: @@ -46,17 +74,36 @@ ExtensionFunction::ResponseAction LoginLaunchManagedGuestSessionFunction::Run() { + std::unique_ptr<api::login::LaunchManagedGuestSession::Params> parameters = + api::login::LaunchManagedGuestSession::Params::Create(*args_); + EXTENSION_FUNCTION_VALIDATE(parameters); + + if (session_manager::SessionManager::Get()->session_state() != + session_manager::SessionState::LOGIN_PRIMARY) { + return RespondNow(Error(login_api_errors::kAlreadyActiveSession)); + } + + chromeos::ExistingUserController* existing_user_controller = + chromeos::ExistingUserController::current_controller(); + if (existing_user_controller->IsSigninInProgress()) { + return RespondNow(Error(login_api_errors::kAnotherLoginAttemptInProgress)); + } + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); for (const user_manager::User* user : user_manager->GetUsers()) { if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) continue; chromeos::UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT, user->GetAccountId()); - chromeos::ExistingUserController::current_controller()->Login( - context, chromeos::SigninSpecifics()); + if (parameters->password) { + context.SetKey(chromeos::Key(*parameters->password)); + context.SetManagedGuestSessionLaunchExtensionId(extension_id()); + } + + existing_user_controller->Login(context, chromeos::SigninSpecifics()); return RespondNow(NoArguments()); } - return RespondNow(Error(kErrorNoManagedGuestSessionAccounts)); + return RespondNow(Error(login_api_errors::kNoManagedGuestSessionAccounts)); } LoginExitCurrentSessionFunction::LoginExitCurrentSessionFunction() = default; @@ -98,4 +145,78 @@ OneArgument(std::make_unique<base::Value>(data_for_next_login_attempt))); } +LoginLockManagedGuestSessionFunction::LoginLockManagedGuestSessionFunction() = + default; +LoginLockManagedGuestSessionFunction::~LoginLockManagedGuestSessionFunction() = + default; + +ExtensionFunction::ResponseAction LoginLockManagedGuestSessionFunction::Run() { + const user_manager::UserManager* user_manager = + user_manager::UserManager::Get(); + const user_manager::User* active_user = user_manager->GetActiveUser(); + if (!active_user || + active_user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT || + !user_manager->CanCurrentUserLock()) { + return RespondNow(Error(login_api_errors::kNoPermissionToLock)); + } + + if (session_manager::SessionManager::Get()->session_state() != + session_manager::SessionState::ACTIVE) { + return RespondNow(Error(login_api_errors::kSessionIsNotActive)); + } + + chromeos::LoginApiLockHandler::Get()->RequestLockScreen(); + return RespondNow(NoArguments()); +} + +LoginUnlockManagedGuestSessionFunction:: + LoginUnlockManagedGuestSessionFunction() = default; +LoginUnlockManagedGuestSessionFunction:: + ~LoginUnlockManagedGuestSessionFunction() = default; + +ExtensionFunction::ResponseAction +LoginUnlockManagedGuestSessionFunction::Run() { + std::unique_ptr<api::login::UnlockManagedGuestSession::Params> parameters = + api::login::UnlockManagedGuestSession::Params::Create(*args_); + EXTENSION_FUNCTION_VALIDATE(parameters); + + const user_manager::User* active_user = + user_manager::UserManager::Get()->GetActiveUser(); + if (!active_user || + active_user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT || + extension_id() != GetLaunchExtensionIdPrefValue(active_user)) { + return RespondNow(Error(login_api_errors::kNoPermissionToUnlock)); + } + + if (session_manager::SessionManager::Get()->session_state() != + session_manager::SessionState::LOCKED) { + return RespondNow(Error(login_api_errors::kSessionIsNotLocked)); + } + + chromeos::LoginApiLockHandler* handler = chromeos::LoginApiLockHandler::Get(); + if (handler->IsUnlockInProgress()) { + return RespondNow(Error(login_api_errors::kAnotherUnlockAttemptInProgress)); + } + + chromeos::UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT, + active_user->GetAccountId()); + context.SetKey(chromeos::Key(parameters->password)); + handler->Authenticate( + context, + base::BindOnce( + &LoginUnlockManagedGuestSessionFunction::OnAuthenticationComplete, + this)); + return did_respond() ? AlreadyResponded() : RespondLater(); +} + +void LoginUnlockManagedGuestSessionFunction::OnAuthenticationComplete( + bool success) { + if (!success) { + Respond(Error(login_api_errors::kAuthenticationFailed)); + return; + } + + Respond(NoArguments()); +} + } // namespace extensions
diff --git a/chrome/browser/chromeos/extensions/login_screen/login/login_api.h b/chrome/browser/chromeos/extensions/login_screen/login/login_api.h index 522ab97..c6584d6 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login/login_api.h +++ b/chrome/browser/chromeos/extensions/login_screen/login/login_api.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_LOGIN_API_H_ #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_LOGIN_API_H_ -#include "base/macros.h" #include "components/prefs/pref_registry_simple.h" #include "extensions/browser/extension_function.h" @@ -17,10 +16,30 @@ } // namespace login_api +namespace login_api_errors { + +extern const char kAlreadyActiveSession[]; +extern const char kAnotherLoginAttemptInProgress[]; +extern const char kNoManagedGuestSessionAccounts[]; +extern const char kNoPermissionToLock[]; +extern const char kSessionIsNotActive[]; +extern const char kNoPermissionToUnlock[]; +extern const char kSessionIsNotLocked[]; +extern const char kAnotherUnlockAttemptInProgress[]; +extern const char kAuthenticationFailed[]; + +} // namespace login_api_errors + class LoginLaunchManagedGuestSessionFunction : public ExtensionFunction { public: LoginLaunchManagedGuestSessionFunction(); + LoginLaunchManagedGuestSessionFunction( + const LoginLaunchManagedGuestSessionFunction&) = delete; + + LoginLaunchManagedGuestSessionFunction& operator=( + const LoginLaunchManagedGuestSessionFunction&) = delete; + DECLARE_EXTENSION_FUNCTION("login.launchManagedGuestSession", LOGIN_LAUNCHMANAGEDGUESTSESSION) @@ -29,15 +48,18 @@ // ExtensionFunction: ResponseAction Run() override; - - private: - DISALLOW_COPY_AND_ASSIGN(LoginLaunchManagedGuestSessionFunction); }; class LoginExitCurrentSessionFunction : public ExtensionFunction { public: LoginExitCurrentSessionFunction(); + LoginExitCurrentSessionFunction(const LoginExitCurrentSessionFunction&) = + delete; + + LoginExitCurrentSessionFunction& operator=( + const LoginExitCurrentSessionFunction&) = delete; + DECLARE_EXTENSION_FUNCTION("login.exitCurrentSession", LOGIN_EXITCURRENTSESSION) @@ -46,15 +68,18 @@ // ExtensionFunction: ResponseAction Run() override; - - private: - DISALLOW_COPY_AND_ASSIGN(LoginExitCurrentSessionFunction); }; class LoginFetchDataForNextLoginAttemptFunction : public ExtensionFunction { public: LoginFetchDataForNextLoginAttemptFunction(); + LoginFetchDataForNextLoginAttemptFunction( + const LoginFetchDataForNextLoginAttemptFunction&) = delete; + + LoginFetchDataForNextLoginAttemptFunction& operator=( + const LoginFetchDataForNextLoginAttemptFunction&) = delete; + DECLARE_EXTENSION_FUNCTION("login.fetchDataForNextLoginAttempt", LOGIN_FETCHDATAFORNEXTLOGINATTEMPT) @@ -63,9 +88,49 @@ // ExtensionFunction: ResponseAction Run() override; +}; + +class LoginLockManagedGuestSessionFunction : public ExtensionFunction { + public: + LoginLockManagedGuestSessionFunction(); + + LoginLockManagedGuestSessionFunction( + const LoginLockManagedGuestSessionFunction&) = delete; + + LoginLockManagedGuestSessionFunction& operator=( + const LoginLockManagedGuestSessionFunction&) = delete; + + DECLARE_EXTENSION_FUNCTION("login.lockManagedGuestSession", + LOGIN_LOCKMANAGEDGUESTSESSION) + + protected: + ~LoginLockManagedGuestSessionFunction() override; + + // ExtensionFunction: + ResponseAction Run() override; +}; + +class LoginUnlockManagedGuestSessionFunction : public ExtensionFunction { + public: + LoginUnlockManagedGuestSessionFunction(); + + LoginUnlockManagedGuestSessionFunction( + const LoginUnlockManagedGuestSessionFunction&) = delete; + + LoginUnlockManagedGuestSessionFunction& operator=( + const LoginUnlockManagedGuestSessionFunction&) = delete; + + DECLARE_EXTENSION_FUNCTION("login.unlockManagedGuestSession", + LOGIN_UNLOCKMANAGEDGUESTSESSION) + + protected: + ~LoginUnlockManagedGuestSessionFunction() override; + + // ExtensionFunction: + ResponseAction Run() override; private: - DISALLOW_COPY_AND_ASSIGN(LoginFetchDataForNextLoginAttemptFunction); + void OnAuthenticationComplete(bool success); }; } // namespace extensions
diff --git a/chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.cc b/chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.cc new file mode 100644 index 0000000..8b684da --- /dev/null +++ b/chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.cc
@@ -0,0 +1,63 @@ +// Copyright 2019 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/chromeos/extensions/login_screen/login/login_api_lock_handler.h" + +#include <utility> + +#include "base/bind.h" +#include "base/no_destructor.h" +#include "chrome/browser/chromeos/login/lock/screen_locker.h" +#include "chrome/browser/ui/ash/session_controller_client_impl.h" +#include "chromeos/login/auth/user_context.h" + +namespace chromeos { + +namespace { + +LoginApiLockHandler* g_lock_handler_for_testing = nullptr; + +} // namespace + +// static +LoginApiLockHandler* LoginApiLockHandler::Get() { + if (g_lock_handler_for_testing) + return g_lock_handler_for_testing; + static base::NoDestructor<LoginApiLockHandler> lock_handler; + return lock_handler.get(); +} + +// static +void LoginApiLockHandler::SetInstanceForTesting(LoginApiLockHandler* instance) { + g_lock_handler_for_testing = instance; +} + +LoginApiLockHandler::LoginApiLockHandler() = default; + +LoginApiLockHandler::~LoginApiLockHandler() = default; + +void LoginApiLockHandler::RequestLockScreen() { + SessionControllerClientImpl::Get()->RequestLockScreen(); +} + +void LoginApiLockHandler::Authenticate( + const UserContext& user_context, + base::OnceCallback<void(bool auth_success)> callback) { + unlock_in_progress_ = true; + callback_ = std::move(callback); + chromeos::ScreenLocker::default_screen_locker()->Authenticate( + user_context, base::BindOnce(&LoginApiLockHandler::AuthenticateCallback, + weak_factory_.GetWeakPtr())); +} + +void LoginApiLockHandler::AuthenticateCallback(bool auth_success) { + unlock_in_progress_ = false; + std::move(callback_).Run(auth_success); +} + +bool LoginApiLockHandler::IsUnlockInProgress() const { + return unlock_in_progress_; +} + +} // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.h b/chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.h new file mode 100644 index 0000000..36dc0e39 --- /dev/null +++ b/chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.h
@@ -0,0 +1,51 @@ +// Copyright 2019 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_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_LOGIN_API_LOCK_HANDLER_H_ +#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_LOGIN_API_LOCK_HANDLER_H_ + +#include "base/callback.h" +#include "base/memory/weak_ptr.h" + +namespace chromeos { + +class UserContext; + +// A thin wrapper around |SessionControllerClientImpl| and +// |chromeos::ScreenLocker| to allow easier mocking for tests. Also manages the +// |unlock_in_progress| state. +class LoginApiLockHandler { + public: + // Gets the global instance of |LoginApiLockHandler|, and creates one if + // there is none. + static LoginApiLockHandler* Get(); + + static void SetInstanceForTesting(LoginApiLockHandler* instance); + + LoginApiLockHandler(); + + LoginApiLockHandler(const LoginApiLockHandler&) = delete; + + LoginApiLockHandler& operator=(const LoginApiLockHandler&) = delete; + + virtual ~LoginApiLockHandler(); + + virtual void RequestLockScreen(); + + virtual void Authenticate(const UserContext& user_context, + base::OnceCallback<void(bool auth_success)>); + + virtual bool IsUnlockInProgress() const; + + private: + void AuthenticateCallback(bool auth_success); + + bool unlock_in_progress_ = false; + base::OnceCallback<void(bool auth_success)> callback_; + base::WeakPtrFactory<LoginApiLockHandler> weak_factory_{this}; +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_LOGIN_API_LOCK_HANDLER_H_
diff --git a/chrome/browser/chromeos/extensions/login_screen/login/login_api_unittest.cc b/chrome/browser/chromeos/extensions/login_screen/login/login_api_unittest.cc index cb40aae..58c765be 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login/login_api_unittest.cc +++ b/chrome/browser/chromeos/extensions/login_screen/login/login_api_unittest.cc
@@ -6,41 +6,121 @@ #include <memory> #include <string> +#include <utility> +#include "base/callback.h" +#include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/chromeos/extensions/login_screen/login/login_api_lock_handler.h" #include "chrome/browser/chromeos/login/existing_user_controller.h" #include "chrome/browser/chromeos/login/signin_specifics.h" #include "chrome/browser/chromeos/login/ui/mock_login_display_host.h" #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/extension_api_unittest.h" #include "chrome/common/pref_names.h" +#include "chrome/test/base/testing_profile.h" +#include "chrome/test/base/testing_profile_manager.h" +#include "chromeos/login/auth/key.h" #include "chromeos/login/auth/user_context.h" #include "components/account_id/account_id.h" +#include "components/prefs/pref_service.h" +#include "components/session_manager/core/session_manager.h" +#include "components/session_manager/session_manager_types.h" #include "components/user_manager/scoped_user_manager.h" +#include "content/public/browser/browser_context.h" +#include "extensions/browser/api_test_utils.h" #include "extensions/browser/api_unittest.h" +#include "extensions/common/extension.h" +#include "extensions/common/extension_builder.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" using testing::_; +using testing::Invoke; using testing::Return; namespace { +const char kEmail[] = "email@test"; +const char kGaiaId[] = "gaia@test"; +const char kExtensionName[] = "extension_name"; +const char kExtensionId[] = "abcdefghijklmnopqrstuvwxyzabcdef"; + class MockExistingUserController : public chromeos::ExistingUserController { public: MockExistingUserController() = default; + + MockExistingUserController(const MockExistingUserController&) = delete; + + MockExistingUserController& operator=(const MockExistingUserController&) = + delete; + ~MockExistingUserController() override = default; MOCK_METHOD2(Login, void(const chromeos::UserContext&, const chromeos::SigninSpecifics&)); + MOCK_CONST_METHOD0(IsSigninInProgress, bool()); +}; + +class MockLoginApiLockHandler : public chromeos::LoginApiLockHandler { + public: + MockLoginApiLockHandler() { + chromeos::LoginApiLockHandler::SetInstanceForTesting(this); + } + + MockLoginApiLockHandler(const MockLoginApiLockHandler&) = delete; + + MockLoginApiLockHandler& operator=(const MockLoginApiLockHandler&) = delete; + + ~MockLoginApiLockHandler() override { + chromeos::LoginApiLockHandler::SetInstanceForTesting(nullptr); + } + + MOCK_METHOD0(RequestLockScreen, void()); + MOCK_METHOD2(Authenticate, + void(const chromeos::UserContext& user_context, + base::OnceCallback<void(bool auth_success)> callback)); + MOCK_CONST_METHOD0(IsUnlockInProgress, bool()); +}; + +// Wrapper which calls |DeleteTestingProfile()| on |profile| upon destruction. +class ScopedTestingProfile { + public: + ScopedTestingProfile(TestingProfile* profile, + TestingProfileManager* profile_manager) + : profile_(profile), profile_manager_(profile_manager) {} + + ScopedTestingProfile(const ScopedTestingProfile&) = delete; + + ScopedTestingProfile& operator=(const ScopedTestingProfile&) = delete; + + ~ScopedTestingProfile() { + profile_manager_->DeleteTestingProfile(profile_->GetProfileUserName()); + } + + TestingProfile* profile() { return profile_; } private: - DISALLOW_COPY_AND_ASSIGN(MockExistingUserController); + TestingProfile* const profile_; + TestingProfileManager* const profile_manager_; }; +chromeos::UserContext GetPublicUserContext(const std::string& email) { + return chromeos::UserContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT, + AccountId::FromUserEmail(email)); +} + +void SetLoginExtensionApiLaunchExtensionIdPref( + Profile* profile, + const std::string& extension_id) { + profile->GetPrefs()->SetString(prefs::kLoginExtensionApiLaunchExtensionId, + extension_id); +} + } // namespace namespace extensions { @@ -48,8 +128,14 @@ class LoginApiUnittest : public ExtensionApiUnittest { public: LoginApiUnittest() = default; + + LoginApiUnittest(const LoginApiUnittest&) = delete; + + LoginApiUnittest& operator=(const LoginApiUnittest&) = delete; + ~LoginApiUnittest() override = default; + protected: void SetUp() override { ExtensionApiUnittest::SetUp(); @@ -61,6 +147,12 @@ std::make_unique<chromeos::MockLoginDisplayHost>(); mock_existing_user_controller_ = std::make_unique<MockExistingUserController>(); + // Set |LOGIN_PRIMARY| as the default state. + session_manager_.SetSessionState( + session_manager::SessionState::LOGIN_PRIMARY); + + EXPECT_CALL(*mock_login_display_host_, GetExistingUserController()) + .WillRepeatedly(Return(mock_existing_user_controller_.get())); // Run pending async tasks resulting from profile construction to ensure // these are complete before the test begins. @@ -75,14 +167,32 @@ ExtensionApiUnittest::TearDown(); } - protected: + void SetExtensionWithId(const std::string& extension_id) { + scoped_refptr<const extensions::Extension> extension = + extensions::ExtensionBuilder(kExtensionName) + .SetID(extension_id) + .Build(); + set_extension(extension); + } + + std::unique_ptr<ScopedTestingProfile> AddPublicAccountUser( + const std::string& email) { + AccountId account_id = AccountId::FromUserEmail(email); + user_manager::User* user = + fake_chrome_user_manager_->AddPublicAccountUser(account_id); + TestingProfile* profile = profile_manager()->CreateTestingProfile(email); + chromeos::ProfileHelper::Get()->SetUserToProfileMappingForTesting(user, + profile); + + return std::make_unique<ScopedTestingProfile>(profile, profile_manager()); + } + chromeos::FakeChromeUserManager* fake_chrome_user_manager_; std::unique_ptr<user_manager::ScopedUserManager> scoped_user_manager_; std::unique_ptr<chromeos::MockLoginDisplayHost> mock_login_display_host_; std::unique_ptr<MockExistingUserController> mock_existing_user_controller_; - - private: - DISALLOW_COPY_AND_ASSIGN(LoginApiUnittest); + // Sets up the global |SessionManager| instance. + session_manager::SessionManager session_manager_; }; MATCHER_P(MatchSigninSpecifics, expected, "") { @@ -93,30 +203,61 @@ expected.is_auto_login == arg.is_auto_login; } +MATCHER_P(MatchUserContextSecret, expected, "") { + return expected == arg.GetKey()->GetSecret(); +} + // Test that calling |login.launchManagedGuestSession()| calls the corresponding // method from the |ExistingUserController|. TEST_F(LoginApiUnittest, LaunchManagedGuestSession) { - AccountId test_account_id = - AccountId::FromUserEmail("publicaccount@test.com"); - - fake_chrome_user_manager_->AddPublicAccountUser(test_account_id); - EXPECT_CALL(*mock_login_display_host_, GetExistingUserController()) - .WillOnce(Return(mock_existing_user_controller_.get())); - - chromeos::SigninSpecifics signin_specifics; - chromeos::UserContext userContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT, - test_account_id); + std::unique_ptr<ScopedTestingProfile> profile = AddPublicAccountUser(kEmail); EXPECT_CALL(*mock_existing_user_controller_, - Login(userContext, MatchSigninSpecifics(signin_specifics))) + Login(GetPublicUserContext(kEmail), + MatchSigninSpecifics(chromeos::SigninSpecifics()))) .Times(1); RunFunction(new LoginLaunchManagedGuestSessionFunction(), "[]"); } +// Test that calling |login.launchManagedGuestSession()| with a password sets +// the correct extension ID in the |UserContext| passed to +// |ExistingUserController|. +TEST_F(LoginApiUnittest, LaunchManagedGuestSessionWithPassword) { + std::unique_ptr<ScopedTestingProfile> profile = AddPublicAccountUser(kEmail); + chromeos::UserContext user_context = GetPublicUserContext(kEmail); + user_context.SetKey(chromeos::Key("password")); + EXPECT_CALL( + *mock_existing_user_controller_, + Login(user_context, MatchSigninSpecifics(chromeos::SigninSpecifics()))) + .Times(1); + + RunFunction(new LoginLaunchManagedGuestSessionFunction(), "[\"password\"]"); +} + // Test that calling |login.launchManagedGuestSession()| returns an error when // there are no managed guest session accounts. TEST_F(LoginApiUnittest, LaunchManagedGuestSessionNoAccounts) { - ASSERT_EQ("No managed guest session accounts", + ASSERT_EQ(login_api_errors::kNoManagedGuestSessionAccounts, + RunFunctionAndReturnError( + new LoginLaunchManagedGuestSessionFunction(), "[]")); +} + +// Test that calling |login.launchManagedGuestSession()| returns an error when +// the session state is not |LOGIN_PRIMARY|. +TEST_F(LoginApiUnittest, LaunchManagedGuestSessionWrongSessionState) { + session_manager::SessionManager::Get()->SetSessionState( + session_manager::SessionState::ACTIVE); + ASSERT_EQ(login_api_errors::kAlreadyActiveSession, + RunFunctionAndReturnError( + new LoginLaunchManagedGuestSessionFunction(), "[]")); +} + +// Test that calling |login.launchManagedGuestSession()| returns an error when +// there is another signin in progress. +TEST_F(LoginApiUnittest, LaunchManagedGuestSessionSigninInProgress) { + EXPECT_CALL(*mock_existing_user_controller_, IsSigninInProgress()) + .WillOnce(Return(true)); + ASSERT_EQ(login_api_errors::kAnotherLoginAttemptInProgress, RunFunctionAndReturnError( new LoginLaunchManagedGuestSessionFunction(), "[]")); } @@ -168,4 +309,171 @@ prefs::kLoginExtensionApiDataForNextLoginAttempt)); } +TEST_F(LoginApiUnittest, LockManagedGuestSession) { + std::unique_ptr<ScopedTestingProfile> profile = AddPublicAccountUser(kEmail); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + fake_chrome_user_manager_->set_current_user_can_lock(true); + session_manager::SessionManager::Get()->SetSessionState( + session_manager::SessionState::ACTIVE); + + MockLoginApiLockHandler mock_login_api_lock_handler; + EXPECT_CALL(mock_login_api_lock_handler, RequestLockScreen()) + .WillOnce(Return()); + + RunFunction(new LoginLockManagedGuestSessionFunction(), "[]"); +} + +TEST_F(LoginApiUnittest, LockManagedGuestSessionNoActiveUser) { + ASSERT_EQ(login_api_errors::kNoPermissionToLock, + RunFunctionAndReturnError( + new LoginLockManagedGuestSessionFunction(), "[]")); +} + +TEST_F(LoginApiUnittest, LockManagedGuestSessionNotManagedGuestSession) { + AccountId account_id = AccountId::FromGaiaId(kGaiaId); + fake_chrome_user_manager_->AddUser(account_id); + fake_chrome_user_manager_->SwitchActiveUser(account_id); + + ASSERT_EQ(login_api_errors::kNoPermissionToLock, + RunFunctionAndReturnError( + new LoginLockManagedGuestSessionFunction(), "[]")); +} + +TEST_F(LoginApiUnittest, LockManagedGuestSessionUserCannotLock) { + std::unique_ptr<ScopedTestingProfile> profile = AddPublicAccountUser(kEmail); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + fake_chrome_user_manager_->set_current_user_can_lock(false); + + ASSERT_EQ(login_api_errors::kNoPermissionToLock, + RunFunctionAndReturnError( + new LoginLockManagedGuestSessionFunction(), "[]")); +} + +TEST_F(LoginApiUnittest, LockManagedGuestSessionSessionNotActive) { + std::unique_ptr<ScopedTestingProfile> profile = AddPublicAccountUser(kEmail); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + fake_chrome_user_manager_->set_current_user_can_lock(true); + session_manager::SessionManager::Get()->SetSessionState( + session_manager::SessionState::LOCKED); + + ASSERT_EQ(login_api_errors::kSessionIsNotActive, + RunFunctionAndReturnError( + new LoginLockManagedGuestSessionFunction(), "[]")); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSession) { + SetExtensionWithId(kExtensionId); + std::unique_ptr<ScopedTestingProfile> scoped_profile = + AddPublicAccountUser(kEmail); + SetLoginExtensionApiLaunchExtensionIdPref(scoped_profile->profile(), + kExtensionId); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + session_manager::SessionManager::Get()->SetSessionState( + session_manager::SessionState::LOCKED); + + MockLoginApiLockHandler mock_login_api_lock_handler; + EXPECT_CALL(mock_login_api_lock_handler, IsUnlockInProgress()) + .WillOnce(Return(false)); + EXPECT_CALL(mock_login_api_lock_handler, + Authenticate(MatchUserContextSecret("password"), _)) + .WillOnce([](chromeos::UserContext user_context, + base::OnceCallback<void(bool auth_success)> callback) { + std::move(callback).Run(/*auth_success=*/true); + }); + + RunFunction(new LoginUnlockManagedGuestSessionFunction(), "[\"password\"]"); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSessionNoActiveUser) { + ASSERT_EQ( + login_api_errors::kNoPermissionToUnlock, + RunFunctionAndReturnError(new LoginUnlockManagedGuestSessionFunction(), + "[\"password\"]")); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSessionNotManagedGuestSession) { + AccountId account_id = AccountId::FromGaiaId(kGaiaId); + fake_chrome_user_manager_->AddUser(account_id); + fake_chrome_user_manager_->SwitchActiveUser(account_id); + + ASSERT_EQ( + login_api_errors::kNoPermissionToUnlock, + RunFunctionAndReturnError(new LoginUnlockManagedGuestSessionFunction(), + "[\"password\"]")); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSessionWrongExtensionId) { + SetExtensionWithId(kExtensionId); + std::unique_ptr<ScopedTestingProfile> scoped_profile = + AddPublicAccountUser(kEmail); + SetLoginExtensionApiLaunchExtensionIdPref(scoped_profile->profile(), + "wrong_extension_id"); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + + ASSERT_EQ( + login_api_errors::kNoPermissionToUnlock, + RunFunctionAndReturnError(new LoginUnlockManagedGuestSessionFunction(), + "[\"password\"]")); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSessionSessionNotLocked) { + SetExtensionWithId(kExtensionId); + std::unique_ptr<ScopedTestingProfile> scoped_profile = + AddPublicAccountUser(kEmail); + SetLoginExtensionApiLaunchExtensionIdPref(scoped_profile->profile(), + kExtensionId); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + + ASSERT_EQ( + login_api_errors::kSessionIsNotLocked, + RunFunctionAndReturnError(new LoginUnlockManagedGuestSessionFunction(), + "[\"password\"]")); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSessionUnlockInProgress) { + SetExtensionWithId(kExtensionId); + std::unique_ptr<ScopedTestingProfile> scoped_profile = + AddPublicAccountUser(kEmail); + SetLoginExtensionApiLaunchExtensionIdPref(scoped_profile->profile(), + kExtensionId); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + session_manager::SessionManager::Get()->SetSessionState( + session_manager::SessionState::LOCKED); + + MockLoginApiLockHandler mock_login_api_lock_handler; + EXPECT_CALL(mock_login_api_lock_handler, IsUnlockInProgress()) + .WillOnce(Return(true)); + + ASSERT_EQ( + login_api_errors::kAnotherUnlockAttemptInProgress, + RunFunctionAndReturnError(new LoginUnlockManagedGuestSessionFunction(), + "[\"password\"]")); +} + +TEST_F(LoginApiUnittest, UnlockManagedGuestSessionAuthenticationFailed) { + SetExtensionWithId(kExtensionId); + std::unique_ptr<ScopedTestingProfile> scoped_profile = + AddPublicAccountUser(kEmail); + SetLoginExtensionApiLaunchExtensionIdPref(scoped_profile->profile(), + kExtensionId); + fake_chrome_user_manager_->SwitchActiveUser(AccountId::FromUserEmail(kEmail)); + session_manager::SessionManager::Get()->SetSessionState( + session_manager::SessionState::LOCKED); + + MockLoginApiLockHandler mock_login_api_lock_handler; + EXPECT_CALL(mock_login_api_lock_handler, IsUnlockInProgress()) + .WillOnce(Return(false)); + EXPECT_CALL(mock_login_api_lock_handler, + Authenticate(MatchUserContextSecret("password"), _)) + .WillOnce([](chromeos::UserContext user_context, + base::OnceCallback<void(bool auth_success)> callback) { + std::move(callback).Run(/*auth_success=*/false); + }); + + ASSERT_EQ( + login_api_errors::kAuthenticationFailed, + RunFunctionAndReturnError(new LoginUnlockManagedGuestSessionFunction(), + "[\"password\"]")); +} + } // namespace extensions
diff --git a/chrome/browser/chromeos/extensions/login_screen/login/login_apitest.cc b/chrome/browser/chromeos/extensions/login_screen/login/login_apitest.cc index f6ce58f..29432cb1 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login/login_apitest.cc +++ b/chrome/browser/chromeos/extensions/login_screen/login/login_apitest.cc
@@ -7,35 +7,86 @@ #include <memory> #include <string> +#include "base/run_loop.h" +#include "base/strings/string_util.h" +#include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h" +#include "chrome/browser/chromeos/login/existing_user_controller.h" +#include "chrome/browser/chromeos/login/lock/screen_locker.h" +#include "chrome/browser/chromeos/login/lock/screen_locker_tester.h" +#include "chrome/browser/chromeos/login/test/fake_gaia_mixin.h" #include "chrome/browser/chromeos/login/test/local_policy_test_server_mixin.h" #include "chrome/browser/chromeos/login/test/session_manager_state_waiter.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/browser/supervised_user/logged_in_user_mixin.h" #include "chrome/common/pref_names.h" +#include "chromeos/cryptohome/cryptohome_parameters.h" +#include "chromeos/dbus/cryptohome/fake_cryptohome_client.h" +#include "chromeos/dbus/cryptohome/rpc.pb.h" +#include "chromeos/dbus/session_manager/fake_session_manager_client.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" -#include "components/policy/proto/chrome_device_policy.pb.h" +#include "components/policy/core/common/policy_service.h" +#include "components/policy/policy_constants.h" #include "components/prefs/pref_service.h" #include "components/session_manager/session_manager_types.h" #include "components/user_manager/user_type.h" #include "components/version_info/version_info.h" +#include "content/public/browser/browser_main_parts.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_utils.h" #include "extensions/browser/api/test/test_api.h" -#include "extensions/test/extension_test_message_listener.h" +#include "extensions/common/extension.h" +#include "extensions/common/manifest.h" +#include "net/test/embedded_test_server/embedded_test_server.h" #include "testing/gtest/include/gtest/gtest.h" namespace { constexpr char kAccountId[] = "public-session@test"; +constexpr char kPassword[] = "password"; +constexpr char kWrongPassword[] = "wrong password"; constexpr char kData[] = "some data"; +constexpr char kInSessionExtensionId[] = "ofcpkomnogjenhfajfjadjmjppbegnad"; +const char kInSessionExtensionUpdateManifestPath[] = + "/extensions/api_test/login_screen_apis/update_manifest.xml"; +constexpr char kWrongExtensionId[] = "abcdefghijklmnopqrstuvwxyzabcdef"; + +// launchManagedGuestSession tests. constexpr char kLaunchManagedGuestSession[] = "LoginLaunchManagedGuestSession"; +constexpr char kLaunchManagedGuestSessionWithPassword[] = + "LoginLaunchManagedGuestSessionWithPassword"; constexpr char kLaunchManagedGuestSessionNoAccounts[] = "LoginLaunchManagedGuestSessionNoAccounts"; +constexpr char kLaunchManagedGuestSessionAlreadyExistsActiveSession[] = + "LoginLaunchManagedGuestSessionAlreadyExistsActiveSession"; +// exitCurrentSession tests. constexpr char kExitCurrentSession[] = "LoginExitCurrentSession"; +// fetchDataForNextLoginAttempt tests. constexpr char kFetchDataForNextLoginAttempt[] = "LoginFetchDataForNextLoginAttempt"; +// lockManagedGuestSession tests. +constexpr char kLockManagedGuestSessionNotActive[] = + "LoginLockManagedGuestSessionNotActive"; +// unlockManagedGuestSession tests. +constexpr char kUnlockManagedGuestSession[] = "LoginUnlockManagedGuestSession"; +constexpr char kUnlockManagedGuestSessionWrongPassword[] = + "LoginUnlockManagedGuestSessionWrongPassword"; +constexpr char kUnlockManagedGuestSessionNotLocked[] = + "LoginUnlockManagedGuestSessionNotLocked"; +constexpr char kUnlockManagedGuestSessionNotManagedGuestSession[] = + "LoginUnlockManagedGuestSessionNotManagedGuestSession"; +constexpr char kUnlockManagedGuestSessionWrongExtensionId[] = + "LoginUnlockManagedGuestSessionWrongExtensionId"; +// In-session extension tests. +constexpr char kInSessionLoginLockManagedGuestSession[] = + "InSessionLoginLockManagedGuestSession"; +constexpr char kInSessionLoginLockManagedGuestSessionNoPermission[] = + "InSessionLoginLockManagedGuestSessionNoPermission"; +constexpr char kInSessionUnlockManagedGuestSessionNoPermission[] = + "InSessionLoginUnlockManagedGuestSessionNoPermission"; } // namespace @@ -44,6 +95,11 @@ class LoginApitest : public LoginScreenApitestBase { public: LoginApitest() : LoginScreenApitestBase(version_info::Channel::STABLE) {} + + LoginApitest(const LoginApitest&) = delete; + + LoginApitest& operator=(const LoginApitest&) = delete; + ~LoginApitest() override = default; void SetUpDeviceLocalAccountPolicy() { @@ -58,22 +114,84 @@ RefreshDevicePolicy(); } + std::unique_ptr<policy::UserPolicyBuilder> + MakeInSessionExtensionUserPolicyBuilder() { + std::unique_ptr<policy::UserPolicyBuilder> user_policy_builder = + std::make_unique<policy::UserPolicyBuilder>(); + enterprise_management::PolicyData& policy_data = + user_policy_builder->policy_data(); + policy_data.set_public_key_version(1); + user_policy_builder->payload() + .mutable_extensioninstallforcelist() + ->mutable_value() + ->add_entries(base::ReplaceStringPlaceholders( + "$1;$2", + {kInSessionExtensionId, + embedded_test_server() + ->GetURL(kInSessionExtensionUpdateManifestPath) + .spec()}, + nullptr)); + user_policy_builder->SetDefaultSigningKey(); + + return user_policy_builder; + } + + void RefreshPolicies() { + base::RunLoop run_loop; + g_browser_process->policy_service()->RefreshPolicies( + run_loop.QuitClosure()); + run_loop.Run(); + } + + virtual void SetUpInSessionExtension() { + std::unique_ptr<policy::UserPolicyBuilder> user_policy_builder = + MakeInSessionExtensionUserPolicyBuilder(); + enterprise_management::PolicyData& policy_data = + user_policy_builder->policy_data(); + policy_data.set_policy_type( + policy::dm_protocol::kChromePublicAccountPolicyType); + policy_data.set_username(kAccountId); + policy_data.set_settings_entity_id(kAccountId); + user_policy_builder->Build(); + + ASSERT_TRUE(local_policy_mixin_.server()->UpdatePolicy( + policy::dm_protocol::kChromePublicAccountPolicyType, kAccountId, + user_policy_builder->payload().SerializeAsString())); + session_manager_client()->set_device_local_account_policy( + kAccountId, user_policy_builder->GetBlob()); + RefreshPolicies(); + } + void SetTestCustomArg(const std::string custom_arg) { config_.SetKey("customArg", base::Value(custom_arg)); extensions::TestGetConfigFunction::set_test_config_state(&config_); } + void LogInWithPassword() { + SessionStateWaiter waiter(session_manager::SessionState::ACTIVE); + SetTestCustomArg(kPassword); + SetUpLoginScreenExtensionAndRunTest(kLaunchManagedGuestSessionWithPassword); + waiter.Wait(); + } + + void SetSessionState(session_manager::SessionState session_state) { + session_manager::SessionManager::Get()->SetSessionState(session_state); + } + + // Also checks that session is locked. + void LockScreen() { screen_locker_tester_.Lock(); } + private: chromeos::LocalPolicyTestServerMixin local_policy_mixin_{&mixin_host_}; base::DictionaryValue config_; - - DISALLOW_COPY_AND_ASSIGN(LoginApitest); + ScreenLockerTester screen_locker_tester_; }; IN_PROC_BROWSER_TEST_F(LoginApitest, LaunchManagedGuestSession) { SetUpDeviceLocalAccountPolicy(); - SetUpExtensionAndRunTest(kLaunchManagedGuestSession); - SessionStateWaiter(session_manager::SessionState::ACTIVE).Wait(); + SessionStateWaiter waiter(session_manager::SessionState::ACTIVE); + SetUpLoginScreenExtensionAndRunTest(kLaunchManagedGuestSession); + waiter.Wait(); // Check that the active user is of type |USER_TYPE_PUBLIC_ACCOUNT|. // We cannot use the email as an identifier as a different email is generated @@ -81,10 +199,19 @@ user_manager::UserManager* user_manager = user_manager::UserManager::Get(); EXPECT_TRUE(user_manager->GetActiveUser()->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT); + EXPECT_FALSE(user_manager->CanCurrentUserLock()); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, LaunchManagedGuestSessionWithPassword) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + user_manager::UserManager* user_manager = user_manager::UserManager::Get(); + EXPECT_TRUE(user_manager->CanCurrentUserLock()); } IN_PROC_BROWSER_TEST_F(LoginApitest, LaunchManagedGuestSessionNoAccounts) { - SetUpExtensionAndRunTest(kLaunchManagedGuestSessionNoAccounts); + SetUpLoginScreenExtensionAndRunTest(kLaunchManagedGuestSessionNoAccounts); } IN_PROC_BROWSER_TEST_F(LoginApitest, ExitCurrentSession) { @@ -94,7 +221,8 @@ chrome::NOTIFICATION_APP_TERMINATING, content::NotificationService::AllSources()); - SetUpExtensionAndRunTest(kExitCurrentSession, /*assert_test_succeed=*/false); + SetUpLoginScreenExtensionAndRunTest(kExitCurrentSession, + /*assert_test_succeed=*/false); termination_waiter.Wait(); PrefService* local_state = g_browser_process->local_state(); @@ -107,10 +235,202 @@ PrefService* local_state = g_browser_process->local_state(); local_state->SetString(prefs::kLoginExtensionApiDataForNextLoginAttempt, kData); - SetUpExtensionAndRunTest(kFetchDataForNextLoginAttempt); + SetUpLoginScreenExtensionAndRunTest(kFetchDataForNextLoginAttempt); EXPECT_EQ("", local_state->GetString( prefs::kLoginExtensionApiDataForNextLoginAttempt)); } +IN_PROC_BROWSER_TEST_F(LoginApitest, LockManagedGuestSession) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + SetUpTestListeners(); + SetUpInSessionExtension(); + SessionStateWaiter waiter(session_manager::SessionState::LOCKED); + RunTest(kInSessionLoginLockManagedGuestSession); + waiter.Wait(); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, LockManagedGuestSessionNotActive) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + // Login screen extensions stop when the session becomes active and start + // again when the session is locked. The test extension will be waiting for a + // new test after the session is locked. + SetUpTestListeners(); + LockScreen(); + RunTest(kLockManagedGuestSessionNotActive); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, LockManagedGuestSessionNoPermission) { + SetUpDeviceLocalAccountPolicy(); + SessionStateWaiter waiter(session_manager::SessionState::ACTIVE); + SetUpLoginScreenExtensionAndRunTest(kLaunchManagedGuestSession); + waiter.Wait(); + + SetUpTestListeners(); + SetUpInSessionExtension(); + RunTest(kInSessionLoginLockManagedGuestSessionNoPermission); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, UnlockManagedGuestSession) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + SetUpTestListeners(); + LockScreen(); + SessionStateWaiter waiter(session_manager::SessionState::ACTIVE); + RunTest(kUnlockManagedGuestSession); + waiter.Wait(); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, UnlockManagedGuestSessionLockedWithApi) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + SetUpTestListeners(); + SetUpInSessionExtension(); + SessionStateWaiter locked_waiter(session_manager::SessionState::LOCKED); + RunTest(kInSessionLoginLockManagedGuestSession); + locked_waiter.Wait(); + + SetUpTestListeners(); + SessionStateWaiter active_waiter(session_manager::SessionState::ACTIVE); + RunTest(kUnlockManagedGuestSession); + active_waiter.Wait(); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, UnlockManagedGuestSessionWrongPassword) { + // Note: the password check will fail even if the correct password is used as + // |FakeCryptohomeClient::CheckKeyEx()| does not check the user session's + // cipher blob. + FakeCryptohomeClient::Get()->set_enable_auth_check(true); + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + SetTestCustomArg(kWrongPassword); + SetUpTestListeners(); + LockScreen(); + RunTest(kUnlockManagedGuestSessionWrongPassword); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, UnlockManagedGuestSessionNoPermission) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + SetUpTestListeners(); + SetUpInSessionExtension(); + RunTest(kInSessionUnlockManagedGuestSessionNoPermission); +} + +// This test checks that the case where the profile has been created (which +// sets the |kLoginExtensionApiLaunchExtensionId| pref, but the session is not +// yet active. +IN_PROC_BROWSER_TEST_F(LoginApitest, UnlockManagedGuestSessionNotLocked) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + SetUpTestListeners(); + // Manually setting |LOGGED_IN_NOT_ACTIVE| state here as it is difficult to + // remain in this state during the login process. + SetSessionState(session_manager::SessionState::LOGGED_IN_NOT_ACTIVE); + RunTest(kUnlockManagedGuestSessionNotLocked); +} + +IN_PROC_BROWSER_TEST_F(LoginApitest, + UnlockManagedGuestSessionWrongExtensionId) { + SetUpDeviceLocalAccountPolicy(); + LogInWithPassword(); + + const user_manager::User* active_user = + user_manager::UserManager::Get()->GetActiveUser(); + Profile* profile = + chromeos::ProfileHelper::Get()->GetProfileByUser(active_user); + PrefService* prefs = profile->GetPrefs(); + prefs->SetString(prefs::kLoginExtensionApiLaunchExtensionId, + kWrongExtensionId); + + SetUpTestListeners(); + LockScreen(); + RunTest(kUnlockManagedGuestSessionWrongExtensionId); +} + +class LoginApitestWithEnterpriseUser : public LoginApitest { + public: + LoginApitestWithEnterpriseUser() = default; + + LoginApitestWithEnterpriseUser(const LoginApitestWithEnterpriseUser&) = + delete; + + LoginApitestWithEnterpriseUser& operator=( + const LoginApitestWithEnterpriseUser&) = delete; + + ~LoginApitestWithEnterpriseUser() override = default; + + void LoginUser() { + logged_in_user_mixin_.LogInUser(/*issue_any_scope_token=*/false, + /*wait_for_active_session=*/true, + /*request_policy_update=*/true); + } + + void SetUpInSessionExtension() override { + AccountId account_id = logged_in_user_mixin_.GetAccountId(); + std::unique_ptr<policy::UserPolicyBuilder> user_policy_builder = + MakeInSessionExtensionUserPolicyBuilder(); + enterprise_management::PolicyData& policy_data = + user_policy_builder->policy_data(); + policy_data.set_policy_type(policy::dm_protocol::kChromeUserPolicyType); + policy_data.set_username(account_id.GetUserEmail()); + policy_data.set_gaia_id(account_id.GetGaiaId()); + user_policy_builder->Build(); + + ASSERT_TRUE( + logged_in_user_mixin_.GetLocalPolicyTestServerMixin()->UpdateUserPolicy( + user_policy_builder->payload(), account_id.GetUserEmail())); + session_manager_client()->set_user_policy( + cryptohome::CreateAccountIdentifierFromAccountId(account_id), + user_policy_builder->GetBlob()); + RefreshPolicies(); + } + + private: + // Use a different test server as |LoginApitest| uses the one from + // |embedded_test_server()|. + net::EmbeddedTestServer test_server_; + LoggedInUserMixin logged_in_user_mixin_{ + &mixin_host_, + LoggedInUserMixin::LogInType::kRegular, + &test_server_, + this, + /*should_launch_browser=*/true, + AccountId::FromUserEmailGaiaId(FakeGaiaMixin::kEnterpriseUser1, + FakeGaiaMixin::kEnterpriseUser1GaiaId)}; +}; + +IN_PROC_BROWSER_TEST_F(LoginApitestWithEnterpriseUser, + LaunchManagedGuestSessionAlreadyExistsActiveSession) { + LoginUser(); + LockScreen(); + SetUpLoginScreenExtensionAndRunTest( + kLaunchManagedGuestSessionAlreadyExistsActiveSession); +} + +IN_PROC_BROWSER_TEST_F(LoginApitestWithEnterpriseUser, + UnlockManagedGuestSessionNotManagedGuestSession) { + LoginUser(); + LockScreen(); + SetUpLoginScreenExtensionAndRunTest( + kUnlockManagedGuestSessionNotManagedGuestSession); +} + +IN_PROC_BROWSER_TEST_F(LoginApitestWithEnterpriseUser, + LockManagedGuestSessionNotManagedGuestSession) { + LoginUser(); + SetUpTestListeners(); + SetUpInSessionExtension(); + RunTest(kInSessionLoginLockManagedGuestSessionNoPermission); +} + } // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.cc b/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.cc index 0830e2a..e3ed9458 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.cc +++ b/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.cc
@@ -28,28 +28,43 @@ extension_id_(kExtensionId), extension_update_manifest_path_(kExtensionUpdateManifestPath) {} -LoginScreenApitestBase::~LoginScreenApitestBase() = default; - -void LoginScreenApitestBase::SetUpExtensionAndRunTest( - const std::string& testName) { - SetUpExtensionAndRunTest(testName, /*assert_test_succeed=*/true); +LoginScreenApitestBase::~LoginScreenApitestBase() { + catcher_.reset(); + listener_.reset(); } -void LoginScreenApitestBase::SetUpExtensionAndRunTest( - const std::string& testName, - bool assert_test_succeed) { - extensions::ResultCatcher catcher; - ExtensionTestMessageListener listener(kWaitingForTestName, - /*will_reply=*/true); +void LoginScreenApitestBase::SetUpTestListeners() { + catcher_ = std::make_unique<extensions::ResultCatcher>(); + listener_ = + std::make_unique<ExtensionTestMessageListener>(kWaitingForTestName, + /*will_reply=*/true); +} - AddExtensionForForceInstallation(extension_id_, - extension_update_manifest_path_); +void LoginScreenApitestBase::RunTest(const std::string& test_name) { + RunTest(test_name, /*assert_test_succeed=*/true); +} - ASSERT_TRUE(listener.WaitUntilSatisfied()); - listener.Reply(testName); +void LoginScreenApitestBase::RunTest(const std::string& test_name, + bool assert_test_succeed) { + ASSERT_TRUE(listener_->WaitUntilSatisfied()); + listener_->Reply(test_name); if (assert_test_succeed) - ASSERT_TRUE(catcher.GetNextResult()); + ASSERT_TRUE(catcher_->GetNextResult()); +} + +void LoginScreenApitestBase::SetUpLoginScreenExtensionAndRunTest( + const std::string& test_name) { + SetUpLoginScreenExtensionAndRunTest(test_name, /*assert_test_succeed=*/true); +} + +void LoginScreenApitestBase::SetUpLoginScreenExtensionAndRunTest( + const std::string& test_name, + bool assert_test_succeed) { + SetUpTestListeners(); + AddExtensionForForceInstallation(extension_id_, + extension_update_manifest_path_); + RunTest(test_name, assert_test_succeed); } } // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h b/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h index 01d7c4c..fe442d9 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h +++ b/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h
@@ -5,11 +5,19 @@ #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_SCREEN_APITEST_BASE_H_ #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_LOGIN_SCREEN_LOGIN_SCREEN_APITEST_BASE_H_ +#include <memory> #include <string> +#include "base/memory/weak_ptr.h" #include "chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h" #include "components/version_info/version_info.h" +class ExtensionTestMessageListener; + +namespace extensions { +class ResultCatcher; +} // namespace extensions + namespace chromeos { // This browser test uses a test extension to test certain API calls on the @@ -24,18 +32,27 @@ : public policy::SigninProfileExtensionsPolicyTestBase { public: explicit LoginScreenApitestBase(version_info::Channel channel); + + LoginScreenApitestBase(const LoginScreenApitestBase&) = delete; + + LoginScreenApitestBase& operator=(const LoginScreenApitestBase&) = delete; + ~LoginScreenApitestBase() override; - void SetUpExtensionAndRunTest(const std::string& testName); + void SetUpTestListeners(); - void SetUpExtensionAndRunTest(const std::string& testName, - bool assert_test_succeed); + void RunTest(const std::string& test_name); + void RunTest(const std::string& test_name, bool assert_test_succeed); + + void SetUpLoginScreenExtensionAndRunTest(const std::string& test_name); + void SetUpLoginScreenExtensionAndRunTest(const std::string& test_name, + bool assert_test_succeed); protected: const std::string extension_id_; const std::string extension_update_manifest_path_; - - DISALLOW_COPY_AND_ASSIGN(LoginScreenApitestBase); + std::unique_ptr<extensions::ResultCatcher> catcher_; + std::unique_ptr<ExtensionTestMessageListener> listener_; }; } // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/login_screen_ui_apitest.cc b/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/login_screen_ui_apitest.cc index eb284b2..e93fd4fb 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/login_screen_ui_apitest.cc +++ b/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/login_screen_ui_apitest.cc
@@ -67,7 +67,7 @@ }; IN_PROC_BROWSER_TEST_F(LoginScreenUiApitest, ExtensionCanOpenWindow) { - SetUpExtensionAndRunTest(kCanOpenWindow); + SetUpLoginScreenExtensionAndRunTest(kCanOpenWindow); ASSERT_TRUE(HasOpenWindow()); // userCanClose defaults to false EXPECT_TRUE(IsMovementDisabled()); @@ -77,22 +77,22 @@ IN_PROC_BROWSER_TEST_F(LoginScreenUiApitest, ExtensionCannotOpenMultipleWindows) { - SetUpExtensionAndRunTest(kCannotOpenMultipleWindows); + SetUpLoginScreenExtensionAndRunTest(kCannotOpenMultipleWindows); EXPECT_TRUE(HasOpenWindow()); } IN_PROC_BROWSER_TEST_F(LoginScreenUiApitest, ExtensionCanOpenAndCloseWindow) { - SetUpExtensionAndRunTest(kCanOpenAndCloseWindow); + SetUpLoginScreenExtensionAndRunTest(kCanOpenAndCloseWindow); EXPECT_FALSE(HasOpenWindow()); } IN_PROC_BROWSER_TEST_F(LoginScreenUiApitest, ExtensionCannotCloseNoWindow) { - SetUpExtensionAndRunTest(kCannotCloseNoWindow); + SetUpLoginScreenExtensionAndRunTest(kCannotCloseNoWindow); EXPECT_FALSE(HasOpenWindow()); } IN_PROC_BROWSER_TEST_F(LoginScreenUiApitest, UserCanCloseWindow) { - SetUpExtensionAndRunTest(kUserCanCloseWindow); + SetUpLoginScreenExtensionAndRunTest(kUserCanCloseWindow); ASSERT_TRUE(HasOpenWindow()); EXPECT_TRUE(IsMovementDisabled()); EXPECT_TRUE(CanCloseDialog()); @@ -100,7 +100,7 @@ } IN_PROC_BROWSER_TEST_F(LoginScreenUiApitest, UserCannotCloseWindow) { - SetUpExtensionAndRunTest(kUserCannotCloseWindow); + SetUpLoginScreenExtensionAndRunTest(kUserCannotCloseWindow); ASSERT_TRUE(HasOpenWindow()); EXPECT_TRUE(IsMovementDisabled()); EXPECT_FALSE(CanCloseDialog());
diff --git a/chrome/browser/chromeos/extensions/login_screen/storage_apitest.cc b/chrome/browser/chromeos/extensions/login_screen/storage_apitest.cc index 4239ff2..efd5c7b 100644 --- a/chrome/browser/chromeos/extensions/login_screen/storage_apitest.cc +++ b/chrome/browser/chromeos/extensions/login_screen/storage_apitest.cc
@@ -28,15 +28,15 @@ }; IN_PROC_BROWSER_TEST_F(StorageApitest, CannotAccessLocalStorage) { - SetUpExtensionAndRunTest(kCannotAccessLocalStorage); + SetUpLoginScreenExtensionAndRunTest(kCannotAccessLocalStorage); } IN_PROC_BROWSER_TEST_F(StorageApitest, CannotAccessSyncStorage) { - SetUpExtensionAndRunTest(kCannotAccessSyncStorage); + SetUpLoginScreenExtensionAndRunTest(kCannotAccessSyncStorage); } IN_PROC_BROWSER_TEST_F(StorageApitest, CanAccessManagedStorage) { - SetUpExtensionAndRunTest(kCanAccessManagedStorage); + SetUpLoginScreenExtensionAndRunTest(kCanAccessManagedStorage); } } // namespace chromeos
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index 132d5ae..5adbdd26 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -465,6 +465,7 @@ TestCase("openQuickViewRemovablePartitions"), TestCase("openQuickViewMtp"), TestCase("openQuickViewTabIndexImage"), + TestCase("openQuickViewBrokenImage"), TestCase("pressEnterOnInfoBoxToOpenClose"), TestCase("closeQuickView"), TestCase("cantOpenQuickViewWithMultipleFiles"),
diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc index b1a8697..7c7150e 100644 --- a/chrome/browser/chromeos/login/existing_user_controller.cc +++ b/chrome/browser/chromeos/login/existing_user_controller.cc
@@ -75,6 +75,7 @@ #include "chrome/common/channel_info.h" #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/grit/generated_resources.h" #include "chromeos/constants/chromeos_switches.h" @@ -322,6 +323,18 @@ return GetLoginDisplayHost()->GetLoginDisplay(); } +void SetLoginExtensionApiLaunchExtensionIdPref(const AccountId& account_id, + const std::string extension_id) { + const user_manager::User* user = + user_manager::UserManager::Get()->FindUser(account_id); + DCHECK(user); + Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUser(user); + DCHECK(profile); + PrefService* prefs = profile->GetPrefs(); + prefs->SetString(prefs::kLoginExtensionApiLaunchExtensionId, extension_id); + prefs->CommitPendingWrite(); +} + } // namespace // Utility class used to wait for a Public Session policy store load if public @@ -971,6 +984,17 @@ DeviceSettingsService::Get()->MarkWillEstablishConsumerOwnership(); } + if (user_context.IsLockableManagedGuestSession()) { + CHECK(user_context.GetUserType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT); + user_manager::User* user = + user_manager::UserManager::Get()->FindUserAndModify( + user_context.GetAccountId()); + DCHECK(user); + user->AddProfileCreatedObserver(base::BindOnce( + &SetLoginExtensionApiLaunchExtensionIdPref, user_context.GetAccountId(), + user_context.GetManagedGuestSessionLaunchExtensionId())); + } + UserSessionManager::StartSessionType start_session_type = UserAddingScreen::Get()->IsRunning() ? UserSessionManager::SECONDARY_USER_SESSION
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc index b12675f2..415b7ba 100644 --- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc +++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
@@ -1319,6 +1319,15 @@ if (user->HasGaiaAccount()) GetUserImageManager(user->GetAccountId())->UserProfileCreated(); + + // Allow managed guest session user to lock if + // |kLoginExtensionApiLaunchExtensionId| is set. + if (user->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT && + !profile->GetPrefs() + ->GetString(prefs::kLoginExtensionApiLaunchExtensionId) + .empty()) { + user->set_can_lock(true); + } } // If there is pending user switch, do it now.
diff --git a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc index ada21a54..60d1fa2 100644 --- a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc +++ b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc
@@ -530,7 +530,7 @@ } bool FakeChromeUserManager::CanCurrentUserLock() const { - return false; + return current_user_can_lock_; } bool FakeChromeUserManager::IsUserLoggedIn() const {
diff --git a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.h b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.h index 5dd0f92..a3a46b7 100644 --- a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.h +++ b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.h
@@ -204,6 +204,10 @@ is_enterprise_managed_ = is_enterprise_managed; } + void set_current_user_can_lock(bool current_user_can_lock) { + current_user_can_lock_ = current_user_can_lock; + } + private: // Lazily creates default user flow. UserFlow* GetDefaultUserFlow() const; @@ -237,6 +241,9 @@ // Whether the device is enterprise managed. bool is_enterprise_managed_ = false; + // Whether the current user can lock. + bool current_user_can_lock_ = false; + DISALLOW_COPY_AND_ASSIGN(FakeChromeUserManager); };
diff --git a/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc index a17f253..8aaefa8 100644 --- a/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc +++ b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc
@@ -7,10 +7,14 @@ #include "base/bind.h" #include "base/macros.h" +#include "base/run_loop.h" +#include "base/strings/stringprintf.h" +#include "base/version.h" #include "chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/extensions/crx_installer.h" #include "chrome/browser/extensions/extension_service.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "components/version_info/version_info.h" #include "content/public/browser/browser_context.h" @@ -24,8 +28,13 @@ #include "extensions/browser/notification_types.h" #include "extensions/browser/test_extension_registry_observer.h" #include "extensions/common/extension.h" +#include "extensions/common/extension_set.h" #include "extensions/common/features/feature_channel.h" +#include "net/http/http_status_code.h" +#include "net/test/embedded_test_server/http_request.h" +#include "net/test/embedded_test_server/http_response.h" #include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" namespace content { class StoragePartition; @@ -41,8 +50,10 @@ // * The manual testing app which is whitelisted for running in the sign-in // profile: const char kWhitelistedAppId[] = "bjaiihebfngildkcjkjckolinodhliff"; -const char kWhitelistedAppUpdateManifestPath[] = - "/extensions/signin_screen_manual_test_app/update_manifest.xml"; +const char kWhitelistedAppUpdateManifestPathFormat[] = + "/extensions/signin_screen_manual_test_app/crx/%s/update_manifest.xml"; +const char kWhitelistedAppLatestVersion[] = "4.0"; +const char kWhitelistedAppOlderVersion[] = "3.0"; // * A trivial test app which is NOT whitelisted for running in the sign-in // profile: const char kNotWhitelistedAppId[] = "mockapnacjbcdncmpkjngjalkhphojek"; @@ -59,6 +70,13 @@ const char kNotWhitelistedExtensionUpdateManifestPath[] = "/extensions/trivial_extension/update_manifest.xml"; +// Returns the update manifest path for the whitelisted testing app with the +// given version. +std::string GetWhitelistedAppUpdateManifestPath(const std::string& version) { + return base::StringPrintf(kWhitelistedAppUpdateManifestPathFormat, + version.c_str()); +} + // Observer that allows waiting for an installation failure of a specific // extension/app. // TODO(emaxx): Extract this into a more generic helper class for using in other @@ -127,6 +145,50 @@ DISALLOW_COPY_AND_ASSIGN(ExtensionBackgroundPageReadyObserver); }; +// Observer that allows waiting until the specified version of the given +// extension/app gets installed. +class ExtensionInstallObserver final + : public extensions::ExtensionRegistryObserver { + public: + ExtensionInstallObserver(Profile* profile, + const std::string& extension_id, + const base::Version& awaited_version) + : profile_(profile), + extension_id_(extension_id), + awaited_version_(awaited_version) { + extensions::ExtensionRegistry::Get(profile)->AddObserver(this); + } + + ExtensionInstallObserver(const ExtensionInstallObserver&) = delete; + ExtensionInstallObserver& operator=(const ExtensionInstallObserver&) = delete; + + ~ExtensionInstallObserver() override { + extensions::ExtensionRegistry::Get(profile_)->RemoveObserver(this); + } + + // Should be called no more than once. + void Wait() { + // Note that the expected event could have already been observed before this + // point, in which case the run loop will exit immediately. + run_loop_.Run(); + } + + void OnExtensionInstalled(content::BrowserContext* browser_context, + const extensions::Extension* extension, + bool is_update) override { + if (extension->id() == extension_id_ && + extension->version() == awaited_version_) { + run_loop_.Quit(); + } + } + + private: + Profile* const profile_; + const std::string extension_id_; + const base::Version awaited_version_; + base::RunLoop run_loop_; +}; + // Class for testing sign-in profile apps/extensions that are installed via the // device policy under different browser channels. class SigninProfileExtensionsPolicyPerChannelTest @@ -160,8 +222,9 @@ extensions::TestExtensionRegistryObserver registry_observer( extensions::ExtensionRegistry::Get(profile), kWhitelistedAppId); - AddExtensionForForceInstallation(kWhitelistedAppId, - kWhitelistedAppUpdateManifestPath); + AddExtensionForForceInstallation( + kWhitelistedAppId, + GetWhitelistedAppUpdateManifestPath(kWhitelistedAppLatestVersion)); registry_observer.WaitForExtensionLoaded(); const extensions::Extension* extension = @@ -299,8 +362,9 @@ extensions::TestExtensionRegistryObserver registry_observer2( extensions::ExtensionRegistry::Get(profile), kNotWhitelistedAppId); - AddExtensionForForceInstallation(kWhitelistedAppId, - kWhitelistedAppUpdateManifestPath); + AddExtensionForForceInstallation( + kWhitelistedAppId, + GetWhitelistedAppUpdateManifestPath(kWhitelistedAppLatestVersion)); AddExtensionForForceInstallation(kNotWhitelistedAppId, kNotWhitelistedUpdateManifestPath); @@ -318,8 +382,9 @@ ExtensionBackgroundPageReadyObserver page_observer_for_extension( kWhitelistedExtensionId); - AddExtensionForForceInstallation(kWhitelistedAppId, - kWhitelistedAppUpdateManifestPath); + AddExtensionForForceInstallation( + kWhitelistedAppId, + GetWhitelistedAppUpdateManifestPath(kWhitelistedAppLatestVersion)); AddExtensionForForceInstallation(kWhitelistedExtensionId, kWhitelistedExtensionUpdateManifestPath); @@ -355,8 +420,9 @@ extensions::ExtensionRegistry::Get(GetInitialProfile()), kWhitelistedAppId); - AddExtensionForForceInstallation(kWhitelistedAppId, - kWhitelistedAppUpdateManifestPath); + AddExtensionForForceInstallation( + kWhitelistedAppId, + GetWhitelistedAppUpdateManifestPath(kWhitelistedAppLatestVersion)); // In the non-PRE test, this simulates inability to make network requests // for fetching the extension update manifest and CRX files. In the PRE test @@ -395,4 +461,135 @@ WaitForTestExtensionLoaded(); } +// Class for testing the auto update of the sign-in profile extensions. +class SigninProfileExtensionsAutoUpdatePolicyTest + : public SigninProfileExtensionsPolicyTest { + public: + SigninProfileExtensionsAutoUpdatePolicyTest() { + embedded_test_server()->RegisterRequestHandler(base::Bind( + &SigninProfileExtensionsAutoUpdatePolicyTest::HandleTestServerRequest, + base::Unretained(this))); + } + + void SetUpOnMainThread() override { + SigninProfileExtensionsPolicyTest::SetUpOnMainThread(); + + test_extension_registry_observer_ = + std::make_unique<extensions::TestExtensionRegistryObserver>( + extensions::ExtensionRegistry::Get(GetInitialProfile()), + kWhitelistedAppId); + test_extension_latest_version_install_observer_ = + std::make_unique<ExtensionInstallObserver>( + GetInitialProfile(), kWhitelistedAppId, + base::Version(kWhitelistedAppLatestVersion)); + + AddExtensionForForceInstallation(kWhitelistedAppId, + kRedirectingUpdateManifestPath); + } + + void TearDownOnMainThread() override { + test_extension_latest_version_install_observer_.reset(); + test_extension_registry_observer_.reset(); + SigninProfileExtensionsPolicyTest::TearDownOnMainThread(); + } + + // Enables serving the test extension's update manifest at the specified + // version. + void StartServingTestExtension(const std::string& extension_version) { + served_extension_version_ = extension_version; + } + + void WaitForTestExtensionLoaded() { + test_extension_registry_observer_->WaitForExtensionLoaded(); + } + + void WaitForTestExtensionLatestVersionInstalled() { + test_extension_latest_version_install_observer_->Wait(); + } + + base::Version GetTestExtensionVersion() { + const extensions::Extension* const extension = + extensions::ExtensionRegistry::Get(GetInitialProfile()) + ->enabled_extensions() + .GetByID(kWhitelistedAppId); + if (!extension) + return base::Version(); + return extension->version(); + } + + private: + // Path on the embedded test server that redirects to the update manifest of + // the test extension for the version that is currently served. + const std::string kRedirectingUpdateManifestPath = + "/redirecting-update-manifest-path.xml"; + + // Handler for the embedded test server. Provides special behavior for the + // test extension's update manifest URL in accordance to + // |served_extension_version_|. + std::unique_ptr<net::test_server::HttpResponse> HandleTestServerRequest( + const net::test_server::HttpRequest& request) { + if (request.GetURL().path() != kRedirectingUpdateManifestPath) + return nullptr; + if (served_extension_version_.empty()) { + // No extension is served now, so return an error. + auto response = std::make_unique<net::test_server::BasicHttpResponse>(); + response->set_code(net::HTTP_INTERNAL_SERVER_ERROR); + return response; + } + // Redirect to the XML file for the corresponding version. + auto response = std::make_unique<net::test_server::BasicHttpResponse>(); + response->set_code(net::HTTP_TEMPORARY_REDIRECT); + response->AddCustomHeader("Location", + embedded_test_server() + ->GetURL(GetWhitelistedAppUpdateManifestPath( + served_extension_version_)) + .spec()); + return response; + } + + // Specifies which version of the test extension needs to be served. An empty + // string means that no version is served. + std::string served_extension_version_; + + std::unique_ptr<extensions::TestExtensionRegistryObserver> + test_extension_registry_observer_; + std::unique_ptr<ExtensionInstallObserver> + test_extension_latest_version_install_observer_; +}; + +// This is the first preparation step for the actual test. Here the old version +// of the whitelisted app is served, and it gets installed into the sign-in +// profile. +IN_PROC_BROWSER_TEST_F(SigninProfileExtensionsAutoUpdatePolicyTest, + PRE_PRE_Test) { + StartServingTestExtension(kWhitelistedAppOlderVersion); + WaitForTestExtensionLoaded(); + EXPECT_EQ(GetTestExtensionVersion(), + base::Version(kWhitelistedAppOlderVersion)); +} + +// This is the second preparation step for the actual test. Here the new version +// of the app is served, and it gets fetched and installed. +IN_PROC_BROWSER_TEST_F(SigninProfileExtensionsAutoUpdatePolicyTest, PRE_Test) { + // Let the extensions system to load the previously fetched version before + // starting to serve the newer version, to avoid hitting flaky DCHECKs in the + // extensions system internals (see https://crbug.com/810799). + WaitForTestExtensionLoaded(); + EXPECT_EQ(GetTestExtensionVersion(), + base::Version(kWhitelistedAppOlderVersion)); + + // Start serving the newer version and verify that it gets installed. + StartServingTestExtension(kWhitelistedAppLatestVersion); + WaitForTestExtensionLatestVersionInstalled(); +} + +// This is the actual test. Here we verify that the new version of the app, as +// fetched in the PRE_Test, gets launched even in the "offline" mode (since +// we're not serving any version of the extension in this part of the test). +IN_PROC_BROWSER_TEST_F(SigninProfileExtensionsAutoUpdatePolicyTest, Test) { + WaitForTestExtensionLoaded(); + EXPECT_EQ(GetTestExtensionVersion(), + base::Version(kWhitelistedAppLatestVersion)); +} + } // namespace policy
diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc index e776b75..e2840460 100644 --- a/chrome/browser/chromeos/preferences.cc +++ b/chrome/browser/chromeos/preferences.cc
@@ -418,6 +418,11 @@ registry->RegisterBooleanPref(prefs::kSettingsShowBrowserBanner, true); registry->RegisterBooleanPref(prefs::kSettingsShowOSBanner, true); + + // This pref is a per-session pref and must not be synced. + registry->RegisterStringPref(prefs::kLoginExtensionApiLaunchExtensionId, + std::string(), + PrefRegistry::NO_REGISTRATION_FLAGS); } void Preferences::InitUserPrefs(sync_preferences::PrefServiceSyncable* prefs) {
diff --git a/chrome/browser/chromeos/wilco_dtc_supportd/wilco_dtc_supportd_messaging.cc b/chrome/browser/chromeos/wilco_dtc_supportd/wilco_dtc_supportd_messaging.cc index 2ce7688..13c49793 100644 --- a/chrome/browser/chromeos/wilco_dtc_supportd/wilco_dtc_supportd_messaging.cc +++ b/chrome/browser/chromeos/wilco_dtc_supportd/wilco_dtc_supportd_messaging.cc
@@ -43,7 +43,7 @@ // Note: the list size must be kept in sync with // |kWilcoDtcSupportdHostOriginsSize|. const char* const kWilcoDtcSupportdHostOrigins[] = { - "chrome-extension://okdnlenpdegbpdgniggponebnbkbeeca/"}; + "chrome-extension://emelalhagcpibaiiiijjlkmhhbekaidg/"}; // Size of |kWilcoDtcSupportdHostOrigins| array. const size_t kWilcoDtcSupportdHostOriginsSize =
diff --git a/chrome/browser/extensions/tab_helper.cc b/chrome/browser/extensions/tab_helper.cc index 8eae5786..3e0588d 100644 --- a/chrome/browser/extensions/tab_helper.cc +++ b/chrome/browser/extensions/tab_helper.cc
@@ -27,6 +27,7 @@ #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/web_applications/components/web_app_helpers.h" +#include "chrome/common/buildflags.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" #include "chrome/common/render_messages.h" @@ -59,6 +60,11 @@ #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "url/url_constants.h" +#if BUILDFLAG(ENABLE_SESSION_SERVICE) +#include "chrome/browser/sessions/session_service.h" +#include "chrome/browser/sessions/session_service_factory.h" +#endif + using content::NavigationController; using content::NavigationEntry; using content::WebContents; @@ -113,10 +119,19 @@ UpdateExtensionAppIcon(extension_app_); +#if BUILDFLAG(ENABLE_SESSION_SERVICE) if (extension_app_) { - SessionTabHelper::FromWebContents(web_contents()) - ->SetTabExtensionAppID(GetAppId()); + SessionService* session_service = SessionServiceFactory::GetForProfile( + Profile::FromBrowserContext(web_contents()->GetBrowserContext())); + if (session_service) { + SessionTabHelper* session_tab_helper = + SessionTabHelper::FromWebContents(web_contents()); + session_service->SetTabExtensionAppID(session_tab_helper->window_id(), + session_tab_helper->session_id(), + GetAppId()); + } } +#endif } void TabHelper::SetExtensionAppById(const ExtensionId& extension_app_id) {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index bcb2a07..ec1c48e 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -2090,6 +2090,11 @@ "expiry_milestone": 83 }, { + "name": "enable-webassembly-tiering", + "owners": [ "clemensb", "wasm-team@google.com" ], + "expiry_milestone": 86 + }, + { "name": "enable-webgl-draft-extensions", "owners": [ "webgl-team@google.com" ], // This flag is the only way for end users to test upcoming WebGL @@ -3393,6 +3398,11 @@ "expiry_milestone": 77 }, { + "name": "sync-setup-friendly-settings", + "owners": ["msalama"], + "expiry_milestone": 84 + }, + { "name": "sync-wifi-configurations", "owners": ["jonmann", "cros-system-services@google.com"], "expiry_milestone": 85
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index aa265543..7b472a3 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -992,6 +992,11 @@ "Enables support for the WebAssembly Threads proposal. Implies " "#shared-array-buffer and #enable-webassembly."; +const char kEnableWasmTieringName[] = "WebAssembly tiering"; +const char kEnableWasmTieringDescription[] = + "Enables tiered compilation of WebAssembly (will tier up to TurboFan if " + "#enable-webassembly-baseline is enabled."; + const char kEvDetailsInPageInfoName[] = "EV certificate details in Page Info."; const char kEvDetailsInPageInfoDescription[] = "Shows the EV certificate details in the Page Info bubble."; @@ -3053,6 +3058,10 @@ "Shows a Google icon next to context menu items powered by Google " "services."; +const char kSyncSetupFriendlySettingsName[] = "Sync setup friendly settings"; +const char kSyncSetupFriendlySettingsDescription[] = + "Enable the new sync setup friendly settings"; + #endif // !defined(OS_ANDROID) // Windows ---------------------------------------------------------------------
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index efaae4a4..01c78e8 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -594,6 +594,9 @@ extern const char kEnableWasmThreadsName[]; extern const char kEnableWasmThreadsDescription[]; +extern const char kEnableWasmTieringName[]; +extern const char kEnableWasmTieringDescription[]; + extern const char kEvDetailsInPageInfoName[]; extern const char kEvDetailsInPageInfoDescription[]; @@ -1786,6 +1789,9 @@ extern const char kGoogleBrandedContextMenuName[]; extern const char kGoogleBrandedContextMenuDescription[]; +extern const char kSyncSetupFriendlySettingsName[]; +extern const char kSyncSetupFriendlySettingsDescription[]; + #endif // defined(OS_ANDROID) // Windows --------------------------------------------------------------------
diff --git a/chrome/browser/metrics/BUILD.gn b/chrome/browser/metrics/BUILD.gn index 5401072..eec3866 100644 --- a/chrome/browser/metrics/BUILD.gn +++ b/chrome/browser/metrics/BUILD.gn
@@ -4,6 +4,34 @@ import("//components/metrics/generate_expired_histograms_array.gni") +if (!is_android) { + static_library("test_support") { + testonly = true + sources = [ + "testing/demographic_metrics_test_utils.cc", + "testing/demographic_metrics_test_utils.h", + "testing/sync_metrics_test_utils.cc", + "testing/sync_metrics_test_utils.h", + ] + + deps = [ + "//base", + "//chrome/browser", + "//components/network_time", + "//components/prefs", + "//components/signin/public/identity_manager", + "//components/sync", + "//components/sync/base", + "//components/sync/test/fake_server", + "//third_party/metrics_proto", + ] + + if (!is_fuchsia) { + deps += [ "//chrome/test:sync_integration_test_support" ] + } + } +} + generate_expired_histograms_array("expired_histograms_array") { inputs = [ "//tools/metrics/histograms/histograms.xml",
diff --git a/chrome/browser/metrics/metrics_service_user_demographics_browsertest.cc b/chrome/browser/metrics/metrics_service_user_demographics_browsertest.cc new file mode 100644 index 0000000..2122354 --- /dev/null +++ b/chrome/browser/metrics/metrics_service_user_demographics_browsertest.cc
@@ -0,0 +1,187 @@ +// Copyright 2019 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 "components/metrics/metrics_service.h" + +#include <string> +#include <vector> + +#include "base/command_line.h" +#include "base/feature_list.h" +#include "base/memory/weak_ptr.h" +#include "base/optional.h" +#include "base/test/metrics/histogram_tester.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" +#include "chrome/browser/metrics/chrome_metrics_services_manager_client.h" +#include "chrome/browser/metrics/testing/demographic_metrics_test_utils.h" +#include "chrome/browser/metrics/testing/sync_metrics_test_utils.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" +#include "chrome/browser/sync/test/integration/sync_test.h" +#include "components/metrics/delegating_provider.h" +#include "components/metrics/demographic_metrics_provider.h" +#include "components/metrics/metrics_switches.h" +#include "components/metrics_services_manager/metrics_services_manager.h" +#include "components/sync/driver/sync_user_settings.h" +#include "testing/gmock/include/gmock/gmock-matchers.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h" +#include "third_party/metrics_proto/user_demographics.pb.h" +#include "third_party/zlib/google/compression_utils.h" + +namespace metrics { +namespace { + +class MetricsServiceUserDemographicsBrowserTest + : public SyncTest, + public testing::WithParamInterface<test::DemographicsTestParams> { + public: + MetricsServiceUserDemographicsBrowserTest() : SyncTest(SINGLE_CLIENT) { + if (GetParam().enable_feature) { + // Enable UMA and reporting of the synced user's birth year and gender. + scoped_feature_list_.InitWithFeatures( + // enabled_features = + {internal::kMetricsReportingFeature, + DemographicMetricsProvider::kDemographicMetricsReporting}, + // disabled_features = + {}); + } else { + scoped_feature_list_.InitWithFeatures( + // enabled_features = + {internal::kMetricsReportingFeature}, + // disabled_features = + {DemographicMetricsProvider::kDemographicMetricsReporting}); + } + } + + void SetUpCommandLine(base::CommandLine* command_line) override { + // Enable the metrics service for testing (in recording-only mode). + command_line->AppendSwitch(switches::kMetricsRecordingOnly); + } + + void SetUp() override { + // Consent for metrics and crash reporting for testing. + ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( + &metrics_consent_); + SyncTest::SetUp(); + } + + // Forces a log record to be generated. Returns a copy of the record on + // success; otherwise, returns std::nullopt. + base::Optional<ChromeUserMetricsExtension> GenerateLogRecord() { + // Make sure that the metrics service is instantiated. + MetricsService* const metrics_service = + g_browser_process->GetMetricsServicesManager()->GetMetricsService(); + if (metrics_service == nullptr) { + LOG(ERROR) << "Metrics service is not available"; + return base::nullopt; + } + + // Force the creation of a log record (i.e., trigger all metrics providers). + metrics_service->CloseCurrentLogForTest(); + + // Stage/serialize the log record for transmission. + MetricsLogStore* const log_store = metrics_service->LogStoreForTest(); + log_store->StageNextLog(); + if (!log_store->has_staged_log()) { + LOG(ERROR) << "No staged log."; + return base::nullopt; + } + + // Decompress the staged log. + std::string uncompressed_log; + if (!compression::GzipUncompress(log_store->staged_log(), + &uncompressed_log)) { + LOG(ERROR) << "Decompression failed."; + return base::nullopt; + } + + // Deserialize and return the log. + ChromeUserMetricsExtension uma_proto; + if (!uma_proto.ParseFromString(uncompressed_log)) { + LOG(ERROR) << "Deserialization failed."; + return base::nullopt; + } + + return uma_proto; + } + + private: + bool metrics_consent_ = true; + + base::test::ScopedFeatureList scoped_feature_list_; + + DISALLOW_COPY_AND_ASSIGN(MetricsServiceUserDemographicsBrowserTest); +}; + +// TODO(crbug/1016118): Add the remaining test cases. +IN_PROC_BROWSER_TEST_P(MetricsServiceUserDemographicsBrowserTest, + AddSyncedUserBirthYearAndGenderToProtoData) { + test::DemographicsTestParams param = GetParam(); + + base::HistogramTester histogram; + + const int test_birth_year = + test::UpdateNetworkTimeAndGetMinimalEligibleBirthYear(); + const UserDemographicsProto::Gender test_gender = + UserDemographicsProto::GENDER_FEMALE; + + // Add the test synced user birth year and gender priority prefs to the sync + // server data. + test::AddUserBirthYearAndGenderToSyncServer(GetFakeServer()->AsWeakPtr(), + test_birth_year, test_gender); + + Profile* test_profile = ProfileManager::GetActiveUserProfile(); + + // Enable sync for the test profile. + std::unique_ptr<ProfileSyncServiceHarness> test_profile_harness = + test::InitializeProfileForSync(test_profile, + GetFakeServer()->AsWeakPtr()); + test_profile_harness->SetupSync(); + + // Make sure that there is only one Profile to allow reporting the user's + // birth year and gender. + ASSERT_EQ(1, num_clients()); + + // Generate a log record. + base::Optional<ChromeUserMetricsExtension> uma_proto = GenerateLogRecord(); + ASSERT_TRUE(uma_proto.has_value()); + + // Check log content and the histogram. + if (param.expect_reported_demographics) { + EXPECT_EQ(test::GetNoisedBirthYear(test_birth_year, *test_profile), + uma_proto->user_demographics().birth_year()); + EXPECT_EQ(test_gender, uma_proto->user_demographics().gender()); + histogram.ExpectUniqueSample("UMA.UserDemographics.Status", + syncer::UserDemographicsStatus::kSuccess, 1); + } else { + EXPECT_FALSE(uma_proto->has_user_demographics()); + histogram.ExpectTotalCount("UMA.UserDemographics.Status", /*count=*/0); + } + + test_profile_harness->service()->GetUserSettings()->SetSyncRequested(false); +} + +#if defined(OS_CHROMEOS) +// Cannot test for the enabled feature on Chrome OS because there are always +// multiple profiles. +static const auto kDemographicsTestParams = testing::Values( + test::DemographicsTestParams{/*enable_feature=*/false, + /*expect_reported_demographics=*/false}); +#else +static const auto kDemographicsTestParams = testing::Values( + test::DemographicsTestParams{/*enable_feature=*/false, + /*expect_reported_demographics=*/false}, + test::DemographicsTestParams{/*enable_feature=*/true, + /*expect_reported_demographics=*/true}); +#endif + +INSTANTIATE_TEST_SUITE_P(, + MetricsServiceUserDemographicsBrowserTest, + kDemographicsTestParams); + +} // namespace +} // namespace metrics
diff --git a/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc b/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc index 6e0c19d..818cc31 100644 --- a/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc +++ b/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc
@@ -707,8 +707,9 @@ } #endif // BUILDFLAG(ENABLE_EXTENSIONS) -// TODO(crbug.com/989810): Re-enable on Win once not flaky. -#if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || defined(OS_WIN) +// TODO(crbug.com/989810): Re-enable on Win and Mac once not flaky. +#if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || \ + defined(OS_WIN) || defined(OS_MACOSX) #define MAYBE_FetchDuringTrace DISABLED_FetchDuringTrace #else #define MAYBE_FetchDuringTrace FetchDuringTrace
diff --git a/chrome/browser/metrics/startup_metrics_browsertest.cc b/chrome/browser/metrics/startup_metrics_browsertest.cc index 27a199a..bb3fd7e 100644 --- a/chrome/browser/metrics/startup_metrics_browsertest.cc +++ b/chrome/browser/metrics/startup_metrics_browsertest.cc
@@ -16,7 +16,6 @@ namespace { constexpr const char* kStartupMetrics[] = { - "Startup.BrowserMainToRendererMain", "Startup.BrowserMessageLoopStartTime", "Startup.BrowserMessageLoopStartTimeFromMainEntry3", "Startup.BrowserOpenTabs",
diff --git a/chrome/browser/metrics/testing/demographic_metrics_test_utils.cc b/chrome/browser/metrics/testing/demographic_metrics_test_utils.cc new file mode 100644 index 0000000..a7088f8 --- /dev/null +++ b/chrome/browser/metrics/testing/demographic_metrics_test_utils.cc
@@ -0,0 +1,85 @@ +// Copyright 2019 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/metrics/testing/demographic_metrics_test_utils.h" + +#include "base/i18n/time_formatting.h" +#include "base/strings/stringprintf.h" +#include "base/time/time.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/profiles/profile.h" +#include "components/network_time/network_time_tracker.h" +#include "components/prefs/pref_service.h" +#include "components/sync/base/pref_names.h" +#include "components/sync/base/user_demographics.h" +#include "components/sync/engine_impl/loopback_server/persistent_unique_client_entity.h" +#include "components/sync/protocol/sync.pb.h" + +namespace metrics { +namespace test { + +void AddUserBirthYearAndGenderToSyncServer( + base::WeakPtr<fake_server::FakeServer> fake_server, + int birth_year, + metrics::UserDemographicsProto::Gender gender) { + DCHECK(fake_server); + + sync_pb::EntitySpecifics specifics; + specifics.mutable_priority_preference()->mutable_preference()->set_name( + syncer::prefs::kSyncDemographics); + specifics.mutable_priority_preference()->mutable_preference()->set_value( + base::StringPrintf("{\"birth_year\":%d,\"gender\":%d}", birth_year, + static_cast<int>(gender))); + fake_server->InjectEntity( + syncer::PersistentUniqueClientEntity::CreateFromSpecificsForTesting( + /*non_unique_name=*/syncer::prefs::kSyncDemographics, + /*client_tag=*/specifics.preference().name(), specifics, + /*creation_time=*/0, + /*last_modified_time=*/0)); +} + +int UpdateNetworkTimeAndGetMinimalEligibleBirthYear() { + base::Time now = base::Time::Now(); + // Simulate the latency in the network to get the network time from the remote + // server. + constexpr base::TimeDelta kLatency = base::TimeDelta::FromMilliseconds(10); + // Simulate the time taken to call UpdateNetworkTime() since the moment the + // callback was created. When not testing with the fake sync server, the + // callback is called when doing an HTTP request to the sync server. + constexpr base::TimeDelta kCallbackDelay = + base::TimeDelta::FromMilliseconds(10); + // Simulate a network time that is a bit earlier than the now time. + base::Time network_time = now - kCallbackDelay - kLatency; + // Simulate the time in ticks at the moment the UpdateNetworkTime callback + // function is created, which time should be at least 1 millisecond behind the + // moment the callback is run to pass the DCHECK. + base::TimeTicks post_time = base::TimeTicks::Now() - kCallbackDelay; + g_browser_process->network_time_tracker()->UpdateNetworkTime( + network_time, + /*resolution=*/base::TimeDelta::FromMilliseconds(1), kLatency, post_time); + + constexpr int kEligibleAge = + syncer::kUserDemographicsMinAgeInYears + + syncer::kUserDemographicsBirthYearNoiseOffsetRange; + + base::Time::Exploded exploded_time; + now.UTCExplode(&exploded_time); + // Return the maximal birth year that is eligible for reporting the user's + // birth year and gender. The -1 year is the extra buffer that Sync uses to + // make sure that the user is at least 20 yo because the user only gives the + // year of their birth date. For example, considering that the current date is + // the 05 Jan 2019 and that the user was born the 05 Mar 1999, the age of the + // user would be computed to 20 yo when using the year resolution, but the + // user is in fact 19. + return exploded_time.year - kEligibleAge - 1; +} + +int GetNoisedBirthYear(int raw_birth_year, const Profile& profile) { + int birth_year_offset = profile.GetPrefs()->GetInteger( + syncer::prefs::kSyncDemographicsBirthYearOffset); + return birth_year_offset + raw_birth_year; +} + +} // namespace test +} // namespace metrics
diff --git a/chrome/browser/metrics/testing/demographic_metrics_test_utils.h b/chrome/browser/metrics/testing/demographic_metrics_test_utils.h new file mode 100644 index 0000000..b67fb53 --- /dev/null +++ b/chrome/browser/metrics/testing/demographic_metrics_test_utils.h
@@ -0,0 +1,53 @@ +// Copyright 2019 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_METRICS_TESTING_DEMOGRAPHIC_METRICS_TEST_UTILS_H_ +#define CHROME_BROWSER_METRICS_TESTING_DEMOGRAPHIC_METRICS_TEST_UTILS_H_ + +#include "base/memory/weak_ptr.h" +#include "components/sync/test/fake_server/fake_server.h" +#include "third_party/metrics_proto/user_demographics.pb.h" + +// Helpers to support testing the user's noised birth year and gender metrics in +// browser tests. + +class Profile; + +namespace metrics { +namespace test { + +// Parameters for the parameterized tests. +struct DemographicsTestParams { + // Enable the feature to report the user's birth year and gender. + bool enable_feature = false; + // Expectation for the user's noised birth year and gender to be reported. + // Having |enable_feature| set to true does not necessarily mean that + // |expect_reported_demographics| will be true because other conditions might + // stop the reporting of the user's noised birth year and gender, e.g., + // sync is turned off. + bool expect_reported_demographics = false; +}; + +// Adds the User Demographic priority pref to the sync |fake_server|, which +// contains the test synced user's |birth_year| and |gender|. +void AddUserBirthYearAndGenderToSyncServer( + base::WeakPtr<fake_server::FakeServer> fake_server, + int birth_year, + metrics::UserDemographicsProto::Gender gender); + +// Updates the network time that is used to compute the test synced user's age +// and returns the minimal elibible birth year for the user to provide their +// birth year and gender. +int UpdateNetworkTimeAndGetMinimalEligibleBirthYear(); + +// Gets the noised birth year of the user, where the |raw_birth_year| +// corresponds to the user birth year to noise and |profile| corresponds to the +// profile of the user that has the noise pref. This function should be run +// after the Demographic Metrics Provider is run. +int GetNoisedBirthYear(int raw_birth_year, const Profile& profile); + +} // namespace test +} // namespace metrics + +#endif // CHROME_BROWSER_METRICS_TESTING_DEMOGRAPHIC_METRICS_TEST_UTILS_H_
diff --git a/chrome/browser/metrics/testing/sync_metrics_test_utils.cc b/chrome/browser/metrics/testing/sync_metrics_test_utils.cc new file mode 100644 index 0000000..6d45bff --- /dev/null +++ b/chrome/browser/metrics/testing/sync_metrics_test_utils.cc
@@ -0,0 +1,46 @@ +// Copyright 2019 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/metrics/testing/sync_metrics_test_utils.h" + +#include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/browser/sync/profile_sync_service_factory.h" +#include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" +#include "chrome/browser/sync/test/integration/sync_test.h" +#include "components/signin/public/identity_manager/account_info.h" +#include "components/signin/public/identity_manager/identity_manager.h" +#include "components/sync/test/fake_server/fake_server_network_resources.h" + +namespace metrics { +namespace test { + +std::unique_ptr<ProfileSyncServiceHarness> InitializeProfileForSync( + Profile* profile, + base::WeakPtr<fake_server::FakeServer> fake_server) { + ProfileSyncServiceFactory::GetAsProfileSyncServiceForProfile(profile) + ->OverrideNetworkForTest( + fake_server::CreateFakeServerHttpPostProviderFactory( + fake_server->AsWeakPtr())); + + std::string username; +#if defined(OS_CHROMEOS) + // In browser tests, the profile may already by authenticated with stub + // account |user_manager::kStubUserEmail|. + CoreAccountInfo info = + IdentityManagerFactory::GetForProfile(profile)->GetPrimaryAccountInfo(); + username = info.email; +#endif + if (username.empty()) { + username = "user@gmail.com"; + } + + std::unique_ptr<ProfileSyncServiceHarness> harness = + ProfileSyncServiceHarness::Create( + profile, username, "unused" /* password */, + ProfileSyncServiceHarness::SigninType::FAKE_SIGNIN); + return harness; +} + +} // namespace test +} // namespace metrics
diff --git a/chrome/browser/metrics/testing/sync_metrics_test_utils.h b/chrome/browser/metrics/testing/sync_metrics_test_utils.h new file mode 100644 index 0000000..95f4f55 --- /dev/null +++ b/chrome/browser/metrics/testing/sync_metrics_test_utils.h
@@ -0,0 +1,33 @@ +// Copyright 2019 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_METRICS_TESTING_SYNC_METRICS_TEST_UTILS_H_ +#define CHROME_BROWSER_METRICS_TESTING_SYNC_METRICS_TEST_UTILS_H_ + +#include "base/memory/weak_ptr.h" +#include "base/time/time.h" +#include "components/sync/test/fake_server/fake_server.h" +#include "third_party/metrics_proto/user_demographics.pb.h" + +// Helpers to support sync in metrics browser tests. + +class Profile; +class ProfileSyncServiceHarness; + +namespace fake_server { +class FakeServer; +} + +namespace metrics { +namespace test { + +// Initializes and enables the test Sync service of the |profile|. +std::unique_ptr<ProfileSyncServiceHarness> InitializeProfileForSync( + Profile* profile, + base::WeakPtr<fake_server::FakeServer> fake_server); + +} // namespace test +} // namespace metrics + +#endif // CHROME_BROWSER_METRICS_TESTING_SYNC_METRICS_TEST_UTILS_H_
diff --git a/chrome/browser/metrics/ukm_browsertest.cc b/chrome/browser/metrics/ukm_browsertest.cc index 17721d8..49977de 100644 --- a/chrome/browser/metrics/ukm_browsertest.cc +++ b/chrome/browser/metrics/ukm_browsertest.cc
@@ -9,6 +9,8 @@ #include "base/stl_util.h" #include "base/strings/string_util.h" #include "base/system/sys_info.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" #include "build/build_config.h" #include "build/buildflag.h" #include "chrome/browser/browser_process.h" @@ -16,7 +18,9 @@ #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "chrome/browser/metrics/chrome_metrics_service_client.h" #include "chrome/browser/metrics/chrome_metrics_services_manager_client.h" +#include "chrome/browser/metrics/testing/demographic_metrics_test_utils.h" #include "chrome/browser/metrics/testing/metrics_reporting_pref_helper.h" +#include "chrome/browser/metrics/testing/sync_metrics_test_utils.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/sync/profile_sync_service_factory.h" @@ -30,6 +34,7 @@ #include "chrome/browser/unified_consent/unified_consent_service_factory.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/metrics/demographic_metrics_provider.h" #include "components/metrics_services_manager/metrics_services_manager.h" #include "components/signin/public/base/signin_buildflags.h" #include "components/signin/public/identity_manager/identity_manager.h" @@ -54,6 +59,7 @@ #include "services/metrics/public/cpp/ukm_source.h" #include "services/network/test/test_network_quality_tracker.h" #include "third_party/metrics_proto/ukm/report.pb.h" +#include "third_party/metrics_proto/user_demographics.pb.h" #include "third_party/zlib/google/compression_utils.h" #include "url/url_constants.h" @@ -211,7 +217,7 @@ ukm::Report GetUkmReport() { EXPECT_TRUE(HasUnsentUkmLogs()); - metrics::UnsentLogStore* log_store = + UnsentLogStore* log_store = ukm_service()->reporting_service_.ukm_log_store(); if (log_store->has_staged_log()) { // For testing purposes, we are examining the content of a staged log @@ -231,36 +237,10 @@ } protected: - std::unique_ptr<ProfileSyncServiceHarness> InitializeProfileForSync( - Profile* profile) { - ProfileSyncServiceFactory::GetAsProfileSyncServiceForProfile(profile) - ->OverrideNetworkForTest( - fake_server::CreateFakeServerHttpPostProviderFactory( - GetFakeServer()->AsWeakPtr())); - - std::string username; -#if defined(OS_CHROMEOS) - // In browser tests, the profile may already by authenticated with stub - // account |user_manager::kStubUserEmail|. - CoreAccountInfo info = - IdentityManagerFactory::GetForProfile(profile)->GetPrimaryAccountInfo(); - username = info.email; -#endif - if (username.empty()) { - username = "user@gmail.com"; - } - - std::unique_ptr<ProfileSyncServiceHarness> harness = - ProfileSyncServiceHarness::Create( - profile, username, "unused" /* password */, - ProfileSyncServiceHarness::SigninType::FAKE_SIGNIN); - return harness; - } - std::unique_ptr<ProfileSyncServiceHarness> EnableSyncForProfile( Profile* profile) { std::unique_ptr<ProfileSyncServiceHarness> harness = - InitializeProfileForSync(profile); + test::InitializeProfileForSync(profile, GetFakeServer()->AsWeakPtr()); EXPECT_TRUE(harness->SetupSync()); // If unified consent is enabled, then enable url-keyed-anonymized data @@ -389,6 +369,36 @@ DISALLOW_COPY_AND_ASSIGN(UkmEnabledChecker); }; +// Test the reporting of the synced user's birth year and gender. +class UkmBrowserTestWithDemographics + : public UkmBrowserTestBase, + public testing::WithParamInterface<test::DemographicsTestParams> { + public: + UkmBrowserTestWithDemographics() : UkmBrowserTestBase() { + test::DemographicsTestParams param = GetParam(); + if (param.enable_feature) { + scoped_feature_list_.InitWithFeatures( + // enabled_features + {DemographicMetricsProvider::kDemographicMetricsReporting, + ukm::UkmService::kReportUserNoisedUserBirthYearAndGender}, + // disabled_features + {}); + } else { + scoped_feature_list_.InitWithFeatures( + // enabled_features + {}, + // disabled_features + {DemographicMetricsProvider::kDemographicMetricsReporting, + ukm::UkmService::kReportUserNoisedUserBirthYearAndGender}); + } + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; + + DISALLOW_COPY_AND_ASSIGN(UkmBrowserTestWithDemographics); +}; + // Make sure that UKM is disabled while an incognito window is open. // Keep in sync with UkmTest.testRegularPlusIncognitoCheck in // chrome/android/javatests/src/org/chromium/chrome/browser/metrics/ @@ -579,6 +589,76 @@ CloseBrowserSynchronously(sync_browser); } +// TODO(crbug/1016118): Add the remaining test cases. +IN_PROC_BROWSER_TEST_P(UkmBrowserTestWithDemographics, + AddSyncedUserBirthYearAndGenderToProtoData) { + test::DemographicsTestParams param = GetParam(); + MetricsConsentOverride metrics_consent(true); + + base::HistogramTester histogram; + + const int test_birth_year = + test::UpdateNetworkTimeAndGetMinimalEligibleBirthYear(); + const UserDemographicsProto::Gender test_gender = + UserDemographicsProto::GENDER_FEMALE; + + // Add the test synced user birth year and gender priority prefs to the sync + // server data. + test::AddUserBirthYearAndGenderToSyncServer(GetFakeServer()->AsWeakPtr(), + test_birth_year, test_gender); + + Profile* test_profile = ProfileManager::GetActiveUserProfile(); + std::unique_ptr<ProfileSyncServiceHarness> harness = + EnableSyncForProfile(test_profile); + + // Make sure that there is only one Profile to allow reporting the user's + // birth year and gender. + ASSERT_EQ(1, num_clients()); + + Browser* sync_browser = CreateBrowser(test_profile); + EXPECT_TRUE(ukm_enabled()); + uint64_t original_client_id = client_id(); + EXPECT_NE(0U, original_client_id); + + // Log UKM metrics report. + BuildAndStoreUkmLog(); + EXPECT_TRUE(HasUnsentUkmLogs()); + + // Check the log's content and the histogram. + ukm::Report report = GetUkmReport(); + if (param.expect_reported_demographics) { + EXPECT_EQ(test::GetNoisedBirthYear(test_birth_year, *test_profile), + report.user_demographics().birth_year()); + EXPECT_EQ(test_gender, report.user_demographics().gender()); + histogram.ExpectUniqueSample("UKM.UserDemographics.Status", + syncer::UserDemographicsStatus::kSuccess, 1); + } else { + EXPECT_FALSE(report.has_user_demographics()); + histogram.ExpectTotalCount("UKM.UserDemographics.Status", /*count=*/0); + } + + harness->service()->GetUserSettings()->SetSyncRequested(false); + CloseBrowserSynchronously(sync_browser); +} + +#if defined(OS_CHROMEOS) +// Cannot test for the enabled feature on Chrome OS because there are always +// multiple profiles. +static const auto kDemographicsTestParams = testing::Values( + test::DemographicsTestParams{/*enable_feature=*/false, + /*expect_reported_demographics=*/false}); +#else +static const auto kDemographicsTestParams = testing::Values( + test::DemographicsTestParams{/*enable_feature=*/false, + /*expect_reported_demographics=*/false}, + test::DemographicsTestParams{/*enable_feature=*/true, + /*expect_reported_demographics=*/true}); +#endif + +INSTANTIATE_TEST_SUITE_P(, + UkmBrowserTestWithDemographics, + kDemographicsTestParams); + // Verifies that network provider attaches effective connection type correctly // to the UKM report. IN_PROC_BROWSER_TEST_F(UkmBrowserTest, NetworkProviderPopulatesSystemProfile) { @@ -903,8 +983,8 @@ // Need to set the Metrics Default to OPT_OUT to trigger MetricsReporting. DCHECK(g_browser_process); PrefService* local_state = g_browser_process->local_state(); - metrics::ForceRecordMetricsReportingDefaultState( - local_state, metrics::EnableMetricsDefault::OPT_OUT); + ForceRecordMetricsReportingDefaultState(local_state, + EnableMetricsDefault::OPT_OUT); // Verify that kMetricsReportingFeature is disabled (i.e. other metrics // services will be sampled out). EXPECT_FALSE( @@ -967,7 +1047,7 @@ // transport mode. Profile* profile = ProfileManager::GetActiveUserProfile(); std::unique_ptr<ProfileSyncServiceHarness> harness = - InitializeProfileForSync(profile); + test::InitializeProfileForSync(profile, GetFakeServer()->AsWeakPtr()); syncer::SyncService* sync_service = ProfileSyncServiceFactory::GetForProfile(profile);
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc index 3adf99a..256f03fd 100644 --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc
@@ -12,6 +12,7 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/logging.h" +#include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" #include "base/strings/string_split.h" @@ -94,6 +95,9 @@ bool* g_discard_domain_reliability_uploads_for_testing = nullptr; +const char kHttpCacheFinchExperimentGroups[] = + "profile_network_context_service.http_cache_finch_experiment_groups"; + std::vector<std::string> TranslateStringArray(const base::ListValue* list) { std::vector<std::string> strings; for (const base::Value& value : *list) { @@ -344,6 +348,10 @@ registry->RegisterIntegerPref( prefs::kAmbientAuthenticationInPrivateModesEnabled, static_cast<int>(net::AmbientAuthAllowedProfileTypes::REGULAR_ONLY)); + + // For information about whether to reset the HTTP Cache or not, store the + // groups for all the relevant experiments. Initially unknown status for all. + registry->RegisterStringPref(kHttpCacheFinchExperimentGroups, "NoneNoneNone"); } void ProfileNetworkContextService::DisableQuicIfNotAllowed() { @@ -592,6 +600,30 @@ #endif } +bool GetHttpCacheBackendResetParam(PrefService* local_state) { + // Get the field trial groups. If the server cannot be reached, then + // this corresponds to "None" for each experiment. + base::FieldTrial* field_trial = base::FeatureList::GetFieldTrial( + net::features::kSplitCacheByNetworkIsolationKey); + std::string current_field_trial_status = + (field_trial ? field_trial->group_name() : "None"); + field_trial = base::FeatureList::GetFieldTrial( + net::features::kAppendFrameOriginToNetworkIsolationKey); + current_field_trial_status += + (field_trial ? field_trial->group_name() : "None"); + field_trial = base::FeatureList::GetFieldTrial( + net::features::kUseRegistrableDomainInNetworkIsolationKey); + current_field_trial_status += + (field_trial ? field_trial->group_name() : "None"); + + std::string previous_field_trial_status = + local_state->GetString(kHttpCacheFinchExperimentGroups); + local_state->SetString(kHttpCacheFinchExperimentGroups, + current_field_trial_status); + + return current_field_trial_status != previous_field_trial_status; +} + network::mojom::NetworkContextParamsPtr ProfileNetworkContextService::CreateNetworkContextParams( bool in_memory, @@ -803,6 +835,9 @@ ->GetOriginAccessList() .CreateCorsOriginAccessPatternsList(); + network_context_params->reset_http_cache_backend = + GetHttpCacheBackendResetParam(g_browser_process->local_state()); + return network_context_params; }
diff --git a/chrome/browser/net/profile_network_context_service_browsertest.cc b/chrome/browser/net/profile_network_context_service_browsertest.cc index d187abb..54f6dffa 100644 --- a/chrome/browser/net/profile_network_context_service_browsertest.cc +++ b/chrome/browser/net/profile_network_context_service_browsertest.cc
@@ -16,9 +16,12 @@ #include "base/strings/string_piece.h" #include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" #include "base/threading/thread_restrictions.h" #include "build/build_config.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/metrics/subprocess_metrics_provider.h" #include "chrome/browser/net/profile_network_context_service.h" #include "chrome/browser/net/profile_network_context_service_factory.h" #include "chrome/browser/policy/policy_test_utils.h" @@ -43,6 +46,7 @@ #include "content/public/common/content_features.h" #include "content/public/test/simple_url_loader_test_helper.h" #include "mojo/public/cpp/system/data_pipe_utils.h" +#include "net/base/features.h" #include "net/base/load_flags.h" #include "net/http/http_auth_preferences.h" #include "net/test/embedded_test_server/embedded_test_server.h" @@ -75,13 +79,12 @@ // Most tests for this class are in NetworkContextConfigurationBrowserTest. class ProfileNetworkContextServiceBrowsertest : public InProcessBrowserTest { public: - ProfileNetworkContextServiceBrowsertest() { - EXPECT_TRUE(embedded_test_server()->Start()); - } + ProfileNetworkContextServiceBrowsertest() = default; - ~ProfileNetworkContextServiceBrowsertest() override {} + ~ProfileNetworkContextServiceBrowsertest() override = default; void SetUpOnMainThread() override { + EXPECT_TRUE(embedded_test_server()->Start()); loader_factory_ = content::BrowserContext::GetDefaultStoragePartition( browser()->profile()) ->GetURLLoaderFactoryForBrowserProcess() @@ -160,6 +163,83 @@ EXPECT_TRUE(base::Contains(encodings, "br")); } +class ProfileNetworkContextServiceCacheSameBrowsertest + : public ProfileNetworkContextServiceBrowsertest { + public: + ProfileNetworkContextServiceCacheSameBrowsertest() = default; + ~ProfileNetworkContextServiceCacheSameBrowsertest() override = default; + + void SetUp() override { + scoped_feature_list_.InitWithFeatures( + {}, {net::features::kSplitCacheByNetworkIsolationKey, + net::features::kAppendFrameOriginToNetworkIsolationKey, + net::features::kUseRegistrableDomainInNetworkIsolationKey}); + ProfileNetworkContextServiceBrowsertest::SetUp(); + } + + void CheckCacheNotReset() { + content::FetchHistogramsFromChildProcesses(); + SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + // Some tests load the cache multiple times, so compare to zero. + EXPECT_GT(histograms_.GetBucketCount("HttpCache.HardReset", false), 0); + // Make sure it's never reset. + EXPECT_EQ(histograms_.GetBucketCount("HttpCache.HardReset", true), 0); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; + base::HistogramTester histograms_; +}; + +IN_PROC_BROWSER_TEST_F(ProfileNetworkContextServiceCacheSameBrowsertest, + TestCacheResetParameter) { + // At this point, we have already called the initialization once on startup. + // Verify that we have the correct values in the local_state. + PrefService* local_state = g_browser_process->local_state(); + DCHECK_EQ( + local_state->GetString( + "profile_network_context_service.http_cache_finch_experiment_groups"), + "NoneNoneNone"); + + CheckCacheNotReset(); +} + +class ProfileNetworkContextServiceCacheChangeBrowsertest + : public ProfileNetworkContextServiceBrowsertest { + public: + ProfileNetworkContextServiceCacheChangeBrowsertest() { + scoped_feature_list_.InitWithFeaturesAndParameters( + {{net::features::kAppendFrameOriginToNetworkIsolationKey, {}}}, + {net::features::kSplitCacheByNetworkIsolationKey, + net::features::kUseRegistrableDomainInNetworkIsolationKey}); + } + ~ProfileNetworkContextServiceCacheChangeBrowsertest() override = default; + + void CheckCacheReset() { + content::FetchHistogramsFromChildProcesses(); + SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + // Some tests load the cache multiple times, but should only be reset once. + EXPECT_EQ(histograms_.GetBucketCount("HttpCache.HardReset", true), 1); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; + base::HistogramTester histograms_; +}; + +IN_PROC_BROWSER_TEST_F(ProfileNetworkContextServiceCacheChangeBrowsertest, + TestCacheResetParameter) { + // At this point, we have already called the initialization once on startup. + // Verify that we have the correct values in the local_state. + PrefService* local_state = g_browser_process->local_state(); + DCHECK_EQ( + local_state->GetString( + "profile_network_context_service.http_cache_finch_experiment_groups"), + "Nonescoped_feature_list_trial_groupNone"); + + CheckCacheReset(); +} + enum class AmbientAuthProfileBit { INCOGNITO = 1, GUEST = 2,
diff --git a/chrome/browser/notifications/notification_platform_bridge_android_unittest.cc b/chrome/browser/notifications/notification_platform_bridge_android_unittest.cc new file mode 100644 index 0000000..41d85da --- /dev/null +++ b/chrome/browser/notifications/notification_platform_bridge_android_unittest.cc
@@ -0,0 +1,25 @@ +// Copyright 2020 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/android/jni_android.h" +#include "chrome/android/native_j_unittests_jni_headers/NotificationPlatformBridgeUnitTest_jni.h" +#include "testing/gtest/include/gtest/gtest.h" + +using base::android::AttachCurrentThread; + +class NotificationPlatformBridgeUnitTest : public ::testing::Test { + public: + NotificationPlatformBridgeUnitTest() + : j_test_(Java_NotificationPlatformBridgeUnitTest_Constructor( + AttachCurrentThread())) {} + + const base::android::ScopedJavaGlobalRef<jobject>& j_test() { + return j_test_; + } + + private: + base::android::ScopedJavaGlobalRef<jobject> j_test_; +}; + +JAVA_TESTS(NotificationPlatformBridgeUnitTest, j_test())
diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.h b/chrome/browser/notifications/notification_platform_bridge_mac.h index 8622be0..0529ac9 100644 --- a/chrome/browser/notifications/notification_platform_bridge_mac.h +++ b/chrome/browser/notifications/notification_platform_bridge_mac.h
@@ -53,6 +53,9 @@ // when a notification gets activated. static bool VerifyNotificationData(NSDictionary* response) WARN_UNUSED_RESULT; + // Returns if alerts are supported on this machine. + static bool SupportsAlerts(); + private: // Cocoa class that receives callbacks from the NSUserNotificationCenter. base::scoped_nsobject<NotificationCenterDelegate> delegate_;
diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/chrome/browser/notifications/notification_platform_bridge_mac.mm index 9b28d69..989a3aa 100644 --- a/chrome/browser/notifications/notification_platform_bridge_mac.mm +++ b/chrome/browser/notifications/notification_platform_bridge_mac.mm
@@ -23,6 +23,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" +#include "base/system/sys_info.h" #include "base/task/post_task.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/notifications/notification_common.h" @@ -123,10 +124,7 @@ bool IsPersistentNotification( const message_center::Notification& notification) { - // TODO(crbug.com/1007418): Remove this and find a way to show alert style - // notifications in 10.15 and above. At least show them as banners until then - // as a temporary workaround. - if (base::mac::IsAtLeastOS10_15()) + if (!NotificationPlatformBridgeMac::SupportsAlerts()) return false; return notification.never_timeout() || @@ -174,6 +172,19 @@ return etldplusone; } + +// Implements the version check to determine if alerts are supported. Do not +// call this method directly as SysInfo::OperatingSystemVersionNumbers might be +// an expensive call. Instead use NotificationPlatformBridgeMac::SupportsAlerts +// which caches this value. +bool SupportsAlertsImpl() { + int32_t major, minor, bugfix; + base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix); + // Allow alerts on all versions except 10.15.0, 10.15.1 & 10.15.2. + // See crbug.com/1007418 for details. + return major != 10 || minor != 15 || bugfix > 2; +} + } // namespace // A Cocoa class that represents the delegate of NSUserNotificationCenter and @@ -462,6 +473,13 @@ return true; } +// static +bool NotificationPlatformBridgeMac::SupportsAlerts() { + // Cache result as SysInfo::OperatingSystemVersionNumbers might be expensive. + static bool supports_alerts = SupportsAlertsImpl(); + return supports_alerts; +} + // ///////////////////////////////////////////////////////////////////////////// @implementation NotificationCenterDelegate - (void)userNotificationCenter:(NSUserNotificationCenter*)center
diff --git a/chrome/browser/notifications/notification_platform_bridge_mac_unittest.mm b/chrome/browser/notifications/notification_platform_bridge_mac_unittest.mm index 7c92cb1d..f7f66f9 100644 --- a/chrome/browser/notifications/notification_platform_bridge_mac_unittest.mm +++ b/chrome/browser/notifications/notification_platform_bridge_mac_unittest.mm
@@ -281,8 +281,7 @@ } TEST_F(NotificationPlatformBridgeMacTest, TestDisplayProgress) { - // TODO(crbug.com/1007418): Enable this when we support alerts on 10.15 again. - if (base::mac::IsAtLeastOS10_15()) + if (!NotificationPlatformBridgeMac::SupportsAlerts()) return; std::unique_ptr<Notification> notification = @@ -362,8 +361,7 @@ } TEST_F(NotificationPlatformBridgeMacTest, TestDisplayAlert) { - // TODO(crbug.com/1007418): Enable this when we support alerts on 10.15 again. - if (base::mac::IsAtLeastOS10_15()) + if (!NotificationPlatformBridgeMac::SupportsAlerts()) return; std::unique_ptr<Notification> alert = @@ -378,8 +376,7 @@ } TEST_F(NotificationPlatformBridgeMacTest, TestDisplayBannerAndAlert) { - // TODO(crbug.com/1007418): Enable this when we support alerts on 10.15 again. - if (base::mac::IsAtLeastOS10_15()) + if (!NotificationPlatformBridgeMac::SupportsAlerts()) return; std::unique_ptr<Notification> alert = @@ -398,8 +395,7 @@ } TEST_F(NotificationPlatformBridgeMacTest, TestCloseAlert) { - // TODO(crbug.com/1007418): Enable this when we support alerts on 10.15 again. - if (base::mac::IsAtLeastOS10_15()) + if (!NotificationPlatformBridgeMac::SupportsAlerts()) return; std::unique_ptr<Notification> alert = @@ -417,8 +413,7 @@ } TEST_F(NotificationPlatformBridgeMacTest, TestQuitRemovesBannersAndAlerts) { - // TODO(crbug.com/1007418): Enable this when we support alerts on 10.15 again. - if (base::mac::IsAtLeastOS10_15()) + if (!NotificationPlatformBridgeMac::SupportsAlerts()) return; std::unique_ptr<Notification> notification = CreateBanner(
diff --git a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc index 8170d66..8d8ba10 100644 --- a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc
@@ -292,24 +292,6 @@ timing.paint_timing->first_meaningful_paint.value().InMilliseconds()); } const page_load_metrics::ContentfulPaintTimingInfo& - main_frame_largest_image_paint = - largest_contentful_paint_handler_.MainFrameLargestImagePaint(); - if (!main_frame_largest_image_paint.IsEmpty() && - WasStartedInForegroundOptionalEventInForeground( - main_frame_largest_image_paint.Time(), GetDelegate())) { - builder.SetExperimental_PaintTiming_NavigationToLargestImagePaint( - timing.paint_timing->largest_image_paint.value().InMilliseconds()); - } - const page_load_metrics::ContentfulPaintTimingInfo& - main_frame_largest_text_paint = - largest_contentful_paint_handler_.MainFrameLargestTextPaint(); - if (!main_frame_largest_text_paint.IsEmpty() && - WasStartedInForegroundOptionalEventInForeground( - main_frame_largest_text_paint.Time(), GetDelegate())) { - builder.SetExperimental_PaintTiming_NavigationToLargestTextPaint( - timing.paint_timing->largest_text_paint.value().InMilliseconds()); - } - const page_load_metrics::ContentfulPaintTimingInfo& main_frame_largest_contentful_paint = largest_contentful_paint_handler_.MainFrameLargestContentfulPaint(); if (!main_frame_largest_contentful_paint.IsEmpty() &&
diff --git a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer_unittest.cc index 3ced9fba..5a8755f 100644 --- a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer_unittest.cc
@@ -281,8 +281,7 @@ GURL(kTestUrl1)); tester()->test_ukm_recorder().ExpectEntryMetric( kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestImagePaintName, - 600); + PageLoad::kPaintTiming_NavigationToLargestContentfulPaintName, 600); EXPECT_TRUE(tester()->test_ukm_recorder().EntryHasMetric( kv.second.get(), PageLoad::kPageTiming_ForegroundDurationName)); } @@ -314,7 +313,7 @@ for (const auto& kv : merged_entries) { EXPECT_FALSE(tester()->test_ukm_recorder().EntryHasMetric( kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestImagePaintName)); + PageLoad::kPaintTiming_NavigationToLargestContentfulPaintName)); } } @@ -344,10 +343,7 @@ for (const auto& kv : merged_entries) { EXPECT_FALSE(tester()->test_ukm_recorder().EntryHasMetric( kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestImagePaintName)); - EXPECT_FALSE(tester()->test_ukm_recorder().EntryHasMetric( - kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestTextPaintName)); + PageLoad::kPaintTiming_NavigationToLargestContentfulPaintName)); } } @@ -388,12 +384,7 @@ GURL(kTestUrl1)); tester()->test_ukm_recorder().ExpectEntryMetric( kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestImagePaintName, - 600); - tester()->test_ukm_recorder().ExpectEntryMetric( - kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestTextPaintName, - 600); + PageLoad::kPaintTiming_NavigationToLargestContentfulPaintName, 600); EXPECT_TRUE(tester()->test_ukm_recorder().EntryHasMetric( kv.second.get(), PageLoad::kPageTiming_ForegroundDurationName)); } @@ -424,8 +415,7 @@ GURL(kTestUrl1)); tester()->test_ukm_recorder().ExpectEntryMetric( kv.second.get(), - PageLoad::kExperimental_PaintTiming_NavigationToLargestTextPaintName, - 600); + PageLoad::kPaintTiming_NavigationToLargestContentfulPaintName, 600); EXPECT_TRUE(tester()->test_ukm_recorder().EntryHasMetric( kv.second.get(), PageLoad::kPageTiming_ForegroundDurationName)); }
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java index cc7e607..575ec07 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -49,7 +49,17 @@ /** Whether Autofill Assistant is enabled */ public static final String AUTOFILL_ASSISTANT_ENABLED = "autofill_assistant_switch"; + /** Whether the Autofill Assistant onboarding has been accepted. */ + public static final String AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED = + "AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED"; + /** + * LEGACY preference indicating whether "do not show again" was checked in the autofill + * assistant onboarding + */ + public static final String AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN = + "AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN"; + public static final String BOOKMARKS_LAST_MODIFIED_FOLDER_ID = "last_bookmark_folder_id"; public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url"; public static final String BOOKMARKS_LAST_USED_PARENT = "enhanced_bookmark_last_used_parent_folder"; @@ -392,6 +402,11 @@ public static final String HOMEPAGE_LOCATION_POLICY = "Chrome.Policy.HomepageLocation"; /** + * Key for UUID-based generator used for Chrome Invalidations (sync, etc.). + */ + public static final String INVALIDATIONS_UUID_PREF_KEY = "chromium.invalidations.uuid"; + + /** * When the user is shown a badge that the current Android OS version is unsupported, and they * tap it to display the menu (which has additional information), we store the current version * of Chrome to this preference to ensure we only show the badge once. The value is cleared @@ -457,6 +472,10 @@ public static final String SIGNIN_PROMO_SETTINGS_PERSONALIZED_DISMISSED = "settings_personalized_signin_promo_dismissed"; + public static final String SNAPSHOT_DATABASE_REMOVED = "snapshot_database_removed"; + + public static final String SYNC_SESSIONS_UUID = "chromium.sync.sessions.id"; + /** * Keys for deferred recording of the outcomes of showing the clear data dialog after * Trusted Web Activity client apps are uninstalled or have their data cleared. @@ -582,6 +601,9 @@ return Arrays.asList( ACCESSIBILITY_TAB_SWITCHER, AUTOFILL_ASSISTANT_ENABLED, + AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED, + AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN, + BOOKMARKS_LAST_MODIFIED_FOLDER_ID, BOOKMARKS_LAST_USED_URL, BOOKMARKS_LAST_USED_PARENT, CHROME_DEFAULT_BROWSER, @@ -665,6 +687,7 @@ HOMEPAGE_CUSTOM_URI, HOMEPAGE_ENABLED, HOMEPAGE_USE_DEFAULT_URI, + INVALIDATIONS_UUID_PREF_KEY, LATEST_UNSUPPORTED_VERSION, OFFLINE_INDICATOR_V2_ENABLED, PRIVACY_ALLOW_PRERENDER_OLD, @@ -684,7 +707,9 @@ SIGNIN_PROMO_NTP_PROMO_SUPPRESSION_PERIOD_START, SIGNIN_PROMO_PERSONALIZED_DECLINED, SIGNIN_PROMO_SETTINGS_PERSONALIZED_DISMISSED, + SNAPSHOT_DATABASE_REMOVED, START_SURFACE_SINGLE_PANE_ENABLED_KEY, + SYNC_SESSIONS_UUID, TWA_DIALOG_NUMBER_OF_DISMISSALS_ON_CLEAR_DATA, TWA_DIALOG_NUMBER_OF_DISMISSALS_ON_UNINSTALL, TWA_DISCLOSURE_ACCEPTED_PACKAGES,
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java index e262d38..3c68a4a 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java
@@ -65,6 +65,11 @@ return swappedOut; } + @VisibleForTesting + public void disableKeyCheckerForTesting() { + mKeyChecker = new BaseChromePreferenceKeyChecker(); + } + /** * Observes preference changes. */
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index b2a459fb..330f0981 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -218,9 +218,6 @@ #if BUILDFLAG(ENABLE_FEED_IN_CHROME) #include "components/feed/core/pref_names.h" #endif // BUILDFLAG(ENABLE_FEED_IN_CHROME) -#if BUILDFLAG(GOOGLE_CHROME_BRANDING) -#include "components/games/core/games_prefs.h" -#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) #else // defined(OS_ANDROID) #include "chrome/browser/apps/app_service/app_service_proxy.h" #include "chrome/browser/enterprise_reporting/prefs.h" @@ -630,6 +627,8 @@ network_time::NetworkTimeTracker::RegisterPrefs(registry); OriginTrialPrefs::RegisterPrefs(registry); password_manager::PasswordManager::RegisterLocalPrefs(registry); + policy::BrowserPolicyConnector::RegisterPrefs(registry); + policy::PolicyStatisticsCollector::RegisterPrefs(registry); PrefProxyConfigTrackerImpl::RegisterPrefs(registry); ProfileAttributesEntry::RegisterLocalStatePrefs(registry); ProfileInfoCache::RegisterPrefs(registry); @@ -646,17 +645,10 @@ update_client::RegisterPrefs(registry); variations::VariationsService::RegisterPrefs(registry); - policy::BrowserPolicyConnector::RegisterPrefs(registry); - policy::PolicyStatisticsCollector::RegisterPrefs(registry); - #if BUILDFLAG(ENABLE_BACKGROUND_MODE) BackgroundModeManager::RegisterPrefs(registry); #endif -#if BUILDFLAG(ENABLE_EXTENSIONS) and defined(OS_CHROMEOS) - chromeos::EasyUnlockService::RegisterPrefs(registry); -#endif - #if BUILDFLAG(ENABLE_PLUGINS) PluginsResourceService::RegisterPrefs(registry); #endif @@ -664,19 +656,16 @@ #if defined(OS_ANDROID) ::android::RegisterPrefs(registry); #else - media_router::RegisterLocalStatePrefs(registry); + enterprise_reporting::RegisterLocalStatePrefs(registry); // The native GCM is used on Android instead. gcm::GCMChannelStatusSyncer::RegisterPrefs(registry); gcm::RegisterPrefs(registry); + media_router::RegisterLocalStatePrefs(registry); metrics::TabStatsTracker::RegisterPrefs(registry); RegisterBrowserPrefs(registry); StartupBrowserCreator::RegisterLocalStatePrefs(registry); task_manager::TaskManagerInterface::RegisterPrefs(registry); UpgradeDetector::RegisterPrefs(registry); - enterprise_reporting::RegisterLocalStatePrefs(registry); -#if !defined(OS_CHROMEOS) - RegisterDefaultBrowserPromptPrefs(registry); -#endif // !defined(OS_CHROMEOS) #endif // !defined(OS_ANDROID) #if defined(OS_CHROMEOS) @@ -691,6 +680,7 @@ chromeos::DemoSetupController::RegisterLocalStatePrefs(registry); chromeos::DeviceOAuth2TokenService::RegisterPrefs(registry); chromeos::device_settings_cache::RegisterPrefs(registry); + chromeos::EasyUnlockService::RegisterPrefs(registry); chromeos::echo_offer::RegisterPrefs(registry); chromeos::EnableAdbSideloadingScreen::RegisterPrefs(registry); chromeos::EnableDebuggingScreenHandler::RegisterPrefs(registry); @@ -740,7 +730,7 @@ UpgradeDetectorChromeos::RegisterPrefs(registry); syncer::PerUserTopicSubscriptionManager::RegisterPrefs(registry); syncer::InvalidatorRegistrarWithMemory::RegisterPrefs(registry); -#endif +#endif // defined(OS_CHROMEOS) #if defined(OS_MACOSX) confirm_quit::RegisterLocalState(registry); @@ -766,6 +756,10 @@ registry->RegisterStringPref(kLastWelcomedOSVersion, std::string()); #endif // defined(OS_WIN) +#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) + RegisterDefaultBrowserPromptPrefs(registry); +#endif + // Obsolete. See MigrateObsoleteBrowserPrefs(). registry->RegisterIntegerPref(metrics::prefs::kStabilityExecutionPhase, 0); #if !defined(OS_ANDROID) @@ -870,6 +864,11 @@ feature_engagement::SessionDurationUpdater::RegisterProfilePrefs(registry); #endif +#if BUILDFLAG(ENABLE_OFFLINE_PAGES) + offline_pages::OfflineMetricsCollectorImpl::RegisterPrefs(registry); + offline_pages::prefetch_prefs::RegisterPrefs(registry); +#endif + #if BUILDFLAG(ENABLE_PLUGINS) PluginInfoHostImpl::RegisterUserPrefs(registry); #endif @@ -879,6 +878,10 @@ printing::PrintPreviewStickySettings::RegisterProfilePrefs(registry); #endif +#if BUILDFLAG(ENABLE_RLZ) + ChromeRLZTrackerDelegate::RegisterProfilePrefs(registry); +#endif + #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) LocalDiscoveryUI::RegisterProfilePrefs(registry); #endif @@ -890,56 +893,51 @@ #endif #if defined(OS_ANDROID) - ntp_tiles::PopularSitesImpl::RegisterProfilePrefs(registry); - variations::VariationsService::RegisterProfilePrefs(registry); + cdm::MediaDrmStorageImpl::RegisterProfilePrefs(registry); + explore_sites::HistoryStatisticsReporter::RegisterPrefs(registry); + games::prefs::RegisterProfilePrefs(registry); GeolocationPermissionContextAndroid::RegisterProfilePrefs(registry); KnownInterceptionDisclosureInfoBarDelegate::RegisterProfilePrefs(registry); + MediaDrmOriginIdManager::RegisterProfilePrefs(registry); + NotificationChannelsProviderAndroid::RegisterProfilePrefs(registry); + ntp_snippets::ClickBasedCategoryRanker::RegisterProfilePrefs(registry); + ntp_tiles::PopularSitesImpl::RegisterProfilePrefs(registry); + OomInterventionDecider::RegisterProfilePrefs(registry); PartnerBookmarksShim::RegisterProfilePrefs(registry); RecentTabsPagePrefs::RegisterProfilePrefs(registry); usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); + variations::VariationsService::RegisterProfilePrefs(registry); #if BUILDFLAG(ENABLE_FEED_IN_CHROME) feed::RegisterProfilePrefs(registry); #endif // BUILDFLAG(ENABLE_FEED_IN_CHROME) -#else +#else // defined(OS_ANDROID) apps::AppServiceProxy::RegisterProfilePrefs(registry); AppShortcutManager::RegisterProfilePrefs(registry); - DeviceIDFetcher::RegisterProfilePrefs(registry); - DevToolsWindow::RegisterProfilePrefs(registry); - extensions::CommandService::RegisterProfilePrefs(registry); - extensions::TabsCaptureVisibleTabFunction::RegisterProfilePrefs(registry); - NewTabUI::RegisterProfilePrefs(registry); - PepperFlashSettingsManager::RegisterProfilePrefs(registry); - PinnedTabCodec::RegisterProfilePrefs(registry); - signin::RegisterProfilePrefs(registry); -#endif - -#if defined(OS_ANDROID) - cdm::MediaDrmStorageImpl::RegisterProfilePrefs(registry); - MediaDrmOriginIdManager::RegisterProfilePrefs(registry); - explore_sites::HistoryStatisticsReporter::RegisterPrefs(registry); - ntp_snippets::ClickBasedCategoryRanker::RegisterProfilePrefs(registry); - OomInterventionDecider::RegisterProfilePrefs(registry); - games::prefs::RegisterProfilePrefs(registry); -#endif // defined(OS_ANDROID) - -#if !defined(OS_ANDROID) browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry); ChromeAuthenticatorRequestDelegate::RegisterProfilePrefs(registry); + DeviceIDFetcher::RegisterProfilePrefs(registry); + DevToolsWindow::RegisterProfilePrefs(registry); + enterprise_reporting::RegisterProfilePrefs(registry); + extensions::CommandService::RegisterProfilePrefs(registry); + extensions::TabsCaptureVisibleTabFunction::RegisterProfilePrefs(registry); first_run::RegisterProfilePrefs(registry); - HatsService::RegisterProfilePrefs(registry); - InstantService::RegisterProfilePrefs(registry); - PromoService::RegisterProfilePrefs(registry); - SearchSuggestService::RegisterProfilePrefs(registry); gcm::GCMChannelStatusSyncer::RegisterProfilePrefs(registry); gcm::RegisterProfilePrefs(registry); + HatsService::RegisterProfilePrefs(registry); + HistoryUI::RegisterProfilePrefs(registry); + InstantService::RegisterProfilePrefs(registry); media_router::RegisterProfilePrefs(registry); + NewTabUI::RegisterProfilePrefs(registry); ntp_tiles::CustomLinksManagerImpl::RegisterProfilePrefs(registry); + PepperFlashSettingsManager::RegisterProfilePrefs(registry); + PinnedTabCodec::RegisterProfilePrefs(registry); + PromoService::RegisterProfilePrefs(registry); + SearchSuggestService::RegisterProfilePrefs(registry); + settings::SettingsUI::RegisterProfilePrefs(registry); + signin::RegisterProfilePrefs(registry); StartupBrowserCreator::RegisterProfilePrefs(registry); -#endif - -#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) - default_apps::RegisterProfilePrefs(registry); -#endif + UnifiedAutoplayConfig::RegisterProfilePrefs(registry); +#endif // defined(OS_ANDROID) #if defined(OS_CHROMEOS) app_list::AppListSyncableService::RegisterProfilePrefs(registry); @@ -983,12 +981,9 @@ policy::AppInstallEventLogger::RegisterProfilePrefs(registry); policy::AppInstallEventLogManagerWrapper::RegisterProfilePrefs(registry); policy::StatusCollector::RegisterProfilePrefs(registry); + RegisterChromeLauncherUserPrefs(registry); ::onc::RegisterProfilePrefs(registry); -#endif - -#if BUILDFLAG(ENABLE_RLZ) - ChromeRLZTrackerDelegate::RegisterProfilePrefs(registry); -#endif +#endif // defined(OS_CHROMEOS) #if defined(OS_WIN) component_updater::RegisterProfilePrefsForSwReporter(registry); @@ -1003,39 +998,17 @@ browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry); #endif -#if defined(TOOLKIT_VIEWS) - accessibility_prefs::RegisterInvertBubbleUserPrefs(registry); - RegisterBrowserViewProfilePrefs(registry); -#endif - -#if defined(OS_CHROMEOS) - RegisterChromeLauncherUserPrefs(registry); -#endif - -#if !defined(OS_ANDROID) - HistoryUI::RegisterProfilePrefs(registry); - settings::SettingsUI::RegisterProfilePrefs(registry); -#endif - -#if BUILDFLAG(ENABLE_OFFLINE_PAGES) - offline_pages::OfflineMetricsCollectorImpl::RegisterPrefs(registry); - offline_pages::prefetch_prefs::RegisterPrefs(registry); -#endif - -#if defined(OS_ANDROID) - NotificationChannelsProviderAndroid::RegisterProfilePrefs(registry); -#endif - -#if !defined(OS_ANDROID) - UnifiedAutoplayConfig::RegisterProfilePrefs(registry); +#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) + default_apps::RegisterProfilePrefs(registry); #endif #if !defined(OS_CHROMEOS) && BUILDFLAG(ENABLE_EXTENSIONS) extensions::enterprise_reporting::RegisterProfilePrefs(registry); #endif -#if !defined(OS_ANDROID) - enterprise_reporting::RegisterProfilePrefs(registry); +#if defined(TOOLKIT_VIEWS) + accessibility_prefs::RegisterInvertBubbleUserPrefs(registry); + RegisterBrowserViewProfilePrefs(registry); #endif RegisterProfilePrefsForMigration(registry);
diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc index ed00da9..f7ce4ce 100644 --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc
@@ -21,6 +21,7 @@ #include "third_party/blink/public/mojom/renderer_preferences.mojom.h" #include "third_party/blink/public/public_buildflags.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/base/ui_base_features.h" #if defined(TOOLKIT_VIEWS) #include "ui/views/controls/textfield/textfield.h" @@ -178,6 +179,10 @@ prefs->allow_cross_origin_auth_prompt = local_state->GetBoolean(prefs::kAllowCrossOriginAuthPrompt); } + + if (::features::IsFormControlsRefreshEnabled()) { + prefs->focus_ring_color = SkColorSetRGB(0x10, 0x10, 0x10); + } } } // namespace renderer_preferences_util
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc index 4c635c0..2fa13cd 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc
@@ -268,12 +268,20 @@ return DiscardTabImpl(LifecycleUnitDiscardReason::EXTERNAL); } -void TabManager::LogMemoryAndDiscardTab(LifecycleUnitDiscardReason reason) { +void TabManager::DiscardTabFromMemoryPressure() { DCHECK(!base::FeatureList::IsEnabled( performance_manager::features::kUrgentDiscardingFromPerformanceManager)); - // Discard immediately without waiting for LogMemory() (https://crbug/850545). - // Consider removing LogMemory() at all if nobody cares about the log. - LogMemory("Tab Discards Memory details"); + +#if defined(OS_CHROMEOS) + // Output a log with per-process memory usage and number of file descriptors, + // as well as GPU memory details. Discard happens without waiting for the log + // (https://crbug.com/850545) Per comment at + // https://crrev.com/c/chromium/src/+/1980282/3#message-d45cc354e7776d7e3d208e22dd2f6bbca3e9eae8, + // this log is used to diagnose issues on ChromeOS. Do not output it on other + // platforms since it is not used and data shows it can create IO thread hangs + // (https://crbug.com/1040522). + memory::OomMemoryDetails::Log("Tab Discards Memory details"); +#endif // defined(OS_CHROMEOS) // Start handling memory pressure. Suppress further notifications before // completion in case a slow handler queues up multiple dispatches of this @@ -282,12 +290,7 @@ TabDiscardDoneCB tab_discard_done(base::BindOnce( &TabManager::OnTabDiscardDone, weak_ptr_factory_.GetWeakPtr())); - DiscardTab(reason, std::move(tab_discard_done)); -} - -void TabManager::LogMemory(const std::string& title) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - memory::OomMemoryDetails::Log(title); + DiscardTab(LifecycleUnitDiscardReason::URGENT, std::move(tab_discard_done)); } void TabManager::AddObserver(TabLifecycleObserver* observer) { @@ -385,7 +388,7 @@ case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: return; case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: - LogMemoryAndDiscardTab(LifecycleUnitDiscardReason::URGENT); + DiscardTabFromMemoryPressure(); return; } NOTREACHED();
diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h index 779ab3d..7722635 100644 --- a/chrome/browser/resource_coordinator/tab_manager.h +++ b/chrome/browser/resource_coordinator/tab_manager.h
@@ -8,7 +8,6 @@ #include <stdint.h> #include <memory> -#include <string> #include <vector> #include "base/compiler_specific.h" @@ -104,13 +103,8 @@ // was discarded. content::WebContents* DiscardTabByExtension(content::WebContents* contents); - // Log memory statistics for the running processes, then discards a tab. - // Tab discard happens sometime later, as collecting the statistics touches - // multiple threads and takes time. - void LogMemoryAndDiscardTab(LifecycleUnitDiscardReason reason); - - // Log memory statistics for the running processes. - void LogMemory(const std::string& title); + // Discards a tab in response to memory pressure. + void DiscardTabFromMemoryPressure(); // TODO(fdoray): Remove these methods. TabManager shouldn't know about tabs. // https://crbug.com/775644
diff --git a/chrome/browser/resources/settings/people_page/sync_browser_proxy.js b/chrome/browser/resources/settings/people_page/sync_browser_proxy.js index 5ae3a43c..b846335 100644 --- a/chrome/browser/resources/settings/people_page/sync_browser_proxy.js +++ b/chrome/browser/resources/settings/people_page/sync_browser_proxy.js
@@ -98,6 +98,11 @@ }; /** + * @typedef {{requestSucceeded: boolean, historyRecordingEnabled: boolean}} + */ + let HistoryRecordingEnabled; + + /** * Key to be used with localStorage. * @type {string} */ @@ -207,6 +212,13 @@ * manager in passwords section on page load. */ sendSyncPrefsChanged() {} + + /** + * Fetches if history recording is enabled and can be used to provide + * personalized experience. + * @return {!Promise<!HistoryRecordingEnabled>} + */ + queryIsHistoryRecordingEnabled() {} } /** @@ -304,6 +316,11 @@ sendSyncPrefsChanged() { chrome.send('SyncPrefsDispatch'); } + + /** @override */ + queryIsHistoryRecordingEnabled() { + return cr.sendWithPromise('GetIsHistoryRecordingEnabledAndCanBeUsed'); + } } cr.addSingletonGetter(SyncBrowserProxyImpl);
diff --git a/chrome/browser/resources/settings/people_page/sync_page.html b/chrome/browser/resources/settings/people_page/sync_page.html index aa881290..ece496c4 100644 --- a/chrome/browser/resources/settings/people_page/sync_page.html +++ b/chrome/browser/resources/settings/people_page/sync_page.html
@@ -14,6 +14,7 @@ <link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html"> <link rel="import" href="sync_account_control.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner-lite.html"> <link rel="import" href="sync_browser_proxy.html"> <link rel="import" href="../privacy_page/personalization_options.html"> <link rel="import" href="../route.html"> @@ -81,6 +82,32 @@ width: 40px; } + #history-usage-state { + text-align: end; + vertical-align: middle; + width: 36px; + } + + #history-usage-row[disabled] { + pointer-events: none; + } + + #history-usage-row[disabled] > #history-usage-state { + text-align: center; + } + + #history-usage-row > cr-icon-button.icon-external { + margin-inline-start: 1px; + } + + #history-usage-state paper-spinner-lite { + --paper-spinner-color: var(--google-grey-500); + --paper-spinner-stroke-width: 2px; + height: var(--cr-icon-size); + vertical-align: middle; + width: var(--cr-icon-size); + } + #toast { left: 0; z-index: 1; @@ -168,13 +195,31 @@ </cr-icon-button> </div> - <a class="inherit-color no-outline list-item" tabindex="-1" + <a id="history-usage-row" + class="inherit-color no-outline list-item" tabindex="-1" target="_blank" href="$i18n{activityControlsUrl}" - on-click="onActivityControlsTap_"> + on-click="onActivityControlsTap_" + disabled$="[[hideActivityControlsUrl_]]"> <div class="start settings-box-text"> $i18n{personalizeGoogleServicesTitle} + <div id="history-usage-hint" + class="secondary" hidden$="[[!isSWAAFetched_(sWAA_)]]"> + [[getHistoryUsageHint_(sWAA_, syncPrefs.encryptAllData, + syncPrefs.typedUrlsSynced)]] + </div> </div> - <cr-icon-button class="icon-external"></cr-icon-button> + <div id="history-usage-state" + hidden$="[[!syncSetupFriendlySettings_]]"> + <paper-spinner-lite + class="last" hidden$="[[!isSWAAFetching_(sWAA_)]]" active> + </paper-spinner-lite> + <div class="secondary" hidden$="[[!isSWAAFetched_(sWAA_)]]"> + [[getSWAAStateText_(sWAA_)]] + </div> + </div> + <cr-icon-button class="icon-external" + hidden$="[[hideActivityControlsUrl_]]"> + </cr-icon-button> </a> <a id="syncDashboardLink"
diff --git a/chrome/browser/resources/settings/people_page/sync_page.js b/chrome/browser/resources/settings/people_page/sync_page.js index 80b678c..2773656b 100644 --- a/chrome/browser/resources/settings/people_page/sync_page.js +++ b/chrome/browser/resources/settings/people_page/sync_page.js
@@ -15,6 +15,18 @@ }; /** + * All possible states for the sWAA bit. + * @enum {string} + */ +const sWAAState = { + NOT_FETCHED: 'not-fetched', + FETCHING: 'fetching', + FAILED: 'failed', + ON: 'On', + OFF: 'Off', +}; + +/** * @fileoverview * 'settings-sync-page' is the settings page containing sync settings. */ @@ -24,6 +36,7 @@ behaviors: [ WebUIListenerBehavior, settings.RouteObserverBehavior, + I18nBehavior, ], properties: { @@ -149,12 +162,55 @@ computed: 'computeDisableEncryptionOptions_(' + 'syncPrefs, syncStatus)', }, + + /** + * If sync page friendly settings is enabled. + * @private + */ + syncSetupFriendlySettings_: { + type: Boolean, + value: function() { + return loadTimeData.valueExists('syncSetupFriendlySettings') && + loadTimeData.getBoolean('syncSetupFriendlySettings'); + } + }, + + /** + * Whether history is not synced or data is encrypted. + * @private + */ + historyNotSyncedOrEncrypted_: { + type: Boolean, + computed: 'computeHistoryNotSyncedOrEncrypted_(' + + 'syncPrefs.encryptAllData, syncPrefs.typedUrlsSynced)', + }, + + /** @private */ + hideActivityControlsUrl_: { + type: Boolean, + computed: 'computeHideActivityControlsUrl_(historyNotSyncedOrEncrypted_)', + }, + + /** @private */ + sWAA_: { + type: String, + value: sWAAState.NOT_FETCHED, + }, }, + observers: ['fetchSWAA_(syncSectionDisabled_, historyNotSyncedOrEncrypted_)'], + /** @private {?settings.SyncBrowserProxy} */ browserProxy_: null, /** + * The visibility changed callback is used to refetch the |sWAA_| bit when + * the page is foregrounded. + * @private {?Function} + */ + visibilityChangedCallback_: null, + + /** * The beforeunload callback is used to show the 'Leave site' dialog. This * makes sure that the user has the chance to go back and confirm the sync * opt-in before leaving. @@ -252,6 +308,113 @@ }, /** + * @return {boolean} Returns true if History sync is off or data is encrypted. + * @private + */ + computeHistoryNotSyncedOrEncrypted_: function() { + return !!(this.syncPrefs) && + (!this.syncPrefs.typedUrlsSynced || this.syncPrefs.encryptAllData); + }, + + /** + * @return {boolean} + * @private + */ + computeHideActivityControlsUrl_: function() { + return !!this.syncSetupFriendlySettings_ && + !!this.historyNotSyncedOrEncrypted_; + }, + + + /** + * Compute and fetch the sWAA bit for sync users. sWAA is 'OFF' if sync + * history is off or data is encrypted with custom passphrase. Otherwise, + * a query to |Web and App Activity| is needed. + * @private + */ + fetchSWAA_: function() { + if (settings.getCurrentRoute() !== settings.routes.SYNC) { + return; + } + + if (!this.syncSetupFriendlySettings_) { + return; + } + + if (!this.syncPrefs || this.syncPrefs.encryptAllData === undefined || + this.syncPrefs.typedUrlsSynced === undefined) { + return; + } + + if (this.syncSectionDisabled_) { + this.sWAA_ = sWAAState.NOT_FETCHED; + return; + } + + if (this.historyNotSyncedOrEncrypted_) { + this.sWAA_ = sWAAState.OFF; + return; + } + + if (this.sWAA_ === sWAAState.FETCHING) { + return; + } + + this.sWAA_ = sWAAState.FETCHING; + const updateSWAA = historyRecordingEnabled => { + this.sWAA_ = historyRecordingEnabled.requestSucceeded ? + (historyRecordingEnabled.historyRecordingEnabled ? sWAAState.ON : + sWAAState.OFF) : + sWAAState.FAILED; + }; + this.browserProxy_.queryIsHistoryRecordingEnabled().then(updateSWAA); + }, + + /** + * Refetch sWAA when the page is forgrounded, to guarantee the value shown is + * most up-to-date. + * @private + */ + visibilityHandler_: function() { + if (document.visibilityState === 'visible') { + this.fetchSWAA_(); + } + }, + + /** + * Return hint to explain the sWAA state. It is displayed as secondary text in + * the history usage row. + * @private + */ + getHistoryUsageHint_: function() { + if (this.sWAA_ === sWAAState.ON) { + return this.i18n('sWAAOnHint'); + } + + if (this.sWAA_ === sWAAState.OFF) { + if (this.syncPrefs.encryptAllData) { + return this.i18n('dataEncryptedHint'); + } + + if (!this.syncPrefs.typedUrlsSynced) { + return this.i18n('historySyncOffHint'); + } + return this.i18n('sWAAOffHint'); + } + return ''; + }, + + /** + * @private + */ + getSWAAStateText_: function() { + if (!this.isSWAAFetched_()) { + return ''; + } + return this.i18n(this.sWAA_ === sWAAState.ON ? 'sWAAOn' : 'sWAAOff'); + }, + + /** * @return {boolean} * @private */ @@ -334,10 +497,27 @@ return expectedPageStatus == this.pageStatus_; }, + /** + * @return {boolean} + * @private + */ + isSWAAFetching_: function() { + return this.sWAA_ === sWAAState.FETCHING; + }, + + /** + * @return {boolean} + * @private + */ + isSWAAFetched_: function() { + return this.sWAA_ === sWAAState.ON || this.sWAA_ === sWAAState.OFF; + }, + /** @private */ onNavigateToPage_: function() { assert(settings.getCurrentRoute() == settings.routes.SYNC); - + this.sWAA_ = sWAAState.NOT_FETCHED; + this.fetchSWAA_(); if (this.beforeunloadCallback_) { return; } @@ -364,6 +544,11 @@ this.unloadCallback_ = this.onNavigateAwayFromPage_.bind(this); window.addEventListener('unload', this.unloadCallback_); + + this.visibilityChangedCallback_ = this.visibilityHandler_.bind(this); + window.addEventListener('focus', this.visibilityChangedCallback_); + document.addEventListener( + 'visibilitychange', this.visibilityChangedCallback_); }, /** @private */ @@ -385,6 +570,13 @@ window.removeEventListener('unload', this.unloadCallback_); this.unloadCallback_ = null; } + + if (this.visibilityChangedCallback_) { + window.removeEventListener('focus', this.visibilityChangedCallback_); + document.removeEventListener( + 'visibilitychange', this.visibilityChangedCallback_); + this.visibilityChangedCallback_ = null; + } }, /** @@ -403,6 +595,10 @@ (this.syncStatus && this.syncStatus.supervisedUser)) { this.creatingNewPassphrase_ = false; } + + if (this.sWAA_ === sWAAState.FAILED) { + this.fetchSWAA_(); + } }, /** @private */
diff --git a/chrome/browser/sessions/session_tab_helper.cc b/chrome/browser/sessions/session_tab_helper.cc index 9886e495..70f659b 100644 --- a/chrome/browser/sessions/session_tab_helper.cc +++ b/chrome/browser/sessions/session_tab_helper.cc
@@ -8,6 +8,7 @@ #include "components/sessions/content/content_serialized_navigation_builder.h" #include "content/public/browser/navigation_details.h" #include "content/public/browser/web_contents.h" +#include "extensions/buildflags/buildflags.h" #if BUILDFLAG(ENABLE_EXTENSIONS) #include "extensions/common/extension_messages.h" @@ -23,8 +24,7 @@ session_id_(SessionID::NewUnique()), window_id_(SessionID::InvalidValue()) {} -SessionTabHelper::~SessionTabHelper() { -} +SessionTabHelper::~SessionTabHelper() = default; void SessionTabHelper::SetWindowID(const SessionID& id) { window_id_ = id; @@ -114,19 +114,5 @@ session_service->UpdateTabNavigation(window_id(), session_id(), navigation); } #endif -#if BUILDFLAG(ENABLE_EXTENSIONS) -void SessionTabHelper::SetTabExtensionAppID( - const std::string& extension_app_id) { -#if BUILDFLAG(ENABLE_SESSION_SERVICE) - SessionService* session_service = SessionServiceFactory::GetForProfile( - Profile::FromBrowserContext(web_contents()->GetBrowserContext())); - if (!session_service) - return; - - session_service->SetTabExtensionAppID(window_id(), session_id(), - extension_app_id); -#endif -} -#endif WEB_CONTENTS_USER_DATA_KEY_IMPL(SessionTabHelper)
diff --git a/chrome/browser/sessions/session_tab_helper.h b/chrome/browser/sessions/session_tab_helper.h index 0a51079..f3e8182 100644 --- a/chrome/browser/sessions/session_tab_helper.h +++ b/chrome/browser/sessions/session_tab_helper.h
@@ -10,7 +10,6 @@ #include "components/sessions/core/session_id.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" -#include "extensions/buildflags/buildflags.h" // This class keeps the extension API's windowID up to date with the current // window of the tab and observes navigation events. @@ -56,10 +55,6 @@ const content::EntryChangedDetails& change_details) override; #endif -#if BUILDFLAG(ENABLE_EXTENSIONS) - void SetTabExtensionAppID(const std::string& extension_app_id); -#endif - private: explicit SessionTabHelper(content::WebContents* contents); friend class content::WebContentsUserData<SessionTabHelper>;
diff --git a/chrome/browser/supervised_user/logged_in_user_mixin.h b/chrome/browser/supervised_user/logged_in_user_mixin.h index a0afc535..807ae2b 100644 --- a/chrome/browser/supervised_user/logged_in_user_mixin.h +++ b/chrome/browser/supervised_user/logged_in_user_mixin.h
@@ -96,6 +96,10 @@ UserPolicyMixin* GetUserPolicyMixin() { return &user_policy_; } + LocalPolicyTestServerMixin* GetLocalPolicyTestServerMixin() { + return &local_policy_server_; + } + policy::UserPolicyTestHelper* GetUserPolicyTestHelper() { return &user_policy_helper_; }
diff --git a/chrome/browser/sync/trusted_vault_client_android.cc b/chrome/browser/sync/trusted_vault_client_android.cc index 289a271..6c53226 100644 --- a/chrome/browser/sync/trusted_vault_client_android.cc +++ b/chrome/browser/sync/trusted_vault_client_android.cc
@@ -62,6 +62,10 @@ std::move(cb).Run(!!result); } +void TrustedVaultClientAndroid::NotifyKeysChanged(JNIEnv* env) { + observer_list_.Notify(); +} + std::unique_ptr<TrustedVaultClientAndroid::Subscription> TrustedVaultClientAndroid::AddKeysChangedObserver( const base::RepeatingClosure& cb) {
diff --git a/chrome/browser/sync/trusted_vault_client_android.h b/chrome/browser/sync/trusted_vault_client_android.h index 6cb94a2b..6f980d2 100644 --- a/chrome/browser/sync/trusted_vault_client_android.h +++ b/chrome/browser/sync/trusted_vault_client_android.h
@@ -41,6 +41,9 @@ // ongoing MarkKeysAsStale() request. void MarkKeysAsStaleCompleted(JNIEnv* env, jboolean result); + // Called from Java to notify that the keys in the vault may have changed. + void NotifyKeysChanged(JNIEnv* env); + // TrustedVaultClient implementation. std::unique_ptr<Subscription> AddKeysChangedObserver( const base::RepeatingClosure& cb) override;
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 082c900..d063bdb0 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -509,7 +509,7 @@ "//components/signin/public/identity_manager", "//components/spellcheck/browser", "//components/ssl_errors", - "//components/startup_metric_utils/browser:lib", + "//components/startup_metric_utils/browser", "//components/strings", "//components/subresource_filter/content/browser", "//components/subresource_filter/core/browser",
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc index 6edc6f8..7608ed3 100644 --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc
@@ -107,6 +107,11 @@ const base::Feature kWebUITabStripDemoOptions{ "WebUITabStripDemoOptions", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables friendly settings for the |chrome://settings/syncSetup| page. +// https://crbug.com/1035421. +const base::Feature kSyncSetupFriendlySettings{ + "SyncSetupFriendlySettings", base::FEATURE_DISABLED_BY_DEFAULT}; + #if defined(OS_CHROMEOS) // Enables a warning about connecting to hidden WiFi networks. // https://crbug.com/903908
diff --git a/chrome/browser/ui/ui_features.h b/chrome/browser/ui/ui_features.h index 946b268..ac1cf17 100644 --- a/chrome/browser/ui/ui_features.h +++ b/chrome/browser/ui/ui_features.h
@@ -54,6 +54,8 @@ extern const base::Feature kWebUITabStripDemoOptions; +extern const base::Feature kSyncSetupFriendlySettings; + #if defined(OS_CHROMEOS) extern const base::Feature kHiddenNetworkWarning; #endif // defined(OS_CHROMEOS)
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index 882bafa3..492a0be2 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -525,23 +525,8 @@ BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view) : AnimationDelegateViews(this), - button_listener_(this), - menu_button_listener_(this), - page_navigator_(nullptr), - managed_(nullptr), - bookmark_menu_(nullptr), - bookmark_drop_menu_(nullptr), - other_bookmarks_button_(nullptr), - managed_bookmarks_button_(nullptr), - apps_page_shortcut_(nullptr), - overflow_button_(nullptr), - bookmarks_separator_view_(nullptr), browser_(browser), - browser_view_(browser_view), - infobar_visible_(false), - size_animation_(this), - throbbing_view_(nullptr), - bookmark_bar_state_(BookmarkBar::SHOW) { + browser_view_(browser_view) { SetID(VIEW_ID_BOOKMARK_BAR); Init(); @@ -1451,21 +1436,17 @@ // Child views are traversed in the order they are added. Make sure the order // they are added matches the visual order. - apps_page_shortcut_ = CreateAppsPageShortcutButton(); - AddChildView(apps_page_shortcut_); + apps_page_shortcut_ = AddChildView(CreateAppsPageShortcutButton()); - managed_bookmarks_button_ = CreateManagedBookmarksButton(); + managed_bookmarks_button_ = AddChildView(CreateManagedBookmarksButton()); // Also re-enabled when the model is loaded. managed_bookmarks_button_->SetEnabled(false); - AddChildView(managed_bookmarks_button_); - overflow_button_ = CreateOverflowButton(); - AddChildView(overflow_button_); + overflow_button_ = AddChildView(CreateOverflowButton()); - other_bookmarks_button_ = CreateOtherBookmarksButton(); + other_bookmarks_button_ = AddChildView(CreateOtherBookmarksButton()); // We'll re-enable when the model is loaded. other_bookmarks_button_->SetEnabled(false); - AddChildView(other_bookmarks_button_); profile_pref_registrar_.Init(browser_->profile()->GetPrefs()); profile_pref_registrar_.Add( @@ -1479,8 +1460,8 @@ apps_page_shortcut_->SetVisible( chrome::ShouldShowAppsShortcutInBookmarkBar(browser_->profile())); - bookmarks_separator_view_ = new ButtonSeparatorView(); - AddChildView(bookmarks_separator_view_); + bookmarks_separator_view_ = + AddChildView(std::make_unique<ButtonSeparatorView>()); UpdateBookmarksSeparatorVisibility(); set_context_menu_controller(this); @@ -1503,26 +1484,26 @@ return i - bookmark_buttons_.cbegin(); } -MenuButton* BookmarkBarView::CreateOtherBookmarksButton() { +std::unique_ptr<MenuButton> BookmarkBarView::CreateOtherBookmarksButton() { // Title is set in Loaded. - MenuButton* button = - new BookmarkFolderButton(base::string16(), &menu_button_listener_); + auto button = std::make_unique<BookmarkFolderButton>(base::string16(), + &menu_button_listener_); button->SetID(VIEW_ID_OTHER_BOOKMARKS); button->set_context_menu_controller(this); return button; } -MenuButton* BookmarkBarView::CreateManagedBookmarksButton() { +std::unique_ptr<MenuButton> BookmarkBarView::CreateManagedBookmarksButton() { // Title is set in Loaded. - MenuButton* button = - new BookmarkFolderButton(base::string16(), &menu_button_listener_); + auto button = std::make_unique<BookmarkFolderButton>(base::string16(), + &menu_button_listener_); button->SetID(VIEW_ID_MANAGED_BOOKMARKS); button->set_context_menu_controller(this); return button; } -MenuButton* BookmarkBarView::CreateOverflowButton() { - MenuButton* button = new OverflowButton(this, &menu_button_listener_); +std::unique_ptr<MenuButton> BookmarkBarView::CreateOverflowButton() { + auto button = std::make_unique<OverflowButton>(this, &menu_button_listener_); // The overflow button's image contains an arrow and therefore it is a // direction sensitive image and we need to flip it if the UI layout is @@ -1541,26 +1522,29 @@ return button; } -views::View* BookmarkBarView::CreateBookmarkButton(const BookmarkNode* node) { +std::unique_ptr<views::View> BookmarkBarView::CreateBookmarkButton( + const BookmarkNode* node) { int index = node->parent()->GetIndexOf(node); - views::LabelButton* button = nullptr; + std::unique_ptr<views::LabelButton> button; if (node->is_url()) { - button = - new BookmarkButton(&button_listener_, node->url(), node->GetTitle()); + button = std::make_unique<BookmarkButton>(&button_listener_, node->url(), + node->GetTitle()); button->GetViewAccessibility().OverrideDescription(url_formatter::FormatUrl( node->url(), url_formatter::kFormatUrlOmitDefaults, net::UnescapeRule::SPACES, nullptr, nullptr, nullptr)); } else { - button = new BookmarkFolderButton(node->GetTitle(), &menu_button_listener_); + button = std::make_unique<BookmarkFolderButton>(node->GetTitle(), + &menu_button_listener_); button->GetViewAccessibility().OverrideDescription(""); } - ConfigureButton(node, button); - bookmark_buttons_.insert(bookmark_buttons_.cbegin() + index, button); + ConfigureButton(node, button.get()); + bookmark_buttons_.insert(bookmark_buttons_.cbegin() + index, button.get()); return button; } -views::LabelButton* BookmarkBarView::CreateAppsPageShortcutButton() { - views::LabelButton* button = new ShortcutButton( +std::unique_ptr<views::LabelButton> +BookmarkBarView::CreateAppsPageShortcutButton() { + auto button = std::make_unique<ShortcutButton>( &button_listener_, l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME)); button->SetTooltipText( @@ -2000,8 +1984,9 @@ LayoutAndPaint(); } -void BookmarkBarView::InsertBookmarkButtonAtIndex(views::View* button, - size_t index) { +void BookmarkBarView::InsertBookmarkButtonAtIndex( + std::unique_ptr<views::View> button, + size_t index) { // All of the secondary buttons are always in the view hierarchy, even if // they're not visible. The order should be: [Apps shortcut] [Managed bookmark // button] ..bookmark buttons.. [Overflow chevron] [Other bookmarks] @@ -2019,7 +2004,7 @@ DCHECK_EQ(*i++, overflow_button_); DCHECK_EQ(*i++, other_bookmarks_button_); #endif - AddChildViewAt(button, + AddChildViewAt(std::move(button), GetIndexOf(managed_bookmarks_button_) + 1 + int{index}); }
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h index 4f36df04..9362500 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
@@ -278,19 +278,20 @@ size_t GetFirstHiddenNodeIndex(); // Creates the button showing the "Other Bookmarks" folder. - views::MenuButton* CreateOtherBookmarksButton(); + std::unique_ptr<views::MenuButton> CreateOtherBookmarksButton(); // Creates the button showing the "Managed Bookmarks" folder. - views::MenuButton* CreateManagedBookmarksButton(); + std::unique_ptr<views::MenuButton> CreateManagedBookmarksButton(); // Creates the button used when not all bookmark buttons fit. - views::MenuButton* CreateOverflowButton(); + std::unique_ptr<views::MenuButton> CreateOverflowButton(); // Creates the button for rendering the specified bookmark node. - views::View* CreateBookmarkButton(const bookmarks::BookmarkNode* node); + std::unique_ptr<views::View> CreateBookmarkButton( + const bookmarks::BookmarkNode* node); // Creates the button for rendering the apps page shortcut. - views::LabelButton* CreateAppsPageShortcutButton(); + std::unique_ptr<views::LabelButton> CreateAppsPageShortcutButton(); // Configures the button from the specified node. This sets the text, // and icon. @@ -373,77 +374,78 @@ // Inserts |button| in logical position |index| in the bar, maintaining // correct focus traversal order. - void InsertBookmarkButtonAtIndex(views::View* button, size_t index); + void InsertBookmarkButtonAtIndex(std::unique_ptr<views::View> button, + size_t index); // Returns the model index for the bookmark associated with |button|, // or size_t{-1} if |button| is not a bookmark button from this bar. size_t GetIndexForButton(views::View* button); // These forward button callbacks into ::On{Menu}ButtonPressed. - ButtonListener button_listener_; - MenuButtonListener menu_button_listener_; + ButtonListener button_listener_{this}; + MenuButtonListener menu_button_listener_{this}; // Needed to react to kShowAppsShortcutInBookmarkBar changes. PrefChangeRegistrar profile_pref_registrar_; // Used for opening urls. - content::PageNavigator* page_navigator_; + content::PageNavigator* page_navigator_ = nullptr; // BookmarkModel that owns the entries and folders that are shown in this // view. This is owned by the Profile. - bookmarks::BookmarkModel* model_; + bookmarks::BookmarkModel* model_ = nullptr; // ManagedBookmarkService. This is owned by the Profile. - bookmarks::ManagedBookmarkService* managed_; + bookmarks::ManagedBookmarkService* managed_ = nullptr; // Used to manage showing a Menu, either for the most recently bookmarked // entries, or for the starred folder. - BookmarkMenuController* bookmark_menu_; + BookmarkMenuController* bookmark_menu_ = nullptr; // Used when showing a menu for drag and drop. That is, if the user drags // over a folder this becomes non-null and manages the menu showing the // contents of the node. - BookmarkMenuController* bookmark_drop_menu_; + BookmarkMenuController* bookmark_drop_menu_ = nullptr; // If non-NULL we're showing a context menu for one of the items on the // bookmark bar. std::unique_ptr<BookmarkContextMenu> context_menu_; // Shows the "Other Bookmarks" folder button. - views::MenuButton* other_bookmarks_button_; + views::MenuButton* other_bookmarks_button_ = nullptr; // Shows the managed bookmarks entries. - views::MenuButton* managed_bookmarks_button_; + views::MenuButton* managed_bookmarks_button_ = nullptr; // Shows the Apps page shortcut. - views::LabelButton* apps_page_shortcut_; + views::LabelButton* apps_page_shortcut_ = nullptr; // Used to track drops on the bookmark bar view. std::unique_ptr<DropInfo> drop_info_; // Visible if not all the bookmark buttons fit. - views::MenuButton* overflow_button_; + views::MenuButton* overflow_button_ = nullptr; // The individual bookmark buttons. std::vector<views::LabelButton*> bookmark_buttons_; - ButtonSeparatorView* bookmarks_separator_view_; + ButtonSeparatorView* bookmarks_separator_view_ = nullptr; Browser* const browser_; BrowserView* browser_view_; // True if the owning browser is showing an infobar. - bool infobar_visible_; + bool infobar_visible_ = false; // Animation controlling showing and hiding of the bar. - gfx::SlideAnimation size_animation_; + gfx::SlideAnimation size_animation_{this}; // If the bookmark bubble is showing, this is the visible ancestor of the URL. // The visible ancestor is either the |other_bookmarks_button_|, // |overflow_button_| or a button on the bar. - views::Button* throbbing_view_; + views::Button* throbbing_view_ = nullptr; - BookmarkBar::State bookmark_bar_state_; + BookmarkBar::State bookmark_bar_state_ = BookmarkBar::SHOW; base::ObserverList<BookmarkBarViewObserver>::Unchecked observers_;
diff --git a/chrome/browser/ui/views/crostini/crostini_ansible_software_config_view_browsertest.cc b/chrome/browser/ui/views/crostini/crostini_ansible_software_config_view_browsertest.cc index b0f52c4..745fc45 100644 --- a/chrome/browser/ui/views/crostini/crostini_ansible_software_config_view_browsertest.cc +++ b/chrome/browser/ui/views/crostini/crostini_ansible_software_config_view_browsertest.cc
@@ -218,7 +218,8 @@ EXPECT_NE(nullptr, ActiveView()); ansible_management_service()->OnApplyAnsiblePlaybookProgress( - vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::SUCCEEDED); + vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::SUCCEEDED, + /*failure_details=*/""); base::RunLoop().RunUntilIdle(); EXPECT_TRUE(HasNoView()); @@ -257,7 +258,8 @@ EXPECT_NE(nullptr, ActiveView()); ansible_management_service()->OnApplyAnsiblePlaybookProgress( - vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::FAILED); + vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::FAILED, + /*failure_details=*/""); base::RunLoop().RunUntilIdle(); EXPECT_NE(nullptr, ActiveView());
diff --git a/chrome/browser/ui/views/crostini/crostini_app_restart_view.cc b/chrome/browser/ui/views/crostini/crostini_app_restart_view.cc index d8363ba3..382e5f4 100644 --- a/chrome/browser/ui/views/crostini/crostini_app_restart_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_app_restart_view.cc
@@ -39,10 +39,6 @@ chrome::RecordDialogCreation(chrome::DialogIdentifier::CROSTINI_APP_RESTART); } -int CrostiniAppRestartView::GetDialogButtons() const { - return ui::DIALOG_BUTTON_CANCEL | ui::DIALOG_BUTTON_OK; -} - bool CrostiniAppRestartView::ShouldShowCloseButton() const { return false; }
diff --git a/chrome/browser/ui/views/crostini/crostini_app_restart_view.h b/chrome/browser/ui/views/crostini/crostini_app_restart_view.h index 6b56f46..c55893f 100644 --- a/chrome/browser/ui/views/crostini/crostini_app_restart_view.h +++ b/chrome/browser/ui/views/crostini/crostini_app_restart_view.h
@@ -15,7 +15,6 @@ static void Show(const ash::ShelfID& id, int64_t display_id); // views::DialogDelegateView: - int GetDialogButtons() const override; bool ShouldShowCloseButton() const override; bool Accept() override; gfx::Size CalculatePreferredSize() const override;
diff --git a/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.cc b/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.cc index b940d6fd..486bf98 100644 --- a/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.cc
@@ -39,10 +39,6 @@ ->Show(); } -int CrostiniAppUninstallerView::GetDialogButtons() const { - return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL; -} - base::string16 CrostiniAppUninstallerView::GetWindowTitle() const { return l10n_util::GetStringUTF16( IDS_CROSTINI_APPLICATION_UNINSTALL_CONFIRM_TITLE);
diff --git a/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.h b/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.h index 74da0cd..0494e1a 100644 --- a/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.h +++ b/chrome/browser/ui/views/crostini/crostini_app_uninstaller_view.h
@@ -21,7 +21,6 @@ static void Show(Profile* profile, const std::string& app_id); // views::DialogDelegateView: - int GetDialogButtons() const override; base::string16 GetWindowTitle() const override; bool ShouldShowCloseButton() const override; bool Accept() override;
diff --git a/chrome/browser/ui/views/crostini/crostini_force_close_view.cc b/chrome/browser/ui/views/crostini/crostini_force_close_view.cc index cb2c52a..ea37670 100644 --- a/chrome/browser/ui/views/crostini/crostini_force_close_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_force_close_view.cc
@@ -57,10 +57,6 @@ return ui::ModalType::MODAL_TYPE_WINDOW; } -int CrostiniForceCloseView::GetDialogButtons() const { - return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL; -} - bool CrostiniForceCloseView::ShouldShowCloseButton() const { return false; }
diff --git a/chrome/browser/ui/views/crostini/crostini_force_close_view.h b/chrome/browser/ui/views/crostini/crostini_force_close_view.h index 4a3912ef..6cf0af0 100644 --- a/chrome/browser/ui/views/crostini/crostini_force_close_view.h +++ b/chrome/browser/ui/views/crostini/crostini_force_close_view.h
@@ -35,7 +35,6 @@ bool Accept() override; ui::ModalType GetModalType() const override; bool ShouldShowCloseButton() const override; - int GetDialogButtons() const override; base::string16 GetWindowTitle() const override; gfx::Size CalculatePreferredSize() const override;
diff --git a/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.cc b/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.cc index 0ee7710..779283a 100644 --- a/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.cc
@@ -32,10 +32,6 @@ ->Show(); } -int CrostiniPackageInstallFailureView::GetDialogButtons() const { - return ui::DIALOG_BUTTON_OK; -} - bool CrostiniPackageInstallFailureView::ShouldShowCloseButton() const { return false; } @@ -54,6 +50,7 @@ CrostiniPackageInstallFailureView::CrostiniPackageInstallFailureView( const std::string& error_message) { + DialogDelegate::set_buttons(ui::DIALOG_BUTTON_OK); views::LayoutProvider* provider = views::LayoutProvider::Get(); SetLayoutManager(std::make_unique<views::BoxLayout>( views::BoxLayout::Orientation::kVertical,
diff --git a/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.h b/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.h index 6ae77fe6..cd825b8f 100644 --- a/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.h +++ b/chrome/browser/ui/views/crostini/crostini_package_install_failure_view.h
@@ -15,7 +15,6 @@ // BubbleDialogDelegateView overrides. bool ShouldShowCloseButton() const override; - int GetDialogButtons() const override; base::string16 GetWindowTitle() const override; gfx::Size CalculatePreferredSize() const override;
diff --git a/chrome/browser/ui/views/crostini/crostini_uninstaller_view.cc b/chrome/browser/ui/views/crostini/crostini_uninstaller_view.cc index 27b5f7b1..4a5d0bf 100644 --- a/chrome/browser/ui/views/crostini/crostini_uninstaller_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_uninstaller_view.cc
@@ -50,19 +50,6 @@ g_crostini_uninstaller_view->GetWidget()->Show(); } -int CrostiniUninstallerView::GetDialogButtons() const { - switch (state_) { - case State::PROMPT: - return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL; - case State::UNINSTALLING: - return ui::DIALOG_BUTTON_NONE; - case State::ERROR: - return ui::DIALOG_BUTTON_CANCEL; - } - NOTREACHED(); - return 0; -} - base::string16 CrostiniUninstallerView::GetWindowTitle() const { const base::string16 device_type = ui::GetChromeOSDeviceName(); return l10n_util::GetStringUTF16(IDS_CROSTINI_UNINSTALLER_TITLE); @@ -74,6 +61,7 @@ bool CrostiniUninstallerView::Accept() { state_ = State::UNINSTALLING; + DialogDelegate::set_buttons(ui::DIALOG_BUTTON_NONE); message_label_->SetText( l10n_util::GetStringUTF16(IDS_CROSTINI_UNINSTALLER_UNINSTALLING_MESSAGE)); @@ -140,6 +128,7 @@ void CrostiniUninstallerView::HandleError(const base::string16& error_message) { state_ = State::ERROR; + DialogDelegate::set_buttons(ui::DIALOG_BUTTON_CANCEL); message_label_->SetVisible(true); message_label_->SetText(error_message); progress_bar_->SetVisible(false);
diff --git a/chrome/browser/ui/views/crostini/crostini_uninstaller_view.h b/chrome/browser/ui/views/crostini/crostini_uninstaller_view.h index a33b0ed..d03548c 100644 --- a/chrome/browser/ui/views/crostini/crostini_uninstaller_view.h +++ b/chrome/browser/ui/views/crostini/crostini_uninstaller_view.h
@@ -34,7 +34,6 @@ static void Show(Profile* profile); // views::DialogDelegateView: - int GetDialogButtons() const override; base::string16 GetWindowTitle() const override; bool ShouldShowCloseButton() const override; bool Accept() override;
diff --git a/chrome/browser/ui/views/crostini/crostini_update_component_view.cc b/chrome/browser/ui/views/crostini/crostini_update_component_view.cc index 270a04f1..355fa8e 100644 --- a/chrome/browser/ui/views/crostini/crostini_update_component_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_update_component_view.cc
@@ -46,10 +46,6 @@ g_crostini_upgrade_view->GetWidget()->Show(); } -int CrostiniUpdateComponentView::GetDialogButtons() const { - return ui::DIALOG_BUTTON_OK; -} - base::string16 CrostiniUpdateComponentView::GetWindowTitle() const { return l10n_util::GetStringUTF16(IDS_CROSTINI_TERMINA_UPDATE_REQUIRED); } @@ -72,6 +68,8 @@ } CrostiniUpdateComponentView::CrostiniUpdateComponentView() { + DialogDelegate::set_buttons(ui::DIALOG_BUTTON_OK); + views::LayoutProvider* provider = views::LayoutProvider::Get(); SetLayoutManager(std::make_unique<views::BoxLayout>( views::BoxLayout::Orientation::kVertical,
diff --git a/chrome/browser/ui/views/crostini/crostini_update_component_view.h b/chrome/browser/ui/views/crostini/crostini_update_component_view.h index ff5eb58..db1842a 100644 --- a/chrome/browser/ui/views/crostini/crostini_update_component_view.h +++ b/chrome/browser/ui/views/crostini/crostini_update_component_view.h
@@ -20,7 +20,6 @@ static void Show(Profile* profile); // views::DialogDelegateView: - int GetDialogButtons() const override; base::string16 GetWindowTitle() const override; bool ShouldShowCloseButton() const override; gfx::Size CalculatePreferredSize() const override;
diff --git a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc index 34d11664..1124a43 100644 --- a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc +++ b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.cc
@@ -90,10 +90,6 @@ g_crostini_update_filesystem_view_dialog->GetWidget()->Show(); } -int CrostiniUpdateFilesystemView::GetDialogButtons() const { - return ui::DIALOG_BUTTON_OK; -} - base::string16 CrostiniUpdateFilesystemView::GetWindowTitle() const { return l10n_util::GetStringUTF16(IDS_CROSTINI_UPGRADING_LABEL); } @@ -118,6 +114,8 @@ CrostiniUpdateFilesystemView::CrostiniUpdateFilesystemView() { constexpr int kDialogSpacingVertical = 32; + DialogDelegate::set_buttons(ui::DIALOG_BUTTON_OK); + views::LayoutProvider* provider = views::LayoutProvider::Get(); SetLayoutManager(std::make_unique<views::BoxLayout>( views::BoxLayout::Orientation::kVertical,
diff --git a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.h b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.h index 7863d199..4fb7dcc 100644 --- a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.h +++ b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view.h
@@ -20,7 +20,6 @@ static void Show(Profile* profile); // views::DialogDelegateView: - int GetDialogButtons() const override; base::string16 GetWindowTitle() const override; bool ShouldShowCloseButton() const override; gfx::Size CalculatePreferredSize() const override;
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc index 71cb631..d79292c6 100644 --- a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc +++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
@@ -29,6 +29,7 @@ #include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/web_applications/system_web_app_ui_utils.h" #include "chrome/browser/ui/webui/app_management/app_management.mojom.h" #include "chrome/browser/ui/webui/app_management/app_management_page_handler.h" @@ -118,6 +119,9 @@ html_source->AddBoolean( "showParentalControls", chromeos::settings::ShouldShowParentalControls(profile)); + html_source->AddBoolean( + "syncSetupFriendlySettings", + base::FeatureList::IsEnabled(::features::kSyncSetupFriendlySettings)); AddSettingsPageUIHandler( std::make_unique<::settings::AccessibilityMainHandler>());
diff --git a/chrome/browser/ui/webui/settings/people_handler.cc b/chrome/browser/ui/webui/settings/people_handler.cc index 6d5442f..4337caf6 100644 --- a/chrome/browser/ui/webui/settings/people_handler.cc +++ b/chrome/browser/ui/webui/settings/people_handler.cc
@@ -16,6 +16,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/values.h" #include "build/build_config.h" +#include "chrome/browser/history/web_history_service_factory.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_avatar_icon_util.h" @@ -30,11 +31,14 @@ #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/singleton_tabs.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/webui/signin/login_ui_service.h" #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" #include "chrome/common/url_constants.h" #include "chrome/grit/generated_resources.h" #include "components/autofill/core/common/autofill_prefs.h" +#include "components/browsing_data/core/history_notice_utils.h" +#include "components/history/core/browser/web_history_service.h" #include "components/prefs/pref_service.h" #include "components/signin/core/browser/signin_error_controller.h" #include "components/signin/public/base/signin_metrics.h" @@ -305,6 +309,11 @@ "SyncPrefsDispatch", base::BindRepeating(&PeopleHandler::HandleSyncPrefsDispatch, base::Unretained(this))); + web_ui()->RegisterMessageCallback( + "GetIsHistoryRecordingEnabledAndCanBeUsed", + base::BindRepeating( + &PeopleHandler::HandleGetIsHistoryRecordingEnabledAndCanBeUsed, + base::Unretained(this))); #if defined(OS_CHROMEOS) web_ui()->RegisterMessageCallback( "AttemptUserExit", @@ -474,6 +483,36 @@ ProfileMetrics::LogProfileSyncInfo(ProfileMetrics::SYNC_CHOOSE); } +void PeopleHandler::HandleGetIsHistoryRecordingEnabledAndCanBeUsed( + const base::ListValue* args) { + AllowJavascript(); + std::string webui_callback_id; + CHECK(args->GetString(0, &webui_callback_id)); + + DCHECK(base::FeatureList::IsEnabled(features::kSyncSetupFriendlySettings)); + syncer::SyncService* sync_service = GetSyncService(); + history::WebHistoryService* history_service = + WebHistoryServiceFactory::GetForProfile(profile_); + + browsing_data::IsHistoryRecordingEnabledAndCanBeUsed( + sync_service, history_service, + base::Bind(&PeopleHandler::OnQueryHistoryRecordingCompletion, + weak_factory_.GetWeakPtr(), webui_callback_id)); +} + +void PeopleHandler::OnQueryHistoryRecordingCompletion( + const std::string& webui_callback_id, + const base::Optional<bool>& history_recording_enabled) { + if (!IsJavascriptAllowed()) + return; + + std::unique_ptr<base::DictionaryValue> status(new base::DictionaryValue); + status->SetBoolean("requestSucceeded", history_recording_enabled.has_value()); + status->SetBoolean("historyRecordingEnabled", + history_recording_enabled.value_or(false)); + ResolveJavascriptCallback(base::Value(webui_callback_id), *status); +} + void PeopleHandler::HandleGetStoredAccounts(const base::ListValue* args) { CHECK_EQ(1U, args->GetSize()); const base::Value* callback_id;
diff --git a/chrome/browser/ui/webui/settings/people_handler.h b/chrome/browser/ui/webui/settings/people_handler.h index 89822fc..921cec5 100644 --- a/chrome/browser/ui/webui/settings/people_handler.h +++ b/chrome/browser/ui/webui/settings/people_handler.h
@@ -156,6 +156,8 @@ void HandleShowSetupUI(const base::ListValue* args); void HandleAttemptUserExit(const base::ListValue* args); void HandleSyncPrefsDispatch(const base::ListValue* args); + void HandleGetIsHistoryRecordingEnabledAndCanBeUsed( + const base::ListValue* args); #if defined(OS_CHROMEOS) void HandleRequestPinLoginState(const base::ListValue* args); #endif @@ -181,6 +183,10 @@ void OnPinLoginAvailable(bool is_available); #endif + void OnQueryHistoryRecordingCompletion( + const std::string& webui_callback_id, + const base::Optional<bool>& history_recording_enabled); + void HandleGetStoredAccounts(const base::ListValue* args); void HandleStartSyncingWithEmail(const base::ListValue* args); base::Value GetStoredAccountsList(); @@ -230,9 +236,7 @@ ScopedObserver<syncer::SyncService, syncer::SyncServiceObserver> sync_service_observer_{this}; -#if defined(OS_CHROMEOS) base::WeakPtrFactory<PeopleHandler> weak_factory_{this}; -#endif DISALLOW_COPY_AND_ASSIGN(PeopleHandler); };
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index 7f21de6..1864519e 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -26,6 +26,7 @@ #include "chrome/browser/signin/account_consistency_mode_manager.h" #include "chrome/browser/sync/profile_sync_service_factory.h" #include "chrome/browser/ui/passwords/manage_passwords_view_utils.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/webui/management_ui.h" #include "chrome/browser/ui/webui/policy_indicator_localized_strings_provider.h" #include "chrome/browser/ui/webui/webui_util.h" @@ -2231,13 +2232,29 @@ {"passphraseConfirmationPlaceholder", IDS_SETTINGS_PASSPHRASE_CONFIRMATION_PLACEHOLDER}, {"submitPassphraseButton", IDS_SETTINGS_SUBMIT_PASSPHRASE}, - {"personalizeGoogleServicesTitle", - IDS_SETTINGS_PERSONALIZE_GOOGLE_SERVICES_TITLE}, {"existingPassphraseTitle", IDS_SETTINGS_EXISTING_PASSPHRASE_TITLE}, {"enablePaymentsIntegrationCheckboxLabel", IDS_AUTOFILL_ENABLE_PAYMENTS_INTEGRATION_CHECKBOX_LABEL}, }; AddLocalizedStringsBulk(html_source, kLocalizedStrings); + if (base::FeatureList::IsEnabled(features::kSyncSetupFriendlySettings)) { + static constexpr webui::LocalizedString + kSyncSetupFriendlySettingsStrings[] = { + {"personalizeGoogleServicesTitle", + IDS_SETTINGS_USE_HISTORY_TO_PERSONALIZE_GOOGLE_SERVICES_TITLE}, + {"sWAAOn", IDS_SETTINGS_SWAA_ON}, + {"sWAAOff", IDS_SETTINGS_SWAA_OFF}, + {"sWAAOnHint", IDS_SETTINGS_SWAA_ON_HINT}, + {"dataEncryptedHint", IDS_SETTINGS_DATA_ENCRYPTED_HINT}, + {"historySyncOffHint", IDS_SETTINGS_HISTORY_SYNC_OFF_HINT}, + {"sWAAOffHint", IDS_SETTINGS_SWAA_OFF_HINT}, + }; + AddLocalizedStringsBulk(html_source, kSyncSetupFriendlySettingsStrings); + } else { + html_source->AddLocalizedString( + "personalizeGoogleServicesTitle", + IDS_SETTINGS_PERSONALIZE_GOOGLE_SERVICES_TITLE); + } #if defined(OS_CHROMEOS) AddFingerprintStrings(html_source); #endif // OS_CHROMEOS
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc index c9fb6d6..c2817c4 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -20,6 +20,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/ui/passwords/manage_passwords_view_utils.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/webui/favicon_source.h" #include "chrome/browser/ui/webui/managed_ui_handler.h" #include "chrome/browser/ui/webui/metrics_handler.h" @@ -234,6 +235,10 @@ base::FeatureList::IsEnabled( password_manager::features::kPasswordImport)); + html_source->AddBoolean( + "syncSetupFriendlySettings", + base::FeatureList::IsEnabled(features::kSyncSetupFriendlySettings)); + #if defined(OS_CHROMEOS) html_source->AddBoolean( "showParentalControls",
diff --git a/chrome/chrome_cleaner/engines/broker/engine_requests_no_blocking_unittest.cc b/chrome/chrome_cleaner/engines/broker/engine_requests_no_blocking_unittest.cc index 6a3c45e..b403bd73 100644 --- a/chrome/chrome_cleaner/engines/broker/engine_requests_no_blocking_unittest.cc +++ b/chrome/chrome_cleaner/engines/broker/engine_requests_no_blocking_unittest.cc
@@ -437,7 +437,9 @@ }; MULTIPROCESS_TEST_MAIN(EngineRequestsNoBlocking) { - base::test::TaskEnvironment task_environment; + // COM can't be initialized inside the sandbox. + base::test::TaskEnvironment task_environment( + base::test::TaskEnvironment::ThreadPoolCOMEnvironment::NONE); auto child_process = SetupSandboxedChildProcess(); if (!child_process) @@ -520,11 +522,6 @@ : public ::testing::TestWithParam<const char*> {}; TEST_P(EngineRequestsNoBlockingTest, TestRequest) { - // All of these tests fail when run on win8 bots so return right away. - // TODO(crbug.com/947576): Find out why and re-enable them. - if (base::win::GetVersion() == base::win::Version::WIN8) - return; - base::test::TaskEnvironment task_environment; // This event will be shared between the parent and child processes. The
diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json index 0af7474..c929b37 100644 --- a/chrome/common/extensions/api/_permission_features.json +++ b/chrome/common/extensions/api/_permission_features.json
@@ -451,6 +451,7 @@ "platforms": ["chromeos"], "whitelist": [ "7FE4A999359A456C4B0FB7B7AD85CEA29CA50519", // Login screen APIs test extension + "3F5995FE79A861F019C6F093BEF98D73FA9D3A5F", // Login screen APIs in-sesesion test extension "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) DEV "A24DE1B21A67E25FB62AC8491642038FE25DA75B", // Imprivata (in session)
diff --git a/chrome/common/extensions/api/login.idl b/chrome/common/extensions/api/login.idl index 4231b217..83ab63e 100644 --- a/chrome/common/extensions/api/login.idl +++ b/chrome/common/extensions/api/login.idl
@@ -13,7 +13,15 @@ // Launches a managed guest session if one is set up via the admin console. // If there are several managed guest sessions set up, it will launch the // first available one. - static void launchManagedGuestSession(optional VoidCallback callback); + // |password|: If provided, the launched managed guest session will be + // lockable, and can only be unlocked by calling + // <code>unlockManagedGuestSession()</code> with the same password. + // |callback|: Note: If the function succeeds, the callback is not + // guaranteed to be called as the extension will be disabled when the + // session starts. Use this callback only to handle the failure case by + // checking <code>chrome.runtime.lastError</code>. + static void launchManagedGuestSession(optional DOMString password, + optional VoidCallback callback); // Exits the current session. // |dataForNextLoginAttempt|: If set, stores data which can be read by @@ -28,5 +36,20 @@ // |callback|: Called with the stored data, or an empty string if there was // no previously stored data. static void fetchDataForNextLoginAttempt(StringCallback callback); + + // Locks the current managed guest session. The session has to have been + // launched by <code>launchManagedGuestSession()</code> with a password. + static void lockManagedGuestSession(optional VoidCallback callback); + + // Unlocks a managed guest session which was launched by + // <code>launchManagedGuestSession()</code> with a password. The session + // will unlock if the provided password matches the one provided earlier. + // |password|: The password which will be used to unlock the session. + // |callback|: Note: If the function succeeds, the callback is not + // guaranteed to be called as the extension will be disabled when the + // session starts. Use this callback only to handle the failure case by + // checking <code>chrome.runtime.lastError</code>. + static void unlockManagedGuestSession(DOMString password, + optional VoidCallback callback); }; };
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index 0a0ba8fd..8f4b178 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc
@@ -1006,6 +1006,14 @@ const char kLoginExtensionApiDataForNextLoginAttempt[] = "extensions_api.login.data_for_next_login_attempt"; +// A string user profile pref containing the ID of the extension which launched +// the current Managed Guest Session using the chrome.login extension API. A +// non-empty ID indicates that the current Managed Guest Session is lockable, +// and can only be unlocked by the specified extension using the chrome.login +// extension API. +const char kLoginExtensionApiLaunchExtensionId[] = + "extensions_api.login.launch_extension_id"; + // String containing last RSU lookup key uploaded. Empty until first upload. const char kLastRsuDeviceIdUploaded[] = "rsu.last_rsu_device_id_uploaded";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index 18de222e..b21d367 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -321,6 +321,7 @@ extern const char kAppReinstallRecommendationEnabled[]; extern const char kStartupBrowserWindowLaunchSuppressed[]; extern const char kLoginExtensionApiDataForNextLoginAttempt[]; +extern const char kLoginExtensionApiLaunchExtensionId[]; extern const char kSettingsShowBrowserBanner[]; extern const char kSettingsShowOSBanner[]; extern const char kDeviceLoginScreenWebUsbAllowDevicesForUrls[];
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn index 4b54fa5..32d2163 100644 --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn
@@ -157,7 +157,6 @@ "//components/security_interstitials/core:", "//components/security_interstitials/core/common/mojom:", "//components/spellcheck:buildflags", - "//components/startup_metric_utils/common:interfaces", "//components/subresource_filter/content/renderer", "//components/translate/content/renderer", "//components/translate/core/common",
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index 9165e0a..d37bd74 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -88,7 +88,6 @@ #include "components/safe_browsing/buildflags.h" #include "components/safe_browsing/content/renderer/threat_dom_details.h" #include "components/spellcheck/spellcheck_buildflags.h" -#include "components/startup_metric_utils/common/startup_metric.mojom.h" #include "components/subresource_filter/content/renderer/subresource_filter_agent.h" #include "components/subresource_filter/content/renderer/unverified_ruleset_dealer.h" #include "components/subresource_filter/core/common/common_features.h" @@ -319,7 +318,7 @@ } // namespace ChromeContentRendererClient::ChromeContentRendererClient() - : main_entry_time_(base::TimeTicks::Now()), + : #if defined(OS_WIN) remote_module_watcher_(nullptr, base::OnTaskRunnerDeleter(nullptr)), #endif @@ -348,13 +347,6 @@ ? blink::scheduler::WebRendererProcessType::kExtensionRenderer : blink::scheduler::WebRendererProcessType::kRenderer); - { - mojo::Remote<startup_metric_utils::mojom::StartupMetricHost> - startup_metric_host; - thread->BindHostReceiver(startup_metric_host.BindNewPipeAndPassReceiver()); - startup_metric_host->RecordRendererMainEntryTime(main_entry_time_); - } - #if defined(OS_WIN) mojo::PendingRemote<mojom::ModuleEventSink> module_event_sink; thread->BindHostReceiver(module_event_sink.InitWithNewPipeAndPassReceiver());
diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h index dd5c2ca..d891d8a 100644 --- a/chrome/renderer/chrome_content_renderer_client.h +++ b/chrome/renderer/chrome_content_renderer_client.h
@@ -261,10 +261,6 @@ void BindWebRTCLoggingAgent( mojo::PendingReceiver<chrome::mojom::WebRtcLoggingAgent> receiver); - // Time at which this object was created. This is very close to the time at - // which the RendererMain function was entered. - base::TimeTicks main_entry_time_; - #if BUILDFLAG(ENABLE_NACL) // Determines if a page/app/extension is allowed to run native (non-PNaCl) // NaCl modules.
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index e270d536..30b0dc4 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -686,6 +686,7 @@ "//chrome:strings", "//chrome/browser", "//chrome/browser/devtools:test_support", + "//chrome/browser/metrics:test_support", "//chrome/browser/notifications/scheduler/test:test_support", "//chrome/browser/profiling_host:profiling_browsertests", "//chrome/browser/web_applications:browser_tests", @@ -1000,6 +1001,7 @@ "../browser/metrics/desktop_session_duration/audible_contents_tracker_browsertest.cc", "../browser/metrics/metrics_reporting_state_browsertest.cc", "../browser/metrics/metrics_service_browsertest.cc", + "../browser/metrics/metrics_service_user_demographics_browsertest.cc", "../browser/metrics/oom/out_of_memory_reporter_browsertest.cc", "../browser/metrics/process_memory_metrics_emitter_browsertest.cc", "../browser/metrics/startup_metrics_browsertest.cc", @@ -3777,6 +3779,7 @@ "../browser/installedapp/installed_app_provider_unittest.cc", "../browser/media/android/cdm/media_drm_origin_id_manager_unittest.cc", "../browser/metrics/chrome_android_metrics_provider_unittest.cc", + "../browser/notifications/notification_platform_bridge_android_unittest.cc", "../browser/page_load_metrics/observers/android_page_load_metrics_observer_unittest.cc", "../browser/password_manager/account_chooser_dialog_android_unittest.cc", "../browser/password_manager/auto_signin_first_run_dialog_android_unittest.cc",
diff --git a/chrome/test/data/chromeos/file_manager/broken.jpg b/chrome/test/data/chromeos/file_manager/broken.jpg new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/chrome/test/data/chromeos/file_manager/broken.jpg
@@ -0,0 +1 @@ +
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/README b/chrome/test/data/extensions/api_test/login_screen_apis/README index 71f8a09..85339d0 100644 --- a/chrome/test/data/extensions/api_test/login_screen_apis/README +++ b/chrome/test/data/extensions/api_test/login_screen_apis/README
@@ -1,15 +1,20 @@ -The extension.crx package must be signed by WebStore, in order for -the extension to have the expected ID which is whitelisted in Chrome: -"oclffehlkdgibkainkilopaalpdobkan". +The .crx packages must be signed by WebStore in order for the extensions to +have the expected IDs which are whitelisted in Chrome. +The expected IDs are: +extension.crx: oclffehlkdgibkainkilopaalpdobkan +in_session_extension.crx: ofcpkomnogjenhfajfjadjmjppbegnad -This extension is used in the API tests for the following APIs: +extension.crx is used in the API tests for the following APIs: -chrome.loginScreenUi -chrome.storage -chrome.login +in_session_extension.crx is used in the API tests for the following APIs: +-chrome.login + The code for the tests can be found under the chrome/browser/chromeos/extensions/login_screen_apis/ directory. -In case a new version of the test extension has to be published on WebStore, -please reach out to the OWNERS, chromeos-enterprise-extensions@ or +In case a new version of one of the test extension has to be published on +WebStore, please reach out to the OWNERS, chromeos-enterprise-extensions@ or managed-devices@ mailing list.
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/extension.crx b/chrome/test/data/extensions/api_test/login_screen_apis/extension.crx index 04dde109..f29aebc 100644 --- a/chrome/test/data/extensions/api_test/login_screen_apis/extension.crx +++ b/chrome/test/data/extensions/api_test/login_screen_apis/extension.crx Binary files differ
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/extension/background.js b/chrome/test/data/extensions/api_test/login_screen_apis/extension/background.js index 011529e4..83e1a42 100644 --- a/chrome/test/data/extensions/api_test/login_screen_apis/extension/background.js +++ b/chrome/test/data/extensions/api_test/login_screen_apis/extension/background.js
@@ -11,6 +11,13 @@ '"sync" is not available for login screen extensions'; const noManagedGuestSessionAccountsErrorMessage = 'No managed guest session accounts'; +const alreadyExistsActiveSessionErrorMessage = + 'There is already an active session'; +const sessionNotLockedErrorMessage = 'Session is not locked'; +const sessionNotActiveErrorMessage = 'Session is not active'; +const noPermissionToUnlockErrorMessage = + 'The extension does not have permission to unlock this session'; +const authenticationFailedErrorMessage = 'Authentication failed'; const tests = { /* LoginScreenUi ************************************************************/ @@ -92,6 +99,20 @@ chrome.test.succeed(); }); }, + 'LoginLaunchManagedGuestSessionWithPassword': () => { + chrome.test.getConfig(config => { + chrome.login.launchManagedGuestSession(config.customArg, () => { + chrome.test.assertNoLastError(); + chrome.test.succeed(); + }); + }); + }, + 'LoginLaunchManagedGuestSessionAlreadyExistsActiveSession': () => { + chrome.login.launchManagedGuestSession(() => { + chrome.test.assertLastError(alreadyExistsActiveSessionErrorMessage); + chrome.test.succeed(); + }); + }, 'LoginLaunchManagedGuestSessionNoAccounts': () => { chrome.login.launchManagedGuestSession(() => { chrome.test.assertLastError(noManagedGuestSessionAccountsErrorMessage); @@ -113,6 +134,46 @@ }); }); }, + 'LoginLockManagedGuestSessionNotActive': () => { + chrome.login.lockManagedGuestSession(() => { + chrome.test.assertLastError(sessionNotActiveErrorMessage); + chrome.test.succeed(); + }); + }, + 'LoginUnlockManagedGuestSession': () => { + chrome.test.getConfig(config => { + chrome.login.unlockManagedGuestSession(config.customArg, () => { + chrome.test.assertNoLastError(); + chrome.test.succeed(); + }); + }); + }, + 'LoginUnlockManagedGuestSessionWrongPassword': () => { + chrome.test.getConfig(config => { + chrome.login.unlockManagedGuestSession(config.customArg, () => { + chrome.test.assertLastError(authenticationFailedErrorMessage); + chrome.test.succeed(); + }); + }); + }, + 'LoginUnlockManagedGuestSessionNotLocked': () => { + chrome.login.unlockManagedGuestSession('dummy_password', () => { + chrome.test.assertLastError(sessionNotLockedErrorMessage); + chrome.test.succeed(); + }); + }, + 'LoginUnlockManagedGuestSessionNotManagedGuestSession': () => { + chrome.login.unlockManagedGuestSession('dummy_password', () => { + chrome.test.assertLastError(noPermissionToUnlockErrorMessage); + chrome.test.succeed(); + }); + }, + 'LoginUnlockManagedGuestSessionWrongExtensionId': () => { + chrome.login.unlockManagedGuestSession('dummy_password', () => { + chrome.test.assertLastError(noPermissionToUnlockErrorMessage); + chrome.test.succeed(); + }); + }, }; // |waitForTestName()| waits for the browser test to reply with a test name and
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/extension/manifest.json b/chrome/test/data/extensions/api_test/login_screen_apis/extension/manifest.json index e34313b0b..adc2319 100644 --- a/chrome/test/data/extensions/api_test/login_screen_apis/extension/manifest.json +++ b/chrome/test/data/extensions/api_test/login_screen_apis/extension/manifest.json
@@ -1,6 +1,6 @@ { "name": "Login screen APIs test extension", - "version": "1.20", + "version": "1.23", "manifest_version": 2, "description": "Login screen APIs test extension", "background": {
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension.crx b/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension.crx new file mode 100644 index 0000000..f197a3f --- /dev/null +++ b/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension.crx Binary files differ
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension/background.js b/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension/background.js new file mode 100644 index 0000000..f7b7118 --- /dev/null +++ b/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension/background.js
@@ -0,0 +1,44 @@ +// Copyright 2019 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. + +const noPermissionToLockErrorMessage = + 'The extension does not have permission to lock this session'; +const noPermissionToUnlockErrorMessage = + 'The extension does not have permission to unlock this session'; + +const tests = { + 'InSessionLoginLockManagedGuestSession': () => { + chrome.login.lockManagedGuestSession(() => { + chrome.test.assertNoLastError(); + chrome.test.succeed(); + }); + }, + 'InSessionLoginLockManagedGuestSessionNoPermission': () => { + chrome.login.lockManagedGuestSession(() => { + chrome.test.assertLastError(noPermissionToLockErrorMessage); + chrome.test.succeed(); + }); + }, + 'InSessionLoginUnlockManagedGuestSessionNoPermission': () => { + chrome.login.unlockManagedGuestSession('dummy_password', () => { + chrome.test.assertLastError(noPermissionToUnlockErrorMessage); + chrome.test.succeed(); + }); + }, +} + +// |waitForTestName()| waits for the browser test to reply with a test name and +// runs the specified test. The browser test logic can be found at +// chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.cc +function waitForTestName(testName) { + if (!tests.hasOwnProperty(testName) || + typeof tests[testName] !== 'function') { + chrome.test.fail('Test not found: ' + testName); + return; + } + + chrome.test.runTests([tests[testName]]); +} + +chrome.test.sendMessage('Waiting for test name', waitForTestName);
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension/manifest.json b/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension/manifest.json new file mode 100644 index 0000000..e8918a7 --- /dev/null +++ b/chrome/test/data/extensions/api_test/login_screen_apis/in_session_extension/manifest.json
@@ -0,0 +1,13 @@ +{ + "name": "Login screen APIs in-session test extension", + "version": "0.4", + "manifest_version": 2, + "description": "In session extension for testing the chrome.login extension API", + "background": { + "scripts": ["background.js"] + }, + "permissions": [ + "login" + ] +} +
diff --git a/chrome/test/data/extensions/api_test/login_screen_apis/update_manifest.xml b/chrome/test/data/extensions/api_test/login_screen_apis/update_manifest.xml index 64abc8a8..c66b822 100644 --- a/chrome/test/data/extensions/api_test/login_screen_apis/update_manifest.xml +++ b/chrome/test/data/extensions/api_test/login_screen_apis/update_manifest.xml
@@ -1,12 +1,18 @@ <?xml version='1.0' encoding='UTF-8'?> <!-- - This update manifest points to the ./extension.crx file. "mock.http" is a - placeholder that gets substituted with the test server address in runtime. + This update manifest points to the ./extension.crx and + ./in_session_extension.ctx files. "mock.http" is a placeholder that gets + substituted with the test server address in runtime. --> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <app appid='oclffehlkdgibkainkilopaalpdobkan'> <updatecheck codebase='http://mock.http/extensions/api_test/login_screen_apis/extension.crx' - version='1.20' /> - </app> + version='1.23' /> + </app> + <app appid='ofcpkomnogjenhfajfjadjmjppbegnad'> + <updatecheck + codebase='http://mock.http/extensions/api_test/login_screen_apis/in_session_extension.crx' + version='0.4' /> + </app> </gupdate>
diff --git a/chrome/test/data/extensions/signin_screen_manual_test_app/README b/chrome/test/data/extensions/signin_screen_manual_test_app/README index 72eba2d..648b79c 100644 --- a/chrome/test/data/extensions/signin_screen_manual_test_app/README +++ b/chrome/test/data/extensions/signin_screen_manual_test_app/README
@@ -1,9 +1,13 @@ -The app_signed_by_webstore.crx package must be a one signed by WebStore, in -order for the app to have the expected ID which is whitelisted in Chrome - -"bjaiihebfngildkcjkjckolinodhliff". - This app is primarily intended to be used for the manual testing of the apps on -the Chrome OS sign-in screen. +the Chrome OS sign-in screen. The sources are located under the ./app/ +directory. + +The ./crx/**/app_signed_by_webstore.crx packages must be files signed by +WebStore, in order for the app to have the expected ID which is whitelisted in +Chrome - "bjaiihebfngildkcjkjckolinodhliff". + +Browser tests in Chrome currently require these packages for two different +versions. In case a new version of the test app has to be published on WebStore, please reach out to the managed-devices@ mailing list.
diff --git a/chrome/test/data/extensions/signin_screen_manual_test_app/app_signed_by_webstore.crx b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/3.0/app_signed_by_webstore.crx similarity index 100% rename from chrome/test/data/extensions/signin_screen_manual_test_app/app_signed_by_webstore.crx rename to chrome/test/data/extensions/signin_screen_manual_test_app/crx/3.0/app_signed_by_webstore.crx Binary files differ
diff --git a/chrome/test/data/extensions/signin_screen_manual_test_app/update_manifest.xml b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/3.0/update_manifest.xml similarity index 90% rename from chrome/test/data/extensions/signin_screen_manual_test_app/update_manifest.xml rename to chrome/test/data/extensions/signin_screen_manual_test_app/crx/3.0/update_manifest.xml index a2676d7..0e2a2cca 100644 --- a/chrome/test/data/extensions/signin_screen_manual_test_app/update_manifest.xml +++ b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/3.0/update_manifest.xml
@@ -7,7 +7,7 @@ <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <app appid='bjaiihebfngildkcjkjckolinodhliff'> <updatecheck - codebase='http://mock.http/extensions/signin_screen_manual_test_app/app_signed_by_webstore.crx' + codebase='http://mock.http/extensions/signin_screen_manual_test_app/crx/3.0/app_signed_by_webstore.crx' version='3.0' /> </app> </gupdate>
diff --git a/chrome/test/data/extensions/signin_screen_manual_test_app/crx/4.0/app_signed_by_webstore.crx b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/4.0/app_signed_by_webstore.crx new file mode 100644 index 0000000..cf681c9 --- /dev/null +++ b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/4.0/app_signed_by_webstore.crx Binary files differ
diff --git a/chrome/test/data/extensions/signin_screen_manual_test_app/update_manifest.xml b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/4.0/update_manifest.xml similarity index 85% copy from chrome/test/data/extensions/signin_screen_manual_test_app/update_manifest.xml copy to chrome/test/data/extensions/signin_screen_manual_test_app/crx/4.0/update_manifest.xml index a2676d7..37364fe 100644 --- a/chrome/test/data/extensions/signin_screen_manual_test_app/update_manifest.xml +++ b/chrome/test/data/extensions/signin_screen_manual_test_app/crx/4.0/update_manifest.xml
@@ -7,7 +7,7 @@ <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <app appid='bjaiihebfngildkcjkjckolinodhliff'> <updatecheck - codebase='http://mock.http/extensions/signin_screen_manual_test_app/app_signed_by_webstore.crx' - version='3.0' /> + codebase='http://mock.http/extensions/signin_screen_manual_test_app/crx/4.0/app_signed_by_webstore.crx' + version='4.0' /> </app> </gupdate>
diff --git a/chrome/test/data/webui/settings/people_page_sync_page_test.js b/chrome/test/data/webui/settings/people_page_sync_page_test.js index c294a32ca..7c84230 100644 --- a/chrome/test/data/webui/settings/people_page_sync_page_test.js +++ b/chrome/test/data/webui/settings/people_page_sync_page_test.js
@@ -9,6 +9,18 @@ let encryptWithGoogle = null; let encryptWithPassphrase = null; + suiteSetup(function() { + loadTimeData.overrideValues({ + syncSetupFriendlySettings: true, + sWAAOn: 'On', + sWAAOff: 'Off', + sWAAOnHint: 'sWAAOnHint', + sWAAOffHint: 'sWAAOffHint', + historySyncOffHint: 'historySyncOffHint', + dataEncryptedHint: 'dataEncryptedHint' + }); + }); + setup(function() { browserProxy = new TestSyncBrowserProxy(); settings.SyncBrowserProxyImpl.instance_ = browserProxy; @@ -508,6 +520,85 @@ assertTrue(dashboardLink.hidden); }); + test('sWAA', async function() { + function verifyResults(hidden, sWAA, sWAAHint, hideActivityControlsUrl) { + const sWAAText = syncPage.$$('#history-usage-state .secondary'); + const historyUsageHint = syncPage.$$('#history-usage-hint'); + assertEquals(sWAAText.hidden, hidden); + assertEquals(historyUsageHint.hidden, hidden); + assertEquals( + syncPage.$$('#history-usage-row') + .querySelector('.icon-external') + .hidden, + hideActivityControlsUrl); + + if (!hidden) { + assertEquals(sWAAText.textContent.trim(), sWAA); + assertEquals(historyUsageHint.textContent.trim(), sWAAHint); + } + } + + /** @param {Object=} syncPrefOverrides */ + function setSyncPrefs(syncPrefOverrides = {}) { + const defaults = sync_test_util.getSyncAllPrefs(); + const syncPrefs = Object.assign({}, defaults, syncPrefOverrides); + cr.webUIListenerCallback('sync-prefs-changed', syncPrefs); + Polymer.dom.flush(); + } + + const syncSection = syncPage.$$('#sync-section'); + assertTrue(syncSection.hidden); + syncPage.syncStatus = { + signedIn: true, + disabled: false, + hasError: false, + statusAction: settings.StatusAction.NO_ACTION, + }; + Polymer.dom.flush(); + assertFalse(syncSection.hidden); + await browserProxy.whenCalled('queryIsHistoryRecordingEnabled'); + verifyResults( + /*hidden=*/ false, 'On', 'sWAAOnHint', + /*hideActivityControlsUrl=*/ false); + + // Data encrypted with custom passphrase. + setSyncPrefs({encryptAllData: true}); + verifyResults( + /*hidden=*/ false, 'Off', 'dataEncryptedHint', + /*hideActivityControlsUrl=*/ true); + + // sWAA off. + browserProxy.setHistoryRecordingEnabled({ + requestSucceeded: true, + historyRecordingEnabled: /*hideActivityControlsUrl=*/ false + }); + setSyncPrefs(); + await browserProxy.whenCalled('queryIsHistoryRecordingEnabled'); + verifyResults( + /*hidden=*/ false, 'Off', 'sWAAOffHint', + /*hideActivityControlsUrl=*/ false); + + // Turn history sync off. + setSyncPrefs({syncAllDataTypes: false, typedUrlsSynced: false}); + verifyResults( + /*hidden=*/ false, 'Off', 'historySyncOffHint', + /*hideActivityControlsUrl=*/ true); + + // Verify hint is updated. + setSyncPrefs({encryptAllData: true}); + verifyResults( + /*hidden=*/ false, 'Off', 'dataEncryptedHint', + /*hideActivityControlsUrl=*/ true); + + // Failed to fetch |historyRecordingEnabled|. + browserProxy.setHistoryRecordingEnabled( + {requestSucceeded: false, historyRecordingEnabled: false}); + setSyncPrefs(); + await browserProxy.whenCalled('queryIsHistoryRecordingEnabled'); + verifyResults( + /*hidden=*/ true, '', '', /*hideActivityControlsUrl=*/ false); + }); + // ################################## // TESTS THAT ARE SKIPPED ON CHROMEOS // ##################################
diff --git a/chrome/test/data/webui/settings/test_sync_browser_proxy.js b/chrome/test/data/webui/settings/test_sync_browser_proxy.js index 3900d7d..8ea836e 100644 --- a/chrome/test/data/webui/settings/test_sync_browser_proxy.js +++ b/chrome/test/data/webui/settings/test_sync_browser_proxy.js
@@ -19,11 +19,18 @@ 'sendSyncPrefsChanged', 'startSignIn', 'startSyncingWithEmail', + 'queryIsHistoryRecordingEnabled', ]); /** @private {number} */ this.impressionCount_ = 0; + /** @type {!HistoryRecordingEnabled} */ + this.historyRecordingEnabled_ = { + requestSucceeded: true, + historyRecordingEnabled: true + }; + /** @type {!settings.PageStatus} */ this.encryptionResponse = settings.PageStatus.CONFIGURE; } @@ -101,4 +108,17 @@ sendSyncPrefsChanged() { this.methodCalled('sendSyncPrefsChanged'); } + + /** + * @param {!HistoryRecordingEnabled} historyRecordingEnabled + */ + setHistoryRecordingEnabled(historyRecordingEnabled) { + this.historyRecordingEnabled_ = historyRecordingEnabled; + } + + /** @override */ + queryIsHistoryRecordingEnabled() { + this.methodCalled('queryIsHistoryRecordingEnabled'); + return Promise.resolve(this.historyRecordingEnabled_); + } }
diff --git a/chromeos/login/auth/user_context.cc b/chromeos/login/auth/user_context.cc index 9ba9f54..fcb4e92 100644 --- a/chromeos/login/auth/user_context.cc +++ b/chromeos/login/auth/user_context.cc
@@ -147,6 +147,14 @@ return saml_password_attributes_; } +bool UserContext::IsLockableManagedGuestSession() const { + return !managed_guest_session_launch_extension_id_.empty(); +} + +std::string UserContext::GetManagedGuestSessionLaunchExtensionId() const { + return managed_guest_session_launch_extension_id_; +} + bool UserContext::HasCredentials() const { return (account_id_.is_valid() && !key_.GetSecret().empty()) || !auth_code_.empty(); @@ -236,6 +244,12 @@ is_under_advanced_protection_ = is_under_advanced_protection; } +void UserContext::SetManagedGuestSessionLaunchExtensionId( + const std::string& managed_guest_session_launch_extension_id) { + managed_guest_session_launch_extension_id_ = + managed_guest_session_launch_extension_id; +} + void UserContext::ClearSecrets() { key_.ClearSecret(); password_key_.ClearSecret();
diff --git a/chromeos/login/auth/user_context.h b/chromeos/login/auth/user_context.h index 61a3d2f..816b01ba 100644 --- a/chromeos/login/auth/user_context.h +++ b/chromeos/login/auth/user_context.h
@@ -88,6 +88,9 @@ GetSyncPasswordData() const; const base::Optional<SamlPasswordAttributes>& GetSamlPasswordAttributes() const; + // True if |managed_guest_session_launch_extension_id_| is non-empty. + bool IsLockableManagedGuestSession() const; + std::string GetManagedGuestSessionLaunchExtensionId() const; bool HasCredentials() const; @@ -129,6 +132,11 @@ void SetSamlPasswordAttributes( const SamlPasswordAttributes& saml_password_attributes); void SetIsUnderAdvancedProtection(bool is_under_advanced_protection); + // Sets |managed_guest_session_launch_extension_id_| which is used to set the + // |kLoginExtensionApiLaunchExtensionId| pref when the user's profile is + // created. Setting this pref indicates that this Managed Guest Session is + // lockable. + void SetManagedGuestSessionLaunchExtensionId(const std::string& extension_id); void ClearSecrets(); @@ -152,6 +160,7 @@ std::string device_id_; std::string gaps_cookie_; bool is_under_advanced_protection_ = false; + std::string managed_guest_session_launch_extension_id_; // For password reuse detection use. base::Optional<password_manager::PasswordHashData> sync_password_data_;
diff --git a/chromeos/profiles/broadwell.afdo.newest.txt b/chromeos/profiles/broadwell.afdo.newest.txt index 0dc5db1..d791b5f 100644 --- a/chromeos/profiles/broadwell.afdo.newest.txt +++ b/chromeos/profiles/broadwell.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-broadwell-81-3987.18-1578307857-benchmark-81.0.4016.0-r1-redacted.afdo.xz \ No newline at end of file +chromeos-chrome-amd64-broadwell-81-3987.18-1578307857-benchmark-81.0.4019.0-r1-redacted.afdo.xz \ No newline at end of file
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt index 2f12a142..68839651 100644 --- a/chromeos/profiles/orderfile.newest.txt +++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@ -chromeos-chrome-orderfile-field-81-3987.18-1577705382-benchmark-81.0.4013.0-r1.orderfile.xz \ No newline at end of file +chromeos-chrome-orderfile-field-81-3987.18-1577705382-benchmark-81.0.4016.0-r1.orderfile.xz \ No newline at end of file
diff --git a/components/autofill_assistant/browser/actions/collect_user_data_action.cc b/components/autofill_assistant/browser/actions/collect_user_data_action.cc index d67a6c1a..1486943e 100644 --- a/components/autofill_assistant/browser/actions/collect_user_data_action.cc +++ b/components/autofill_assistant/browser/actions/collect_user_data_action.cc
@@ -844,8 +844,8 @@ (collect_user_data_options_->request_payer_name || collect_user_data_options_->request_payer_phone || collect_user_data_options_->request_payer_email)) { - int default_selection = GetDefaultProfile(*collect_user_data_options_, - user_data->available_profiles); + int default_selection = GetDefaultContactProfile( + *collect_user_data_options_, user_data->available_profiles); if (default_selection != -1) { user_data->contact_profile = std::make_unique<autofill::AutofillProfile>( *(user_data->available_profiles[default_selection])); @@ -857,8 +857,8 @@ } if (user_data->shipping_address == nullptr && collect_user_data_options_->request_shipping) { - int default_selection = GetDefaultProfile(*collect_user_data_options_, - user_data->available_profiles); + int default_selection = GetDefaultAddressProfile( + *collect_user_data_options_, user_data->available_profiles); if (default_selection != -1) { user_data->shipping_address = std::make_unique<autofill::AutofillProfile>( *(user_data->available_profiles[default_selection]));
diff --git a/components/autofill_assistant/browser/user_data_util.cc b/components/autofill_assistant/browser/user_data_util.cc index 5ea598b..dbaabf36 100644 --- a/components/autofill_assistant/browser/user_data_util.cc +++ b/components/autofill_assistant/browser/user_data_util.cc
@@ -8,6 +8,9 @@ #include "base/i18n/case_conversion.h" #include "base/strings/utf_string_conversions.h" #include "components/autofill/core/browser/autofill_data_util.h" +#include "components/autofill/core/browser/geo/address_i18n.h" +#include "third_party/libaddressinput/chromium/addressinput_util.h" +#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_data.h" namespace autofill_assistant { namespace { @@ -20,8 +23,8 @@ profile.GetRawInfo(autofill::NAME_LAST)); } -int CountCompleteFields(const CollectUserDataOptions& options, - const autofill::AutofillProfile& profile) { +int CountCompleteContactFields(const CollectUserDataOptions& options, + const autofill::AutofillProfile& profile) { int completed_fields = 0; if (options.request_payer_name && !GetProfileFullName(profile).empty()) { ++completed_fields; @@ -44,11 +47,11 @@ // Helper function that compares instances of AutofillProfile by completeness // in regards to the current options. Full profiles should be ordered before // empty ones and fall back to compare the profile's name in case of equality. -bool CompletenessCompare(const CollectUserDataOptions& options, - const autofill::AutofillProfile& a, - const autofill::AutofillProfile& b) { - int complete_fields_a = CountCompleteFields(options, a); - int complete_fields_b = CountCompleteFields(options, b); +bool CompletenessCompareContacts(const CollectUserDataOptions& options, + const autofill::AutofillProfile& a, + const autofill::AutofillProfile& b) { + int complete_fields_a = CountCompleteContactFields(options, a); + int complete_fields_b = CountCompleteContactFields(options, b); if (complete_fields_a == complete_fields_b) { return base::i18n::ToLower(GetProfileFullName(a)) .compare(base::i18n::ToLower(GetProfileFullName(b))) < 0; @@ -56,8 +59,35 @@ return complete_fields_a > complete_fields_b; } -int CountCompleteFields(const CollectUserDataOptions& options, - const PaymentInstrument& instrument) { +int GetAddressCompletenessRating(const CollectUserDataOptions& options, + const autofill::AutofillProfile& profile) { + auto address_data = + autofill::i18n::CreateAddressDataFromAutofillProfile(profile, "en-US"); + std::multimap<i18n::addressinput::AddressField, + i18n::addressinput::AddressProblem> + problems; + autofill::addressinput::ValidateRequiredFields( + *address_data, /* filter= */ nullptr, &problems); + return -problems.size(); +} + +// Helper function that compares instances of AutofillProfile by completeness +// in regards to the current options. Full profiles should be ordered before +// empty ones and fall back to compare the profile's name in case of equality. +bool CompletenessCompareAddresses(const CollectUserDataOptions& options, + const autofill::AutofillProfile& a, + const autofill::AutofillProfile& b) { + int complete_fields_a = GetAddressCompletenessRating(options, a); + int complete_fields_b = GetAddressCompletenessRating(options, b); + if (complete_fields_a == complete_fields_b) { + return base::i18n::ToLower(GetProfileFullName(a)) + .compare(base::i18n::ToLower(GetProfileFullName(b))) < 0; + } + return complete_fields_a > complete_fields_b; +} + +int CountCompletePaymentInstrumentFields(const CollectUserDataOptions& options, + const PaymentInstrument& instrument) { int complete_fields = 0; if (!instrument.card->GetRawInfo(autofill::CREDIT_CARD_NAME_FULL).empty()) { ++complete_fields; @@ -88,11 +118,12 @@ // in regards to the current options. Full payment instruments should be // ordered before empty ones and fall back to compare the full name on the // credit card in case of equality. -bool CompletenessCompare(const CollectUserDataOptions& options, - const PaymentInstrument& a, - const PaymentInstrument& b) { - int complete_fields_a = CountCompleteFields(options, a); - int complete_fields_b = CountCompleteFields(options, b); +bool CompletenessComparePaymentInstruments( + const CollectUserDataOptions& options, + const PaymentInstrument& a, + const PaymentInstrument& b) { + int complete_fields_a = CountCompletePaymentInstrumentFields(options, a); + int complete_fields_b = CountCompletePaymentInstrumentFields(options, b); if (complete_fields_a == complete_fields_b) { return base::i18n::ToLower( a.card->GetRawInfo(autofill::CREDIT_CARD_NAME_FULL)) @@ -104,26 +135,27 @@ } // namespace -std::vector<int> SortByCompleteness( +std::vector<int> SortContactsByCompleteness( const CollectUserDataOptions& collect_user_data_options, const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles) { std::vector<int> profile_indices(profiles.size()); std::iota(std::begin(profile_indices), std::end(profile_indices), 0); std::sort(profile_indices.begin(), profile_indices.end(), [&collect_user_data_options, &profiles](int i, int j) { - return CompletenessCompare(collect_user_data_options, - *profiles[i], *profiles[j]); + return CompletenessCompareContacts(collect_user_data_options, + *profiles[i], *profiles[j]); }); return profile_indices; } -int GetDefaultProfile( +int GetDefaultContactProfile( const CollectUserDataOptions& collect_user_data_options, const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles) { if (profiles.empty()) { return -1; } - auto sorted_indices = SortByCompleteness(collect_user_data_options, profiles); + auto sorted_indices = + SortContactsByCompleteness(collect_user_data_options, profiles); if (!collect_user_data_options.default_email.empty()) { for (int index : sorted_indices) { if (base::UTF16ToUTF8( @@ -136,7 +168,31 @@ return sorted_indices[0]; } -std::vector<int> SortByCompleteness( +std::vector<int> SortAddressesByCompleteness( + const CollectUserDataOptions& collect_user_data_options, + const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles) { + std::vector<int> profile_indices(profiles.size()); + std::iota(std::begin(profile_indices), std::end(profile_indices), 0); + std::sort(profile_indices.begin(), profile_indices.end(), + [&collect_user_data_options, &profiles](int i, int j) { + return CompletenessCompareAddresses(collect_user_data_options, + *profiles[i], *profiles[j]); + }); + return profile_indices; +} + +int GetDefaultAddressProfile( + const CollectUserDataOptions& collect_user_data_options, + const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles) { + if (profiles.empty()) { + return -1; + } + auto sorted_indices = + SortContactsByCompleteness(collect_user_data_options, profiles); + return sorted_indices[0]; +} + +std::vector<int> SortPaymentInstrumentsByCompleteness( const CollectUserDataOptions& collect_user_data_options, const std::vector<std::unique_ptr<PaymentInstrument>>& payment_instruments) { @@ -146,9 +202,9 @@ std::sort(payment_instrument_indices.begin(), payment_instrument_indices.end(), [&collect_user_data_options, &payment_instruments](int a, int b) { - return CompletenessCompare(collect_user_data_options, - *payment_instruments[a], - *payment_instruments[b]); + return CompletenessComparePaymentInstruments( + collect_user_data_options, *payment_instruments[a], + *payment_instruments[b]); }); return payment_instrument_indices; } @@ -160,8 +216,8 @@ if (payment_instruments.empty()) { return -1; } - auto sorted_indices = - SortByCompleteness(collect_user_data_options, payment_instruments); + auto sorted_indices = SortPaymentInstrumentsByCompleteness( + collect_user_data_options, payment_instruments); return sorted_indices[0]; }
diff --git a/components/autofill_assistant/browser/user_data_util.h b/components/autofill_assistant/browser/user_data_util.h index c4c31d5..58ac0df 100644 --- a/components/autofill_assistant/browser/user_data_util.h +++ b/components/autofill_assistant/browser/user_data_util.h
@@ -16,13 +16,27 @@ // vector of profile indices in sorted order. Full profiles will be ordered // before empty ones, and for equally complete profiles, this falls back to // sorting based on the profile names. -std::vector<int> SortByCompleteness( +std::vector<int> SortContactsByCompleteness( const CollectUserDataOptions& collect_user_data_options, const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles); // Get the default selection for the current list of profiles. Returns -1 if no // default selection is possible. -int GetDefaultProfile( +int GetDefaultContactProfile( + const CollectUserDataOptions& collect_user_data_options, + const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles); + +// Sorts the given autofill profiles based on completeness, and returns a +// vector of profile indices in sorted order. Full profiles will be ordered +// before empty ones, and for equally complete profiles, this falls back to +// sorting based on the profile names. +std::vector<int> SortAddressesByCompleteness( + const CollectUserDataOptions& collect_user_data_options, + const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles); + +// Get the default selection for the current list of profiles. Returns -1 if no +// default selection is possible. +int GetDefaultAddressProfile( const CollectUserDataOptions& collect_user_data_options, const std::vector<std::unique_ptr<autofill::AutofillProfile>>& profiles); @@ -30,7 +44,7 @@ // of payment instrument indices in sorted order. Full payment instruments will // be ordered before empty ones, and for equally complete payment instruments, // this falls back to sorting based on the full name on the credit card. -std::vector<int> SortByCompleteness( +std::vector<int> SortPaymentInstrumentsByCompleteness( const CollectUserDataOptions& collect_user_data_options, const std::vector<std::unique_ptr<PaymentInstrument>>& payment_instruments);
diff --git a/components/autofill_assistant/browser/user_data_util_unittest.cc b/components/autofill_assistant/browser/user_data_util_unittest.cc index 6e08168c..ef4fb96 100644 --- a/components/autofill_assistant/browser/user_data_util_unittest.cc +++ b/components/autofill_assistant/browser/user_data_util_unittest.cc
@@ -18,7 +18,7 @@ using ::testing::Eq; using ::testing::SizeIs; -TEST(UserDataUtilTest, SortsCompleteProfilesAlphabetically) { +TEST(UserDataUtilTest, SortsCompleteContactsAlphabetically) { auto profile_a = std::make_unique<autofill::AutofillProfile>(); autofill::test::SetProfileInfo(profile_a.get(), "Adam", "", "West", "adam.west@gmail.com", "", "", "", "", "", "", @@ -47,12 +47,12 @@ options.request_payer_email = true; std::vector<int> profile_indices = - autofill_assistant::SortByCompleteness(options, profiles); + autofill_assistant::SortContactsByCompleteness(options, profiles); EXPECT_THAT(profile_indices, SizeIs(profiles.size())); EXPECT_THAT(profile_indices, ElementsAre(2, 1, 0)); } -TEST(UserDataUtilTest, SortsProfilesByCompleteness) { +TEST(UserDataUtilTest, SortsContactsByCompleteness) { auto profile_complete = std::make_unique<autofill::AutofillProfile>(); autofill::test::SetProfileInfo( profile_complete.get(), "Charlie", "", "West", "charlie.west@gmail.com", @@ -81,19 +81,19 @@ options.request_shipping = true; std::vector<int> profile_indices = - autofill_assistant::SortByCompleteness(options, profiles); + autofill_assistant::SortContactsByCompleteness(options, profiles); EXPECT_THAT(profile_indices, SizeIs(profiles.size())); EXPECT_THAT(profile_indices, ElementsAre(2, 1, 0)); } -TEST(UserDataUtilTest, GetDefaultSelectionForEmptyProfiles) { +TEST(UserDataUtilTest, GetDefaultContactSelectionForEmptyProfiles) { std::vector<std::unique_ptr<autofill::AutofillProfile>> profiles; CollectUserDataOptions options; - EXPECT_THAT(GetDefaultProfile(options, profiles), -1); + EXPECT_THAT(GetDefaultContactProfile(options, profiles), -1); } -TEST(UserDataUtilTest, GetDefaultSelectionForCompleteProfiles) { +TEST(UserDataUtilTest, GetDefaultContactSelectionForCompleteProfiles) { auto profile_b = std::make_unique<autofill::AutofillProfile>(); autofill::test::SetProfileInfo(profile_b.get(), "Berta", "", "West", "berta.west@gmail.com", "", "", "", "", "", "", @@ -113,7 +113,7 @@ options.request_payer_name = true; options.request_payer_email = true; - EXPECT_THAT(GetDefaultProfile(options, profiles), 1); + EXPECT_THAT(GetDefaultContactProfile(options, profiles), 1); } TEST(UserDataUtilTest, GetDefaultSelectionForDefaultEmail) { @@ -146,7 +146,89 @@ options.request_payer_phone = true; options.default_email = "adam.west@gmail.com"; - EXPECT_THAT(GetDefaultProfile(options, profiles), 2); + EXPECT_THAT(GetDefaultContactProfile(options, profiles), 2); +} + +TEST(UserDataUtilTest, SortsCompleteAddressesAlphabetically) { + auto profile_b = std::make_unique<autofill::AutofillProfile>(); + autofill::test::SetProfileInfo(profile_b.get(), "Berta", "", "West", "", "", + "Brandschenkestrasse 110", "", "Zurich", "", + "8002", "CH", ""); + + auto profile_a = std::make_unique<autofill::AutofillProfile>(); + autofill::test::SetProfileInfo(profile_a.get(), "Adam", "", "West", "", "", + "Brandschenkestrasse 110", "", "Zurich", "", + "8002", "CH", ""); + + // Specify profiles in reverse order to force sorting. + std::vector<std::unique_ptr<autofill::AutofillProfile>> profiles; + profiles.emplace_back(std::move(profile_b)); + profiles.emplace_back(std::move(profile_a)); + + CollectUserDataOptions options; + + std::vector<int> profile_indices = + autofill_assistant::SortAddressesByCompleteness(options, profiles); + EXPECT_THAT(profile_indices, SizeIs(profiles.size())); + EXPECT_THAT(profile_indices, ElementsAre(1, 0)); +} + +TEST(UserDataUtilTest, SortsAddressesByCompleteness) { + // Adding email address and phone number to demonstrate that they are not + // checked for completeness. + auto profile_no_street = std::make_unique<autofill::AutofillProfile>(); + autofill::test::SetProfileInfo(profile_no_street.get(), "Adam", "", "West", + "adam.west@gmail.com", "", "", "", "Zurich", + "", "8002", "CH", "+41"); + + auto profile_complete = std::make_unique<autofill::AutofillProfile>(); + autofill::test::SetProfileInfo(profile_complete.get(), "Berta", "", "West", + "", "", "Brandschenkestrasse 110", "", + "Zurich", "", "8002", "UK", ""); + + // Specify profiles in reverse order to force sorting. + std::vector<std::unique_ptr<autofill::AutofillProfile>> profiles; + profiles.emplace_back(std::move(profile_no_street)); + profiles.emplace_back(std::move(profile_complete)); + + CollectUserDataOptions options; + + std::vector<int> profile_indices = + autofill_assistant::SortAddressesByCompleteness(options, profiles); + EXPECT_THAT(profile_indices, SizeIs(profiles.size())); + EXPECT_THAT(profile_indices, ElementsAre(1, 0)); +} + +TEST(UserDataUtilTest, GetDefaultAddressSelectionForEmptyProfiles) { + std::vector<std::unique_ptr<autofill::AutofillProfile>> profiles; + CollectUserDataOptions options; + + EXPECT_THAT(GetDefaultAddressProfile(options, profiles), -1); +} + +TEST(UserDataUtilTest, GetDefaultAddressSelectionForCompleteProfiles) { + // Adding email address and phone number to demonstrate that they are not + // checked for completeness. + auto profile_with_irrelevant_details = + std::make_unique<autofill::AutofillProfile>(); + autofill::test::SetProfileInfo(profile_with_irrelevant_details.get(), "Berta", + "berta.west@gmail.com", "West", "", "", + "Brandschenkestrasse 110", "", "Zurich", "", + "8002", "CH", "+41"); + + auto profile_complete = std::make_unique<autofill::AutofillProfile>(); + autofill::test::SetProfileInfo(profile_complete.get(), "Adam", "", "West", "", + "", "Brandschenkestrasse 110", "", "Zurich", + "", "8002", "CH", ""); + + // Specify profiles in reverse order to force sorting. + std::vector<std::unique_ptr<autofill::AutofillProfile>> profiles; + profiles.emplace_back(std::move(profile_with_irrelevant_details)); + profiles.emplace_back(std::move(profile_complete)); + + CollectUserDataOptions options; + + EXPECT_THAT(GetDefaultAddressProfile(options, profiles), 1); } TEST(UserDataUtilTest, SortsCreditCardsByCompleteness) { @@ -172,7 +254,7 @@ CollectUserDataOptions options; std::vector<int> sorted_indices = - SortByCompleteness(options, payment_instruments); + SortPaymentInstrumentsByCompleteness(options, payment_instruments); EXPECT_THAT(sorted_indices, SizeIs(payment_instruments.size())); EXPECT_THAT(sorted_indices, ElementsAre(1, 0)); } @@ -200,7 +282,7 @@ CollectUserDataOptions options; std::vector<int> sorted_indices = - SortByCompleteness(options, payment_instruments); + SortPaymentInstrumentsByCompleteness(options, payment_instruments); EXPECT_THAT(sorted_indices, SizeIs(payment_instruments.size())); EXPECT_THAT(sorted_indices, ElementsAre(1, 0)); } @@ -253,7 +335,7 @@ options.require_billing_postal_code = true; std::vector<int> sorted_indices = - SortByCompleteness(options, payment_instruments); + SortPaymentInstrumentsByCompleteness(options, payment_instruments); EXPECT_THAT(sorted_indices, SizeIs(payment_instruments.size())); EXPECT_THAT(sorted_indices, ElementsAre(2, 1, 0)); }
diff --git a/components/browsing_data/core/history_notice_utils.cc b/components/browsing_data/core/history_notice_utils.cc index 36b7937..7dcc540 100644 --- a/components/browsing_data/core/history_notice_utils.cc +++ b/components/browsing_data/core/history_notice_utils.cc
@@ -57,16 +57,37 @@ const syncer::SyncService* sync_service, history::WebHistoryService* history_service, base::OnceCallback<void(bool)> callback) { + IsHistoryRecordingEnabledAndCanBeUsed( + sync_service, history_service, + base::BindOnce( + [](base::OnceCallback<void(bool)> callback, + const base::Optional<bool>& history_recording_enabled) { + std::move(callback).Run(history_recording_enabled.value_or(false)); + }, + std::move(callback))); +} + +void IsHistoryRecordingEnabledAndCanBeUsed( + const syncer::SyncService* sync_service, + history::WebHistoryService* history_service, + base::OnceCallback<void(const base::Optional<bool>&)> callback) { if (!sync_service || !sync_service->IsSyncFeatureActive() || !sync_service->GetActiveDataTypes().Has( syncer::HISTORY_DELETE_DIRECTIVES) || - sync_service->GetUserSettings()->IsUsingSecondaryPassphrase() || !history_service) { + std::move(callback).Run(base::nullopt); + return; + } + + if (sync_service->GetUserSettings()->IsUsingSecondaryPassphrase()) { + // The user has a custom passphrase. The data is encrypted and can not be + // used. std::move(callback).Run(false); return; } + net::PartialNetworkTrafficAnnotationTag partial_traffic_annotation = - net::DefinePartialNetworkTrafficAnnotation("history_notice_utils_notice", + net::DefinePartialNetworkTrafficAnnotation("history_recording_enabled", "web_history_service", R"( semantics { description: @@ -75,12 +96,12 @@ "use Google services' option enabled in the Activity controls of " "their Google account. This is done for users who sync their " "browsing history without a custom passphrase in order to show " - "information about history.google.com on the history page and in " - "the Clear Browsing Data dialog." + "information about history.google.com on the history page, " + "the settings sync setup page and in the Clear Browsing Data dialog." trigger: "This request is sent when user opens the history page or the " - "Clear Browsing Data dialog and history sync without a custom " - "passphrase is (re)enabled." + "settings sync setup page or the Clear Browsing Data dialog and " + "history sync without a custom passphrase is (re)enabled." data: "An OAuth2 token authenticating the user." } @@ -114,6 +135,7 @@ // after processing both callbacks. MergeBooleanCallbacks* merger = new MergeBooleanCallbacks(2, std::move(callback)); + net::PartialNetworkTrafficAnnotationTag partial_traffic_annotation = net::DefinePartialNetworkTrafficAnnotation("history_notice_utils_popup", "web_history_service", R"( @@ -138,8 +160,13 @@ } })"); history_service->QueryWebAndAppActivity( - base::BindOnce(&MergeBooleanCallbacks::RunCallback, - base::Unretained(merger)), + base::BindOnce( + [](base::OnceCallback<void(bool)> callback, + const base::Optional<bool>& history_recording_enabled) { + std::move(callback).Run(history_recording_enabled.value_or(false)); + }, + base::BindOnce(&MergeBooleanCallbacks::RunCallback, + base::Unretained(merger))), partial_traffic_annotation); history_service->QueryOtherFormsOfBrowsingHistory( channel,
diff --git a/components/browsing_data/core/history_notice_utils.h b/components/browsing_data/core/history_notice_utils.h index ff51743..851393fd 100644 --- a/components/browsing_data/core/history_notice_utils.h +++ b/components/browsing_data/core/history_notice_utils.h
@@ -8,6 +8,7 @@ #include <string> #include "base/callback_forward.h" +#include "base/optional.h" namespace history { class WebHistoryService; @@ -23,6 +24,21 @@ namespace browsing_data { +// Whether history recording is enabled and can be used to provide personalized +// experience. The prior is true if all the following is true: +// - User is syncing and sync history is on. +// - Data is not encrypted with custom passphrase. +// - User has enabled 'Include Chrome browsing history and activity from +// websites and apps that use Google services' in the |Web and App Activity| +// of their Google Account. +// The response is returned in |callback|. The response is base::nullopt if the +// sWAA bit could not be retrieved (i.e. the history service has not been +// created yet). +void IsHistoryRecordingEnabledAndCanBeUsed( + const syncer::SyncService* sync_service, + history::WebHistoryService* history_service, + base::OnceCallback<void(const base::Optional<bool>&)> callback); + // Whether the Clear Browsing Data UI should show a notice about the existence // of other forms of browsing history stored in user's account. The response // is returned in a |callback|.
diff --git a/components/history/core/browser/web_history_service.cc b/components/history/core/browser/web_history_service.cc index e1f687a..109452c1 100644 --- a/components/history/core/browser/web_history_service.cc +++ b/components/history/core/browser/web_history_service.cc
@@ -629,17 +629,17 @@ pending_web_and_app_activity_requests_.erase(request); std::unique_ptr<base::DictionaryValue> response_value; - bool web_and_app_activity_enabled = false; - if (success) { response_value = ReadResponse(request); - if (response_value) { - response_value->GetBoolean( - "history_recording_enabled", &web_and_app_activity_enabled); + bool web_and_app_activity_enabled = false; + if (response_value && + response_value->GetBoolean("history_recording_enabled", + &web_and_app_activity_enabled)) { + std::move(callback).Run(web_and_app_activity_enabled); + return; } } - - std::move(callback).Run(web_and_app_activity_enabled); + std::move(callback).Run(base::nullopt); } void WebHistoryService::QueryOtherFormsOfBrowsingHistoryCompletionCallback(
diff --git a/components/history/core/browser/web_history_service.h b/components/history/core/browser/web_history_service.h index a7acd29..8660b9a1 100644 --- a/components/history/core/browser/web_history_service.h +++ b/components/history/core/browser/web_history_service.h
@@ -89,7 +89,8 @@ using AudioWebHistoryCallback = base::OnceCallback<void(bool success, bool new_enabled_value)>; - using QueryWebAndAppActivityCallback = base::OnceCallback<void(bool success)>; + using QueryWebAndAppActivityCallback = base::OnceCallback<void( + const base::Optional<bool>& history_recording_enabled)>; using QueryOtherFormsOfBrowsingHistoryCallback = base::OnceCallback<void(bool success)>; @@ -211,7 +212,7 @@ // completed. Unpacks the response and calls |callback|, which is the original // callback that was passed to QueryOtherFormsOfBrowsingHistory(). void QueryOtherFormsOfBrowsingHistoryCompletionCallback( - WebHistoryService::QueryWebAndAppActivityCallback callback, + WebHistoryService::QueryOtherFormsOfBrowsingHistoryCallback callback, WebHistoryService::Request* request, bool success);
diff --git a/components/invalidation/impl/per_user_topic_subscription_manager.cc b/components/invalidation/impl/per_user_topic_subscription_manager.cc index 051bc7db..05adbfc 100644 --- a/components/invalidation/impl/per_user_topic_subscription_manager.cc +++ b/components/invalidation/impl/per_user_topic_subscription_manager.cc
@@ -409,8 +409,6 @@ pending_subscriptions_[topic]->completion_callback = base::BindOnce( &PerUserTopicSubscriptionManager::SubscriptionFinishedForTopic, base::Unretained(this)); - // TODO(crbug.com/1020117): We already called InformOfRequest(false) before in - // SubscriptionFinishedForTopic(), should probably not call it again here? pending_subscriptions_[topic]->request_backoff_.InformOfRequest(false); pending_subscriptions_[topic]->request_retry_timer_.Start( FROM_HERE, @@ -429,7 +427,6 @@ ActOnSuccessfulSubscription(topic, private_topic_name, type); } else { auto it = pending_subscriptions_.find(topic); - it->second->request_backoff_.InformOfRequest(false); if (code.IsAuthFailure()) { // Re-request access token and try subscription requests again. RequestAccessToken();
diff --git a/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc b/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc index 8078012..a801481f 100644 --- a/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc +++ b/components/invalidation/impl/per_user_topic_subscription_manager_unittest.cc
@@ -181,8 +181,13 @@ CreateStatusForTest(net::OK, std::string() /* response_body */)); } + void FastForwardTimeBy(base::TimeDelta delta) { + task_environment_.FastForwardBy(delta); + } + private: - base::test::SingleThreadTaskEnvironment task_environment_; + base::test::SingleThreadTaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; data_decoder::test::InProcessDataDecoder in_process_data_decoder_; network::TestURLLoaderFactory url_loader_factory_; TestingPrefServiceSimple pref_service_; @@ -255,18 +260,40 @@ ASSERT_TRUE(per_user_topic_subscription_manager->GetSubscribedTopicsForTest() .empty()); + // The first subscription attempt will fail. AddCorrectSubscriptionResponce( - /* private_topic */ std::string(), kFakeInstanceIdToken, + /*private_topic=*/std::string(), kFakeInstanceIdToken, net::HTTP_INTERNAL_SERVER_ERROR); per_user_topic_subscription_manager->UpdateSubscribedTopics( ids, kFakeInstanceIdToken); base::RunLoop().RunUntilIdle(); + // Since the subscriptions failed, the requests should still be pending. EXPECT_TRUE(per_user_topic_subscription_manager->GetSubscribedTopicsForTest() .empty()); EXPECT_FALSE( per_user_topic_subscription_manager->HaveAllRequestsFinishedForTest()); + + // The second attempt will succeed. + AddCorrectSubscriptionResponce(); + + // Initial backoff is 2 seconds with 20% jitter, so the minimum possible delay + // is 1600ms. Advance time to just before that; nothing should have changed + // yet. + FastForwardTimeBy(base::TimeDelta::FromMilliseconds(1500)); + EXPECT_TRUE(per_user_topic_subscription_manager->GetSubscribedTopicsForTest() + .empty()); + EXPECT_FALSE( + per_user_topic_subscription_manager->HaveAllRequestsFinishedForTest()); + + // The maximum backoff is 2 seconds; advance to just past that. Now all + // subscriptions should have finished. + FastForwardTimeBy(base::TimeDelta::FromMilliseconds(600)); + EXPECT_FALSE(per_user_topic_subscription_manager->GetSubscribedTopicsForTest() + .empty()); + EXPECT_TRUE( + per_user_topic_subscription_manager->HaveAllRequestsFinishedForTest()); } TEST_F(PerUserTopicSubscriptionManagerTest, ShouldRepeatRequestsOnForbidden) {
diff --git a/components/metrics/metrics_log.h b/components/metrics/metrics_log.h index 821835a..fc3afba 100644 --- a/components/metrics/metrics_log.h +++ b/components/metrics/metrics_log.h
@@ -166,9 +166,12 @@ LogType log_type() const { return log_type_; } + // Exposed for the sake of mocking/accessing in test code. + ChromeUserMetricsExtension* UmaProtoForTest() { return &uma_proto_; } + protected: // Exposed for the sake of mocking/accessing in test code. - + // TODO(1034679): migrate to public UmaProtoForTest() method. ChromeUserMetricsExtension* uma_proto() { return &uma_proto_; } // Exposed to allow subclass to access to export the uma_proto. Can be used
diff --git a/components/metrics/metrics_service.h b/components/metrics/metrics_service.h index 7270f83..fa29a338 100644 --- a/components/metrics/metrics_service.h +++ b/components/metrics/metrics_service.h
@@ -175,8 +175,16 @@ return &synthetic_trial_registry_; } + // Test hook to close out the current log after adding any last information. + void CloseCurrentLogForTest() { CloseCurrentLog(); } + + MetricsLogStore* LogStoreForTest() { + return reporting_service_.metrics_log_store(); + } + protected: // Exposed for testing. + // TODO(1034679): migrate these to public FooForTest() methods. MetricsLogManager* log_manager() { return &log_manager_; } MetricsLogStore* log_store() { return reporting_service_.metrics_log_store();
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/builder/Module.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/builder/Module.java index f14fd56..256f06e 100644 --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/builder/Module.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/builder/Module.java
@@ -6,7 +6,7 @@ import androidx.annotation.VisibleForTesting; -import org.chromium.base.BuildConfig; +import org.chromium.base.BundleUtils; import org.chromium.base.StrictModeContext; import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.NativeMethods; @@ -153,7 +153,7 @@ * @return The module's {@link ModuleDescriptor}. */ private static ModuleDescriptor loadModuleDescriptor(String name) { - if (!BuildConfig.IS_BUNDLE) { + if (!BundleUtils.isBundle()) { return new ModuleDescriptor() { @Override public String[] getLibraries() {
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/EngineFactory.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/EngineFactory.java index e72e19b07..6c9ea53 100644 --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/EngineFactory.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/EngineFactory.java
@@ -4,7 +4,7 @@ package org.chromium.components.module_installer.engine; -import org.chromium.base.BuildConfig; +import org.chromium.base.BundleUtils; import org.chromium.base.CommandLine; /** @@ -12,7 +12,7 @@ */ public class EngineFactory { public InstallEngine getEngine() { - if (!BuildConfig.IS_BUNDLE) { + if (!BundleUtils.isBundle()) { return new ApkEngine(); } if (CommandLine.getInstance().hasSwitch("fake-feature-module-install")) {
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java index 62023a0..682b149 100644 --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java
@@ -4,7 +4,7 @@ package org.chromium.components.module_installer.util; -import org.chromium.base.BuildConfig; +import org.chromium.base.BundleUtils; import org.chromium.base.annotations.MainDex; import org.chromium.components.module_installer.logger.SplitAvailabilityLogger; @@ -20,7 +20,7 @@ * unnecessary code (modules are not supported in APKs). */ public static void recordStartupTime() { - if (!BuildConfig.IS_BUNDLE) return; + if (!BundleUtils.isBundle()) return; Timer.recordStartupTime(); } @@ -29,7 +29,7 @@ * Records the start time in order to later report the install duration via UMA. */ public static void recordModuleAvailability() { - if (!BuildConfig.IS_BUNDLE) return; + if (!BundleUtils.isBundle()) return; try (Timer timer = new Timer()) { initApplication(); @@ -41,7 +41,7 @@ * Updates the CrashKey report containing modules currently present. */ public static void updateCrashKeys() { - if (!BuildConfig.IS_BUNDLE) return; + if (!BundleUtils.isBundle()) return; try (Timer timer = new Timer()) { CrashKeyRecorder.updateCrashKeys(); @@ -52,7 +52,7 @@ * Initializes the PlayCore SplitCompat framework. */ public static void initApplication() { - if (!BuildConfig.IS_BUNDLE) return; + if (!BundleUtils.isBundle()) return; try (Timer timer = new Timer()) { SplitCompatInitializer.initApplication();
diff --git a/components/omnibox/browser/scored_history_match.cc b/components/omnibox/browser/scored_history_match.cc index ff7997ca..c51c311fe 100644 --- a/components/omnibox/browser/scored_history_match.cc +++ b/components/omnibox/browser/scored_history_match.cc
@@ -407,13 +407,15 @@ while ((next_word_starts != end_word_starts) && (*next_word_starts < (term_match.offset + term_offset))) ++next_word_starts; - // Add the match if it's before the position we start filtering at or + // Add the match if it's (1) before the position we start filtering at, (2) // after the position we stop filtering at (assuming we have a position - // to stop filtering at) or if it's at a word boundary. + // to stop filtering at), (3) at a word boundary, or (4) void of words (e.g. + // the term '-' contains no words). if ((term_match.offset < start_pos) || ((end_pos != std::string::npos) && (term_match.offset >= end_pos)) || ((next_word_starts != end_word_starts) && - (*next_word_starts == term_match.offset + term_offset))) + (*next_word_starts == term_match.offset + term_offset)) || + term_offset == term_match.length) filtered_matches.push_back(term_match); } return filtered_matches; @@ -497,13 +499,16 @@ } const bool at_word_boundary = (next_word_starts != end_word_starts) && (*next_word_starts == term_word_offset); + // Terms such as '-' contain no words. + const bool term_has_no_words = + url_match.length == terms_to_word_starts_offsets[url_match.term_num]; if (term_word_offset >= query_pos) { // The match is in the query or ref component. - DCHECK(at_word_boundary); + DCHECK(at_word_boundary || term_has_no_words); term_scores[url_match.term_num] += 5; } else if (term_word_offset >= path_pos) { // The match is in the path component. - DCHECK(at_word_boundary); + DCHECK(at_word_boundary || term_has_no_words); term_scores[url_match.term_num] += 8; } else if (term_word_offset >= host_pos) { if (term_word_offset < last_part_of_host_pos) { @@ -519,7 +524,7 @@ } else { // The match is in the protocol (a.k.a. scheme). // Matches not at a word boundary should have been filtered already. - DCHECK(at_word_boundary); + DCHECK(at_word_boundary || term_has_no_words); if (allow_scheme_matches_) term_scores[url_match.term_num] += 10; } @@ -547,7 +552,10 @@ if (word_num >= num_title_words_to_allow_) break; // only count the first ten words DCHECK(next_word_starts != end_word_starts); - DCHECK_EQ(*next_word_starts, term_word_offset) << "not at word boundary"; + DCHECK(*next_word_starts == term_word_offset || + title_match.length == + terms_to_word_starts_offsets[title_match.term_num]) + << "not at word boundary"; term_scores[title_match.term_num] += 8; } // TODO(mpearson): Restore logic for penalizing out-of-order matches.
diff --git a/components/omnibox/browser/scored_history_match_unittest.cc b/components/omnibox/browser/scored_history_match_unittest.cc index 4a4112d..4b92625 100644 --- a/components/omnibox/browser/scored_history_match_unittest.cc +++ b/components/omnibox/browser/scored_history_match_unittest.cc
@@ -628,7 +628,7 @@ // once somewhere in the URL or title. TEST_F(ScoredHistoryMatchTest, GetTopicalityScore) { GURL url("http://abc.def.com/path1/path2?arg1=val1&arg2=val2#hash_fragment"); - base::string16 title = ASCIIToUTF16("here is a title"); + base::string16 title = ASCIIToUTF16("here is a - title"); auto Score = [&](const char* term) { return GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16(term), url, title); @@ -652,6 +652,7 @@ const float protocol_mid_word_score = Score("tt"); const float title_score = Score("her"); const float title_mid_word_score = Score("er"); + const float wordless_match_at_title_mid_word_score = Score("-"); // Verify hostname and domain name > path > arg. EXPECT_GT(hostname_score, path_score); EXPECT_GT(domain_name_score, path_score); @@ -673,6 +674,17 @@ EXPECT_GT(arg_score, hostname_mid_word_score); EXPECT_GT(arg_score, domain_name_mid_word_score); EXPECT_GT(title_score, title_mid_word_score); + // Verify mid word scores are scored 0 unless 1) in the host or domain 2) or + // the match contains no words. + EXPECT_GT(hostname_mid_word_score, 0); + EXPECT_GT(domain_name_mid_word_score, 0); + EXPECT_EQ(tld_mid_word_score, 0); + EXPECT_EQ(path_mid_word_score, 0); + EXPECT_EQ(arg_mid_word_score, 0); + EXPECT_EQ(protocol_mid_word_score, 0); + EXPECT_EQ(title_mid_word_score, 0); + EXPECT_GT(wordless_match_at_title_mid_word_score, 0); + // Verify matches not at word starts score non 0 when they contain no words. // Check that title matches fit somewhere reasonable compared to the // various types of URL matches. EXPECT_GT(title_score, arg_score);
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge.cc b/components/password_manager/core/browser/sync/password_sync_bridge.cc index 9706506..6fd2369c 100644 --- a/components/password_manager/core/browser/sync/password_sync_bridge.cc +++ b/components/password_manager/core/browser/sync/password_sync_bridge.cc
@@ -12,6 +12,7 @@ #include "base/metrics/histogram_functions.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" +#include "build/build_config.h" #include "components/autofill/core/common/password_form.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/common/password_manager_features.h" @@ -168,8 +169,20 @@ .Serialize() == password_form.federation_origin.Serialize()); } +// Whether we should try to recover undecryptable local passwords by deleting +// the local copy, to be replaced by the remote version coming from Sync during +// merge. bool ShouldRecoverPasswordsDuringMerge() { + // Delete the local undecryptable copy under the following conditions: + // 1. This is MacOS only. + // 2. The more general feature kDeleteCorruptedPasswords is disabled. + // kDeleteCorruptedPasswords takes cares of deleting undecryptable entities + // for Sync and non-Sync users upon reading from the LoginDatabase. +#if defined(OS_MACOSX) && !defined(OS_IOS) return !base::FeatureList::IsEnabled(features::kDeleteCorruptedPasswords); +#else + return false; +#endif } // A simple class for scoping a password store sync transaction. If the
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc b/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc index bb38b88f..a2e48f1 100644 --- a/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc +++ b/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc
@@ -12,6 +12,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/test/bind_test_util.h" #include "base/test/mock_callback.h" +#include "build/build_config.h" #include "components/password_manager/core/browser/password_store_sync.h" #include "components/sync/base/client_tag_hash.h" #include "components/sync/model/data_batch.h" @@ -789,6 +790,7 @@ mock_password_store_sync(), base::DoNothing()); } +#if defined(OS_MACOSX) && !defined(OS_IOS) // Tests that in case ReadAllLogins() during initial merge returns encryption // service failure, the bridge would try to do a DB clean up. TEST_F(PasswordSyncBridgeTest, ShouldDeleteUndecryptableLoginsDuringMerge) { @@ -806,6 +808,7 @@ bridge()->MergeSyncData(bridge()->CreateMetadataChangeList(), {}); EXPECT_FALSE(error); } +#endif TEST_F(PasswordSyncBridgeTest, ShouldDeleteSyncMetadataWhenApplyStopSyncChanges) {
diff --git a/components/password_manager/core/browser/sync/password_syncable_service.cc b/components/password_manager/core/browser/sync/password_syncable_service.cc index 7906e09..bad5601 100644 --- a/components/password_manager/core/browser/sync/password_syncable_service.cc +++ b/components/password_manager/core/browser/sync/password_syncable_service.cc
@@ -14,6 +14,7 @@ #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/strings/utf_string_conversions.h" +#include "build/build_config.h" #include "components/autofill/core/common/password_form.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" #include "components/password_manager/core/browser/password_store_sync.h" @@ -450,8 +451,20 @@ } } +// Whether we should try to recover undecryptable local passwords by deleting +// the local copy, to be replaced by the remote version coming from Sync during +// merge. bool PasswordSyncableService::ShouldRecoverPasswordsDuringMerge() const { + // Delete the local undecryptable copy under the following conditions: + // 1. This is MacOS only. + // 2. The more general feature kDeleteCorruptedPasswords is disabled. + // kDeleteCorruptedPasswords takes cares of deleting undecryptable entities + // for Sync and non-Sync users upon reading from the LoginDatabase. +#if defined(OS_MACOSX) && !defined(OS_IOS) return !base::FeatureList::IsEnabled(features::kDeleteCorruptedPasswords); +#else + return false; +#endif } syncer::SyncData SyncDataFromPassword(
diff --git a/components/password_manager/core/browser/sync/password_syncable_service_unittest.cc b/components/password_manager/core/browser/sync/password_syncable_service_unittest.cc index 5b32031..fec1c9f 100644 --- a/components/password_manager/core/browser/sync/password_syncable_service_unittest.cc +++ b/components/password_manager/core/browser/sync/password_syncable_service_unittest.cc
@@ -31,6 +31,7 @@ using syncer::SyncData; using syncer::SyncDataList; using syncer::SyncError; +using testing::_; using testing::AnyNumber; using testing::DoAll; using testing::ElementsAre; @@ -41,7 +42,6 @@ using testing::Return; using testing::SetArgPointee; using testing::UnorderedElementsAre; -using testing::_; namespace password_manager { @@ -515,8 +515,10 @@ syncer::PASSWORDS); EXPECT_CALL(*password_store(), FillAutofillableLogins(_)) .WillOnce(Return(false)); +#if defined(OS_MACOSX) && !defined(OS_IOS) EXPECT_CALL(*password_store(), DeleteUndecryptableLogins()) .WillOnce(Return(DatabaseCleanupResult::kDatabaseUnavailable)); +#endif EXPECT_CALL(*error_factory, CreateAndUploadError(_, _)) .WillOnce(Return(error)); // ActOnPasswordStoreChanges() below shouldn't generate any changes for Sync. @@ -545,6 +547,7 @@ base::test::ScopedFeatureList scoped_feature_list_; }; +#if defined(OS_MACOSX) && !defined(OS_IOS) // Test that passwords are recovered for Sync users using the older logic (i.e. // recover passwords only for Sync users) when the feature for deleting // corrupted passwords for all users is disabled. @@ -563,6 +566,7 @@ syncer::PASSWORDS, SyncDataList(), std::move(processor_), nullptr); EXPECT_FALSE(result.error().IsSet()); } +#endif class PasswordSyncableServiceTestWithDeleteCorruptedPasswords : public PasswordSyncableServiceTest { @@ -597,6 +601,7 @@ EXPECT_TRUE(result.error().IsSet()); } +#if defined(OS_MACOSX) && !defined(OS_IOS) // Database cleanup fails because encryption is unavailable. TEST_F(PasswordSyncableServiceTestWithoutDeleteCorruptedPasswords, FailedDeleteUndecryptableLogins) { @@ -618,6 +623,7 @@ std::move(error_factory)); EXPECT_TRUE(result.error().IsSet()); } +#endif // Start syncing with an error in ProcessSyncChanges. Subsequent password store // updates shouldn't be propagated to Sync.
diff --git a/components/startup_metric_utils/browser/BUILD.gn b/components/startup_metric_utils/browser/BUILD.gn index c975663..90cb4717 100644 --- a/components/startup_metric_utils/browser/BUILD.gn +++ b/components/startup_metric_utils/browser/BUILD.gn
@@ -2,20 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# We have 2 separate targets because //components/html_viewer requires :lib, -# but has symbols that conflict with mojo symbols that :message_filter_lib -# indirectly depends on. - -group("browser") { - testonly = true - - deps = [ - ":host", - ":lib", - ] -} - -static_library("lib") { +static_library("browser") { sources = [ "startup_metric_utils.cc", "startup_metric_utils.h", @@ -23,23 +10,6 @@ deps = [ "//base", - "//components/metrics:call_stack_profile_builder", - "//components/metrics:metrics", - "//components/prefs", "//components/version_info", ] } - -static_library("host") { - sources = [ - "startup_metric_host_impl.cc", - "startup_metric_host_impl.h", - ] - - deps = [ - ":lib", - "//base", - "//components/startup_metric_utils/common:interfaces", - "//content/public/browser", - ] -}
diff --git a/components/startup_metric_utils/browser/DEPS b/components/startup_metric_utils/browser/DEPS index dba3d91d..857ff62 100644 --- a/components/startup_metric_utils/browser/DEPS +++ b/components/startup_metric_utils/browser/DEPS
@@ -1,6 +1,3 @@ include_rules = [ - "+components/metrics", "+components/version_info", - "+content/public/browser", - "+mojo/public/cpp/bindings", ]
diff --git a/components/startup_metric_utils/browser/startup_metric_host_impl.cc b/components/startup_metric_utils/browser/startup_metric_host_impl.cc deleted file mode 100644 index 6a09747e..0000000 --- a/components/startup_metric_utils/browser/startup_metric_host_impl.cc +++ /dev/null
@@ -1,30 +0,0 @@ -// Copyright 2015 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 "components/startup_metric_utils/browser/startup_metric_host_impl.h" - -#include <memory> - -#include "components/startup_metric_utils/browser/startup_metric_utils.h" -#include "mojo/public/cpp/bindings/self_owned_receiver.h" - -namespace startup_metric_utils { - -StartupMetricHostImpl::StartupMetricHostImpl() = default; - -StartupMetricHostImpl::~StartupMetricHostImpl() = default; - -// static -void StartupMetricHostImpl::Create( - mojo::PendingReceiver<mojom::StartupMetricHost> receiver) { - mojo::MakeSelfOwnedReceiver(std::make_unique<StartupMetricHostImpl>(), - std::move(receiver)); -} - -void StartupMetricHostImpl::RecordRendererMainEntryTime( - base::TimeTicks renderer_main_entry_time) { - startup_metric_utils::RecordRendererMainEntryTime(renderer_main_entry_time); -} - -} // namespace startup_metric_utils
diff --git a/components/startup_metric_utils/browser/startup_metric_host_impl.h b/components/startup_metric_utils/browser/startup_metric_host_impl.h deleted file mode 100644 index b1ebd35..0000000 --- a/components/startup_metric_utils/browser/startup_metric_host_impl.h +++ /dev/null
@@ -1,33 +0,0 @@ -// Copyright 2015 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 COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_HOST_IMPL_H_ -#define COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_HOST_IMPL_H_ - -#include <stdint.h> - -#include "base/macros.h" -#include "base/time/time.h" -#include "components/startup_metric_utils/common/startup_metric.mojom.h" -#include "mojo/public/cpp/bindings/pending_receiver.h" - -namespace startup_metric_utils { - -class StartupMetricHostImpl : public mojom::StartupMetricHost { - public: - StartupMetricHostImpl(); - ~StartupMetricHostImpl() override; - - static void Create(mojo::PendingReceiver<mojom::StartupMetricHost> receiver); - - private: - void RecordRendererMainEntryTime( - base::TimeTicks renderer_main_entry_time) override; - - DISALLOW_COPY_AND_ASSIGN(StartupMetricHostImpl); -}; - -} // namespace startup_metric_utils - -#endif // COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_HOST_IMPL_H_
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.cc b/components/startup_metric_utils/browser/startup_metric_utils.cc index d470948..9cb3a69 100644 --- a/components/startup_metric_utils/browser/startup_metric_utils.cc +++ b/components/startup_metric_utils/browser/startup_metric_utils.cc
@@ -44,8 +44,6 @@ base::TimeTicks g_browser_main_entry_point_ticks; -base::TimeTicks g_renderer_main_entry_point_ticks; - base::TimeTicks g_browser_exe_main_entry_point_ticks; base::TimeTicks g_message_loop_start_ticks; @@ -335,15 +333,6 @@ return trace_ticks_base - delta_since_base; } -void RecordRendererMainEntryHistogram() { - if (!g_browser_main_entry_point_ticks.is_null() && - !g_renderer_main_entry_point_ticks.is_null()) { - UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE( - UMA_HISTOGRAM_LONG_TIMES_100, "Startup.BrowserMainToRendererMain", - g_browser_main_entry_point_ticks, g_renderer_main_entry_point_ticks); - } -} - void AddStartupEventsForTelemetry() { DCHECK(!g_browser_main_entry_point_ticks.is_null()); @@ -490,13 +479,6 @@ g_browser_open_tabs_duration = delta; } -void RecordRendererMainEntryTime(base::TimeTicks ticks) { - // Record the renderer main entry time, but don't log the UMA metric - // immediately because the startup temperature is not known yet. - if (g_renderer_main_entry_point_ticks.is_null()) - g_renderer_main_entry_point_ticks = ticks; -} - void RecordFirstWebContentsNonEmptyPaint( base::TimeTicks now, base::TimeTicks render_process_host_init_time) { @@ -505,10 +487,6 @@ return; is_first_call = false; - // Log Startup.BrowserMainToRendererMain now that the first renderer main - // entry time and the startup temperature are known. - RecordRendererMainEntryHistogram(); - if (!ShouldLogStartupHistogram()) return;
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.h b/components/startup_metric_utils/browser/startup_metric_utils.h index c59f7713..bdca6a8 100644 --- a/components/startup_metric_utils/browser/startup_metric_utils.h +++ b/components/startup_metric_utils/browser/startup_metric_utils.h
@@ -55,12 +55,6 @@ // Call this with the time delta that the browser spent opening its tabs. void RecordBrowserOpenTabsDelta(base::TimeDelta delta); -// Call this with a renderer main entry time. The value provided for the first -// call to this function is used to compute -// Startup.LoadTime.BrowserMainToRendererMain. Further calls to this -// function are ignored. -void RecordRendererMainEntryTime(base::TimeTicks ticks); - // Call this with the time when the first web contents had a non-empty paint, // only if the first web contents was unimpeded in its attempt to do so. void RecordFirstWebContentsNonEmptyPaint(
diff --git a/components/startup_metric_utils/common/BUILD.gn b/components/startup_metric_utils/common/BUILD.gn deleted file mode 100644 index d19682d..0000000 --- a/components/startup_metric_utils/common/BUILD.gn +++ /dev/null
@@ -1,14 +0,0 @@ -# Copyright 2015 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. - -import("//mojo/public/tools/bindings/mojom.gni") - -mojom("interfaces") { - sources = [ - "startup_metric.mojom", - ] - deps = [ - "//mojo/public/mojom/base", - ] -}
diff --git a/components/startup_metric_utils/common/OWNERS b/components/startup_metric_utils/common/OWNERS deleted file mode 100644 index 08850f4..0000000 --- a/components/startup_metric_utils/common/OWNERS +++ /dev/null
@@ -1,2 +0,0 @@ -per-file *.mojom=set noparent -per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/components/startup_metric_utils/common/startup_metric.mojom b/components/startup_metric_utils/common/startup_metric.mojom deleted file mode 100644 index 276bd3c..0000000 --- a/components/startup_metric_utils/common/startup_metric.mojom +++ /dev/null
@@ -1,12 +0,0 @@ -// Copyright 2016 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. - -module startup_metric_utils.mojom; - -import "mojo/public/mojom/base/time.mojom"; - -interface StartupMetricHost { - RecordRendererMainEntryTime( - mojo_base.mojom.TimeTicks renderer_main_entry_time); -};
diff --git a/components/tracing/common/trace_startup_config.cc b/components/tracing/common/trace_startup_config.cc index 152c51a..25412258 100644 --- a/components/tracing/common/trace_startup_config.cc +++ b/components/tracing/common/trace_startup_config.cc
@@ -38,13 +38,13 @@ FILE_PATH_LITERAL("/data/local/chrome-trace-config.json"); const char kDefaultStartupCategories[] = - "startup,browser,toplevel,disabled-by-default-toplevel.flow,ipc,disabled-" - "by-default-ipc.flow,EarlyJava,cc,Java,navigation,loading,gpu," - "disabled-by-default-cpu_profiler,download_service,-*"; + "startup,browser,toplevel,disabled-by-default-toplevel.flow,ipc,EarlyJava," + "cc,Java,navigation,loading,gpu,disabled-by-default-cpu_profiler,download_" + "service,-*"; #else const char kDefaultStartupCategories[] = "benchmark,toplevel,startup,disabled-by-default-file,disabled-by-default-" - "toplevel.flow,disabled-by-default-ipc.flow,download_service,-*"; + "toplevel.flow,download_service,-*"; #endif // String parameters that can be used to parse the trace config file content.
diff --git a/content/browser/android/synchronous_compositor_host.cc b/content/browser/android/synchronous_compositor_host.cc index 36c5f9e..5776f44 100644 --- a/content/browser/android/synchronous_compositor_host.cc +++ b/content/browser/android/synchronous_compositor_host.cc
@@ -156,6 +156,7 @@ } SynchronousCompositorHost::~SynchronousCompositorHost() { + SetBeginFrameSource(nullptr); client_->DidDestroyCompositor(this, frame_sink_id_); bridge_->HostDestroyedOnUIThread(); } @@ -435,7 +436,10 @@ void SynchronousCompositorHost::DidPresentCompositorFrames( viz::FrameTimingDetailsMap timing_details, uint32_t frame_token) { - rwhva_->DidPresentCompositorFrames(timing_details); + timing_details_ = timing_details; + if (!timing_details_.empty()) + AddBeginFrameRequest(BEGIN_FRAME); + UpdatePresentedFrameToken(frame_token); } @@ -509,25 +513,13 @@ over_scroll_params.current_fling_velocity); } -void SynchronousCompositorHost::BeginFrame( - ui::WindowAndroid* window_android, - const viz::BeginFrameArgs& args, - const viz::FrameTimingDetailsMap& timing_details) { - if (!bridge_->WaitAfterVSyncOnUIThread(window_android)) - return; - mojom::SynchronousCompositor* compositor = GetSynchronousCompositor(); - DCHECK(compositor); - compositor->BeginFrame(args, timing_details); -} - -void SynchronousCompositorHost::SetBeginFramePaused(bool paused) { - begin_frame_paused_ = paused; - if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor()) - compositor->SetBeginFrameSourcePaused(paused); -} - void SynchronousCompositorHost::SetNeedsBeginFrames(bool needs_begin_frames) { - rwhva_->host()->SetNeedsBeginFrame(needs_begin_frames); + TRACE_EVENT1("cc", "SynchronousCompositorHost::SetNeedsBeginFrames", + "needs_begin_frames", needs_begin_frames); + if (needs_begin_frames) + AddBeginFrameRequest(PERSISTENT_BEGIN_FRAME); + else + ClearBeginFrameRequest(PERSISTENT_BEGIN_FRAME); } void SynchronousCompositorHost::LayerTreeFrameSinkCreated() { @@ -539,8 +531,7 @@ DCHECK(compositor); compositor->SetMemoryPolicy(bytes_limit_); - if (begin_frame_paused_) - compositor->SetBeginFrameSourcePaused(begin_frame_paused_); + SendBeginFramePaused(); } void SynchronousCompositorHost::UpdateState( @@ -604,4 +595,135 @@ return sync_compositor_.get(); } +void SynchronousCompositorHost::OnBeginFrame(const viz::BeginFrameArgs& args) { + TRACE_EVENT0("cc,benchmark", "SynchronousCompositorHost::OnBeginFrame"); + + // In sync mode, we disregard missed frame args to ensure that + // SynchronousCompositorBrowserFilter::SyncStateAfterVSync will be called + // during WindowAndroid::WindowBeginFrameSource::OnVSync() observer iteration. + if (args.type == viz::BeginFrameArgs::MISSED) + return; + + // We need to check this before |outstanding_begin_frame_requests_| will be + // changed by ClearBeginFrameRequest below. + bool needs_begin_frame = + (outstanding_begin_frame_requests_ & BEGIN_FRAME) || + (outstanding_begin_frame_requests_ & PERSISTENT_BEGIN_FRAME); + + // Update |last_begin_frame_args_| before handling + // |outstanding_begin_frame_requests_| to prevent the BeginFrameSource from + // sending the same MISSED args in infinite recursion. + last_begin_frame_args_ = args; + + ClearBeginFrameRequest(BEGIN_FRAME); + + if (on_compute_scroll_called_ || !rwhva_->is_currently_scrolling_viewport()) { + rwhva_->host()->ProgressFlingIfNeeded(args.frame_time); + } + + if (needs_begin_frame) { + SendBeginFrame(args); + } +} + +const viz::BeginFrameArgs& SynchronousCompositorHost::LastUsedBeginFrameArgs() + const { + return last_begin_frame_args_; +} + +void SynchronousCompositorHost::OnBeginFrameSourcePausedChanged(bool paused) { + if (paused != begin_frame_paused_) { + begin_frame_paused_ = paused; + SendBeginFramePaused(); + } +} + +bool SynchronousCompositorHost::WantsAnimateOnlyBeginFrames() const { + return false; +} + +void SynchronousCompositorHost::SendBeginFramePaused() { + bool paused = begin_frame_paused_ || !observed_root_window_; + + if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor()) + compositor->SetBeginFrameSourcePaused(paused); +} + +void SynchronousCompositorHost::SendBeginFrame(viz::BeginFrameArgs args) { + TRACE_EVENT2("cc", "SynchronousCompositorHost::SendBeginFrame", + "frame_number", args.frame_id.sequence_number, "frame_time_us", + args.frame_time); + + DCHECK(observed_root_window_); + if (!bridge_->WaitAfterVSyncOnUIThread(observed_root_window_)) + return; + mojom::SynchronousCompositor* compositor = GetSynchronousCompositor(); + DCHECK(compositor); + compositor->BeginFrame(args, timing_details_); + timing_details_.clear(); +} + +void SynchronousCompositorHost::StartObservingRootWindow( + ui::WindowAndroid* window) { + DCHECK(window); + if (observed_root_window_) { + DCHECK(observed_root_window_ == window); + return; + } + + observed_root_window_ = window; + SendBeginFramePaused(); + SetBeginFrameSource(window->GetBeginFrameSource()); +} + +void SynchronousCompositorHost::StopObservingRootWindow() { + if (!observed_root_window_) + return; + + // Reset window state variables to their defaults. + observed_root_window_ = nullptr; + SendBeginFramePaused(); + SetBeginFrameSource(nullptr); + DCHECK(!begin_frame_source_); +} + +void SynchronousCompositorHost::SetBeginFrameSource( + viz::BeginFrameSource* begin_frame_source) { + if (begin_frame_source_ == begin_frame_source) + return; + + if (begin_frame_source_ && outstanding_begin_frame_requests_) + begin_frame_source_->RemoveObserver(this); + begin_frame_source_ = begin_frame_source; + if (begin_frame_source_ && outstanding_begin_frame_requests_) + begin_frame_source_->AddObserver(this); +} + +void SynchronousCompositorHost::AddBeginFrameRequest( + BeginFrameRequestType request) { + uint32_t prior_requests = outstanding_begin_frame_requests_; + outstanding_begin_frame_requests_ = prior_requests | request; + + // Note that if we don't currently have a BeginFrameSource, outstanding begin + // frame requests will be pushed if/when we get one during + // |StartObservingRootWindow()| or when the DelegatedFrameHostAndroid sets it. + viz::BeginFrameSource* source = begin_frame_source_; + if (source && outstanding_begin_frame_requests_ && !prior_requests) + source->AddObserver(this); +} + +void SynchronousCompositorHost::ClearBeginFrameRequest( + BeginFrameRequestType request) { + uint32_t prior_requests = outstanding_begin_frame_requests_; + outstanding_begin_frame_requests_ = prior_requests & ~request; + + viz::BeginFrameSource* source = begin_frame_source_; + if (source && !outstanding_begin_frame_requests_ && prior_requests) + source->RemoveObserver(this); +} + +void SynchronousCompositorHost::RequestOneBeginFrame() { + AddBeginFrameRequest(BEGIN_FRAME); +} + } // namespace content
diff --git a/content/browser/android/synchronous_compositor_host.h b/content/browser/android/synchronous_compositor_host.h index 3f4f57c..1264d19 100644 --- a/content/browser/android/synchronous_compositor_host.h +++ b/content/browser/android/synchronous_compositor_host.h
@@ -14,6 +14,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/single_thread_task_runner.h" +#include "components/viz/common/frame_sinks/begin_frame_source.h" #include "components/viz/common/quads/compositor_frame.h" #include "components/viz/common/surfaces/frame_sink_id.h" #include "content/common/input/synchronous_compositor.mojom.h" @@ -39,7 +40,8 @@ struct SyncCompositorCommonRendererParams; class SynchronousCompositorHost : public SynchronousCompositor, - public mojom::SynchronousCompositorHost { + public mojom::SynchronousCompositorHost, + public viz::BeginFrameObserver { public: static std::unique_ptr<SynchronousCompositorHost> Create( RenderWidgetHostViewAndroid* rwhva, @@ -68,10 +70,6 @@ ui::ViewAndroid::CopyViewCallback GetCopyViewCallback(); void DidOverscroll(const ui::DidOverscrollParams& over_scroll_params); - void BeginFrame(ui::WindowAndroid* window_android, - const viz::BeginFrameArgs& args, - const viz::FrameTimingDetailsMap& timing_details); - void SetBeginFramePaused(bool paused); // Called by SynchronousCompositorSyncCallBridge. void UpdateFrameMetaData(uint32_t version, @@ -84,14 +82,27 @@ RenderProcessHost* GetRenderProcessHost(); + void StartObservingRootWindow(ui::WindowAndroid* window); + void StopObservingRootWindow(); + void RequestOneBeginFrame(); + // mojom::SynchronousCompositorHost overrides. void LayerTreeFrameSinkCreated() override; void UpdateState(const SyncCompositorCommonRendererParams& params) override; void SetNeedsBeginFrames(bool needs_begin_frames) override; - bool on_compute_scroll_called() { return on_compute_scroll_called_; } + // viz::BeginFrameObserver implementation. + void OnBeginFrame(const viz::BeginFrameArgs& args) override; + const viz::BeginFrameArgs& LastUsedBeginFrameArgs() const override; + void OnBeginFrameSourcePausedChanged(bool paused) override; + bool WantsAnimateOnlyBeginFrames() const override; private: + enum BeginFrameRequestType { + BEGIN_FRAME = 1 << 0, + PERSISTENT_BEGIN_FRAME = 1 << 1 + }; + class ScopedSendZeroMemory; struct SharedMemoryWithSize; friend class ScopedSetZeroMemory; @@ -114,6 +125,12 @@ void UpdateRootLayerStateOnClient(); void UpdatePresentedFrameToken(uint32_t frame_token); + void SendBeginFramePaused(); + void SendBeginFrame(viz::BeginFrameArgs args); + void SetBeginFrameSource(viz::BeginFrameSource* begin_frame_source); + void AddBeginFrameRequest(BeginFrameRequestType request); + void ClearBeginFrameRequest(BeginFrameRequestType request); + RenderWidgetHostViewAndroid* const rwhva_; SynchronousCompositorClient* const client_; const viz::FrameSinkId frame_sink_id_; @@ -164,6 +181,16 @@ scoped_refptr<SynchronousCompositorSyncCallBridge> bridge_; + // Indicates whether and for what reason a request for begin frames has been + // issued. Used to control action dispatch at the next |OnBeginFrame()| call. + uint32_t outstanding_begin_frame_requests_ = 0; + + // The begin frame source being observed. Null if none. + viz::BeginFrameSource* begin_frame_source_ = nullptr; + viz::BeginFrameArgs last_begin_frame_args_; + ui::WindowAndroid* observed_root_window_ = nullptr; + viz::FrameTimingDetailsMap timing_details_; + DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorHost); };
diff --git a/content/browser/appcache/appcache_update_job.cc b/content/browser/appcache/appcache_update_job.cc index 76b9e85..6bb456f 100644 --- a/content/browser/appcache/appcache_update_job.cc +++ b/content/browser/appcache/appcache_update_job.cc
@@ -207,7 +207,7 @@ } // namespace const base::Feature kAppCacheManifestScopeChecksFeature{ - "AppCacheManifestScopeChecks", base::FEATURE_DISABLED_BY_DEFAULT}; + "AppCacheManifestScopeChecks", base::FEATURE_ENABLED_BY_DEFAULT}; // Helper class for collecting hosts per frontend when sending notifications // so that only one notification is sent for all hosts using the same frontend.
diff --git a/content/browser/browsing_data/browsing_data_remover_impl.cc b/content/browser/browsing_data/browsing_data_remover_impl.cc index 503ba73..7905bdb 100644 --- a/content/browser/browsing_data/browsing_data_remover_impl.cc +++ b/content/browser/browsing_data/browsing_data_remover_impl.cc
@@ -423,8 +423,12 @@ BrowsingDataRemoverDelegate::EmbedderOriginTypeMatcher embedder_matcher; if (embedder_delegate_) embedder_matcher = embedder_delegate_->GetOriginTypeMatcher(); + // Rewrite leveldb instances to clean up data from disk if almost all data + // is deleted. Do not perform the cleanup for partial deletions or when only + // hosted app data is removed as this would be very slow. bool perform_storage_cleanup = delete_begin_.is_null() && delete_end_.is_max() && + origin_type_mask_ & ORIGIN_TYPE_UNPROTECTED_WEB && filter_builder->GetMode() == BrowsingDataFilterBuilder::BLACKLIST; storage_partition->ClearData(
diff --git a/content/browser/browsing_data/browsing_data_remover_impl_browsertest.cc b/content/browser/browsing_data/browsing_data_remover_impl_browsertest.cc index c39d302..fd2eec9 100644 --- a/content/browser/browsing_data/browsing_data_remover_impl_browsertest.cc +++ b/content/browser/browsing_data/browsing_data_remover_impl_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/files/file_path.h" #include "base/test/bind_test_util.h" #include "content/public/browser/browser_context.h" +#include "content/public/browser/browsing_data_filter_builder.h" #include "content/public/browser/browsing_data_remover.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/storage_partition.h" @@ -104,6 +105,20 @@ completion_observer.BlockUntilCompletion(); } + void RemoveWithFilterAndWait( + int remove_mask, + std::unique_ptr<BrowsingDataFilterBuilder> filter) { + content::BrowsingDataRemover* remover = + content::BrowserContext::GetBrowsingDataRemover( + shell()->web_contents()->GetBrowserContext()); + content::BrowsingDataRemoverCompletionObserver completion_observer(remover); + remover->RemoveWithFilterAndReply( + base::Time(), base::Time::Max(), remove_mask, + content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, + std::move(filter), &completion_observer); + completion_observer.BlockUntilCompletion(); + } + // Issues a request for kHstsPath on localhost, and expects it to enable HSTS // for the domain. void IssueRequestThatSetsHsts() { @@ -214,13 +229,21 @@ } // Verify that TransportSecurityState data is not cleared if REMOVE_CACHE is not -// set. +// set or there is a WHITELIST filter. +// TODO(crbug.com/1040065): Add support for filtered deletions and update test. IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverImplBrowserTest, PreserveTransportSecurityState) { IssueRequestThatSetsHsts(); RemoveAndWait(BrowsingDataRemover::DATA_TYPE_DOWNLOADS); EXPECT_TRUE(IsHstsSet()); + + auto filter = + BrowsingDataFilterBuilder::Create(BrowsingDataFilterBuilder::WHITELIST); + filter->AddRegisterableDomain("foobar.com"); + RemoveWithFilterAndWait(BrowsingDataRemover::DATA_TYPE_CACHE, + std::move(filter)); + EXPECT_TRUE(IsHstsSet()); } IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverImplBrowserTest, ClearHttpAuthCache) {
diff --git a/content/browser/download/save_item.cc b/content/browser/download/save_item.cc index 2e3b4ca..cb2a418 100644 --- a/content/browser/download/save_item.cc +++ b/content/browser/download/save_item.cc
@@ -16,9 +16,9 @@ namespace { SaveItemId GetNextSaveItemId() { - static int g_next_save_item_id = 1; + static SaveItemId::Generator g_save_item_id_generator; DCHECK_CURRENTLY_ON(BrowserThread::UI); - return SaveItemId::FromUnsafeValue(g_next_save_item_id++); + return g_save_item_id_generator.GenerateNextId(); } } // namespace
diff --git a/content/browser/download/save_package.cc b/content/browser/download/save_package.cc index 769d840..42ed0e5 100644 --- a/content/browser/download/save_package.cc +++ b/content/browser/download/save_package.cc
@@ -68,8 +68,8 @@ // Generates unique ids for SavePackage::unique_id_ field. SavePackageId GetNextSavePackageId() { - static int g_save_package_id = 0; - return SavePackageId::FromUnsafeValue(g_save_package_id++); + static SavePackageId::Generator g_save_package_id_generator; + return g_save_package_id_generator.GenerateNextId(); } // Default name which will be used when we can not get proper name from
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index ce96260..bc110d4 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -130,7 +130,6 @@ #include "content/common/navigation_params_utils.h" #include "content/common/render_message_filter.mojom.h" #include "content/common/renderer.mojom.h" -#include "content/common/swapped_out_messages.h" #include "content/common/unfreezable_frame_messages.h" #include "content/common/widget.mojom.h" #include "content/public/browser/ax_event_notification_details.h" @@ -3044,13 +3043,6 @@ ClearWebUI(); - // If this is a main frame RFH that's about to be deleted, update its RVH's - // swapped-out state here. https://crbug.com/505887. This should only be - // done if the RVH hasn't been already reused and marked as active by another - // navigation. See https://crbug.com/823567. - if (frame_tree_node_->IsMainFrame() && !render_view_host_->is_active()) - render_view_host_->set_is_swapped_out(true); - bool deleted = frame_tree_node_->render_manager()->DeleteFromPendingList(this); CHECK(deleted); @@ -6481,10 +6473,12 @@ void RenderFrameHostImpl::CreateDedicatedWorkerHostFactory( mojo::PendingReceiver<blink::mojom::DedicatedWorkerHostFactory> receiver) { + // When a dedicated worker is created from the frame script, the frame is both + // the creator and the ancestor. content::CreateDedicatedWorkerHostFactory( - process_->GetID(), /*ancestor_render_frame_id=*/routing_id_, - /*creator_render_frame_id=*/routing_id_, last_committed_origin_, - std::move(receiver)); + /* creator_frame_routing_id = */ GetGlobalFrameRoutingId(), + /* ancestor_frame_routing_id = */ GetGlobalFrameRoutingId(), + last_committed_origin_, std::move(receiver)); } void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() {
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index 827f687..dd75a2f6 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -578,14 +578,12 @@ // Doing this is important in the case where the replacement proxy is created // above, as the RenderViewHost will continue to exist and should be - // considered swapped out if it is ever reused. When there's no replacement - // proxy, this doesn't really matter, as the RenderViewHost will be destroyed - // shortly, since |render_frame_host| is its last active frame and will be - // deleted below. See https://crbug.com/627400. - if (frame_tree_node_->IsMainFrame()) { + // considered inactive. When there's no replacement proxy, this doesn't + // really matter, as the RenderViewHost will be destroyed shortly, since + // |render_frame_host| is its last active frame and will be deleted below. + // See https://crbug.com/627400. + if (frame_tree_node_->IsMainFrame()) rvh->SetMainFrameRoutingId(MSG_ROUTING_NONE); - rvh->set_is_swapped_out(true); - } render_frame_host.reset(); @@ -949,7 +947,7 @@ // There will be no proxy to represent the pending or speculative RFHs in the // parent's SiteInstance until the navigation is committed, but the old RFH is - // not swapped out before that happens either, so we can talk to the + // not unloaded before that happens either, so we can talk to the // FrameOwner in the parent via the child's current RenderFrame at any time. DCHECK(current_frame_host()); if (current_frame_host()->GetSiteInstance() == parent_site_instance) { @@ -1852,7 +1850,7 @@ // Start from opener's parent. There's no need to create a proxy in the // opener's SiteInstance, since new windows are always first opened in the // same SiteInstance as their opener, and if the new window navigates - // cross-site, that proxy would be created as part of swapping out. + // cross-site, that proxy would be created as part of unloading. for (FrameTreeNode* ancestor = opener->parent(); ancestor; ancestor = ancestor->parent()) { RenderFrameHostImpl* ancestor_rfh = ancestor->current_frame_host(); @@ -2454,7 +2452,7 @@ // routing id in the RenderViewHost associated with the old RenderFrameHost // to MSG_ROUTING_NONE. if (is_main_frame) { - // If the RenderViewHost is transitioning from swapped out to active state, + // If the RenderViewHost is transitioning from an inactive to active state, // it was reused, so dispatch a RenderViewReady event. For example, this is // necessary to hide the sad tab if one is currently displayed. See // https://crbug.com/591984. @@ -2467,7 +2465,6 @@ if (!new_rvh->is_active()) new_rvh->PostRenderViewReady(); - new_rvh->set_is_swapped_out(false); new_rvh->SetMainFrameRoutingId(render_frame_host_->routing_id()); old_rvh->SetMainFrameRoutingId(MSG_ROUTING_NONE); } @@ -2476,8 +2473,8 @@ // to initialize the child RWHV. base::Optional<gfx::Size> old_size = old_render_frame_host->frame_size(); - // Swap out the old frame now that the new one is visible. - // This will swap it out and schedule it for deletion when the swap out ack + // Unload the old frame now that the new one is visible. + // This will unload it and schedule it for deletion when the unload ack // arrives (or immediately if the process isn't live). UnloadOldFrame(std::move(old_render_frame_host)); @@ -2490,7 +2487,7 @@ // belongs to the parent frame's SiteInstance. If this navigation causes // an out-of-process frame to return to the same process as its parent, the // proxy would have been removed from proxy_hosts_ above. - // Note: We do this after swapping out the old RFH because that may create + // Note: We do this after unloading the old RFH because that may create // the proxy we're looking for. RenderFrameProxyHost* proxy_to_parent = GetProxyToParent(); if (proxy_to_parent)
diff --git a/content/browser/frame_host/render_frame_host_manager_unittest.cc b/content/browser/frame_host/render_frame_host_manager_unittest.cc index 44c6a68..54ddf71 100644 --- a/content/browser/frame_host/render_frame_host_manager_unittest.cc +++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc
@@ -1409,7 +1409,6 @@ RenderViewHostImpl* swapped_out_rvh = opener1_manager->GetSwappedOutRenderViewHost(rfh1->GetSiteInstance()); EXPECT_TRUE(swapped_out_rvh); - EXPECT_TRUE(swapped_out_rvh->is_swapped_out_); EXPECT_FALSE(swapped_out_rvh->is_active()); // Fake a process crash.
diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc index c4d217db..9a653bd 100644 --- a/content/browser/permissions/permission_service_impl.cc +++ b/content/browser/permissions/permission_service_impl.cc
@@ -12,7 +12,6 @@ #include "base/bind.h" #include "base/memory/ptr_util.h" -#include "build/build_config.h" #include "content/browser/bad_message.h" #include "content/browser/permissions/permission_controller_impl.h" #include "content/public/browser/browser_context.h" @@ -28,100 +27,6 @@ namespace { -bool PermissionDescriptorToPermissionType( - const PermissionDescriptorPtr& descriptor, - PermissionType* permission_type) { - switch (descriptor->name) { - case PermissionName::GEOLOCATION: - *permission_type = PermissionType::GEOLOCATION; - return true; - case PermissionName::NOTIFICATIONS: - *permission_type = PermissionType::NOTIFICATIONS; - return true; - case PermissionName::MIDI: { - if (descriptor->extension && descriptor->extension->is_midi() && - descriptor->extension->get_midi()->sysex) { - *permission_type = PermissionType::MIDI_SYSEX; - return true; - } - *permission_type = PermissionType::MIDI; - return true; - } - case PermissionName::PROTECTED_MEDIA_IDENTIFIER: -#if defined(ENABLE_PROTECTED_MEDIA_IDENTIFIER_PERMISSION) - *permission_type = PermissionType::PROTECTED_MEDIA_IDENTIFIER; - return true; -#else - NOTIMPLEMENTED(); - return false; -#endif // defined(ENABLE_PROTECTED_MEDIA_IDENTIFIER_PERMISSION) - case PermissionName::DURABLE_STORAGE: - *permission_type = PermissionType::DURABLE_STORAGE; - return true; - case PermissionName::AUDIO_CAPTURE: - *permission_type = PermissionType::AUDIO_CAPTURE; - return true; - case PermissionName::VIDEO_CAPTURE: - *permission_type = PermissionType::VIDEO_CAPTURE; - return true; - case PermissionName::BACKGROUND_SYNC: - *permission_type = PermissionType::BACKGROUND_SYNC; - return true; - case PermissionName::SENSORS: - *permission_type = PermissionType::SENSORS; - return true; - case PermissionName::ACCESSIBILITY_EVENTS: - *permission_type = PermissionType::ACCESSIBILITY_EVENTS; - return true; - case PermissionName::CLIPBOARD_READ: - *permission_type = PermissionType::CLIPBOARD_READ_WRITE; - return true; - case PermissionName::CLIPBOARD_WRITE: { - if (descriptor->extension && descriptor->extension->is_clipboard() && - descriptor->extension->get_clipboard()->allowWithoutSanitization) { - *permission_type = PermissionType::CLIPBOARD_READ_WRITE; - } else { - *permission_type = PermissionType::CLIPBOARD_SANITIZED_WRITE; - } - return true; - } - case PermissionName::PAYMENT_HANDLER: - *permission_type = PermissionType::PAYMENT_HANDLER; - return true; - case PermissionName::BACKGROUND_FETCH: - *permission_type = PermissionType::BACKGROUND_FETCH; - return true; - case PermissionName::IDLE_DETECTION: - *permission_type = PermissionType::IDLE_DETECTION; - return true; - case PermissionName::PERIODIC_BACKGROUND_SYNC: - *permission_type = PermissionType::PERIODIC_BACKGROUND_SYNC; - return true; - case PermissionName::WAKE_LOCK: - if (descriptor->extension && descriptor->extension->is_wake_lock()) { - switch (descriptor->extension->get_wake_lock()->type) { - case blink::mojom::WakeLockType::kScreen: - *permission_type = PermissionType::WAKE_LOCK_SCREEN; - break; - case blink::mojom::WakeLockType::kSystem: - *permission_type = PermissionType::WAKE_LOCK_SYSTEM; - break; - default: - NOTREACHED(); - return false; - } - return true; - } - break; - case PermissionName::NFC: - *permission_type = PermissionType::NFC; - return true; - } - - NOTREACHED(); - return false; -} - // This function allows the usage of the the multiple request map with single // requests. void PermissionRequestResponseCallbackWrapper( @@ -204,10 +109,14 @@ std::vector<PermissionType> types(permissions.size()); std::set<PermissionType> duplicates_check; for (size_t i = 0; i < types.size(); ++i) { - if (!PermissionDescriptorToPermissionType(permissions[i], &types[i])) { + auto type = PermissionDescriptorToPermissionType(permissions[i]); + if (!type) { ReceivedBadMessage(); return; } + + types[i] = *type; + // Each permission should appear at most once in the message. bool inserted = duplicates_check.insert(types[i]).second; if (!inserted) { @@ -253,12 +162,12 @@ void PermissionServiceImpl::RevokePermission( PermissionDescriptorPtr permission, PermissionStatusCallback callback) { - PermissionType permission_type; - if (!PermissionDescriptorToPermissionType(permission, &permission_type)) { + auto permission_type = PermissionDescriptorToPermissionType(permission); + if (!permission_type) { ReceivedBadMessage(); return; } - PermissionStatus status = GetPermissionStatusFromType(permission_type); + PermissionStatus status = GetPermissionStatusFromType(*permission_type); // Resetting the permission should only be possible if the permission is // already granted. @@ -267,33 +176,33 @@ return; } - ResetPermissionStatus(permission_type); + ResetPermissionStatus(*permission_type); - std::move(callback).Run(GetPermissionStatusFromType(permission_type)); + std::move(callback).Run(GetPermissionStatusFromType(*permission_type)); } void PermissionServiceImpl::AddPermissionObserver( PermissionDescriptorPtr permission, PermissionStatus last_known_status, mojo::PendingRemote<blink::mojom::PermissionObserver> observer) { - PermissionType type; - if (!PermissionDescriptorToPermissionType(permission, &type)) { + auto type = PermissionDescriptorToPermissionType(permission); + if (!type) { ReceivedBadMessage(); return; } - context_->CreateSubscription(type, origin_, GetPermissionStatus(permission), + context_->CreateSubscription(*type, origin_, GetPermissionStatus(permission), last_known_status, std::move(observer)); } PermissionStatus PermissionServiceImpl::GetPermissionStatus( const PermissionDescriptorPtr& permission) { - PermissionType type; - if (!PermissionDescriptorToPermissionType(permission, &type)) { + auto type = PermissionDescriptorToPermissionType(permission); + if (!type) { ReceivedBadMessage(); return PermissionStatus::DENIED; } - return GetPermissionStatusFromType(type); + return GetPermissionStatusFromType(*type); } PermissionStatus PermissionServiceImpl::GetPermissionStatusFromType(
diff --git a/content/browser/renderer_host/input/fling_scheduler.cc b/content/browser/renderer_host/input/fling_scheduler.cc index cf220cb..c7a4f1f 100644 --- a/content/browser/renderer_host/input/fling_scheduler.cc +++ b/content/browser/renderer_host/input/fling_scheduler.cc
@@ -33,13 +33,10 @@ return; ui::Compositor* compositor = GetCompositor(); - // If a ui::Compositor can't be obtained, ask the host for BeginFrames. - if (!compositor) { - host_->SetNeedsBeginFrameForFlingProgress(); - return; + if (compositor) { + compositor->AddAnimationObserver(this); + observed_compositor_ = compositor; } - compositor->AddAnimationObserver(this); - observed_compositor_ = compositor; } void FlingScheduler::DidStopFlingingOnBrowser(
diff --git a/content/browser/renderer_host/input/fling_scheduler_android.cc b/content/browser/renderer_host/input/fling_scheduler_android.cc index db119df9..c801c9a3c 100644 --- a/content/browser/renderer_host/input/fling_scheduler_android.cc +++ b/content/browser/renderer_host/input/fling_scheduler_android.cc
@@ -6,6 +6,7 @@ #include "build/build_config.h" #include "content/browser/renderer_host/render_widget_host_impl.h" +#include "content/browser/renderer_host/render_widget_host_view_android.h" #include "ui/compositor/compositor.h" namespace content { @@ -30,7 +31,11 @@ // WebView), we'll never receive an OnAnimate call. In this case fall back // to BeginFrames coming from the host. if (!window || !window->GetCompositor()) { - host_->SetNeedsBeginFrameForFlingProgress(); + auto* view = host_->GetView(); + if (view && !view->IsRenderWidgetHostViewChildFrame()) { + static_cast<RenderWidgetHostViewAndroid*>(view) + ->SetNeedsBeginFrameForFlingProgress(); + } return; } window->AddObserver(this);
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index bae3acad..e90f36a 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -193,6 +193,7 @@ #include "ipc/ipc_channel.h" #include "ipc/ipc_channel_mojo.h" #include "ipc/ipc_logging.h" +#include "ipc/trace_ipc_message.h" #include "media/audio/audio_manager.h" #include "media/base/media_switches.h" #include "media/capture/capture_switches.h" @@ -1297,8 +1298,6 @@ return; receiver = mojo::GenericPendingReceiver(interface_name, std::move(pipe)); - GetContentClient()->browser()->BindHostReceiverForRendererOnIOThread( - render_process_id_, &receiver); if (!receiver) return; @@ -3370,9 +3369,7 @@ } bool RenderProcessHostImpl::Send(IPC::Message* msg) { - TRACE_EVENT2("renderer_host", "RenderProcessHostImpl::Send", "class", - IPC_MESSAGE_ID_CLASS(msg->type()), "line", - IPC_MESSAGE_ID_LINE(msg->type())); + TRACE_IPC_MESSAGE_SEND("renderer_host", "RenderProcessHostImpl::Send", msg); std::unique_ptr<IPC::Message> message(msg);
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index de66a89e..25fb8b4e 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -53,7 +53,6 @@ #include "content/common/page_messages.h" #include "content/common/render_message_filter.mojom.h" #include "content/common/renderer.mojom.h" -#include "content/common/swapped_out_messages.h" #include "content/common/view_messages.h" #include "content/common/widget_messages.h" #include "content/public/browser/ax_event_notification_details.h" @@ -224,7 +223,6 @@ : render_widget_host_(std::move(widget)), delegate_(delegate), instance_(static_cast<SiteInstanceImpl*>(instance)), - is_swapped_out_(swapped_out), routing_id_(routing_id), main_frame_routing_id_(main_frame_routing_id) { DCHECK(instance_.get()); @@ -801,23 +799,6 @@ // RenderViewHostImpl, IPC message handlers: bool RenderViewHostImpl::OnMessageReceived(const IPC::Message& msg) { - // Filter out most IPC messages if this renderer is swapped out. - // We still want to handle certain ACKs to keep our state consistent. - if (is_swapped_out_) { - if (!SwappedOutMessages::CanHandleWhileSwappedOut(msg)) { - // If this is a synchronous message and we decided not to handle it, - // we must send an error reply, or else the renderer will be stuck - // and won't respond to future requests. - if (msg.is_sync()) { - IPC::Message* reply = IPC::SyncMessage::GenerateReply(&msg); - reply->set_reply_error(); - Send(reply); - } - // Don't continue looking for someone to handle it. - return true; - } - } - // Crash reports trigerred by the IPC messages below should be associated // with URL of the main frame. ScopedActiveURL scoped_active_url(this);
diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h index 70ea8a0..4311c340 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h
@@ -125,7 +125,7 @@ // (MSG_ROUTING_NONE if none). // |window_was_created_with_opener| is true if this top-level frame was // created with an opener. (The opener may have been closed since.) - // The |proxy_route_id| is only used when creating a RenderView in swapped out + // The |proxy_route_id| is only used when creating a RenderView in an inactive // state. // |devtools_frame_token| contains the devtools token for tagging requests and // attributing them to the context frame. @@ -139,16 +139,10 @@ bool window_was_created_with_opener); // Tracks whether this RenderViewHost is in an active state (rather than - // pending swap out or swapped out), according to its main frame + // pending unload or unloaded), according to its main frame // RenderFrameHost. bool is_active() const { return main_frame_routing_id_ != MSG_ROUTING_NONE; } - // Tracks whether this RenderViewHost is swapped out, according to its main - // frame RenderFrameHost. - void set_is_swapped_out(bool is_swapped_out) { - is_swapped_out_ = is_swapped_out; - } - // TODO(creis): Remove as part of http://crbug.com/418265. bool is_waiting_for_close_ack() const { return is_waiting_for_close_ack_; } @@ -307,11 +301,7 @@ FRIEND_TEST_ALL_PREFIXES(RenderViewHostTest, BasicRenderFrameHost); FRIEND_TEST_ALL_PREFIXES(RenderViewHostTest, RoutingIdSane); FRIEND_TEST_ALL_PREFIXES(RenderFrameHostManagerTest, - CleanUpSwappedOutRVHOnProcessCrash); - FRIEND_TEST_ALL_PREFIXES(RenderFrameHostManagerTest, CloseWithPendingWhileUnresponsive); - FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest, - NavigateMainFrameToChildSite); // IPC::Listener implementation. bool OnMessageReceived(const IPC::Message& msg) override; @@ -352,12 +342,6 @@ // over time. scoped_refptr<SiteInstanceImpl> instance_; - // Tracks whether the main frame RenderFrameHost is swapped out. Unlike - // is_active(), this is false when the frame is pending swap out or deletion. - // TODO(creis): Remove this when we no longer filter IPCs after swap out. - // See https://crbug.com/745091. - bool is_swapped_out_; - // Routing ID for this RenderViewHost. const int routing_id_;
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 53a1ae45..c6df5dee 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -442,12 +442,6 @@ view_ = view->GetWeakPtr(); if (!create_frame_sink_callback_.is_null()) std::move(create_frame_sink_callback_).Run(view_->GetFrameSinkId()); - - // Views start out not needing begin frames, so only update its state if the - // value has changed. |needs_begin_frames_| should only ever be true for - // Android WebView since begin frames are handled by viz everywhere else. - if (needs_begin_frames_) - view_->SetNeedsBeginFrames(needs_begin_frames_); } else { view_.reset(); } @@ -2611,10 +2605,6 @@ if (view_) view_->set_is_currently_scrolling_viewport(true); } -void RenderWidgetHostImpl::SetNeedsBeginFrameForFlingProgress() { - browser_fling_needs_begin_frame_ = true; - SetNeedsBeginFrame(true); -} void RenderWidgetHostImpl::AddPendingUserActivation( const WebInputEvent& event) { @@ -2921,15 +2911,6 @@ return true; } -void RenderWidgetHostImpl::SetNeedsBeginFrame(bool needs_begin_frames) { - if (needs_begin_frames_ == needs_begin_frames) - return; - - needs_begin_frames_ = needs_begin_frames || browser_fling_needs_begin_frame_; - if (view_) - view_->SetNeedsBeginFrames(needs_begin_frames_); -} - void RenderWidgetHostImpl::DidProcessFrame(uint32_t frame_token) { // In this case the RenderWidgetHostImpl is still here because it's the top // level RenderWidgetHostImpl, but the renderer's RenderWidget no longer @@ -3008,7 +2989,6 @@ } void RenderWidgetHostImpl::ProgressFlingIfNeeded(TimeTicks current_time) { - browser_fling_needs_begin_frame_ = false; fling_scheduler_->ProgressFlingOnBeginFrameIfneeded(current_time); }
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 80cdc18..f6cda3a 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -637,8 +637,6 @@ bool renderer_initialized() const { return renderer_initialized_; } - bool needs_begin_frames() const { return needs_begin_frames_; } - base::WeakPtr<RenderWidgetHostImpl> GetWeakPtr() { return weak_factory_.GetWeakPtr(); } @@ -672,9 +670,6 @@ bool HasGestureStopped() override; - // Begin frames related functionality is only used by Android WebView. - void SetNeedsBeginFrame(bool needs_begin_frame); - // Signals that a frame with token |frame_token| was finished processing. If // there are any queued messages belonging to it, they will be processed. void DidProcessFrame(uint32_t frame_token); @@ -713,7 +708,6 @@ void ProgressFlingIfNeeded(base::TimeTicks current_time); void StopFling(); - void SetNeedsBeginFrameForFlingProgress(); // The RenderWidgetHostImpl will keep showing the old page (for a while) after // navigation until the first frame of the new page arrives. This reduces @@ -875,7 +869,6 @@ void OnUnlockMouse(); void OnSelectionBoundsChanged( const WidgetHostMsg_SelectionBounds_Params& params); - void OnSetNeedsBeginFrames(bool needs_begin_frames); void OnStartDragging(const DropData& drop_data, blink::WebDragOperationsMask operations_allowed, const SkBitmap& bitmap, @@ -1200,15 +1193,6 @@ // causing HasFocus to return false when is_focused_ is true. bool is_focused_ = false; - // Whether the view should send begin frame messages to its render widget. - // This is state that may arrive before the view has been set and that must be - // consistent with the state in the renderer, so this host handles it. - bool needs_begin_frames_ = false; - - // This is used to make sure that when the fling controller sets - // needs_begin_frames_ it doesn't get overriden by the renderer. - bool browser_fling_needs_begin_frame_ = false; - // This value indicates how long to wait before we consider a renderer hung. base::TimeDelta hung_renderer_delay_;
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc index 0c9b436..82920c5 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -212,8 +212,6 @@ RenderWidgetHostImpl* widget_host, gfx::NativeView parent_native_view) : RenderWidgetHostViewBase(widget_host), - begin_frame_source_(nullptr), - outstanding_begin_frame_requests_(0), is_showing_(!widget_host->is_hidden()), is_window_visible_(true), is_window_activity_started_(true), @@ -757,15 +755,6 @@ base::UTF16ToUTF8(selection.selected_text())); } -void RenderWidgetHostViewAndroid::SetNeedsBeginFrames(bool needs_begin_frames) { - TRACE_EVENT1("cc", "RenderWidgetHostViewAndroid::SetNeedsBeginFrames", - "needs_begin_frames", needs_begin_frames); - if (needs_begin_frames) - AddBeginFrameRequest(PERSISTENT_BEGIN_FRAME); - else - ClearBeginFrameRequest(PERSISTENT_BEGIN_FRAME); -} - viz::FrameSinkId RenderWidgetHostViewAndroid::GetRootFrameSinkId() { if (view_.GetWindowAndroid() && view_.GetWindowAndroid()->GetCompositor()) return view_.GetWindowAndroid()->GetCompositor()->GetFrameSinkId(); @@ -884,9 +873,10 @@ // scroll-inducing touch events. Note that Android's Choreographer ensures // that BeginFrame requests made during Action::MOVE dispatch will be honored // in the same vsync phase. - if (observing_root_window_ && result.moved_beyond_slop_region) - AddBeginFrameRequest(BEGIN_FRAME); - + if (observing_root_window_ && result.moved_beyond_slop_region) { + if (sync_compositor_) + sync_compositor_->RequestOneBeginFrame(); + } return true; } @@ -1051,13 +1041,6 @@ host()->delegate()->GetInputEventRouter(); } -void RenderWidgetHostViewAndroid::DidPresentCompositorFrames( - const viz::FrameTimingDetailsMap& timing_details) { - timing_details_ = timing_details; - if (!timing_details_.empty()) - AddBeginFrameRequest(BEGIN_FRAME); -} - void RenderWidgetHostViewAndroid::EvictFrameIfNecessary() { if (!host()->delegate()->IsFullscreenForCurrentTab() || current_surface_size_ == view_.GetPhysicalBackingSize()) { @@ -1407,7 +1390,8 @@ if (view_.parent() && view_.GetWindowAndroid()) { StartObservingRootWindow(); - AddBeginFrameRequest(BEGIN_FRAME); + if (sync_compositor_) + sync_compositor_->RequestOneBeginFrame(); } } @@ -1447,41 +1431,6 @@ host()->WasHidden(); } -void RenderWidgetHostViewAndroid::SetBeginFrameSource( - viz::BeginFrameSource* begin_frame_source) { - if (begin_frame_source_ == begin_frame_source) - return; - - if (begin_frame_source_ && outstanding_begin_frame_requests_) - begin_frame_source_->RemoveObserver(this); - begin_frame_source_ = begin_frame_source; - if (begin_frame_source_ && outstanding_begin_frame_requests_) - begin_frame_source_->AddObserver(this); -} - -void RenderWidgetHostViewAndroid::AddBeginFrameRequest( - BeginFrameRequestType request) { - uint32_t prior_requests = outstanding_begin_frame_requests_; - outstanding_begin_frame_requests_ = prior_requests | request; - - // Note that if we don't currently have a BeginFrameSource, outstanding begin - // frame requests will be pushed if/when we get one during - // |StartObservingRootWindow()| or when the DelegatedFrameHostAndroid sets it. - viz::BeginFrameSource* source = begin_frame_source_; - if (source && outstanding_begin_frame_requests_ && !prior_requests) - source->AddObserver(this); -} - -void RenderWidgetHostViewAndroid::ClearBeginFrameRequest( - BeginFrameRequestType request) { - uint32_t prior_requests = outstanding_begin_frame_requests_; - outstanding_begin_frame_requests_ = prior_requests & ~request; - - viz::BeginFrameSource* source = begin_frame_source_; - if (source && !outstanding_begin_frame_requests_ && prior_requests) - source->RemoveObserver(this); -} - void RenderWidgetHostViewAndroid::StartObservingRootWindow() { DCHECK(view_.parent()); DCHECK(view_.GetWindowAndroid()); @@ -1490,11 +1439,10 @@ return; observing_root_window_ = true; - SendBeginFramePaused(); view_.GetWindowAndroid()->AddObserver(this); // When using browser compositor, DelegatedFrameHostAndroid provides the BFS. - if (!using_browser_compositor_ && !using_viz_for_webview_) - SetBeginFrameSource(view_.GetWindowAndroid()->GetBeginFrameSource()); + if (!using_browser_compositor_ && sync_compositor_ && !using_viz_for_webview_) + sync_compositor_->StartObservingRootWindow(view_.GetWindowAndroid()); ui::WindowAndroidCompositor* compositor = view_.GetWindowAndroid()->GetCompositor(); @@ -1519,32 +1467,13 @@ is_window_visible_ = true; observing_root_window_ = false; OnUpdateScopedSelectionHandles(); - SendBeginFramePaused(); view_.GetWindowAndroid()->RemoveObserver(this); - if (!using_browser_compositor_) - SetBeginFrameSource(nullptr); + if (!using_browser_compositor_ && sync_compositor_ && !using_viz_for_webview_) + sync_compositor_->StopObservingRootWindow(); // If the DFH has already been destroyed, it will have cleaned itself up. // This happens in some WebView cases. if (delegated_frame_host_) delegated_frame_host_->DetachFromCompositor(); - DCHECK(!begin_frame_source_); -} - -void RenderWidgetHostViewAndroid::SendBeginFrame(viz::BeginFrameArgs args) { - TRACE_EVENT2("cc", "RenderWidgetHostViewAndroid::SendBeginFrame", - "frame_number", args.frame_id.sequence_number, "frame_time_us", - args.frame_time.ToInternalValue()); - - // Synchronous compositor does not use deadline-based scheduling. - // TODO(brianderson): Replace this hardcoded deadline after Android - // switches to Surfaces and the Browser's commit isn't in the critical path. - args.deadline = sync_compositor_ ? base::TimeTicks() - : args.frame_time + (args.interval * 0.6); - if (sync_compositor_) { - sync_compositor_->BeginFrame(view_.GetWindowAndroid(), args, - timing_details_); - } - timing_details_.clear(); } bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { @@ -2131,65 +2060,6 @@ delegated_frame_host_->DetachFromCompositor(); } -void RenderWidgetHostViewAndroid::OnBeginFrame( - const viz::BeginFrameArgs& args) { - TRACE_EVENT0("cc,benchmark", "RenderWidgetHostViewAndroid::OnBeginFrame"); - if (!host()) - return; - - // In sync mode, we disregard missed frame args to ensure that - // SynchronousCompositorBrowserFilter::SyncStateAfterVSync will be called - // during WindowAndroid::WindowBeginFrameSource::OnVSync() observer iteration. - if (sync_compositor_ && args.type == viz::BeginFrameArgs::MISSED) - return; - - bool webview_fling = sync_compositor_ && is_currently_scrolling_viewport_; - if (!webview_fling) { - host_->ProgressFlingIfNeeded(args.frame_time); - } else if (sync_compositor_->on_compute_scroll_called()) { - // On Android webview progress the fling only when |OnComputeScroll| is - // called since in some cases Apps override |OnComputeScroll| to cancel - // fling animation. - host_->ProgressFlingIfNeeded(args.frame_time); - } - - // Update |last_begin_frame_args_| before handling - // |outstanding_begin_frame_requests_| to prevent the BeginFrameSource from - // sending the same MISSED args in infinite recursion. - last_begin_frame_args_ = args; - - if ((outstanding_begin_frame_requests_ & BEGIN_FRAME) || - (outstanding_begin_frame_requests_ & PERSISTENT_BEGIN_FRAME)) { - ClearBeginFrameRequest(BEGIN_FRAME); - SendBeginFrame(args); - } -} - -const viz::BeginFrameArgs& RenderWidgetHostViewAndroid::LastUsedBeginFrameArgs() - const { - return last_begin_frame_args_; -} - -bool RenderWidgetHostViewAndroid::WantsAnimateOnlyBeginFrames() const { - return false; -} - -void RenderWidgetHostViewAndroid::SendBeginFramePaused() { - bool paused = begin_frame_paused_ || !observing_root_window_; - - if (!using_browser_compositor_ && !using_viz_for_webview_) { - if (sync_compositor_) - sync_compositor_->SetBeginFramePaused(paused); - } -} - -void RenderWidgetHostViewAndroid::OnBeginFrameSourcePausedChanged(bool paused) { - if (paused != begin_frame_paused_) { - begin_frame_paused_ = paused; - SendBeginFramePaused(); - } -} - void RenderWidgetHostViewAndroid::OnAnimate(base::TimeTicks begin_frame_time) { if (Animate(begin_frame_time)) SetNeedsAnimate(); @@ -2478,4 +2348,9 @@ } } +void RenderWidgetHostViewAndroid::SetNeedsBeginFrameForFlingProgress() { + if (sync_compositor_) + sync_compositor_->RequestOneBeginFrame(); +} + } // namespace content
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h index 8588a114..77f8215 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -21,9 +21,6 @@ #include "base/process/process.h" #include "base/time/time.h" #include "cc/trees/render_frame_metadata.h" -#include "components/viz/common/frame_sinks/begin_frame_args.h" -#include "components/viz/common/frame_sinks/begin_frame_source.h" -#include "components/viz/common/frame_timing_details_map.h" #include "components/viz/common/quads/selection.h" #include "components/viz/common/surfaces/parent_local_surface_id_allocator.h" #include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h" @@ -31,7 +28,6 @@ #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/browser/renderer_host/text_input_manager.h" #include "content/common/content_export.h" -#include "gpu/command_buffer/common/mailbox.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/android/delegated_frame_host_android.h" #include "ui/android/view_android.h" @@ -75,8 +71,7 @@ public ui::GestureProviderClient, public ui::TouchSelectionControllerClient, public ui::ViewAndroidObserver, - public ui::WindowAndroidObserver, - public viz::BeginFrameObserver { + public ui::WindowAndroidObserver { public: RenderWidgetHostViewAndroid(RenderWidgetHostImpl* widget, gfx::NativeView parent_native_view); @@ -163,7 +158,6 @@ std::unique_ptr<SyntheticGestureTarget> CreateSyntheticGestureTarget() override; void OnDidNavigateMainFrameToNewPage() override; - void SetNeedsBeginFrames(bool needs_begin_frames) override; const viz::FrameSinkId& GetFrameSinkId() const override; viz::FrameSinkId GetRootFrameSinkId() override; viz::SurfaceId GetCurrentSurfaceId() const override; @@ -232,17 +226,6 @@ std::unique_ptr<ui::TouchHandleDrawable> CreateDrawable() override; void DidScroll() override; - // Used by DelegatedFrameHostClientAndroid. - void SetBeginFrameSource(viz::BeginFrameSource* begin_frame_source); - void DidPresentCompositorFrames( - const viz::FrameTimingDetailsMap& timing_details); - - // viz::BeginFrameObserver implementation. - void OnBeginFrame(const viz::BeginFrameArgs& args) override; - const viz::BeginFrameArgs& LastUsedBeginFrameArgs() const override; - void OnBeginFrameSourcePausedChanged(bool paused) override; - bool WantsAnimateOnlyBeginFrames() const override; - // Non-virtual methods void UpdateNativeViewTree(gfx::NativeView parent_native_view); @@ -378,6 +361,8 @@ return delegated_frame_host_.get(); } + void SetNeedsBeginFrameForFlingProgress(); + protected: // RenderWidgetHostViewBase: void UpdateBackgroundColor() override; @@ -431,16 +416,8 @@ void EvictDelegatedContent(); void OnLostResources(); - enum BeginFrameRequestType { - BEGIN_FRAME = 1 << 0, - PERSISTENT_BEGIN_FRAME = 1 << 1 - }; - void AddBeginFrameRequest(BeginFrameRequestType request); - void ClearBeginFrameRequest(BeginFrameRequestType request); void StartObservingRootWindow(); void StopObservingRootWindow(); - void SendBeginFramePaused(); - void SendBeginFrame(viz::BeginFrameArgs args); bool Animate(base::TimeTicks frame_time); void RequestDisallowInterceptTouchEvent(); @@ -462,15 +439,6 @@ void OnUpdateScopedSelectionHandles(); - // The begin frame source being observed. Null if none. - viz::BeginFrameSource* begin_frame_source_; - viz::BeginFrameArgs last_begin_frame_args_; - bool begin_frame_paused_ = false; - - // Indicates whether and for what reason a request for begin frames has been - // issued. Used to control action dispatch at the next |OnBeginFrame()| call. - uint32_t outstanding_begin_frame_requests_; - bool is_showing_; // Window-specific bits that affect widget visibility. @@ -563,8 +531,6 @@ // If true, then the next allocated surface should be embedded. bool navigation_while_hidden_ = false; - viz::FrameTimingDetailsMap timing_details_; - // Tracks whether we are in SynchronousCopyContents to avoid repeated calls // into DevTools capture logic. // TODO(ericrk): Make this more robust.
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h index 45c91f8..8d7acf87 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -107,7 +107,6 @@ bool IsMouseLocked() override; gfx::Size GetVisibleViewportSize() override; void SetInsets(const gfx::Insets& insets) override; - void SetNeedsBeginFrames(bool needs_begin_frames) override {} TouchSelectionControllerClientManager* GetTouchSelectionControllerClientManager() override;
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h b/content/browser/renderer_host/render_widget_host_view_child_frame.h index 103ddb8..4f5adb0 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame.h +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.h
@@ -84,7 +84,6 @@ gfx::NativeView GetNativeView() override; gfx::NativeViewAccessible GetNativeViewAccessible() override; bool IsMouseLocked() override; - void SetNeedsBeginFrames(bool needs_begin_frames) override {} void TakeFallbackContentFrom(RenderWidgetHostView* view) override; // RenderWidgetHostViewBase implementation.
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h index b3cf7ca..1b1847c 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -115,7 +115,6 @@ void ShowDefinitionForSelection() override; void SpeakSelection() override; void GetScreenInfo(ScreenInfo* screen_info) override; - void SetNeedsBeginFrames(bool needs_begin_frames) override {} void TakeFallbackContentFrom(RenderWidgetHostView* view) override; // Implementation of RenderWidgetHostViewBase.
diff --git a/content/browser/service_process_host_impl.cc b/content/browser/service_process_host_impl.cc index 7275d26..4fc39a8 100644 --- a/content/browser/service_process_host_impl.cc +++ b/content/browser/service_process_host_impl.cc
@@ -112,13 +112,11 @@ ServiceProcessId GenerateNextId() { DCHECK_CURRENTLY_ON(BrowserThread::IO); - auto id = next_id_; - next_id_ = ServiceProcessId::FromUnsafeValue(next_id_.GetUnsafeValue() + 1); - return id; + return service_process_id_generator_.GenerateNextId(); } const scoped_refptr<base::TaskRunner> ui_task_runner_; - ServiceProcessId next_id_{1}; + ServiceProcessId::Generator service_process_id_generator_; base::Lock processes_lock_; std::map<ServiceProcessId, ServiceProcessInfo> processes_;
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc index a3cf15c..7696405 100644 --- a/content/browser/site_per_process_browsertest.cc +++ b/content/browser/site_per_process_browsertest.cc
@@ -7410,9 +7410,8 @@ } } -// Tests that the swapped out state on RenderViewHost is properly reset when -// the main frame is navigated to the same SiteInstance as one of its child -// frames. +// Tests that the state of the RenderViewHost is properly reset when the main +// frame is navigated to the same SiteInstance as one of its child frames. IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, NavigateMainFrameToChildSite) { GURL main_url(embedded_test_server()->GetURL( @@ -7432,13 +7431,13 @@ } // Ensure the RenderViewHost for the SiteInstance of the child is considered - // in swapped out state. + // inactive. RenderViewHostImpl* rvh = contents->GetFrameTree() ->GetRenderViewHost( root->child_at(0)->current_frame_host()->GetSiteInstance()) .get(); - EXPECT_TRUE(rvh->is_swapped_out_); + EXPECT_FALSE(rvh->is_active()); // Have the child frame navigate its parent to its SiteInstance. GURL b_url(embedded_test_server()->GetURL("b.com", "/title1.html")); @@ -7453,11 +7452,10 @@ frame_observer.Wait(); EXPECT_EQ(b_url, root->current_url()); - // Verify that the same RenderViewHost is preserved and that it is no longer - // in swapped out state. + // Verify that the same RenderViewHost is preserved and that it is now active. EXPECT_EQ(rvh, contents->GetFrameTree()->GetRenderViewHost( root->current_frame_host()->GetSiteInstance())); - EXPECT_FALSE(rvh->is_swapped_out_); + EXPECT_TRUE(rvh->is_active()); } // Test for https://crbug.com/568836. From an A-embed-B page, navigate the
diff --git a/content/browser/web_package/prefetched_signed_exchange_cache.cc b/content/browser/web_package/prefetched_signed_exchange_cache.cc index 3b96456..51837344 100644 --- a/content/browser/web_package/prefetched_signed_exchange_cache.cc +++ b/content/browser/web_package/prefetched_signed_exchange_cache.cc
@@ -162,7 +162,7 @@ if (network::cors::ShouldCheckCors(request.url, request.request_initiator, request.mode)) { const auto error_status = network::cors::CheckAccess( - request.url, response_->headers->response_code(), + request.url, GetHeaderString( *response_, network::cors::header_names::kAccessControlAllowOrigin),
diff --git a/content/browser/worker_host/dedicated_worker_host.cc b/content/browser/worker_host/dedicated_worker_host.cc index 0b0e64b..a78ba75 100644 --- a/content/browser/worker_host/dedicated_worker_host.cc +++ b/content/browser/worker_host/dedicated_worker_host.cc
@@ -40,14 +40,14 @@ DedicatedWorkerHost::DedicatedWorkerHost( RenderProcessHost* worker_process_host, - int ancestor_render_frame_id, - int creator_render_frame_id, + GlobalFrameRoutingId creator_render_frame_host_id, + GlobalFrameRoutingId ancestor_render_frame_host_id, const url::Origin& origin, mojo::PendingReceiver<blink::mojom::DedicatedWorkerHost> host) : worker_process_host_(worker_process_host), scoped_process_host_observer_(this), - ancestor_render_frame_id_(ancestor_render_frame_id), - creator_render_frame_id_(creator_render_frame_id), + creator_render_frame_host_id_(creator_render_frame_host_id), + ancestor_render_frame_host_id_(ancestor_render_frame_host_id), origin_(origin), host_receiver_(this, std::move(host)) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -117,7 +117,7 @@ // Get nearest ancestor render frame host in order to determine the // top-frame origin to use for the network isolation key. RenderFrameHostImpl* nearest_ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!nearest_ancestor_render_frame_host) { client_->OnScriptLoadStartFailed(); return; @@ -157,11 +157,9 @@ // If this is a nested worker, there is no creator frame. RenderFrameHostImpl* creator_render_frame_host = nullptr; - if (creator_render_frame_id_ != MSG_ROUTING_NONE) { - // Use |worker_process_host_->GetID()| as the creator render frame's process - // ID as the frame surely lives in the same process for dedicated workers. - creator_render_frame_host = RenderFrameHostImpl::FromID( - worker_process_host_->GetID(), creator_render_frame_id_); + if (creator_render_frame_host_id_.frame_routing_id != MSG_ROUTING_NONE) { + creator_render_frame_host = + RenderFrameHostImpl::FromID(creator_render_frame_host_id_); if (!creator_render_frame_host) { client_->OnScriptLoadStartFailed(); return; @@ -223,7 +221,7 @@ // TODO(cammie): Change this approach when we support shared workers // creating dedicated workers, as there might be no ancestor frame. RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!ancestor_render_frame_host) { client_->OnScriptLoadStartFailed(); return; @@ -312,7 +310,7 @@ mojo::PendingReceiver<blink::mojom::WebUsbService> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); // The ancestor frame may have already been closed. In that case, the worker // will soon be terminated too, so abort the connection. if (!ancestor_render_frame_host) @@ -325,7 +323,7 @@ mojo::PendingReceiver<blink::mojom::WebSocketConnector> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!ancestor_render_frame_host) { // The ancestor frame may have already been closed. In that case, the worker // will soon be terminated too, so abort the connection. @@ -334,9 +332,10 @@ return; } mojo::MakeSelfOwnedReceiver( - std::make_unique<WebSocketConnectorImpl>(worker_process_host_->GetID(), - ancestor_render_frame_id_, - origin_, network_isolation_key_), + std::make_unique<WebSocketConnectorImpl>( + ancestor_render_frame_host_id_.child_id, + ancestor_render_frame_host_id_.frame_routing_id, origin_, + network_isolation_key_), std::move(receiver)); } @@ -344,7 +343,7 @@ mojo::PendingReceiver<blink::mojom::QuicTransportConnector> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!ancestor_render_frame_host) { // The ancestor frame may have already been closed. In that case, the worker // will soon be terminated too, so abort the connection. @@ -359,17 +358,18 @@ void DedicatedWorkerHost::CreateNestedDedicatedWorker( mojo::PendingReceiver<blink::mojom::DedicatedWorkerHostFactory> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - CreateDedicatedWorkerHostFactory(worker_process_host_->GetID(), - ancestor_render_frame_id_, - /*creator_render_frame_id=*/MSG_ROUTING_NONE, - origin_, std::move(receiver)); + GlobalFrameRoutingId new_creator_render_frame_host_id( + worker_process_host_->GetID(), MSG_ROUTING_NONE); + CreateDedicatedWorkerHostFactory(new_creator_render_frame_host_id, + ancestor_render_frame_host_id_, origin_, + std::move(receiver)); } void DedicatedWorkerHost::CreateIdleManager( mojo::PendingReceiver<blink::mojom::IdleManager> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!ancestor_render_frame_host) { // The ancestor frame may have already been closed. In that case, the worker // will soon be terminated too, so abort the connection. @@ -389,7 +389,7 @@ void DedicatedWorkerHost::BindSmsReceiverReceiver( mojo::PendingReceiver<blink::mojom::SmsReceiver> receiver) { RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!ancestor_render_frame_host) { // The ancestor frame may have already been closed. In that case, the worker // will soon be terminated too, so abort the connection. @@ -404,7 +404,7 @@ mojo::PendingReceiver<blink::mojom::SerialService> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); RenderFrameHostImpl* ancestor_render_frame_host = - GetAncestorRenderFrameHost(); + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); if (!ancestor_render_frame_host) { // The ancestor frame may have already been closed. In that case, the worker // will soon be terminated too, so abort the connection. @@ -439,15 +439,20 @@ worker_process_host_->GetStoragePartition()); // Get a storage domain. - if (!GetAncestorRenderFrameHost() || - !GetAncestorRenderFrameHost()->GetSiteInstance()) + RenderFrameHostImpl* ancestor_render_frame_host = + RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); + if (!ancestor_render_frame_host) return; + + SiteInstance* site_instance = ancestor_render_frame_host->GetSiteInstance(); + if (!site_instance) + return; + std::string storage_domain; std::string partition_name; bool in_memory; GetContentClient()->browser()->GetStoragePartitionConfigForSite( - storage_partition_impl->browser_context(), - GetAncestorRenderFrameHost()->GetSiteInstance()->GetSiteURL(), + storage_partition_impl->browser_context(), site_instance->GetSiteURL(), /*can_be_default=*/true, &storage_domain, &partition_name, &in_memory); // Start observing Network Service crash again. @@ -465,7 +470,7 @@ bool bypass_redirect_checks = false; subresource_loader_factories->pending_default_factory() = - CreateNetworkFactoryForSubresources(GetAncestorRenderFrameHost(), + CreateNetworkFactoryForSubresources(ancestor_render_frame_host, &bypass_redirect_checks); subresource_loader_factories->set_bypass_redirect_checks( bypass_redirect_checks); @@ -474,28 +479,18 @@ std::move(subresource_loader_factories)); } -// May return a nullptr. -RenderFrameHostImpl* DedicatedWorkerHost::GetAncestorRenderFrameHost() { - // Use |worker_process_host_->GetID()| as the ancestor render frame's process - // ID as the frame surely lives in the same process for dedicated workers. - const int ancestor_render_frame_process_id = worker_process_host_->GetID(); - return RenderFrameHostImpl::FromID(ancestor_render_frame_process_id, - ancestor_render_frame_id_); -} - namespace { // A factory for creating DedicatedWorkerHosts. Its lifetime is managed by the // renderer over mojo via SelfOwnedReceiver. It lives on the UI thread. class DedicatedWorkerHostFactoryImpl final : public blink::mojom::DedicatedWorkerHostFactory { public: - DedicatedWorkerHostFactoryImpl(int creator_process_id, - int ancestor_render_frame_id, - int creator_render_frame_id, - const url::Origin& parent_context_origin) - : creator_process_id_(creator_process_id), - ancestor_render_frame_id_(ancestor_render_frame_id), - creator_render_frame_id_(creator_render_frame_id), + DedicatedWorkerHostFactoryImpl( + GlobalFrameRoutingId creator_render_frame_host_id, + GlobalFrameRoutingId ancestor_render_frame_host_id, + const url::Origin& parent_context_origin) + : creator_render_frame_host_id_(creator_render_frame_host_id), + ancestor_render_frame_host_id_(ancestor_render_frame_host_id), parent_context_origin_(parent_context_origin) { DCHECK_CURRENTLY_ON(BrowserThread::UI); } @@ -514,7 +509,8 @@ } // Allocate the worker in the same process as the creator. - auto* worker_process_host = RenderProcessHost::FromID(creator_process_id_); + auto* worker_process_host = + RenderProcessHost::FromID(creator_render_frame_host_id_.child_id); if (!worker_process_host) { // Abort if the worker's process host is gone. This means that the calling // frame or worker is also either destroyed or in the process of being @@ -528,8 +524,8 @@ // (Document or DedicatedWorkerGlobalScope), or is unique. // Deletes itself on Mojo disconnection. auto* host = new DedicatedWorkerHost( - worker_process_host, ancestor_render_frame_id_, - creator_render_frame_id_, origin, std::move(host_receiver)); + worker_process_host, creator_render_frame_host_id_, + ancestor_render_frame_host_id_, origin, std::move(host_receiver)); host->BindBrowserInterfaceBrokerReceiver(std::move(broker_receiver)); } @@ -552,7 +548,8 @@ } // Allocate the worker in the same process as the creator. - auto* worker_process_host = RenderProcessHost::FromID(creator_process_id_); + auto* worker_process_host = + RenderProcessHost::FromID(creator_render_frame_host_id_.child_id); if (!worker_process_host) { // Abort if the worker's process host is gone. This means that the calling // frame or worker is also either destroyed or in the process of being @@ -566,8 +563,8 @@ // (Document or DedicatedWorkerGlobalScope), or is unique. // Deletes itself on Mojo disconnection. auto* host = new DedicatedWorkerHost( - worker_process_host, ancestor_render_frame_id_, - creator_render_frame_id_, request_initiator_origin, + worker_process_host, creator_render_frame_host_id_, + ancestor_render_frame_host_id_, request_initiator_origin, std::move(host_receiver)); mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker> broker; host->BindBrowserInterfaceBrokerReceiver( @@ -583,9 +580,8 @@ private: // See comments on the corresponding members of DedicatedWorkerHost. - const int creator_process_id_; - const int ancestor_render_frame_id_; - const int creator_render_frame_id_; + const GlobalFrameRoutingId creator_render_frame_host_id_; + const GlobalFrameRoutingId ancestor_render_frame_host_id_; const url::Origin parent_context_origin_; @@ -595,16 +591,15 @@ } // namespace void CreateDedicatedWorkerHostFactory( - int creator_process_id, - int ancestor_render_frame_id, - int creator_render_frame_id, + GlobalFrameRoutingId creator_render_frame_host_id, + GlobalFrameRoutingId ancestor_render_frame_host_id, const url::Origin& origin, mojo::PendingReceiver<blink::mojom::DedicatedWorkerHostFactory> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - mojo::MakeSelfOwnedReceiver(std::make_unique<DedicatedWorkerHostFactoryImpl>( - creator_process_id, ancestor_render_frame_id, - creator_render_frame_id, origin), - std::move(receiver)); + mojo::MakeSelfOwnedReceiver( + std::make_unique<DedicatedWorkerHostFactoryImpl>( + creator_render_frame_host_id, ancestor_render_frame_host_id, origin), + std::move(receiver)); } } // namespace content
diff --git a/content/browser/worker_host/dedicated_worker_host.h b/content/browser/worker_host/dedicated_worker_host.h index 2d9a5e7..7d85c36 100644 --- a/content/browser/worker_host/dedicated_worker_host.h +++ b/content/browser/worker_host/dedicated_worker_host.h
@@ -8,6 +8,7 @@ #include "base/scoped_observer.h" #include "build/build_config.h" #include "content/browser/browser_interface_broker_impl.h" +#include "content/public/browser/global_routing_id.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_process_host_observer.h" #include "media/mojo/mojom/video_decode_perf_history.mojom.h" @@ -43,9 +44,8 @@ // Creates a host factory for a dedicated worker. This must be called on the UI // thread. void CreateDedicatedWorkerHostFactory( - int creator_process_id, - int ancestor_render_frame_id, - int creator_render_frame_id, + GlobalFrameRoutingId creator_render_frame_host_id, + GlobalFrameRoutingId ancestor_render_frame_host_id, const url::Origin& origin, mojo::PendingReceiver<blink::mojom::DedicatedWorkerHostFactory> receiver); @@ -57,8 +57,8 @@ public: DedicatedWorkerHost( RenderProcessHost* worker_process_host, - int ancestor_render_frame_id, - int creator_render_frame_id, + GlobalFrameRoutingId creator_render_frame_host_id, + GlobalFrameRoutingId ancestor_render_frame_host_id, const url::Origin& origin, mojo::PendingReceiver<blink::mojom::DedicatedWorkerHost> host); ~DedicatedWorkerHost() final; @@ -139,16 +139,14 @@ // Creates a network factory for subresource requests from this worker. The // network factory is meant to be passed to the renderer. mojo::PendingRemote<network::mojom::URLLoaderFactory> - CreateNetworkFactoryForSubresources(RenderFrameHostImpl* render_frame_host, - bool* bypass_redirect_checks); + CreateNetworkFactoryForSubresources( + RenderFrameHostImpl* ancestor_render_frame_host, + bool* bypass_redirect_checks); // Updates subresource loader factories. This is supposed to be called when // out-of-process Network Service crashes. void UpdateSubresourceLoaderFactories(); - // May return a nullptr. - RenderFrameHostImpl* GetAncestorRenderFrameHost(); - void OnMojoDisconnect(); // The RenderProcessHost that hosts this worker. @@ -157,13 +155,14 @@ ScopedObserver<RenderProcessHost, RenderProcessHostObserver> scoped_process_host_observer_; + // The ID of the frame that directly starts this worker. This is + // {creator_render_process_host_id, MSG_ROUTING_NONE} when this worker is + // nested. + const GlobalFrameRoutingId creator_render_frame_host_id_; + // The ID of the frame that owns this worker, either directly, or (in the case // of nested workers) indirectly via a tree of dedicated workers. - const int ancestor_render_frame_id_; - - // The ID of the frame that directly starts this worker. This is - // MSG_ROUTING_NONE when this worker is nested. - const int creator_render_frame_id_; + const GlobalFrameRoutingId ancestor_render_frame_host_id_; const url::Origin origin_;
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index 7b3a449..9b2fb0a 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn
@@ -213,8 +213,6 @@ "service_worker/service_worker_utils.h", "skia_utils.cc", "skia_utils.h", - "swapped_out_messages.cc", - "swapped_out_messages.h", "tab_switch_time_recorder.cc", "tab_switch_time_recorder.h", "text_input_client_messages.h",
diff --git a/content/common/swapped_out_messages.cc b/content/common/swapped_out_messages.cc deleted file mode 100644 index 46d4da87..0000000 --- a/content/common/swapped_out_messages.cc +++ /dev/null
@@ -1,60 +0,0 @@ -// Copyright (c) 2012 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 "content/common/swapped_out_messages.h" - -#include "content/common/accessibility_messages.h" -#include "content/common/view_messages.h" -#include "content/public/common/content_client.h" - -namespace content { - -bool SwappedOutMessages::CanSendWhileSwappedOut(const IPC::Message* msg) { - // We filter out most IPC messages when swapped out. However, some are - // important (e.g., ACKs) for keeping the browser and renderer state - // consistent in case we later return to the same renderer. - switch (msg->type()) { - // Handled by RenderViewHost. - case ViewHostMsg_ClosePage_ACK::ID: - case ViewHostMsg_Focus::ID: - case ViewHostMsg_ShowFullscreenWidget::ID: - case ViewHostMsg_ShowWidget::ID: - case ViewHostMsg_UpdateTargetURL::ID: - case ViewHostMsg_RouteCloseEvent::ID: - // Send page scale factor reset notification upon cross-process navigations. - case ViewHostMsg_PageScaleFactorChanged::ID: - return true; - default: - break; - } - - // Check with the embedder as well. - ContentClient* client = GetContentClient(); - return client->CanSendWhileSwappedOut(msg); -} - -bool SwappedOutMessages::CanHandleWhileSwappedOut( - const IPC::Message& msg) { - // Any message the renderer is allowed to send while swapped out should - // be handled by the browser. - if (CanSendWhileSwappedOut(&msg)) - return true; - - // We drop most other messages that arrive from a swapped out renderer. - // However, some are important (e.g., ACKs) for keeping the browser and - // renderer state consistent in case we later return to the renderer. - // Note that synchronous messages that are not handled will receive an - // error reply instead, to avoid leaving the renderer in a stuck state. - switch (msg.type()) { - // Sends an ACK. - case AccessibilityHostMsg_EventBundle::ID: - return true; - default: - break; - } - - return false; -} - -} // namespace content
diff --git a/content/common/swapped_out_messages.h b/content/common/swapped_out_messages.h deleted file mode 100644 index c4b0649..0000000 --- a/content/common/swapped_out_messages.h +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright (c) 2012 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 CONTENT_COMMON_SWAPPED_OUT_MESSAGES_H_ -#define CONTENT_COMMON_SWAPPED_OUT_MESSAGES_H_ - -#include "ipc/ipc_message.h" - -namespace content { - -// Functions for filtering IPC messages sent from and received from a swapped -// out renderer. -class SwappedOutMessages { - public: - static bool CanSendWhileSwappedOut(const IPC::Message* msg); - static bool CanHandleWhileSwappedOut(const IPC::Message& msg); -}; - -} // namespace content - -#endif // CONTENT_COMMON_SWAPPED_OUT_MESSAGES_H_
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h index cbe040b6..5369a07 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h
@@ -1013,12 +1013,6 @@ RenderProcessHost* render_process_host, mojo::GenericPendingReceiver receiver) {} - // Called on the IO thread to handle an unhandled interface receiver binding - // request from a render process. See |RenderThread::BindHostReceiver()|. - virtual void BindHostReceiverForRendererOnIOThread( - int render_process_id, - mojo::GenericPendingReceiver* receiver) {} - // Called just before the Service Manager is initialized. virtual void WillStartServiceManager() {}
diff --git a/content/public/browser/permission_type.cc b/content/public/browser/permission_type.cc index 77902ac3..05632368 100644 --- a/content/public/browser/permission_type.cc +++ b/content/public/browser/permission_type.cc
@@ -6,6 +6,12 @@ #include "base/no_destructor.h" #include "base/stl_util.h" +#include "build/build_config.h" +#include "third_party/blink/public/mojom/permissions/permission.mojom.h" + +using blink::mojom::PermissionDescriptorPtr; +using blink::mojom::PermissionName; +using blink::mojom::PermissionStatus; namespace content { @@ -25,4 +31,78 @@ return *kAllPermissionTypes; } +base::Optional<PermissionType> PermissionDescriptorToPermissionType( + const PermissionDescriptorPtr& descriptor) { + switch (descriptor->name) { + case PermissionName::GEOLOCATION: + return PermissionType::GEOLOCATION; + case PermissionName::NOTIFICATIONS: + return PermissionType::NOTIFICATIONS; + case PermissionName::MIDI: { + if (descriptor->extension && descriptor->extension->is_midi() && + descriptor->extension->get_midi()->sysex) { + return PermissionType::MIDI_SYSEX; + } + return PermissionType::MIDI; + } + case PermissionName::PROTECTED_MEDIA_IDENTIFIER: +#if defined(ENABLE_PROTECTED_MEDIA_IDENTIFIER_PERMISSION) + return PermissionType::PROTECTED_MEDIA_IDENTIFIER; +#else + NOTIMPLEMENTED(); + return base::nullopt; +#endif // defined(ENABLE_PROTECTED_MEDIA_IDENTIFIER_PERMISSION) + case PermissionName::DURABLE_STORAGE: + return PermissionType::DURABLE_STORAGE; + case PermissionName::AUDIO_CAPTURE: + return PermissionType::AUDIO_CAPTURE; + case PermissionName::VIDEO_CAPTURE: + return PermissionType::VIDEO_CAPTURE; + case PermissionName::BACKGROUND_SYNC: + return PermissionType::BACKGROUND_SYNC; + case PermissionName::SENSORS: + return PermissionType::SENSORS; + case PermissionName::ACCESSIBILITY_EVENTS: + return PermissionType::ACCESSIBILITY_EVENTS; + case PermissionName::CLIPBOARD_READ: + return PermissionType::CLIPBOARD_READ_WRITE; + case PermissionName::CLIPBOARD_WRITE: { + if (descriptor->extension && descriptor->extension->is_clipboard() && + descriptor->extension->get_clipboard()->allowWithoutSanitization) { + return PermissionType::CLIPBOARD_READ_WRITE; + } else { + return PermissionType::CLIPBOARD_SANITIZED_WRITE; + } + } + case PermissionName::PAYMENT_HANDLER: + return PermissionType::PAYMENT_HANDLER; + case PermissionName::BACKGROUND_FETCH: + return PermissionType::BACKGROUND_FETCH; + case PermissionName::IDLE_DETECTION: + return PermissionType::IDLE_DETECTION; + case PermissionName::PERIODIC_BACKGROUND_SYNC: + return PermissionType::PERIODIC_BACKGROUND_SYNC; + case PermissionName::WAKE_LOCK: + if (descriptor->extension && descriptor->extension->is_wake_lock()) { + switch (descriptor->extension->get_wake_lock()->type) { + case blink::mojom::WakeLockType::kScreen: + return PermissionType::WAKE_LOCK_SCREEN; + break; + case blink::mojom::WakeLockType::kSystem: + return PermissionType::WAKE_LOCK_SYSTEM; + break; + default: + NOTREACHED(); + return base::nullopt; + } + } + break; + case PermissionName::NFC: + return PermissionType::NFC; + } + + NOTREACHED(); + return base::nullopt; +} + } // namespace content
diff --git a/content/public/browser/permission_type.h b/content/public/browser/permission_type.h index fb79c710..187712c 100644 --- a/content/public/browser/permission_type.h +++ b/content/public/browser/permission_type.h
@@ -7,7 +7,9 @@ #include <vector> +#include "base/optional.h" #include "content/common/content_export.h" +#include "third_party/blink/public/mojom/permissions/permission.mojom-forward.h" namespace content { @@ -51,6 +53,11 @@ CONTENT_EXPORT const std::vector<PermissionType>& GetAllPermissionTypes(); +// Given |descriptor|, set |permission_type| to a corresponding PermissionType. +CONTENT_EXPORT base::Optional<PermissionType> +PermissionDescriptorToPermissionType( + const blink::mojom::PermissionDescriptorPtr& descriptor); + } // namespace content #endif // CONTENT_PUBLIC_BROWSER_PERMISSION_TYPE_H_
diff --git a/content/public/browser/render_widget_host_view.h b/content/public/browser/render_widget_host_view.h index 8fe90d1..2064476 100644 --- a/content/public/browser/render_widget_host_view.h +++ b/content/public/browser/render_widget_host_view.h
@@ -228,10 +228,6 @@ virtual std::unique_ptr<viz::ClientFrameSinkVideoCapturer> CreateVideoCapturer() = 0; - // Informs the view that its associated render widget has frames to draw and - // wants to have BeginFrame messages sent to it. This should only be called - // when the value has changed. Views must initially default to false. - virtual void SetNeedsBeginFrames(bool needs_begin_frames) = 0; // This method returns the ScreenInfo used by the view to render. If the // information is not knowable (e.g, because the view is not attached to a // screen yet), then a default best-guess will be used.
diff --git a/content/public/child/child_thread.h b/content/public/child/child_thread.h index 5317889..12df17c 100644 --- a/content/public/child/child_thread.h +++ b/content/public/child/child_thread.h
@@ -63,10 +63,8 @@ // // For renderers: // 1. IO thread, IOThreadHostImpl::BindHostReceiver. - // 2. IO thread, - // ContentBrowserClient::BindHostReceiverForRendererOnIOThread. - // 3. Main thread, RenderProcessHostImpl::BindHostReceiver. - // 4. Main thread, ContentBrowserClient::BindHostReceiverForRenderer. + // 2. Main thread, RenderProcessHostImpl::BindHostReceiver. + // 3. Main thread, ContentBrowserClient::BindHostReceiverForRenderer. // // TODO(crbug.com/977637): Document behavior for other process types when // their support is added.
diff --git a/content/public/common/content_client.cc b/content/public/common/content_client.cc index f11035d..494f4ff3 100644 --- a/content/public/common/content_client.cc +++ b/content/public/common/content_client.cc
@@ -67,10 +67,6 @@ ContentClient::~ContentClient() { } -bool ContentClient::CanSendWhileSwappedOut(const IPC::Message* message) { - return false; -} - base::string16 ContentClient::GetLocalizedString(int message_id) { return base::string16(); }
diff --git a/content/public/common/content_client.h b/content/public/common/content_client.h index 1b9729c..2b2ef66 100644 --- a/content/public/common/content_client.h +++ b/content/public/common/content_client.h
@@ -30,10 +30,6 @@ class OriginTrialPolicy; } -namespace IPC { -class Message; -} - namespace gfx { class Image; } @@ -153,9 +149,6 @@ virtual void AddAdditionalSchemes(Schemes* schemes) {} - // Returns whether the given message should be sent in a swapped out renderer. - virtual bool CanSendWhileSwappedOut(const IPC::Message* message); - // Returns a string resource given its id. virtual base::string16 GetLocalizedString(int message_id);
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index 9dd22cf5..4a64adb 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -613,11 +613,15 @@ const base::Feature kWebAssemblyCodeGC{"WebAssemblyCodeGC", base::FEATURE_ENABLED_BY_DEFAULT}; -// Enable WebAssembly SIMD +// Enable WebAssembly SIMD. // https://github.com/WebAssembly/Simd const base::Feature kWebAssemblySimd{"WebAssemblySimd", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enable WebAssembly tiering (Liftoff -> TurboFan). +const base::Feature kWebAssemblyTiering{"WebAssemblyTiering", + base::FEATURE_ENABLED_BY_DEFAULT}; + // Enable WebAssembly threads. // https://github.com/WebAssembly/threads const base::Feature kWebAssemblyThreads {
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h index a37ad87..ab3a00f 100644 --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h
@@ -135,6 +135,7 @@ CONTENT_EXPORT extern const base::Feature kWebAssemblyCodeGC; CONTENT_EXPORT extern const base::Feature kWebAssemblySimd; CONTENT_EXPORT extern const base::Feature kWebAssemblyThreads; +CONTENT_EXPORT extern const base::Feature kWebAssemblyTiering; CONTENT_EXPORT extern const base::Feature kWebAssemblyTrapHandler; CONTENT_EXPORT extern const base::Feature kWebAuth; CONTENT_EXPORT extern const base::Feature kWebAuthBle;
diff --git a/content/public/utility/content_utility_client.h b/content/public/utility/content_utility_client.h index 793d821..e521fbd 100644 --- a/content/public/utility/content_utility_client.h +++ b/content/public/utility/content_utility_client.h
@@ -16,6 +16,10 @@ #include "services/service_manager/public/cpp/service.h" #include "services/service_manager/public/mojom/service.mojom.h" +namespace IPC { +class Message; +} + namespace mojo { class BinderMap; class ServiceFactory;
diff --git a/content/renderer/loader/web_url_loader_impl.cc b/content/renderer/loader/web_url_loader_impl.cc index 24701d10..e3dd14a 100644 --- a/content/renderer/loader/web_url_loader_impl.cc +++ b/content/renderer/loader/web_url_loader_impl.cc
@@ -1021,6 +1021,7 @@ net::IsCertStatusError(head.cert_status)); response->SetCTPolicyCompliance(head.ct_policy_compliance); response->SetIsLegacyTLSVersion(head.is_legacy_tls_version); + response->SetTimingAllowPassed(head.timing_allow_passed); response->SetAppCacheID(head.appcache_id); response->SetAppCacheManifestURL(head.appcache_manifest_url); response->SetWasCached(!head.load_timing.request_start_time.is_null() &&
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index bde0bdb..3f27c51 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -65,7 +65,6 @@ #include "content/common/page_messages.h" #include "content/common/renderer_host.mojom.h" #include "content/common/savable_subframe.h" -#include "content/common/swapped_out_messages.h" #include "content/common/unfreezable_frame_messages.h" #include "content/common/view_messages.h" #include "content/common/web_package/signed_exchange_utils.h"
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc index 186dd71..2c5bbe6 100644 --- a/content/renderer/render_frame_proxy.cc +++ b/content/renderer/render_frame_proxy.cc
@@ -18,7 +18,6 @@ #include "content/common/frame_replication_state.h" #include "content/common/input_messages.h" #include "content/common/page_messages.h" -#include "content/common/swapped_out_messages.h" #include "content/common/unfreezable_frame_messages.h" #include "content/common/view_messages.h" #include "content/public/common/content_client.h"
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc index a8fa1d5..81d5b96 100644 --- a/content/renderer/render_process_impl.cc +++ b/content/renderer/render_process_impl.cc
@@ -128,10 +128,8 @@ SetV8FlagIfFeature(features::kV8VmFuture, "--future"); SetV8FlagIfNotFeature(features::kV8VmFuture, "--no-future"); - SetV8FlagIfFeature(features::kWebAssemblyBaseline, - "--liftoff --wasm-tier-up"); - SetV8FlagIfNotFeature(features::kWebAssemblyBaseline, - "--no-liftoff --no-wasm-tier-up"); + SetV8FlagIfFeature(features::kWebAssemblyBaseline, "--liftoff"); + SetV8FlagIfNotFeature(features::kWebAssemblyBaseline, "--no-liftoff"); SetV8FlagIfFeature(features::kWebAssemblyCodeGC, "--wasm-code-gc"); SetV8FlagIfNotFeature(features::kWebAssemblyCodeGC, "--no-wasm-code-gc"); @@ -156,6 +154,9 @@ "--no-harmony-sharedarraybuffer"); } + SetV8FlagIfFeature(features::kWebAssemblyTiering, "--wasm-tier-up"); + SetV8FlagIfNotFeature(features::kWebAssemblyTiering, "--no-wasm-tier-up"); + SetV8FlagIfNotFeature(features::kWebAssemblyTrapHandler, "--no-wasm-trap-handler"); #if defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index af8dfe8..9f9dc72 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -148,6 +148,7 @@ #include "third_party/icu/source/common/unicode/uchar.h" #include "third_party/icu/source/common/unicode/uscript.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/base/ui_base_features.h" #include "ui/base/ui_base_switches_util.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/rect.h" @@ -1922,6 +1923,11 @@ } #endif + if (features::IsFormControlsRefreshEnabled() && + renderer_prefs.use_custom_colors) { + blink::SetFocusRingColor(renderer_prefs.focus_ring_color); + } + if (webview() && old_accept_languages != renderer_preferences_.accept_languages) { webview()->AcceptLanguagesChanged();
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index b1c61a3..d05abec 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc
@@ -43,7 +43,6 @@ #include "content/common/drag_messages.h" #include "content/common/render_frame_metadata.mojom.h" #include "content/common/render_message_filter.mojom.h" -#include "content/common/swapped_out_messages.h" #include "content/common/text_input_state.h" #include "content/common/widget_messages.h" #include "content/public/common/content_client.h"
diff --git a/content/shell/browser/web_test/web_test_content_browser_client.cc b/content/shell/browser/web_test/web_test_content_browser_client.cc index 700996b..3f2d303 100644 --- a/content/shell/browser/web_test/web_test_content_browser_client.cc +++ b/content/shell/browser/web_test/web_test_content_browser_client.cc
@@ -34,6 +34,7 @@ #include "content/shell/browser/web_test/web_test_browser_context.h" #include "content/shell/browser/web_test/web_test_browser_main_parts.h" #include "content/shell/browser/web_test/web_test_message_filter.h" +#include "content/shell/browser/web_test/web_test_permission_manager.h" #include "content/shell/browser/web_test/web_test_tts_controller_delegate.h" #include "content/shell/browser/web_test/web_test_tts_platform.h" #include "content/shell/common/web_test/web_test_switches.h" @@ -178,6 +179,12 @@ &WebTestContentBrowserClient::BindClientHintsControllerDelegate, base::Unretained(this)), ui_task_runner); + + registry->AddInterface( + base::BindRepeating( + &WebTestContentBrowserClient::BindPermissionAutomation, + base::Unretained(this)), + ui_task_runner); } void WebTestContentBrowserClient::BindClipboardHostForRequest( @@ -202,6 +209,12 @@ delegate->Bind(std::move(receiver)); } +void WebTestContentBrowserClient::BindPermissionAutomation( + mojo::PendingReceiver<blink::test::mojom::PermissionAutomation> receiver) { + GetWebTestBrowserContext()->GetWebTestPermissionManager()->Bind( + std::move(receiver)); +} + void WebTestContentBrowserClient::OverrideWebkitPrefs( RenderViewHost* render_view_host, WebPreferences* prefs) {
diff --git a/content/shell/browser/web_test/web_test_content_browser_client.h b/content/shell/browser/web_test/web_test_content_browser_client.h index c5dd687..0c9e573 100644 --- a/content/shell/browser/web_test/web_test_content_browser_client.h +++ b/content/shell/browser/web_test/web_test_content_browser_client.h
@@ -14,6 +14,7 @@ #include "services/service_manager/public/cpp/binder_map.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "third_party/blink/public/mojom/clipboard/clipboard.mojom.h" +#include "third_party/blink/public/mojom/permissions/permission_automation.mojom-forward.h" namespace content { @@ -102,6 +103,9 @@ void BindClientHintsControllerDelegate( mojo::PendingReceiver<client_hints::mojom::ClientHints> receiver); + void BindPermissionAutomation( + mojo::PendingReceiver<blink::test::mojom::PermissionAutomation> receiver); + std::unique_ptr<MockPlatformNotificationService> mock_platform_notification_service_; bool block_popups_ = false;
diff --git a/content/shell/browser/web_test/web_test_permission_manager.cc b/content/shell/browser/web_test/web_test_permission_manager.cc index 1a00c6a..67f34de 100644 --- a/content/shell/browser/web_test/web_test_permission_manager.cc +++ b/content/shell/browser/web_test/web_test_permission_manager.cc
@@ -207,6 +207,22 @@ OnPermissionChanged(description, status); } +void WebTestPermissionManager::SetPermission( + blink::mojom::PermissionDescriptorPtr descriptor, + blink::mojom::PermissionStatus status, + const GURL& url, + const GURL& embedding_url, + blink::test::mojom::PermissionAutomation::SetPermissionCallback callback) { + auto type = PermissionDescriptorToPermissionType(descriptor); + if (!type) { + std::move(callback).Run(false); + return; + } + + SetPermission(*type, status, url, embedding_url); + std::move(callback).Run(true); +} + void WebTestPermissionManager::ResetPermissions() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -214,6 +230,11 @@ permissions_.clear(); } +void WebTestPermissionManager::Bind( + mojo::PendingReceiver<blink::test::mojom::PermissionAutomation> receiver) { + receivers_.Add(this, std::move(receiver)); +} + void WebTestPermissionManager::OnPermissionChanged( const PermissionDescription& permission, blink::mojom::PermissionStatus status) {
diff --git a/content/shell/browser/web_test/web_test_permission_manager.h b/content/shell/browser/web_test/web_test_permission_manager.h index dfff29f9..1d15dbb 100644 --- a/content/shell/browser/web_test/web_test_permission_manager.h +++ b/content/shell/browser/web_test/web_test_permission_manager.h
@@ -12,11 +12,16 @@ #include "base/macros.h" #include "base/synchronization/lock.h" #include "content/public/browser/permission_controller_delegate.h" +#include "mojo/public/cpp/bindings/receiver_set.h" +#include "third_party/blink/public/mojom/permissions/permission.mojom.h" +#include "third_party/blink/public/mojom/permissions/permission_automation.mojom.h" #include "url/gurl.h" namespace content { -class WebTestPermissionManager : public PermissionControllerDelegate { +class WebTestPermissionManager + : public PermissionControllerDelegate, + public blink::test::mojom::PermissionAutomation { public: WebTestPermissionManager(); ~WebTestPermissionManager() override; @@ -61,6 +66,17 @@ const GURL& embedding_url); void ResetPermissions(); + // blink::test::mojom::PermissionAutomation + void SetPermission( + blink::mojom::PermissionDescriptorPtr descriptor, + blink::mojom::PermissionStatus status, + const GURL& url, + const GURL& embedding_url, + blink::test::mojom::PermissionAutomation::SetPermissionCallback) override; + + void Bind( + mojo::PendingReceiver<blink::test::mojom::PermissionAutomation> receiver); + private: // Representation of a permission for the WebTestPermissionManager. struct PermissionDescription { @@ -101,6 +117,8 @@ // List of subscribers currently listening to permission changes. SubscriptionsMap subscriptions_; + mojo::ReceiverSet<blink::test::mojom::PermissionAutomation> receivers_; + DISALLOW_COPY_AND_ASSIGN(WebTestPermissionManager); };
diff --git a/content/shell/common/shell_content_client.cc b/content/shell/common/shell_content_client.cc index febd34bf..91958b2 100644 --- a/content/shell/common/shell_content_client.cc +++ b/content/shell/common/shell_content_client.cc
@@ -79,19 +79,6 @@ return &origin_trial_policy_; } -bool ShellContentClient::CanSendWhileSwappedOut(const IPC::Message* message) { - if (!in_web_test_) - return ContentClient::CanSendWhileSwappedOut(message); - switch (message->type()) { - // Used in web tests; handled in BlinkTestController. - case BlinkTestHostMsg_PrintMessage::ID: - return true; - - default: - return false; - } -} - void ShellContentClient::SetInWebTest(bool in_web_test) { in_web_test_ = in_web_test; }
diff --git a/content/shell/common/shell_content_client.h b/content/shell/common/shell_content_client.h index b6fcb118..bf8b686 100644 --- a/content/shell/common/shell_content_client.h +++ b/content/shell/common/shell_content_client.h
@@ -26,7 +26,6 @@ gfx::Image& GetNativeImageNamed(int resource_id) override; base::DictionaryValue GetNetLogConstants() override; blink::OriginTrialPolicy* GetOriginTrialPolicy() override; - bool CanSendWhileSwappedOut(const IPC::Message* message) override; void SetInWebTest(bool in_web_test);
diff --git a/content/shell/renderer/web_test/blink_test_runner.cc b/content/shell/renderer/web_test/blink_test_runner.cc index 7d64ac10..215f3e8e6 100644 --- a/content/shell/renderer/web_test/blink_test_runner.cc +++ b/content/shell/renderer/web_test/blink_test_runner.cc
@@ -61,6 +61,7 @@ #include "services/service_manager/public/cpp/binder_registry.h" #include "skia/ext/platform_canvas.h" #include "third_party/blink/public/common/input/web_input_event.h" +#include "third_party/blink/public/common/permissions/permission_utils.h" #include "third_party/blink/public/mojom/app_banner/app_banner.mojom.h" #include "third_party/blink/public/platform/file_path_conversion.h" #include "third_party/blink/public/platform/platform.h" @@ -618,20 +619,9 @@ const std::string& value, const GURL& origin, const GURL& embedding_origin) { - blink::mojom::PermissionStatus status; - if (value == "granted") { - status = blink::mojom::PermissionStatus::GRANTED; - } else if (value == "prompt") { - status = blink::mojom::PermissionStatus::ASK; - } else if (value == "denied") { - status = blink::mojom::PermissionStatus::DENIED; - } else { - NOTREACHED(); - status = blink::mojom::PermissionStatus::DENIED; - } - - Send(new WebTestHostMsg_SetPermission(routing_id(), name, status, origin, - embedding_origin)); + Send(new WebTestHostMsg_SetPermission(routing_id(), name, + blink::ToPermissionStatus(value), + origin, embedding_origin)); } void BlinkTestRunner::ResetPermissions() {
diff --git a/content/test/test_render_view_host.h b/content/test/test_render_view_host.h index 8e6f815..6d73528 100644 --- a/content/test/test_render_view_host.h +++ b/content/test/test_render_view_host.h
@@ -92,7 +92,6 @@ // period of time. void ResetFallbackToFirstNavigationSurface() override {} - void SetNeedsBeginFrames(bool needs_begin_frames) override {} void TakeFallbackContentFrom(RenderWidgetHostView* view) override; void EnsureSurfaceSynchronizedForWebTest() override {}
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h index ad9e69b4..45ad566 100644 --- a/extensions/browser/extension_function_histogram_value.h +++ b/extensions/browser/extension_function_histogram_value.h
@@ -1492,6 +1492,8 @@ AUTOTESTPRIVATE_ISARCPACKAGELISTINITIALREFRESHED = 1429, AUTOTESTPRIVATE_STARTTRACING = 1430, AUTOTESTPRIVATE_STOPTRACING = 1431, + LOGIN_LOCKMANAGEDGUESTSESSION = 1432, + LOGIN_UNLOCKMANAGEDGUESTSESSION = 1433, // Last entry: Add new entries above, then run: // python tools/metrics/histograms/update_extension_histograms.py ENUM_BOUNDARY
diff --git a/gpu/command_buffer/service/command_buffer_direct.cc b/gpu/command_buffer/service/command_buffer_direct.cc index 5b9e2a7c..b5a604d9 100644 --- a/gpu/command_buffer/service/command_buffer_direct.cc +++ b/gpu/command_buffer/service/command_buffer_direct.cc
@@ -10,16 +10,7 @@ namespace gpu { -namespace { - -uint64_t g_next_command_buffer_id = 1; - -} // anonymous namespace - -CommandBufferDirect::CommandBufferDirect() - : service_(this, nullptr), - command_buffer_id_( - CommandBufferId::FromUnsafeValue(g_next_command_buffer_id++)) {} +CommandBufferDirect::CommandBufferDirect() : service_(this, nullptr) {} CommandBufferDirect::~CommandBufferDirect() = default;
diff --git a/gpu/command_buffer/service/command_buffer_direct.h b/gpu/command_buffer/service/command_buffer_direct.h index 52333650..44842ba 100644 --- a/gpu/command_buffer/service/command_buffer_direct.h +++ b/gpu/command_buffer/service/command_buffer_direct.h
@@ -6,7 +6,6 @@ #define GPU_COMMAND_BUFFER_SERVICE_COMMAND_BUFFER_DIRECT_H_ #include "base/callback.h" -#include "gpu/command_buffer/common/command_buffer_id.h" #include "gpu/command_buffer/common/constants.h" #include "gpu/command_buffer/service/command_buffer_service.h" #include "gpu/command_buffer/service/decoder_client.h" @@ -62,7 +61,6 @@ private: CommandBufferService service_; AsyncAPIInterface* handler_ = nullptr; - const CommandBufferId command_buffer_id_; }; } // namespace gpu
diff --git a/gpu/command_buffer/service/shared_context_state.cc b/gpu/command_buffer/service/shared_context_state.cc index de4702f2..be28922 100644 --- a/gpu/command_buffer/service/shared_context_state.cc +++ b/gpu/command_buffer/service/shared_context_state.cc
@@ -435,8 +435,8 @@ void SharedContextState::UpdateSkiaOwnedMemorySize() { if (!gr_context_) { - memory_tracker_.OnMemoryAllocatedChange( - CommandBufferId::FromUnsafeValue(0u), skia_gr_cache_size_, 0u); + memory_tracker_.OnMemoryAllocatedChange(CommandBufferId(), + skia_gr_cache_size_, 0u); skia_gr_cache_size_ = 0u; return; } @@ -445,9 +445,8 @@ // Skia does not have a CommandBufferId. PeakMemoryMonitor currently does not // use CommandBufferId to identify source, so use zero here to separate // prevent confusion. - memory_tracker_.OnMemoryAllocatedChange(CommandBufferId::FromUnsafeValue(0u), - skia_gr_cache_size_, - static_cast<uint64_t>(new_size)); + memory_tracker_.OnMemoryAllocatedChange( + CommandBufferId(), skia_gr_cache_size_, static_cast<uint64_t>(new_size)); skia_gr_cache_size_ = static_cast<uint64_t>(new_size); }
diff --git a/gpu/command_buffer/service/sync_point_manager.cc b/gpu/command_buffer/service/sync_point_manager.cc index 69856b5..cede4071 100644 --- a/gpu/command_buffer/service/sync_point_manager.cc +++ b/gpu/command_buffer/service/sync_point_manager.cc
@@ -342,7 +342,7 @@ scoped_refptr<SyncPointOrderData> SyncPointManager::CreateSyncPointOrderData() { base::AutoLock auto_lock(lock_); - SequenceId sequence_id = SequenceId::FromUnsafeValue(next_sequence_id_++); + SequenceId sequence_id = sequence_id_generator_.GenerateNextId(); scoped_refptr<SyncPointOrderData> order_data = new SyncPointOrderData(this, sequence_id); DCHECK(!order_data_map_.count(sequence_id));
diff --git a/gpu/command_buffer/service/sync_point_manager.h b/gpu/command_buffer/service/sync_point_manager.h index 8a44c18..c6fe88dc 100644 --- a/gpu/command_buffer/service/sync_point_manager.h +++ b/gpu/command_buffer/service/sync_point_manager.h
@@ -338,7 +338,7 @@ // Map of sequence id to order data. OrderDataMap order_data_map_; - uint32_t next_sequence_id_ = 1; + SequenceId::Generator sequence_id_generator_; mutable base::Lock lock_;
diff --git a/gpu/ipc/client/gpu_channel_host.cc b/gpu/ipc/client/gpu_channel_host.cc index f269259..5f844cc 100644 --- a/gpu/ipc/client/gpu_channel_host.cc +++ b/gpu/ipc/client/gpu_channel_host.cc
@@ -13,7 +13,6 @@ #include "base/single_thread_task_runner.h" #include "base/threading/thread_restrictions.h" #include "base/threading/thread_task_runner_handle.h" -#include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "gpu/ipc/common/command_buffer_id.h" #include "gpu/ipc/common/gpu_messages.h" @@ -21,6 +20,7 @@ #include "gpu/ipc/common/gpu_watchdog_timeout.h" #include "ipc/ipc_channel_mojo.h" #include "ipc/ipc_sync_message.h" +#include "ipc/trace_ipc_message.h" #include "mojo/public/cpp/bindings/lib/message_quota_checker.h" #include "url/gurl.h" @@ -53,9 +53,7 @@ } bool GpuChannelHost::Send(IPC::Message* msg) { - TRACE_EVENT2("ipc", "GpuChannelHost::Send", "class", - IPC_MESSAGE_ID_CLASS(msg->type()), "line", - IPC_MESSAGE_ID_LINE(msg->type())); + TRACE_IPC_MESSAGE_SEND("ipc", "GpuChannelHost::Send", msg); auto message = base::WrapUnique(msg);
diff --git a/infra/config/consoles/chromium.fyi.star b/infra/config/consoles/chromium.fyi.star index 5b29e4f..35242128 100644 --- a/infra/config/consoles/chromium.fyi.star +++ b/infra/config/consoles/chromium.fyi.star
@@ -156,6 +156,13 @@ builder = 'ci/linux-wpt-fyi-rel', category = 'linux', ), + # Moved to the FYI console for being habitually flaky. + # https://crbug.com/1014673 + luci.console_view_entry( + builder = 'ci/Leak Detection Linux', + category = 'linux', + short_name = 'lk', + ), luci.console_view_entry( builder = 'ci/Mojo Android', category = 'mojo',
diff --git a/infra/config/consoles/chromium.linux.star b/infra/config/consoles/chromium.linux.star index cf5c2c0..fc4579b4 100644 --- a/infra/config/consoles/chromium.linux.star +++ b/infra/config/consoles/chromium.linux.star
@@ -24,11 +24,6 @@ short_name = 'det', ), luci.console_view_entry( - builder = 'ci/Leak Detection Linux', - category = 'release', - short_name = 'lk', - ), - luci.console_view_entry( builder = 'ci/linux-ozone-rel', category = 'release', short_name = 'ozo',
diff --git a/infra/config/consoles/main.star b/infra/config/consoles/main.star index be89261..ce0123c 100644 --- a/infra/config/consoles/main.star +++ b/infra/config/consoles/main.star
@@ -205,11 +205,6 @@ short_name = 'det', ), luci.console_view_entry( - builder = 'ci/Leak Detection Linux', - category = 'chromium.linux|release', - short_name = 'lk', - ), - luci.console_view_entry( builder = 'ci/linux-ozone-rel', category = 'chromium.linux|release', short_name = 'ozo',
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg index 7bfaab8..c62ab84 100644 --- a/infra/config/generated/luci-milo.cfg +++ b/infra/config/generated/luci-milo.cfg
@@ -3050,6 +3050,11 @@ category: "linux" > builders: < + name: "buildbucket/luci.chromium.ci/Leak Detection Linux" + category: "linux" + short_name: "lk" + > + builders: < name: "buildbucket/luci.chromium.ci/Mojo Android" category: "mojo" short_name: "and" @@ -6833,11 +6838,6 @@ short_name: "det" > builders: < - name: "buildbucket/luci.chromium.ci/Leak Detection Linux" - category: "release" - short_name: "lk" - > - builders: < name: "buildbucket/luci.chromium.ci/linux-ozone-rel" category: "release" short_name: "ozo" @@ -10543,11 +10543,6 @@ short_name: "det" > builders: < - name: "buildbucket/luci.chromium.ci/Leak Detection Linux" - category: "chromium.linux|release" - short_name: "lk" - > - builders: < name: "buildbucket/luci.chromium.ci/linux-ozone-rel" category: "chromium.linux|release" short_name: "ozo"
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm b/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm index 24b74bb..fd48c2a 100644 --- a/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm +++ b/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm
@@ -220,7 +220,8 @@ std::unique_ptr<net::HttpCache::BackendFactory> main_backend( new net::HttpCache::DefaultBackend( net::DISK_CACHE, net::CACHE_BACKEND_BLOCKFILE, - lazy_params_->cache_path, lazy_params_->cache_max_size)); + lazy_params_->cache_path, lazy_params_->cache_max_size, + /*hard_reset=*/false)); http_network_session_ = CreateHttpNetworkSession(*profile_params); main_http_factory_ = CreateMainHttpFactory(http_network_session_.get(), std::move(main_backend));
diff --git a/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm b/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm index 1bf8000d..b24fbe0 100644 --- a/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm +++ b/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
@@ -6,6 +6,7 @@ #import <MobileCoreServices/MobileCoreServices.h> +#include "base/files/scoped_temp_dir.h" #include "base/strings/sys_string_conversions.h" #import "base/test/ios/wait_util.h" #include "base/test/scoped_feature_list.h" @@ -181,6 +182,10 @@ void SetUp() override { PlatformTest::SetUp(); TestChromeBrowserState::Builder test_cbs_builder; + + ASSERT_TRUE(state_dir_.CreateUniqueTempDir()); + test_cbs_builder.SetPath(state_dir_.GetPath()); + chrome_browser_state_ = test_cbs_builder.Build(); chrome_browser_state_->CreateBookmarkModel(false); bookmark_model_ = ios::BookmarkModelFactory::GetForBrowserState( @@ -315,6 +320,11 @@ EXPECT_FALSE(provider.fakePasswordFormFiller.methodCalled); } + // A state directory that outlives |task_environment_| is needed because + // CreateHistoryService/CreateBookmarkModel use the directory to host + // databases. See https://crbug.com/546640 for more details. + base::ScopedTempDir state_dir_; + web::WebTaskEnvironment task_environment_; UIViewController* parentController_; ShareToData* shareData_;
diff --git a/ios/chrome/browser/ui/authentication/BUILD.gn b/ios/chrome/browser/ui/authentication/BUILD.gn index dc2ae14..bf1e2c3 100644 --- a/ios/chrome/browser/ui/authentication/BUILD.gn +++ b/ios/chrome/browser/ui/authentication/BUILD.gn
@@ -22,8 +22,6 @@ "resized_avatar_cache.mm", "signed_in_accounts_view_controller.h", "signed_in_accounts_view_controller.mm", - "signin_account_selector_view_controller.h", - "signin_account_selector_view_controller.mm", "signin_promo_view_mediator.h", "signin_promo_view_mediator.mm", ] @@ -33,7 +31,6 @@ "unified_consent", "//base", "//components/consent_auditor", - "//components/google/core/common", "//components/infobars/core", "//components/prefs", "//components/signin/public/base", @@ -46,17 +43,15 @@ "//ios/chrome/browser", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/infobars", - "//ios/chrome/browser/main", + "//ios/chrome/browser/main:public", "//ios/chrome/browser/metrics", "//ios/chrome/browser/signin", "//ios/chrome/browser/sync", - "//ios/chrome/browser/tabs", "//ios/chrome/browser/ui/alert_coordinator", "//ios/chrome/browser/ui/authentication/cells", "//ios/chrome/browser/ui/collection_view/cells", "//ios/chrome/browser/ui/colors", "//ios/chrome/browser/ui/commands", - "//ios/chrome/browser/ui/material_components", "//ios/chrome/browser/ui/settings:settings_root", "//ios/chrome/browser/ui/signin_interaction/public", "//ios/chrome/browser/ui/util", @@ -66,11 +61,9 @@ "//ios/chrome/common/colors", "//ios/chrome/common/ui_util", "//ios/public/provider/chrome/browser", - "//ios/public/provider/chrome/browser/images", "//ios/public/provider/chrome/browser/signin", "//ui/base", "//ui/gfx", - "//url", ] public_deps = [ "//ios/chrome/browser/ui/collection_view", @@ -119,8 +112,7 @@ "//components/sync_preferences", "//components/sync_preferences:test_support", "//components/version_info", - "//ios/chrome/app/strings:ios_chromium_strings_grit", - "//ios/chrome/app/strings:ios_strings_grit", + "//ios/chrome/app/strings", "//ios/chrome/browser", "//ios/chrome/browser/browser_state:test_support", "//ios/chrome/browser/infobars", @@ -166,7 +158,7 @@ "//base/test:test_support", "//components/bookmarks/browser", "//components/signin/public/identity_manager", - "//ios/chrome/app/strings:ios_strings_grit", + "//ios/chrome/app/strings", "//ios/chrome/browser/bookmarks", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/signin", @@ -202,7 +194,7 @@ "unified_consent", "//components/bookmarks/browser", "//components/signin/public/identity_manager", - "//ios/chrome/app/strings:ios_strings_grit", + "//ios/chrome/app/strings", "//ios/chrome/browser/bookmarks", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/signin", @@ -237,7 +229,7 @@ deps = [ "//base", "//base/test:test_support", - "//ios/chrome/app/strings:ios_strings_grit", + "//ios/chrome/app/strings", "//ios/chrome/browser/ui/authentication/cells:constants", "//ios/chrome/browser/ui/authentication/unified_consent:constants", "//ios/chrome/browser/ui/signin_interaction:eg_test_support+eg2",
diff --git a/ios/chrome/browser/ui/authentication/cells/BUILD.gn b/ios/chrome/browser/ui/authentication/cells/BUILD.gn index a2c6b02..a6871c8 100644 --- a/ios/chrome/browser/ui/authentication/cells/BUILD.gn +++ b/ios/chrome/browser/ui/authentication/cells/BUILD.gn
@@ -74,7 +74,6 @@ "//ios/chrome/browser/ui/signin_interaction/public", "//ios/chrome/browser/ui/table_view:styler", "//ios/chrome/browser/ui/table_view/cells", - "//ios/chrome/browser/unified_consent", "//ios/chrome/common/colors", "//ios/chrome/test:test_support", "//ios/public/provider/chrome/browser/signin:test_support",
diff --git a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm index 982ff21..884b244 100644 --- a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm +++ b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm
@@ -35,7 +35,6 @@ #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" #import "ios/chrome/browser/ui/authentication/authentication_flow.h" #import "ios/chrome/browser/ui/authentication/authentication_ui_util.h" -#include "ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.h" #include "ios/chrome/browser/ui/authentication/unified_consent/unified_consent_coordinator.h" #import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/util/label_link_controller.h" @@ -113,12 +112,9 @@ enum AuthenticationState { // Initial state. NULL_STATE, - // Unified consent: - // Shows UnifiedConsentUserController - // Non unified consent: - // Shows SigninAccountSelectorViewController // Lets the user add an account and choose an identity. Once the dialog is // validated, the state transitions to SIGNIN_PENDING_STATE to sign in. + // The selection is done with UnifiedConsentUserController. IDENTITY_PICKER_STATE, // Signs in using AuthenticationFlow. If it fails, the state transitions back // to IDENTITY_PICKER_STATE. @@ -133,7 +129,6 @@ ChromeIdentityInteractionManagerDelegate, ChromeIdentityServiceObserver, MDCActivityIndicatorDelegate, - SigninAccountSelectorViewControllerDelegate, UIAdaptivePresentationControllerDelegate, UnifiedConsentCoordinatorDelegate> @property(nonatomic, strong) ChromeIdentity* selectedIdentity; @@ -159,7 +154,6 @@ // Basic state. AuthenticationState _currentState; - BOOL _ongoingStateChange; MDCActivityIndicator* _activityIndicator; MDCButton* _primaryButton; MDCButton* _secondaryButton; @@ -168,7 +162,6 @@ UIView* _embeddedView; // Identity picker state. - SigninAccountSelectorViewController* _accountSelectorVC; UnifiedConsentCoordinator* _unifiedConsentCoordinator; // Signin pending state. @@ -286,7 +279,7 @@ // Starts the sync engine only if the user tapped on "YES, I'm in", and closes // the sign-in view. -- (void)signinCompletedWithUnity { +- (void)signinCompleted { DCHECK(_didSignIn); // The consent has to be given as soon as the user is signed in. Even when // they open the settings through the link. @@ -602,7 +595,7 @@ DCHECK(!_didSignIn); _didSignIn = YES; [_delegate didSignIn:self]; - [self signinCompletedWithUnity]; + [self signinCompleted]; } else { [self changeToState:IDENTITY_PICKER_STATE]; [_unifiedConsentCoordinator resetSettingLinkTapped]; @@ -630,7 +623,6 @@ #pragma mark - State machine - (void)enterState:(AuthenticationState)state { - _ongoingStateChange = NO; if (_didFinishSignIn) { // Stop the state machine when the sign-in is done. _currentState = DONE_STATE; @@ -655,7 +647,6 @@ - (void)changeToState:(AuthenticationState)nextState { if (_currentState == nextState) return; - _ongoingStateChange = YES; switch (_currentState) { case NULL_STATE: [self enterState:nextState]; @@ -1091,17 +1082,6 @@ [self dismissViewControllerAnimated:animated completion:completion]; } -#pragma mark - SigninAccountSelectorViewControllerDelegate - -- (void)accountSelectorControllerDidSelectAddAccount: - (SigninAccountSelectorViewController*)accountSelectorController { - DCHECK_EQ(_accountSelectorVC, accountSelectorController); - if (_ongoingStateChange) { - return; - } - [self openAuthenticationDialogAddIdentity]; -} - #pragma mark - UnifiedConsentCoordinatorDelegate - (void)unifiedConsentCoordinatorDidTapSettingsLink:
diff --git a/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.h b/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.h deleted file mode 100644 index 5da4f4e..0000000 --- a/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.h +++ /dev/null
@@ -1,41 +0,0 @@ -// Copyright 2016 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 IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_ACCOUNT_SELECTOR_VIEW_CONTROLLER_H_ -#define IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_ACCOUNT_SELECTOR_VIEW_CONTROLLER_H_ - -#import <UIKit/UIKit.h> - -#import "ios/chrome/browser/ui/collection_view/collection_view_controller.h" - -@class ChromeIdentity; -@class SigninAccountSelectorViewController; - -@protocol SigninAccountSelectorViewControllerDelegate - -// Informs the delegate that the user has tapped on the add account button. -- (void)accountSelectorControllerDidSelectAddAccount: - (SigninAccountSelectorViewController*)accountSelectorController; - -@end - -// A collection view controller that allows the user to select the account to be -// signed in. -@interface SigninAccountSelectorViewController : CollectionViewController - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -- (instancetype)initWithLayout:(UICollectionViewLayout*)layout - style:(CollectionViewControllerStyle)style - NS_UNAVAILABLE; - -@property(nonatomic, weak) id<SigninAccountSelectorViewControllerDelegate> - delegate; - -// Returns the identity that is selected or nil. -- (ChromeIdentity*)selectedIdentity; - -@end - -#endif // IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_ACCOUNT_SELECTOR_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.mm b/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.mm deleted file mode 100644 index 760bf629..0000000 --- a/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.mm +++ /dev/null
@@ -1,329 +0,0 @@ -// Copyright 2016 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 "ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.h" - -#include <memory> - -#import "base/mac/foundation_util.h" -#import "ios/chrome/browser/signin/chrome_identity_service_observer_bridge.h" -#import "ios/chrome/browser/ui/authentication/resized_avatar_cache.h" -#import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrome.h" -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h" -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h" -#import "ios/chrome/browser/ui/collection_view/collection_view_model.h" -#import "ios/chrome/browser/ui/material_components/chrome_app_bar_view_controller.h" -#import "ios/chrome/common/ui_util/constraints_ui_util.h" -#include "ios/chrome/grit/ios_chromium_strings.h" -#include "ios/chrome/grit/ios_strings.h" -#include "ios/public/provider/chrome/browser/chrome_browser_provider.h" -#import "ios/public/provider/chrome/browser/signin/chrome_identity.h" -#include "ios/public/provider/chrome/browser/signin/chrome_identity_service.h" -#import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h" -#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" -#import "ui/base/l10n/l10n_util.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { -const CGFloat kHeaderViewMinHeight = 100.; -const CGFloat kHeaderViewHeightMultiplier = 0.33; -const CGFloat kContentViewBottomInset = 40.; - -typedef NS_ENUM(NSInteger, SectionIdentifier) { - SectionIdentifierTitle = kSectionIdentifierEnumZero, - SectionIdentifierAccounts, - SectionIdentifierAddAccount, -}; - -typedef NS_ENUM(NSInteger, ItemType) { - ItemTypeTitle = kItemTypeEnumZero, - ItemTypeAccount, - ItemTypeAddAccount, -}; -} // namespace - -@interface SigninAccountSelectorViewController ()< - ChromeIdentityServiceObserver> { - std::unique_ptr<ChromeIdentityServiceObserverBridge> _identityServiceObserver; - // Cache for account avatar images. - ResizedAvatarCache* _avatarCache; -} -@end - -@implementation SigninAccountSelectorViewController - -@synthesize delegate = _delegate; - -- (instancetype)init { - UICollectionViewLayout* layout = [[MDCCollectionViewFlowLayout alloc] init]; - self = - [super initWithLayout:layout style:CollectionViewControllerStyleAppBar]; - if (self) { - _identityServiceObserver.reset( - new ChromeIdentityServiceObserverBridge(self)); - _avatarCache = [[ResizedAvatarCache alloc] init]; - } - return self; -} - -#pragma mark - UIViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - // Configure the header. - MDCFlexibleHeaderView* headerView = self.appBarViewController.headerView; - headerView.canOverExtend = YES; - headerView.maximumHeight = 200; - headerView.backgroundColor = [UIColor whiteColor]; - headerView.shiftBehavior = MDCFlexibleHeaderShiftBehaviorEnabled; - [headerView addSubview:[self contentViewWithFrame:headerView.bounds]]; - self.appBarViewController.navigationBar.hidesBackButton = YES; - self.collectionView.backgroundColor = [UIColor clearColor]; - [headerView changeContentInsets:^{ - UIEdgeInsets contentInset = self.collectionView.contentInset; - contentInset.bottom += kContentViewBottomInset; - self.collectionView.contentInset = contentInset; - }]; - - // Load the contents of the collection view. - [self loadModel]; -} - -- (UIView*)contentViewWithFrame:(CGRect)frame { - UIView* contentView = [[UIView alloc] initWithFrame:frame]; - contentView.autoresizingMask = - (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); - contentView.clipsToBounds = YES; - - UILabel* titleLabel = [[UILabel alloc] initWithFrame:CGRectZero]; - titleLabel.text = - l10n_util::GetNSString(IDS_IOS_ACCOUNT_CONSISTENCY_SETUP_TITLE); - titleLabel.textColor = [[MDCPalette greyPalette] tint900]; - titleLabel.font = [MDCTypography headlineFont]; - titleLabel.translatesAutoresizingMaskIntoConstraints = NO; - - UIView* divider = [[UIView alloc] initWithFrame:CGRectZero]; - divider.backgroundColor = [[MDCPalette greyPalette] tint300]; - divider.translatesAutoresizingMaskIntoConstraints = NO; - - UILayoutGuide* layoutGuide1 = [[UILayoutGuide alloc] init]; - UILayoutGuide* layoutGuide2 = [[UILayoutGuide alloc] init]; - - [contentView addSubview:titleLabel]; - [contentView addSubview:divider]; - [contentView addLayoutGuide:layoutGuide1]; - [contentView addLayoutGuide:layoutGuide2]; - - NSDictionary* views = @{ - @"title" : titleLabel, - @"divider" : divider, - @"v1" : layoutGuide1, - @"v2" : layoutGuide2 - }; - NSArray* constraints = @[ - @"V:[title]-(16)-[divider(==1)]|", - @"H:|[v1(16)][title(<=440)][v2(>=v1)]|", - @"H:|[divider]|", - ]; - ApplyVisualConstraints(constraints, views); - return contentView; -} - -- (void)viewWillLayoutSubviews { - CGSize viewSize = self.view.bounds.size; - MDCFlexibleHeaderView* headerView = self.appBarViewController.headerView; - headerView.maximumHeight = - MAX(kHeaderViewMinHeight, kHeaderViewHeightMultiplier * viewSize.height); -} - -#pragma mark - Model - -- (void)loadModel { - [super loadModel]; - CollectionViewModel* model = self.collectionViewModel; - [model addSectionWithIdentifier:SectionIdentifierTitle]; - [model addItem:[self titleItem] - toSectionWithIdentifier:SectionIdentifierTitle]; - - [model addSectionWithIdentifier:SectionIdentifierAccounts]; - NSArray* identities = ios::GetChromeBrowserProvider() - ->GetChromeIdentityService() - ->GetAllIdentitiesSortedForDisplay(); - if ([identities count]) { - for (NSUInteger i = 0; i < [identities count]; ++i) { - [model addItem:[self accountItemForIdentity:identities[i] - checked:(i == 0)] - toSectionWithIdentifier:SectionIdentifierAccounts]; - } - [model addSectionWithIdentifier:SectionIdentifierAddAccount]; - [model addItem:[self addAccountItem] - toSectionWithIdentifier:SectionIdentifierAddAccount]; - } -} - -- (CollectionViewItem*)titleItem { - // TODO(crbug.com/662549) : Rename FooterItem to be used as regular item. - CollectionViewFooterItem* item = - [[CollectionViewFooterItem alloc] initWithType:ItemTypeTitle]; - item.text = - l10n_util::GetNSString(IDS_IOS_ACCOUNT_CONSISTENCY_SETUP_DESCRIPTION); - return item; -} - -- (CollectionViewItem*)accountItemForIdentity:(ChromeIdentity*)identity - checked:(BOOL)isChecked { - CollectionViewAccountItem* item = - [[CollectionViewAccountItem alloc] initWithType:ItemTypeAccount]; - [self updateAccountItem:item withIdentity:identity]; - if (isChecked) { - item.accessoryType = MDCCollectionViewCellAccessoryCheckmark; - } - return item; -} - -- (void)updateAccountItem:(CollectionViewAccountItem*)item - withIdentity:(ChromeIdentity*)identity { - item.image = [_avatarCache resizedAvatarForIdentity:identity]; - item.text = identity.userEmail; - item.chromeIdentity = identity; -} - -- (CollectionViewItem*)addAccountItem { - CollectionViewAccountItem* item = - [[CollectionViewAccountItem alloc] initWithType:ItemTypeAddAccount]; - item.text = l10n_util::GetNSString( - IDS_IOS_ACCOUNT_CONSISTENCY_SETUP_ADD_ACCOUNT_BUTTON); - item.image = [UIImage imageNamed:@"settings_accounts_add_account"]; - return item; -} - -- (ChromeIdentity*)selectedIdentity { - NSArray* accountItems = [self.collectionViewModel - itemsInSectionWithIdentifier:SectionIdentifierAccounts]; - for (CollectionViewAccountItem* accountItem in accountItems) { - if (accountItem.accessoryType == MDCCollectionViewCellAccessoryCheckmark) { - return accountItem.chromeIdentity; - } - } - return nil; -} - -#pragma mark - UICollectionViewDelegate - -- (void)collectionView:(UICollectionView*)collectionView - didSelectItemAtIndexPath:(NSIndexPath*)indexPath { - [super collectionView:collectionView didSelectItemAtIndexPath:indexPath]; - CollectionViewItem* item = - [self.collectionViewModel itemAtIndexPath:indexPath]; - if (item.type == ItemTypeAccount) { - CollectionViewAccountItem* selectedAccountItem = - base::mac::ObjCCastStrict<CollectionViewAccountItem>(item); - // TODO(crbug.com/631486) : Checkmark animation. - selectedAccountItem.accessoryType = MDCCollectionViewCellAccessoryCheckmark; - - NSMutableArray<CollectionViewItem*>* reloadItems = - [[NSMutableArray alloc] init]; - [reloadItems addObject:selectedAccountItem]; - - // Uncheck all the other account items. - NSArray* accountItems = [self.collectionViewModel - itemsInSectionWithIdentifier:SectionIdentifierAccounts]; - for (CollectionViewAccountItem* accountItem in accountItems) { - if (accountItem != selectedAccountItem && - accountItem.accessoryType != MDCCollectionViewCellAccessoryNone) { - // TODO(crbug.com/631486) : Checkmark animation. - accountItem.accessoryType = MDCCollectionViewCellAccessoryNone; - [reloadItems addObject:accountItem]; - } - } - [self reconfigureCellsForItems:reloadItems]; - } else if (item.type == ItemTypeAddAccount) { - [self.delegate accountSelectorControllerDidSelectAddAccount:self]; - } -} - -#pragma mark - ChromeIdentityServiceObserver - -- (void)identityListChanged { - ChromeIdentity* selectedIdentity = [self selectedIdentity]; - [self loadModel]; - [self.collectionView reloadData]; - - // Reselect the identity. - if (!selectedIdentity) { - return; - } - NSArray* accountItems = [self.collectionViewModel - itemsInSectionWithIdentifier:SectionIdentifierAccounts]; - for (CollectionViewAccountItem* accountItem in accountItems) { - if ([accountItem.chromeIdentity.gaiaID - isEqualToString:selectedIdentity.gaiaID]) { - accountItem.accessoryType = MDCCollectionViewCellAccessoryCheckmark; - } else { - accountItem.accessoryType = MDCCollectionViewCellAccessoryNone; - } - } -} - -- (void)chromeIdentityServiceWillBeDestroyed { - _identityServiceObserver.reset(); -} - -#pragma mark UICollectionViewDataSource - -- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView - cellForItemAtIndexPath:(NSIndexPath*)indexPath { - MDCCollectionViewCell* cell = - [super collectionView:collectionView cellForItemAtIndexPath:indexPath]; - CollectionViewItem* item = - [self.collectionViewModel itemAtIndexPath:indexPath]; - - if (item.type == ItemTypeAccount || item.type == ItemTypeAddAccount) { - CollectionViewAccountCell* accountCell = - base::mac::ObjCCastStrict<CollectionViewAccountCell>(cell); - accountCell.textLabel.font = [MDCTypography body1Font]; - accountCell.textLabel.textColor = [[MDCPalette greyPalette] tint900]; - } else if (item.type == ItemTypeTitle) { - CollectionViewFooterCell* titleCell = - base::mac::ObjCCastStrict<CollectionViewFooterCell>(cell); - titleCell.textLabel.font = [MDCTypography body1Font]; - titleCell.textLabel.textColor = [[MDCPalette greyPalette] tint900]; - titleCell.horizontalPadding = 16; - } - cell.shouldHideSeparator = YES; - return cell; -} - -#pragma mark - MDCCollectionViewStylingDelegate - -- (CGFloat)collectionView:(UICollectionView*)collectionView - cellHeightAtIndexPath:(NSIndexPath*)indexPath { - CollectionViewItem* item = - [self.collectionViewModel itemAtIndexPath:indexPath]; - - if (item.type == ItemTypeTitle) { - return [MDCCollectionViewCell - cr_preferredHeightForWidth:CGRectGetWidth(collectionView.bounds) - forItem:item]; - } - return MDCCellDefaultTwoLineHeight; -} - -- (BOOL)collectionView:(UICollectionView*)collectionView - hidesInkViewAtIndexPath:(NSIndexPath*)indexPath { - NSInteger itemType = - [self.collectionViewModel itemTypeForIndexPath:indexPath]; - return (itemType == ItemTypeTitle); -} - -- (BOOL)collectionView:(nonnull UICollectionView*)collectionView - shouldHideItemBackgroundAtIndexPath:(nonnull NSIndexPath*)indexPath { - return YES; -} - -@end
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.h b/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.h index 94c66c2..9955265 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.h +++ b/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.h
@@ -17,6 +17,10 @@ class ManagedBookmarkService; } // namespace bookmarks +namespace base { +class ScopedTempDir; +} // namespace base + class TestChromeBrowserState; // Provides common bookmark testing infrastructure. @@ -35,6 +39,11 @@ NSString* title); void ChangeTitle(NSString* title, const bookmarks::BookmarkNode* node); + // A state directory that outlives |task_environment_| is needed because + // CreateHistoryService/CreateBookmarkModel use the directory to host + // databases. See https://crbug.com/546640 for more details. + std::unique_ptr<base::ScopedTempDir> state_dir_; + web::WebTaskEnvironment task_environment_; std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; bookmarks::BookmarkModel* _bookmarkModel;
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.mm b/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.mm index 541b604..746a55d 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.mm
@@ -3,7 +3,9 @@ // found in the LICENSE file. #include "ios/chrome/browser/ui/bookmarks/bookmark_ios_unittest.h" +#include <memory> +#include "base/files/scoped_temp_dir.h" #include "base/strings/sys_string_conversions.h" #include "components/bookmarks/browser/bookmark_model.h" #include "components/bookmarks/test/bookmark_test_helpers.h" @@ -23,6 +25,11 @@ void BookmarkIOSUnitTest::SetUp() { // Get a BookmarkModel from the test ChromeBrowserState. TestChromeBrowserState::Builder test_cbs_builder; + + state_dir_ = std::make_unique<base::ScopedTempDir>(); + ASSERT_TRUE(state_dir_->CreateUniqueTempDir()); + test_cbs_builder.SetPath(state_dir_->GetPath()); + chrome_browser_state_ = test_cbs_builder.Build(); chrome_browser_state_->CreateBookmarkModel(true);
diff --git a/ios/chrome/browser/ui/browser_view/BUILD.gn b/ios/chrome/browser/ui/browser_view/BUILD.gn index 835e9e12..4b74879 100644 --- a/ios/chrome/browser/ui/browser_view/BUILD.gn +++ b/ios/chrome/browser/ui/browser_view/BUILD.gn
@@ -139,6 +139,8 @@ "//ios/chrome/browser/ui/tabs", "//ios/chrome/browser/ui/tabs:coordinator", "//ios/chrome/browser/ui/tabs/requirements", + "//ios/chrome/browser/ui/text_zoom", + "//ios/chrome/browser/ui/text_zoom:text_zoom_ui", "//ios/chrome/browser/ui/toolbar", "//ios/chrome/browser/ui/toolbar:toolbar_ui", "//ios/chrome/browser/ui/toolbar/accessory",
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm index 03abeaaad..aa0decb 100644 --- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm +++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -129,6 +129,8 @@ #import "ios/chrome/browser/ui/tabs/requirements/tab_strip_presentation.h" #import "ios/chrome/browser/ui/tabs/switch_to_tab_animation_view.h" #import "ios/chrome/browser/ui/tabs/tab_strip_legacy_coordinator.h" +#import "ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.h" +#import "ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.h" #import "ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_coordinator_delegate.h" #import "ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h" #import "ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.h" @@ -558,6 +560,11 @@ // Coordinator for find in page. @property(nonatomic, strong) FindBarCoordinator* findBarCoordinator; +// Coordinator for text zoom. +@property(nonatomic, strong) TextZoomCoordinator* textZoomCoordinator; + +@property(nonatomic, weak) ChromeCoordinator* nextToolbarCoordinator; + @property(nonatomic, strong) BubblePresenter* bubblePresenter; // Primary toolbar. @@ -1011,7 +1018,7 @@ .viewController.view headerBehaviour:Hideable]]; } - if (self.toolbarAccessoryPresenter.backgroundView) { + if (self.toolbarAccessoryPresenter.isPresenting) { [results addObject:[HeaderDefinition definitionWithView:self.toolbarAccessoryPresenter .backgroundView @@ -1269,7 +1276,7 @@ auto* findHelper = FindTabHelper::FromWebState(webState); if (findHelper) { findHelper->StopFinding(^{ - [self.findBarCoordinator hideFindBarWithAnimation:YES]; + [self.findBarCoordinator stop]; }); } } @@ -1667,7 +1674,7 @@ // updateToobar]; if (ShouldShowCompactToolbar(previousTraitCollection) != ShouldShowCompactToolbar()) { - [self.findBarCoordinator hideFindBarWithAnimation:NO]; + [self.findBarCoordinator stop]; } // Update the toolbar visibility. @@ -2360,7 +2367,7 @@ if (!self.inNewTabAnimation) { // Hide findbar. |updateToolbar| will restore the findbar later. - [self.findBarCoordinator hideFindBarWithAnimation:NO]; + [self.findBarCoordinator stop]; // Make new content visible, resizing it first as the orientation may // have changed from the last time it was displayed. @@ -2452,7 +2459,7 @@ auto* findHelper = FindTabHelper::FromWebState(webState); if (findHelper && findHelper->IsFindUIActive()) { - [self.findBarCoordinator showFindBarAnimated:NO]; + [self.findBarCoordinator start]; } BOOL hideToolbar = NO; @@ -4045,30 +4052,27 @@ if (!self.canShowFindBar) return; - if (!self.toolbarAccessoryPresenter) { - self.toolbarAccessoryPresenter = - [[ToolbarAccessoryPresenter alloc] initWithIsIncognito:_isOffTheRecord]; - self.toolbarAccessoryPresenter.baseViewController = self; + if (self.toolbarAccessoryPresenter.isPresenting) { + self.nextToolbarCoordinator = self.findBarCoordinator; + [self hideTextZoom]; + return; } - if (!self.findBarCoordinator) { - self.findBarCoordinator = - [[FindBarCoordinator alloc] initWithBaseViewController:self - browser:self.browser]; - self.findBarCoordinator.presenter = self.toolbarAccessoryPresenter; - self.findBarCoordinator.delegate = self; - - [self.findBarCoordinator start]; - } - [self.findBarCoordinator startFindInPage]; + [self.findBarCoordinator start]; } - (void)closeFindInPage { __weak BrowserViewController* weakSelf = self; if (self.currentWebState) { - FindTabHelper::FromWebState(self.currentWebState)->StopFinding(^{ - [weakSelf.findBarCoordinator hideFindBarWithAnimation:YES]; - }); + FindTabHelper* findTabHelper = + FindTabHelper::FromWebState(self.currentWebState); + if (findTabHelper->IsFindUIActive()) { + findTabHelper->StopFinding(^{ + [weakSelf.findBarCoordinator stop]; + }); + } else { + [self.findBarCoordinator stop]; + } } } @@ -4206,6 +4210,20 @@ } } +- (void)showTextZoom { + if (self.toolbarAccessoryPresenter.isPresenting) { + self.nextToolbarCoordinator = self.textZoomCoordinator; + [self closeFindInPage]; + return; + } + + [self.textZoomCoordinator start]; +} + +- (void)hideTextZoom { + [self.textZoomCoordinator stop]; +} + #pragma mark - BrowserCommands helpers // Reloads the original url of the last non-redirect item (including non-history @@ -4261,7 +4279,7 @@ return; // Remove the find bar for now. - [self.findBarCoordinator hideFindBarWithAnimation:NO]; + [self.findBarCoordinator stop]; } - (void)webStateList:(WebStateList*)webStateList @@ -4538,7 +4556,7 @@ } else { // Hide UI accessories such as find bar and first visit overlays // for welcome page. - [self.findBarCoordinator hideFindBarWithAnimation:NO]; + [self.findBarCoordinator stop]; [self.infobarContainerCoordinator hideContainer:YES]; } } @@ -4719,6 +4737,59 @@ atOffset:[self currentHeaderOffset]]; } +- (void)toolbarAccessoryCoordinatorDidDismissUI: + (ChromeCoordinator*)coordinator { + if (self.nextToolbarCoordinator == self.findBarCoordinator) { + dispatch_async(dispatch_get_main_queue(), ^{ + [self showFindInPage]; + }); + self.nextToolbarCoordinator = nil; + } else if (self.nextToolbarCoordinator == self.textZoomCoordinator) { + dispatch_async(dispatch_get_main_queue(), ^{ + [self showTextZoom]; + }); + self.nextToolbarCoordinator = nil; + } +} + +#pragma mark - Toolbar Accessory Methods + +- (ToolbarAccessoryPresenter*)toolbarAccessoryPresenter { + if (_toolbarAccessoryPresenter) { + return _toolbarAccessoryPresenter; + } + + _toolbarAccessoryPresenter = + [[ToolbarAccessoryPresenter alloc] initWithIsIncognito:_isOffTheRecord]; + _toolbarAccessoryPresenter.baseViewController = self; + return _toolbarAccessoryPresenter; +} + +- (FindBarCoordinator*)findBarCoordinator { + if (_findBarCoordinator) { + return _findBarCoordinator; + } + _findBarCoordinator = + [[FindBarCoordinator alloc] initWithBaseViewController:self + browser:self.browser]; + _findBarCoordinator.presenter = self.toolbarAccessoryPresenter; + _findBarCoordinator.delegate = self; + + return _findBarCoordinator; +} + +- (TextZoomCoordinator*)textZoomCoordinator { + if (_textZoomCoordinator) { + return _textZoomCoordinator; + } + _textZoomCoordinator = + [[TextZoomCoordinator alloc] initWithBaseViewController:self + browser:self.browser]; + _textZoomCoordinator.presenter = self.toolbarAccessoryPresenter; + _textZoomCoordinator.delegate = self; + return _textZoomCoordinator; +} + #pragma mark - ManageAccountsDelegate - (void)onManageAccounts {
diff --git a/ios/chrome/browser/ui/commands/browser_commands.h b/ios/chrome/browser/ui/commands/browser_commands.h index a1aeffe2..cfb41c36 100644 --- a/ios/chrome/browser/ui/commands/browser_commands.h +++ b/ios/chrome/browser/ui/commands/browser_commands.h
@@ -116,6 +116,12 @@ // prevent interaction with the web page. - (void)showActivityOverlay:(BOOL)show; +// Shows the Text Zoom UI. +- (void)showTextZoom; + +// Dismisses the Text Zoom UI. +- (void)hideTextZoom; + @end #endif // IOS_CHROME_BROWSER_UI_COMMANDS_BROWSER_COMMANDS_H_
diff --git a/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.h b/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.h index 9c248b85..85edd86 100644 --- a/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.h +++ b/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.h
@@ -13,8 +13,8 @@ @interface FindBarControllerIOS : NSObject -// The dispatcher for sending browser commands. -@property(nonatomic, weak) id<BrowserCommands> dispatcher; +// The command handler for browser commands. +@property(nonatomic, weak) id<BrowserCommands> commandHandler; // The view controller containing all the buttons and textfields that is common // between iPhone and iPad. @property(nonatomic, strong, readonly)
diff --git a/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.mm b/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.mm index 5ebb92bc..2267b2c 100644 --- a/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.mm +++ b/ios/chrome/browser/ui/find_bar/find_bar_controller_ios.mm
@@ -89,7 +89,7 @@ action:@selector(editingChanged) forControlEvents:UIControlEventEditingChanged]; [_findBarViewController.findBarView.nextButton - addTarget:self.dispatcher + addTarget:self.commandHandler action:@selector(findNextStringInPage) forControlEvents:UIControlEventTouchUpInside]; [_findBarViewController.findBarView.nextButton @@ -97,7 +97,7 @@ action:@selector(hideKeyboard:) forControlEvents:UIControlEventTouchUpInside]; [_findBarViewController.findBarView.previousButton - addTarget:self.dispatcher + addTarget:self.commandHandler action:@selector(findPreviousStringInPage) forControlEvents:UIControlEventTouchUpInside]; [_findBarViewController.findBarView.previousButton @@ -105,7 +105,7 @@ action:@selector(hideKeyboard:) forControlEvents:UIControlEventTouchUpInside]; [_findBarViewController.findBarView.closeButton - addTarget:self.dispatcher + addTarget:self.commandHandler action:@selector(closeFindInPage) forControlEvents:UIControlEventTouchUpInside]; @@ -203,7 +203,7 @@ [self.delayTimer invalidate]; NSUInteger length = [[self searchTerm] length]; if (length == 0) { - [self.dispatcher searchFindInPage]; + [self.commandHandler searchFindInPage]; return; } @@ -214,7 +214,7 @@ (length > kSearchDelayChars) ? kSearchShortDelay : kSearchLongDelay; self.delayTimer = [NSTimer scheduledTimerWithTimeInterval:delay - target:self.dispatcher + target:self.commandHandler selector:@selector(searchFindInPage) userInfo:nil repeats:NO];
diff --git a/ios/chrome/browser/ui/find_bar/find_bar_coordinator.h b/ios/chrome/browser/ui/find_bar/find_bar_coordinator.h index 4d25d76..7fa4d21 100644 --- a/ios/chrome/browser/ui/find_bar/find_bar_coordinator.h +++ b/ios/chrome/browser/ui/find_bar/find_bar_coordinator.h
@@ -25,15 +25,6 @@ // make the transition easier. @property(nonatomic, strong) FindBarControllerIOS* findBarController; -// Starts the Find In Page process. -- (void)startFindInPage; - -// Shows the Find Bar UI. -- (void)showFindBarAnimated:(BOOL)animated; - -// Hides the Find Bar UI. -- (void)hideFindBarWithAnimation:(BOOL)animated; - // Defocuses the Find Bar text field. - (void)defocusFindBar;
diff --git a/ios/chrome/browser/ui/find_bar/find_bar_coordinator.mm b/ios/chrome/browser/ui/find_bar/find_bar_coordinator.mm index 6329294b..42133b0 100644 --- a/ios/chrome/browser/ui/find_bar/find_bar_coordinator.mm +++ b/ios/chrome/browser/ui/find_bar/find_bar_coordinator.mm
@@ -24,36 +24,48 @@ @interface FindBarCoordinator () <FindInPageResponseDelegate, ContainedPresenterDelegate> +// Command handler for |BrowserCommand|s. +@property(nonatomic, readonly) id<BrowserCommands> browserCommandHandler; + @end @implementation FindBarCoordinator - (void)start { - self.findBarController = [[FindBarControllerIOS alloc] - initWithIncognito:self.browserState->IsOffTheRecord()]; + if (!self.findBarController) { + self.findBarController = [[FindBarControllerIOS alloc] + initWithIncognito:self.browserState->IsOffTheRecord()]; + self.findBarController.commandHandler = self.browserCommandHandler; + } self.presenter.delegate = self; - self.findBarController.dispatcher = - static_cast<id<BrowserCommands>>(self.browser->GetCommandDispatcher()); -} - -- (void)startFindInPage { DCHECK(self.currentWebState); FindTabHelper* helper = FindTabHelper::FromWebState(self.currentWebState); - DCHECK(!helper->IsFindUIActive()); - helper->SetResponseDelegate(self); - helper->SetFindUIActive(true); - - [self showFindBarAnimated:YES shouldFocus:YES]; + // If the FindUI is already active, just reshow it. + if (helper->IsFindUIActive()) { + [self showAnimated:NO shouldFocus:[self.findBarController isFocused]]; + } else { + DCHECK(!helper->IsFindUIActive()); + helper->SetResponseDelegate(self); + helper->SetFindUIActive(true); + [self showAnimated:YES shouldFocus:YES]; + } } -- (void)showFindBarAnimated:(BOOL)animated { - [self showFindBarAnimated:animated - shouldFocus:[self.findBarController isFocused]]; +- (void)stop { + if (!self.presenter.isPresenting) { + return; + } + FindTabHelper* helper = FindTabHelper::FromWebState(self.currentWebState); + // If the FindUI is still active, the dismiss should be unanimated, because + // the UI will be brought back later. + BOOL animated = helper && !helper->IsFindUIActive(); + [self.findBarController findBarViewWillHide]; + [self.presenter dismissAnimated:animated]; } -- (void)showFindBarAnimated:(BOOL)animated shouldFocus:(BOOL)shouldFocus { +- (void)showAnimated:(BOOL)animated shouldFocus:(BOOL)shouldFocus { self.presenter.presentedViewController = self.findBarController.findBarViewController; @@ -77,11 +89,6 @@ focusTextfield:shouldFocus]; } -- (void)hideFindBarWithAnimation:(BOOL)animated { - [self.findBarController findBarViewWillHide]; - [self.presenter dismissAnimated:animated]; -} - - (void)defocusFindBar { FindTabHelper* helper = FindTabHelper::FromWebState(self.currentWebState); if (helper && helper->IsFindUIActive()) { @@ -98,7 +105,7 @@ } - (void)findDidStop { - [self hideFindBarWithAnimation:YES]; + [self.browserCommandHandler closeFindInPage]; } #pragma mark - ContainedPresenterDelegate @@ -109,6 +116,7 @@ - (void)containedPresenterDidDismiss:(id<ContainedPresenter>)presenter { [self.findBarController findBarViewDidHide]; + [self.delegate toolbarAccessoryCoordinatorDidDismissUI:self]; } #pragma mark - Private @@ -119,4 +127,9 @@ : nullptr; } +- (id<BrowserCommands>)browserCommandHandler { + return HandlerForProtocol(self.browser->GetCommandDispatcher(), + BrowserCommands); +} + @end
diff --git a/ios/chrome/browser/ui/location_bar/location_bar_coordinator_unittest.mm b/ios/chrome/browser/ui/location_bar/location_bar_coordinator_unittest.mm index 7cdc8e8..3c6cff3 100644 --- a/ios/chrome/browser/ui/location_bar/location_bar_coordinator_unittest.mm +++ b/ios/chrome/browser/ui/location_bar/location_bar_coordinator_unittest.mm
@@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "base/files/scoped_temp_dir.h" #include "components/omnibox/browser/test_location_bar_model.h" #include "components/variations/variations_http_header_provider.h" #include "ios/chrome/browser/autocomplete/autocomplete_classifier_factory.h" @@ -70,6 +71,10 @@ PlatformTest::SetUp(); TestChromeBrowserState::Builder test_cbs_builder; + + ASSERT_TRUE(state_dir_.CreateUniqueTempDir()); + test_cbs_builder.SetPath(state_dir_.GetPath()); + test_cbs_builder.AddTestingFactory( ios::TemplateURLServiceFactory::GetInstance(), ios::TemplateURLServiceFactory::GetDefaultFactory()); @@ -119,6 +124,11 @@ PlatformTest::TearDown(); } + // A state directory that outlives |task_environment_| is needed because + // CreateHistoryService/CreateBookmarkModel use the directory to host + // databases. See https://crbug.com/546640 for more details. + base::ScopedTempDir state_dir_; + web::WebTaskEnvironment task_environment_; LocationBarCoordinator* coordinator_; std::unique_ptr<TestChromeBrowserState> browser_state_;
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row.mm index 93690b8..779ab9eb 100644 --- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row.mm +++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row.mm
@@ -23,8 +23,8 @@ namespace { // Side (w or h) length for the leading image view. -const CGFloat kImageViewSizeUIRefresh = 28.0; -const CGFloat kImageViewCornerRadiusUIRefresh = 7.0; +const CGFloat kImageViewSize = 28.0; +const CGFloat kImageViewCornerRadius = 7.0; const CGFloat kTrailingButtonTrailingMargin = 4; const CGFloat kTrailingButtonSize = 48.0; const CGFloat kLeadingPaddingIpad = 183; @@ -94,7 +94,7 @@ _imageView.userInteractionEnabled = NO; _imageView.contentMode = UIViewContentModeCenter; - _imageView.layer.cornerRadius = kImageViewCornerRadiusUIRefresh; + _imageView.layer.cornerRadius = kImageViewCornerRadius; _imageView.backgroundColor = UIColor.clearColor; _imageView.tintColor = color::DarkModeDynamicColor( [UIColor colorNamed:@"omnibox_suggestion_icon_color"], _incognito, @@ -119,7 +119,7 @@ } - (void)layoutAccessoryViews { - CGFloat imageViewSize = kImageViewSizeUIRefresh; + CGFloat imageViewSize = kImageViewSize; LayoutRect imageViewLayout = LayoutRectMake( ([self showsLeadingIcons] && IsCompactTablet()) ? kLeadingPaddingIpadCompact @@ -141,7 +141,7 @@ _imageView.image = image; // Adjust the vertical position based on the current size of the row. - CGFloat imageViewSize = kImageViewSizeUIRefresh; + CGFloat imageViewSize = kImageViewSize; CGRect frame = _imageView.frame; frame.origin.y = floor((_rowHeight - imageViewSize) / 2); _imageView.frame = frame;
diff --git a/ios/chrome/browser/ui/popup_menu/popup_menu_action_handler.mm b/ios/chrome/browser/ui/popup_menu/popup_menu_action_handler.mm index 5a22aac..2bb3031 100644 --- a/ios/chrome/browser/ui/popup_menu/popup_menu_action_handler.mm +++ b/ios/chrome/browser/ui/popup_menu/popup_menu_action_handler.mm
@@ -110,6 +110,7 @@ break; case PopupMenuActionTextZoom: RecordAction(UserMetricsAction("MobileMenuTextZoom")); + [self.dispatcher showTextZoom]; break; #if !defined(NDEBUG) case PopupMenuActionViewSource:
diff --git a/ios/chrome/browser/ui/settings/cells/search_engine_item.mm b/ios/chrome/browser/ui/settings/cells/search_engine_item.mm index 0743f71..7b7f7af 100644 --- a/ios/chrome/browser/ui/settings/cells/search_engine_item.mm +++ b/ios/chrome/browser/ui/settings/cells/search_engine_item.mm
@@ -54,9 +54,11 @@ if (self.enabled) { cell.contentView.alpha = 1.0; cell.userInteractionEnabled = YES; + cell.accessibilityTraits &= ~UIAccessibilityTraitNotEnabled; } else { cell.contentView.alpha = 0.4; cell.userInteractionEnabled = NO; + cell.accessibilityTraits |= UIAccessibilityTraitNotEnabled; } if (styler.cellTitleColor) {
diff --git a/ios/chrome/browser/ui/text_zoom/BUILD.gn b/ios/chrome/browser/ui/text_zoom/BUILD.gn new file mode 100644 index 0000000..ac5f02e7 --- /dev/null +++ b/ios/chrome/browser/ui/text_zoom/BUILD.gn
@@ -0,0 +1,35 @@ +# Copyright 2019 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. + +source_set("text_zoom") { + sources = [ + "text_zoom_coordinator.h", + "text_zoom_coordinator.mm", + ] + deps = [ + ":text_zoom_ui", + "//ios/chrome/browser/browser_state", + "//ios/chrome/browser/main", + "//ios/chrome/browser/ui/commands", + "//ios/chrome/browser/ui/coordinators:chrome_coordinators", + "//ios/chrome/browser/ui/presenters", + "//ios/chrome/browser/ui/toolbar/accessory", + "//ios/chrome/browser/ui/toolbar/public:constants", + "//ios/chrome/common/colors", + ] + configs += [ "//build/config/compiler:enable_arc" ] +} + +source_set("text_zoom_ui") { + sources = [ + "text_zoom_view_controller.h", + "text_zoom_view_controller.mm", + ] + deps = [ + "//components/strings:components_strings", + "//ios/chrome/browser/ui/commands", + "//ui/base", + ] + configs += [ "//build/config/compiler:enable_arc" ] +}
diff --git a/ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.h b/ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.h new file mode 100644 index 0000000..8e30de5 --- /dev/null +++ b/ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.h
@@ -0,0 +1,28 @@ +// Copyright 2019 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 IOS_CHROME_BROWSER_UI_TEXT_ZOOM_TEXT_ZOOM_COORDINATOR_H_ +#define IOS_CHROME_BROWSER_UI_TEXT_ZOOM_TEXT_ZOOM_COORDINATOR_H_ + +#import <UIKit/UIKit.h> + +#import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h" + +@class TextZoomViewController; +@class ToolbarAccessoryPresenter; +@protocol ToolbarAccessoryCoordinatorDelegate; + +// Coordinator for the UI of the text zoom feature, which allows adjusting the +// zoom level of the text of a webpage. +@interface TextZoomCoordinator : ChromeCoordinator + +// Presenter used by this coordinator to present itself. +@property(nonatomic, strong) ToolbarAccessoryPresenter* presenter; + +// Delegate to inform when this coordinator's UI is dismissed. +@property(nonatomic, weak) id<ToolbarAccessoryCoordinatorDelegate> delegate; + +@end + +#endif // IOS_CHROME_BROWSER_UI_TEXT_ZOOM_TEXT_ZOOM_COORDINATOR_H_
diff --git a/ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.mm b/ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.mm new file mode 100644 index 0000000..24e1006 --- /dev/null +++ b/ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.mm
@@ -0,0 +1,62 @@ +// Copyright 2019 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. + +#import "ios/chrome/browser/ui/text_zoom/text_zoom_coordinator.h" + +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/main/browser.h" +#import "ios/chrome/browser/ui/commands/browser_commands.h" +#import "ios/chrome/browser/ui/commands/command_dispatcher.h" +#include "ios/chrome/browser/ui/presenters/contained_presenter_delegate.h" +#import "ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.h" +#import "ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_coordinator_delegate.h" +#import "ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h" +#import "ios/chrome/browser/ui/toolbar/public/toolbar_constants.h" +#import "ios/chrome/common/colors/dynamic_color_util.h" +#import "ios/chrome/common/colors/semantic_color_names.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +@interface TextZoomCoordinator () <ContainedPresenterDelegate> + +// The view controller managed by this coordinator. +@property(nonatomic, strong, readwrite) + TextZoomViewController* textZoomViewController; + +@end + +@implementation TextZoomCoordinator + +#pragma mark - ChromeCoordinator + +- (void)start { + self.textZoomViewController = [[TextZoomViewController alloc] init]; + self.textZoomViewController.commandHandler = + HandlerForProtocol(self.browser->GetCommandDispatcher(), BrowserCommands); + + [self showAnimated:YES]; +} + +- (void)stop { + [self.presenter dismissAnimated:YES]; + self.textZoomViewController = nil; +} + +- (void)showAnimated:(BOOL)animated { + self.presenter.presentedViewController = self.textZoomViewController; + self.presenter.delegate = self; + + [self.presenter prepareForPresentation]; + [self.presenter presentAnimated:animated]; +} + +#pragma mark - ContainedPresenterDelegate + +- (void)containedPresenterDidDismiss:(id<ContainedPresenter>)presenter { + [self.delegate toolbarAccessoryCoordinatorDidDismissUI:self]; +} + +@end
diff --git a/ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.h b/ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.h new file mode 100644 index 0000000..191e79c --- /dev/null +++ b/ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.h
@@ -0,0 +1,18 @@ +// Copyright 2019 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 IOS_CHROME_BROWSER_UI_TEXT_ZOOM_TEXT_ZOOM_VIEW_CONTROLLER_H_ +#define IOS_CHROME_BROWSER_UI_TEXT_ZOOM_TEXT_ZOOM_VIEW_CONTROLLER_H_ + +#import <UIKit/UIKit.h> + +@protocol BrowserCommands; + +@interface TextZoomViewController : UIViewController + +@property(nonatomic, weak) id<BrowserCommands> commandHandler; + +@end + +#endif // IOS_CHROME_BROWSER_UI_TEXT_ZOOM_TEXT_ZOOM_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.mm b/ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.mm new file mode 100644 index 0000000..d26ccc5 --- /dev/null +++ b/ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.mm
@@ -0,0 +1,78 @@ +// Copyright 2019 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. + +#import "ios/chrome/browser/ui/text_zoom/text_zoom_view_controller.h" + +#include "components/strings/grit/components_strings.h" +#import "ios/chrome/browser/ui/commands/browser_commands.h" +#include "ui/base/l10n/l10n_util_mac.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { +// Horizontal padding between all elements (except the previous/next buttons). +const CGFloat kPadding = 8; +const CGFloat kButtonFontSize = 17; +} + +@interface TextZoomViewController () + +@property(nonatomic, strong) UIButton* closeButton; + +@end + +@implementation TextZoomViewController + +#pragma mark - UIViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.view.translatesAutoresizingMaskIntoConstraints = NO; + + [self.view addSubview:self.closeButton]; + + [NSLayoutConstraint activateConstraints:@[ + // Close Button. + [self.closeButton.centerYAnchor + constraintEqualToAnchor:self.view.centerYAnchor], + // [self.closeButton.heightAnchor constraintEqualToConstant:kButtonLength], + // Use button intrinsic width. + [self.closeButton.trailingAnchor + constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor + constant:-kPadding], + ]]; + + [self.closeButton + setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh + 1 + forAxis:UILayoutConstraintAxisHorizontal]; +} + +#pragma mark - Private methods (control actions) + +- (void)closeButtonWasTapped:(id)sender { + [self.commandHandler hideTextZoom]; +} + +#pragma mark - Private property Accessors + +// Creates and returns the close button. +- (UIButton*)closeButton { + if (!_closeButton) { + _closeButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [_closeButton setTitle:l10n_util::GetNSString(IDS_DONE) + forState:UIControlStateNormal]; + _closeButton.translatesAutoresizingMaskIntoConstraints = NO; + // _closeButton.accessibilityIdentifier = kFindInPageCloseButtonId; + _closeButton.titleLabel.font = [UIFont systemFontOfSize:kButtonFontSize]; + [_closeButton addTarget:self + action:@selector(closeButtonWasTapped:) + forControlEvents:UIControlEventTouchUpInside]; + } + return _closeButton; +} + +@end
diff --git a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_coordinator_delegate.h b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_coordinator_delegate.h index 3d51b793..57c3c73 100644 --- a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_coordinator_delegate.h +++ b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_coordinator_delegate.h
@@ -12,6 +12,9 @@ - (void)setHeadersForToolbarAccessoryCoordinator: (ChromeCoordinator*)toolbarAccessoryCoordinator; +- (void)toolbarAccessoryCoordinatorDidDismissUI: + (ChromeCoordinator*)toolbarAccessoryCoordinator; + @end #endif // IOS_CHROME_BROWSER_UI_TOOLBAR_ACCESSORY_TOOLBAR_ACCESSORY_COORDINATOR_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h index 2912872d..29f4126 100644 --- a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h +++ b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h
@@ -18,6 +18,9 @@ - (instancetype)init NS_UNAVAILABLE; +// Whether the presenter is currently presenting a view +@property(nonatomic, readonly, getter=isPresenting) BOOL presenting; + // The main presented view. @property(nonatomic, strong, readonly) UIView* backgroundView;
diff --git a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm index 6e007d5..558470c 100644 --- a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm +++ b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm
@@ -36,6 +36,9 @@ @interface ToolbarAccessoryPresenter () +// The |presenting| public property redefined as readwrite. +@property(nonatomic, assign, readwrite, getter=isPresenting) BOOL presenting; + // The view that acts as the background for |presentedView|, redefined as // readwrite. This is especially important on iPhone, as this view that holds // everything around the safe area. @@ -66,6 +69,7 @@ } - (void)prepareForPresentation { + self.presenting = YES; self.backgroundView = [self createBackgroundView]; [self.baseViewController addChildViewController:self.presentedViewController]; [self.baseViewController.view addSubview:self.backgroundView]; @@ -75,32 +79,39 @@ } else { [self prepareForPresentationOnIPad]; } - - // Force initial layout before the animation. - [self.baseViewController.view layoutIfNeeded]; } - (void)presentAnimated:(BOOL)animated { + if (animated) { + // Force initial layout before the animation. + [self.baseViewController.view layoutIfNeeded]; + } + if (ShouldShowCompactToolbar()) { [self setupFinalConstraintsOnIPhone]; } else { [self setupFinalConstraintsOnIPad]; } - CGFloat duration = animated ? kAnimationDuration : 0; __weak __typeof(self) weakSelf = self; - [UIView animateWithDuration:duration - animations:^() { - [self.backgroundView layoutIfNeeded]; - } - completion:^(BOOL finished) { - [weakSelf.presentedViewController - didMoveToParentViewController:weakSelf.baseViewController]; - if ([weakSelf.delegate - respondsToSelector:@selector(containedPresenterDidPresent:)]) { - [weakSelf.delegate containedPresenterDidPresent:weakSelf]; - } - }]; + auto completion = ^void(BOOL) { + [weakSelf.presentedViewController + didMoveToParentViewController:weakSelf.baseViewController]; + if ([weakSelf.delegate + respondsToSelector:@selector(containedPresenterDidPresent:)]) { + [weakSelf.delegate containedPresenterDidPresent:weakSelf]; + } + }; + + if (animated) { + [UIView animateWithDuration:kAnimationDuration + animations:^() { + [self.baseViewController.view layoutIfNeeded]; + } + completion:completion]; + } else { + completion(YES); + } } - (void)dismissAnimated:(BOOL)animated { @@ -116,6 +127,8 @@ [weakSelf.delegate containedPresenterDidDismiss:weakSelf]; } weakSelf.backgroundView = nil; + weakSelf.presenting = NO; + [weakSelf.delegate containedPresenterDidDismiss:weakSelf]; }; if (animated) { void (^animation)();
diff --git a/ios/web/shell/shell_url_request_context_getter.mm b/ios/web/shell/shell_url_request_context_getter.mm index cfd7a79..b6c4ad6 100644 --- a/ios/web/shell/shell_url_request_context_getter.mm +++ b/ios/web/shell/shell_url_request_context_getter.mm
@@ -135,7 +135,8 @@ base::FilePath cache_path = base_path_.Append(FILE_PATH_LITERAL("Cache")); std::unique_ptr<net::HttpCache::DefaultBackend> main_backend( new net::HttpCache::DefaultBackend( - net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, cache_path, 0)); + net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, cache_path, + /*max_bytes=*/0, /*hard_reset=*/false)); storage_->set_http_network_session( std::make_unique<net::HttpNetworkSession>(
diff --git a/ios/web_view/internal/web_view_url_request_context_getter.mm b/ios/web_view/internal/web_view_url_request_context_getter.mm index 06510c5..19f01ce 100644 --- a/ios/web_view/internal/web_view_url_request_context_getter.mm +++ b/ios/web_view/internal/web_view_url_request_context_getter.mm
@@ -146,7 +146,8 @@ base_path_.Append(FILE_PATH_LITERAL("ChromeWebViewCache")); std::unique_ptr<net::HttpCache::DefaultBackend> main_backend( new net::HttpCache::DefaultBackend( - net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, cache_path, 0)); + net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, cache_path, + /*max_bytes=*/0, /*hard_reset=*/false)); storage_->set_http_network_session( std::make_unique<net::HttpNetworkSession>(
diff --git a/ipc/BUILD.gn b/ipc/BUILD.gn index fb51631e..b62217c 100644 --- a/ipc/BUILD.gn +++ b/ipc/BUILD.gn
@@ -107,6 +107,14 @@ if (enable_ipc_fuzzer) { public_configs = [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ] } + + if (!is_nacl && !is_ios) { + sources += [ + "trace_ipc_message.cc", + "trace_ipc_message.h", + ] + public_deps += [ "//services/tracing/public/cpp" ] + } } component("message_support") {
diff --git a/ipc/DEPS b/ipc/DEPS index fbc977b..ed7cd79f 100644 --- a/ipc/DEPS +++ b/ipc/DEPS
@@ -4,6 +4,8 @@ # For ipc_channel_nacl.cc: "+native_client/src/public", "+sandbox/mac/seatbelt.h", + "+services/tracing/public/cpp", + "+third_party/perfetto/protos/perfetto/trace/track_event", ] specific_include_rules = {
diff --git a/ipc/ipc_channel_nacl.cc b/ipc/ipc_channel_nacl.cc index 1db4acb..fd0eeb4 100644 --- a/ipc/ipc_channel_nacl.cc +++ b/ipc/ipc_channel_nacl.cc
@@ -212,9 +212,8 @@ Logging::GetInstance()->OnSendMessage(message_ptr.get()); #endif // BUILDFLAG(IPC_MESSAGE_LOG_ENABLED) - TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), - "ChannelNacl::Send", - message->header()->flags, + TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), + "ChannelNacl::Send", message->header()->flags, TRACE_EVENT_FLAG_FLOW_OUT); output_queue_.push_back(std::move(message_ptr)); if (!waiting_connect_)
diff --git a/ipc/ipc_message_pipe_reader.cc b/ipc/ipc_message_pipe_reader.cc index 323c86c..ec0f1d4 100644 --- a/ipc/ipc_message_pipe_reader.cc +++ b/ipc/ipc_message_pipe_reader.cc
@@ -51,7 +51,7 @@ bool MessagePipeReader::Send(std::unique_ptr<Message> message) { CHECK(message->IsValid()); - TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), + TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "MessagePipeReader::Send", message->flags(), TRACE_EVENT_FLAG_FLOW_OUT); base::Optional<std::vector<mojo::native::SerializedHandlePtr>> handles; @@ -101,9 +101,8 @@ return; } - TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), - "MessagePipeReader::Receive", - message.flags(), + TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), + "MessagePipeReader::Receive", message.flags(), TRACE_EVENT_FLAG_FLOW_IN); delegate_->OnMessageReceived(message); }
diff --git a/ipc/ipc_sync_channel.cc b/ipc/ipc_sync_channel.cc index 1180f56..823ec8d 100644 --- a/ipc/ipc_sync_channel.cc +++ b/ipc/ipc_sync_channel.cc
@@ -21,12 +21,17 @@ #include "base/threading/thread_local.h" #include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/trace_event.h" +#include "build/build_config.h" #include "ipc/ipc_channel_factory.h" #include "ipc/ipc_logging.h" #include "ipc/ipc_message_macros.h" #include "ipc/ipc_sync_message.h" #include "mojo/public/cpp/bindings/sync_event_watcher.h" +#if !defined(OS_NACL) && !BUILDFLAG(IPC_MESSAGE_LOG_ENABLED) +#include "ipc/trace_ipc_message.h" +#endif + using base::WaitableEvent; namespace IPC { @@ -452,9 +457,9 @@ } base::WaitableEvent* done_event = deserializers_.back().done_event; - TRACE_EVENT_FLOW_BEGIN0( - TRACE_DISABLED_BY_DEFAULT("ipc.flow"), - "SyncChannel::SyncContext::TryToUnblockListener", done_event); + TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), + "SyncChannel::SyncContext::TryToUnblockListener", + done_event); done_event->Signal(); @@ -517,7 +522,7 @@ PendingSyncMessageQueue::iterator iter; DVLOG(1) << "Canceling pending sends"; for (iter = deserializers_.begin(); iter != deserializers_.end(); iter++) { - TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), + TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "SyncChannel::SyncContext::CancelPendingSends", iter->done_event); iter->done_event->Signal(); @@ -609,6 +614,8 @@ Logging::GetInstance()->GetMessageText( message->type(), &name, message, nullptr); TRACE_EVENT1("ipc", "SyncChannel::Send", "name", name); +#elif !defined(OS_NACL) + TRACE_IPC_MESSAGE_SEND("ipc", "SyncChannel::Send", message); #else TRACE_EVENT2("ipc", "SyncChannel::Send", "class", IPC_MESSAGE_ID_CLASS(message->type()), @@ -637,7 +644,7 @@ scoped_refptr<mojo::SyncHandleRegistry> registry = sync_handle_registry_; WaitForReply(registry.get(), context.get(), pump_messages); - TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), + TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "SyncChannel::Send", context->GetSendDoneEvent()); return context->Pop();
diff --git a/ipc/ipc_sync_message_filter.cc b/ipc/ipc_sync_message_filter.cc index 018ed83d4..4ceb3f3 100644 --- a/ipc/ipc_sync_message_filter.cc +++ b/ipc/ipc_sync_message_filter.cc
@@ -81,7 +81,7 @@ const bool* stop_flags[] = { &done, &shutdown }; registry->Wait(stop_flags, 2); if (done) { - TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), + TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "SyncMessageFilter::Send", &done_event); } @@ -131,7 +131,7 @@ (*iter)->send_result = (*iter)->deserializer->SerializeOutputParameters(message); } - TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), + TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "SyncMessageFilter::OnMessageReceived", (*iter)->done_event); (*iter)->done_event->Signal(); @@ -169,7 +169,7 @@ lock_.AssertAcquired(); for (PendingSyncMessages::iterator iter = pending_sync_messages_.begin(); iter != pending_sync_messages_.end(); ++iter) { - TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), + TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "SyncMessageFilter::SignalAllEvents", (*iter)->done_event); (*iter)->done_event->Signal();
diff --git a/ipc/trace_ipc_message.cc b/ipc/trace_ipc_message.cc new file mode 100644 index 0000000..eba6c63 --- /dev/null +++ b/ipc/trace_ipc_message.cc
@@ -0,0 +1,129 @@ +// Copyright 2019 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 "ipc/trace_ipc_message.h" + +#include <stdint.h> + +#include "ipc/ipc_message_macros.h" +#include "ipc/ipc_message_start.h" +#include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.h" + +namespace IPC { + +using perfetto::protos::pbzero::ChromeLegacyIpc; + +void WriteIpcMessageIdAsProtozero(uint32_t message_id, + ChromeLegacyIpc* legacy_ipc) { + ChromeLegacyIpc::MessageClass message_class = + ChromeLegacyIpc::CLASS_UNSPECIFIED; + switch (IPC_MESSAGE_ID_CLASS(message_id)) { + case AutomationMsgStart: + message_class = ChromeLegacyIpc::CLASS_AUTOMATION; + break; + case FrameMsgStart: + message_class = ChromeLegacyIpc::CLASS_FRAME; + break; + case PageMsgStart: + message_class = ChromeLegacyIpc::CLASS_PAGE; + break; + case ViewMsgStart: + message_class = ChromeLegacyIpc::CLASS_VIEW; + break; + case WidgetMsgStart: + message_class = ChromeLegacyIpc::CLASS_WIDGET; + break; + case InputMsgStart: + message_class = ChromeLegacyIpc::CLASS_INPUT; + break; + case TestMsgStart: + message_class = ChromeLegacyIpc::CLASS_TEST; + break; + case WorkerMsgStart: + message_class = ChromeLegacyIpc::CLASS_WORKER; + break; + case NaClMsgStart: + message_class = ChromeLegacyIpc::CLASS_NACL; + break; + case GpuChannelMsgStart: + message_class = ChromeLegacyIpc::CLASS_GPU_CHANNEL; + break; + case MediaMsgStart: + message_class = ChromeLegacyIpc::CLASS_MEDIA; + break; + case PpapiMsgStart: + message_class = ChromeLegacyIpc::CLASS_PPAPI; + break; + case ChromeMsgStart: + message_class = ChromeLegacyIpc::CLASS_CHROME; + break; + case DragMsgStart: + message_class = ChromeLegacyIpc::CLASS_DRAG; + break; + case PrintMsgStart: + message_class = ChromeLegacyIpc::CLASS_PRINT; + break; + case ExtensionMsgStart: + message_class = ChromeLegacyIpc::CLASS_EXTENSION; + break; + case TextInputClientMsgStart: + message_class = ChromeLegacyIpc::CLASS_TEXT_INPUT_CLIENT; + break; + case BlinkTestMsgStart: + message_class = ChromeLegacyIpc::CLASS_BLINK_TEST; + break; + case AccessibilityMsgStart: + message_class = ChromeLegacyIpc::CLASS_ACCESSIBILITY; + break; + case PrerenderMsgStart: + message_class = ChromeLegacyIpc::CLASS_PRERENDER; + break; + case ChromotingMsgStart: + message_class = ChromeLegacyIpc::CLASS_CHROMOTING; + break; + case AndroidWebViewMsgStart: + message_class = ChromeLegacyIpc::CLASS_ANDROID_WEB_VIEW; + break; + case NaClHostMsgStart: + message_class = ChromeLegacyIpc::CLASS_NACL_HOST; + break; + case EncryptedMediaMsgStart: + message_class = ChromeLegacyIpc::CLASS_ENCRYPTED_MEDIA; + break; + case CastMsgStart: + message_class = ChromeLegacyIpc::CLASS_CAST; + break; + case GinJavaBridgeMsgStart: + message_class = ChromeLegacyIpc::CLASS_GIN_JAVA_BRIDGE; + break; + case ChromeUtilityPrintingMsgStart: + message_class = ChromeLegacyIpc::CLASS_CHROME_UTILITY_PRINTING; + break; + case OzoneGpuMsgStart: + message_class = ChromeLegacyIpc::CLASS_OZONE_GPU; + break; + case WebTestMsgStart: + message_class = ChromeLegacyIpc::CLASS_WEB_TEST; + break; + case ExtensionsGuestViewMsgStart: + message_class = ChromeLegacyIpc::CLASS_EXTENSIONS_GUEST_VIEW; + break; + case GuestViewMsgStart: + message_class = ChromeLegacyIpc::CLASS_GUEST_VIEW; + break; + case MediaPlayerDelegateMsgStart: + message_class = ChromeLegacyIpc::CLASS_MEDIA_PLAYER_DELEGATE; + break; + case ExtensionWorkerMsgStart: + message_class = ChromeLegacyIpc::CLASS_EXTENSION_WORKER; + break; + case UnfreezableFrameMsgStart: + message_class = ChromeLegacyIpc::CLASS_UNFREEZABLE_FRAME; + break; + } + legacy_ipc->set_message_class(message_class); + legacy_ipc->set_message_line(IPC_MESSAGE_ID_LINE(message_id)); +} + +} // namespace IPC \ No newline at end of file
diff --git a/ipc/trace_ipc_message.h b/ipc/trace_ipc_message.h new file mode 100644 index 0000000..44d4792c --- /dev/null +++ b/ipc/trace_ipc_message.h
@@ -0,0 +1,33 @@ +// Copyright 2019 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 IPC_TRACE_IPC_MESSAGE_H_ +#define IPC_TRACE_IPC_MESSAGE_H_ + +#include <stdint.h> + +#include "base/component_export.h" +#include "services/tracing/public/cpp/perfetto/macros.h" +#include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.h" + +// When tracing is enabled, emits a trace event with the given category and +// event name and typed arguments for the message's type (message class and line +// number). +#define TRACE_IPC_MESSAGE_SEND(category, name, msg) \ + TRACE_EVENT(category, name, [msg](perfetto::EventContext ctx) { \ + IPC::WriteIpcMessageIdAsProtozero(msg->type(), \ + ctx.event()->set_chrome_legacy_ipc()); \ + }); + +namespace IPC { + +// Converts |message_id| into its message class and line number parts and writes +// them to the protozero message |ChromeLegacyIpc| for trace events. +void COMPONENT_EXPORT(IPC) + WriteIpcMessageIdAsProtozero(uint32_t message_id, + perfetto::protos::pbzero::ChromeLegacyIpc*); + +} // namespace IPC + +#endif // IPC_TRACE_IPC_MESSAGE_H_
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.cc b/media/gpu/windows/dxva_video_decode_accelerator_win.cc index bff45e3..b06648e 100644 --- a/media/gpu/windows/dxva_video_decode_accelerator_win.cc +++ b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
@@ -574,13 +574,13 @@ config.profile == VP9PROFILE_PROFILE3 || config.profile == H264PROFILE_HIGH10PROFILE) { // Input file has more than 8 bits per channel. - want_fp16_ = true; + use_fp16_ = true; } // Unfortunately, the profile is currently unreliable for // VP9 (https://crbug.com/592074) so also try to use fp16 if HDR is on. if (config.target_color_space.IsHDR()) { - want_fp16_ = true; + use_fp16_ = true; } // Not all versions of Windows 7 and later include Media Foundation DLLs. @@ -823,7 +823,7 @@ RETURN_ON_FAILURE(angle_device_.Get(), "Failed to get d3d11 device", false); using_angle_device_ = true; - DCHECK(!want_fp16_); + DCHECK(!use_fp16_); angle_device_->GetImmediateContext(&d3d11_device_context_); hr = angle_device_.As(&video_device_); @@ -892,8 +892,8 @@ if (!checker.CheckOutputFormatSupport(DXGI_FORMAT_NV12)) support_copy_nv12_textures_ = false; - support_fp16_ = - checker.CheckOutputFormatSupport(DXGI_FORMAT_R16G16B16A16_FLOAT); + if (!checker.CheckOutputFormatSupport(DXGI_FORMAT_R16G16B16A16_FLOAT)) + use_fp16_ = false; // Enable multithreaded mode on the device. This ensures that accesses to // context are synchronized across threads. We have multiple threads @@ -1388,19 +1388,18 @@ } if (!gl::GLSurfaceEGL::IsPixelFormatFloatSupported()) - want_fp16_ = false; + use_fp16_ = false; EGLDisplay egl_display = gl::GLSurfaceEGL::GetHardwareDisplay(); while (true) { - std::vector<EGLint> config_attribs = { - EGL_BUFFER_SIZE, 32, - EGL_RED_SIZE, ShouldUseFp16() ? 16 : 8, - EGL_GREEN_SIZE, ShouldUseFp16() ? 16 : 8, - EGL_BLUE_SIZE, ShouldUseFp16() ? 16 : 8, - EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, - EGL_ALPHA_SIZE, 0}; - if (ShouldUseFp16()) { + std::vector<EGLint> config_attribs = {EGL_BUFFER_SIZE, 32, + EGL_RED_SIZE, use_fp16_ ? 16 : 8, + EGL_GREEN_SIZE, use_fp16_ ? 16 : 8, + EGL_BLUE_SIZE, use_fp16_ ? 16 : 8, + EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, + EGL_ALPHA_SIZE, 0}; + if (use_fp16_) { config_attribs.push_back(EGL_COLOR_COMPONENT_TYPE_EXT); config_attribs.push_back(EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT); } @@ -1420,7 +1419,7 @@ eglGetConfigAttrib(egl_display, configs[i], EGL_RED_SIZE, &red_bits); // Try to pick a configuration with the right number of bits rather // than one that just has enough bits. - if (red_bits == (ShouldUseFp16() ? 16 : 8)) { + if (red_bits == (use_fp16_ ? 16 : 8)) { egl_config_ = configs[i]; break; } @@ -1428,9 +1427,9 @@ } if (!num_configs) { - if (ShouldUseFp16()) { - // Try again, but without want_fp16_ - want_fp16_ = false; + if (use_fp16_) { + // Try again, but without use_fp16_ + use_fp16_ = false; continue; } return false; @@ -1440,7 +1439,7 @@ break; } - if (ShouldUseFp16()) { + if (use_fp16_) { // TODO(hubbe): Share/copy P010/P016 textures. DisableSharedTextureSupport(); support_copy_nv12_textures_ = false; @@ -2761,7 +2760,7 @@ // If we're copying textures or just not using color space information, set // the same color space on input and output. - if ((!use_color_info_ && !ShouldUseFp16()) || + if ((!use_color_info_ && !use_fp16_) || GetPictureBufferMechanism() == PictureBufferMechanism::COPY_TO_NV12 || GetPictureBufferMechanism() == PictureBufferMechanism::DELAYED_COPY_TO_NV12) { @@ -2812,8 +2811,7 @@ return true; } - if (ShouldUseFp16() && config_.target_color_space.IsHDR() && - color_space.IsHDR()) { + if (use_fp16_ && config_.target_color_space.IsHDR() && color_space.IsHDR()) { // Note, we only use the SCRGBLinear output color space when the input is // PQ, because nvidia drivers will not convert G22 to G10 for some reason. dx11_converter_output_color_space_ = gfx::ColorSpace::CreateSCRGBLinear(); @@ -2986,7 +2984,7 @@ DXVAVideoDecodeAccelerator::PictureBufferMechanism DXVAVideoDecodeAccelerator::GetPictureBufferMechanism() const { - if (ShouldUseFp16()) + if (use_fp16_) return PictureBufferMechanism::COPY_TO_RGB; if (support_share_nv12_textures_) return PictureBufferMechanism::BIND; @@ -3013,8 +3011,4 @@ return ShouldUseANGLEDevice() ? angle_device_.Get() : d3d11_device_.Get(); } -bool DXVAVideoDecodeAccelerator::ShouldUseFp16() const { - return want_fp16_ && support_fp16_; -} - } // namespace media
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.h b/media/gpu/windows/dxva_video_decode_accelerator_win.h index f894bba..af9da6e 100644 --- a/media/gpu/windows/dxva_video_decode_accelerator_win.h +++ b/media/gpu/windows/dxva_video_decode_accelerator_win.h
@@ -397,8 +397,6 @@ bool ShouldUseANGLEDevice() const; ID3D11Device* D3D11Device() const; - bool ShouldUseFp16() const; - // To expose client callbacks from VideoDecodeAccelerator. VideoDecodeAccelerator::Client* client_; @@ -558,11 +556,8 @@ // Supports copying NV12 textures on the main thread to use in ANGLE. bool support_delayed_copy_nv12_textures_; - // Supports copying video to FP16 scRGB textures. - bool support_fp16_ = false; - - // Copy video to FP16 scRGB textures if supported. - bool want_fp16_ = false; + // Copy video to FP16 scRGB textures. + bool use_fp16_ = false; // When converting YUV to RGB, make sure we tell the blitter about the input // color space so that it can convert it correctly.
diff --git a/mojo/public/cpp/bindings/remote_set.h b/mojo/public/cpp/bindings/remote_set.h index d463fe2..fd6f9bbd 100644 --- a/mojo/public/cpp/bindings/remote_set.h +++ b/mojo/public/cpp/bindings/remote_set.h
@@ -136,7 +136,7 @@ private: RemoteSetElementId GenerateNextElementId() { - return RemoteSetElementId::FromUnsafeValue(next_element_id_++); + return remote_set_element_id_generator_.GenerateNextId(); } void OnDisconnect(RemoteSetElementId id) { @@ -145,7 +145,7 @@ disconnect_handler_.Run(id); } - uint32_t next_element_id_ = 1; + RemoteSetElementId::Generator remote_set_element_id_generator_; Storage storage_; DisconnectHandler disconnect_handler_;
diff --git a/net/disk_cache/cache_util.cc b/net/disk_cache/cache_util.cc index 1f95642..3224f73 100644 --- a/net/disk_cache/cache_util.cc +++ b/net/disk_cache/cache_util.cc
@@ -110,10 +110,13 @@ // rename the cache directory (for instance due to a sharing violation), and in // that case a cache for this profile (on the desired path) cannot be created. bool DelayedCacheCleanup(const base::FilePath& full_path) { - // GetTempCacheName() and MoveCache() use synchronous file - // operations. + // GetTempCacheName() and MoveCache() use synchronous file operations. base::ThreadRestrictions::ScopedAllowIO allow_io; + // We can exit early if nothing was done/the directory is empty. + if (base::IsDirectoryEmpty(full_path)) + return true; + base::FilePath current_path = full_path.StripTrailingSeparators(); base::FilePath path = current_path.DirName();
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc index ba99d7c..be28d4e 100644 --- a/net/http/http_cache.cc +++ b/net/http/http_cache.cc
@@ -62,11 +62,13 @@ HttpCache::DefaultBackend::DefaultBackend(CacheType type, BackendType backend_type, const base::FilePath& path, - int max_bytes) + int max_bytes, + bool hard_reset) : type_(type), backend_type_(backend_type), path_(path), - max_bytes_(max_bytes) {} + max_bytes_(max_bytes), + hard_reset_(hard_reset) {} HttpCache::DefaultBackend::~DefaultBackend() = default; @@ -74,7 +76,7 @@ std::unique_ptr<HttpCache::BackendFactory> HttpCache::DefaultBackend::InMemory( int max_bytes) { return std::make_unique<DefaultBackend>(MEMORY_CACHE, CACHE_BACKEND_DEFAULT, - base::FilePath(), max_bytes); + base::FilePath(), max_bytes, false); } int HttpCache::DefaultBackend::CreateBackend( @@ -82,20 +84,20 @@ std::unique_ptr<disk_cache::Backend>* backend, CompletionOnceCallback callback) { DCHECK_GE(max_bytes_, 0); - // TODO(crbug.com/1002220): Implement a forced reset for the http_cache when - // the Finch experiment status changes the cache configuration. + disk_cache::ResetHandling reset_handling = + hard_reset_ ? disk_cache::ResetHandling::kReset + : disk_cache::ResetHandling::kResetOnError; + UMA_HISTOGRAM_BOOLEAN("HttpCache.HardReset", hard_reset_); #if defined(OS_ANDROID) if (app_status_listener_) { return disk_cache::CreateCacheBackend( - type_, backend_type_, path_, max_bytes_, - disk_cache::ResetHandling::kResetOnError, net_log, backend, - std::move(callback), app_status_listener_); + type_, backend_type_, path_, max_bytes_, reset_handling, net_log, + backend, std::move(callback), app_status_listener_); } #endif - return disk_cache::CreateCacheBackend( - type_, backend_type_, path_, max_bytes_, - disk_cache::ResetHandling::kResetOnError, net_log, backend, - std::move(callback)); + return disk_cache::CreateCacheBackend(type_, backend_type_, path_, max_bytes_, + reset_handling, net_log, backend, + std::move(callback)); } #if defined(OS_ANDROID)
diff --git a/net/http/http_cache.h b/net/http/http_cache.h index a0bbaba..59cf665 100644 --- a/net/http/http_cache.h +++ b/net/http/http_cache.h
@@ -100,7 +100,8 @@ DefaultBackend(CacheType type, BackendType backend_type, const base::FilePath& path, - int max_bytes); + int max_bytes, + bool hard_reset); ~DefaultBackend() override; // Returns a factory for an in-memory cache. @@ -121,6 +122,7 @@ BackendType backend_type_; const base::FilePath path_; int max_bytes_; + bool hard_reset_; #if defined(OS_ANDROID) base::android::ApplicationStatusListener* app_status_listener_ = nullptr; #endif
diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc index 67f625d..fea2d8c 100644 --- a/net/http/http_cache_unittest.cc +++ b/net/http/http_cache_unittest.cc
@@ -3019,7 +3019,8 @@ ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); auto backend_factory = std::make_unique<HttpCache::DefaultBackend>( - DISK_CACHE, CACHE_BACKEND_BLOCKFILE, temp_dir.GetPath(), 1024 * 1024); + DISK_CACHE, CACHE_BACKEND_BLOCKFILE, temp_dir.GetPath(), 1024 * 1024, + false); MockHttpCache cache(std::move(backend_factory)); RangeTransactionServer handler;
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc index 0094841..8ad449a 100644 --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc
@@ -175,7 +175,7 @@ } // namespace URLRequestContextBuilder::HttpCacheParams::HttpCacheParams() - : type(IN_MEMORY), max_size(0) {} + : type(IN_MEMORY), max_size(0), reset_cache(false) {} URLRequestContextBuilder::HttpCacheParams::~HttpCacheParams() = default; URLRequestContextBuilder::URLRequestContextBuilder() = default; @@ -603,7 +603,7 @@ } http_cache_backend.reset(new HttpCache::DefaultBackend( DISK_CACHE, backend_type, http_cache_params_.path, - http_cache_params_.max_size)); + http_cache_params_.max_size, http_cache_params_.reset_cache)); } else { http_cache_backend = HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size);
diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h index 8434c67..880b23f 100644 --- a/net/url_request/url_request_context_builder.h +++ b/net/url_request/url_request_context_builder.h
@@ -119,6 +119,9 @@ // based off available disk space. int max_size; + // Whether or not we need to reset the cache due to an experiment change. + bool reset_cache; + // The cache path (when type is DISK). base::FilePath path;
diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc index 2da1a9e..23f76c34 100644 --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc
@@ -252,14 +252,13 @@ DCHECK(forwarding_client_); DCHECK(!deferred_redirect_url_); - int response_status_code = - response_head->headers ? response_head->headers->response_code() : 0; - + // See 10.7.4 of https://fetch.spec.whatwg.org/#http-network-or-cache-fetch const bool is_304_for_revalidation = - request_.is_revalidating && response_status_code == 304; + request_.is_revalidating && response_head->headers && + response_head->headers->response_code() == 304; if (fetch_cors_flag_ && !is_304_for_revalidation) { const auto error_status = CheckAccess( - request_.url, response_status_code, + request_.url, GetHeaderString(*response_head, header_names::kAccessControlAllowOrigin), GetHeaderString(*response_head, @@ -296,7 +295,7 @@ // failure, then return a network error. if (fetch_cors_flag_ && IsCorsEnabledRequestMode(request_.mode)) { const auto error_status = CheckAccess( - request_.url, response_head->headers->response_code(), + request_.url, GetHeaderString(*response_head, header_names::kAccessControlAllowOrigin), GetHeaderString(*response_head,
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc index a6b0bae..2d50cdb 100644 --- a/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc
@@ -134,9 +134,8 @@ base::Optional<CorsErrorStatus>* detected_error_status) { DCHECK(detected_error_status); - const int response_code = head.headers ? head.headers->response_code() : 0; *detected_error_status = CheckPreflightAccess( - final_url, response_code, + final_url, head.headers ? head.headers->response_code() : 0, GetHeaderString(head.headers, header_names::kAccessControlAllowOrigin), GetHeaderString(head.headers, header_names::kAccessControlAllowCredentials), @@ -145,13 +144,6 @@ if (*detected_error_status) return nullptr; - base::Optional<mojom::CorsError> error; - error = CheckPreflight(response_code); - if (error) { - *detected_error_status = CorsErrorStatus(*error); - return nullptr; - } - if (original_request.is_external_request) { *detected_error_status = CheckExternalPreflight(GetHeaderString( head.headers, header_names::kAccessControlAllowExternal)); @@ -159,6 +151,7 @@ return nullptr; } + base::Optional<mojom::CorsError> error; auto result = PreflightResult::Create( original_request.credentials_mode, GetHeaderString(head.headers, header_names::kAccessControlAllowMethods),
diff --git a/services/network/network_context.cc b/services/network/network_context.cc index e18aa74..e5dfb9c6f 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc
@@ -1838,6 +1838,7 @@ cache_params.path = *params_->http_cache_path; cache_params.type = network_session_configurator::ChooseCacheType(); } + cache_params.reset_cache = params_->reset_http_cache_backend; #if defined(OS_ANDROID) cache_params.app_status_listener = app_status_listener();
diff --git a/services/network/p2p/socket_manager.cc b/services/network/p2p/socket_manager.cc index fd14058..78c3a2b8 100644 --- a/services/network/p2p/socket_manager.cc +++ b/services/network/p2p/socket_manager.cc
@@ -167,6 +167,9 @@ } P2PSocketManager::~P2PSocketManager() { + // Reset the P2PSocketManager receiver before dropping pending dns requests. + socket_manager_receiver_.reset(); + sockets_.clear(); dns_requests_.clear();
diff --git a/services/network/public/cpp/cors/cors.cc b/services/network/public/cpp/cors/cors.cc index f20d665..932c5f3 100644 --- a/services/network/public/cpp/cors/cors.cc +++ b/services/network/public/cpp/cors/cors.cc
@@ -123,16 +123,10 @@ base::Optional<CorsErrorStatus> CheckAccessInternal( const GURL& response_url, - const int response_status_code, const base::Optional<std::string>& allow_origin_header, const base::Optional<std::string>& allow_credentials_header, mojom::CredentialsMode credentials_mode, const url::Origin& origin) { - // TODO(toyoshim): This response status code check should not be needed. We - // have another status code check after a CheckAccess() call if it is needed. - if (!response_status_code) - return CorsErrorStatus(mojom::CorsError::kInvalidResponse); - if (allow_origin_header == kAsterisk) { // A wildcard Access-Control-Allow-Origin can not be used if credentials are // to be sent, even with Access-Control-Allow-Credentials set to true. @@ -240,14 +234,13 @@ // See https://fetch.spec.whatwg.org/#cors-check. base::Optional<CorsErrorStatus> CheckAccess( const GURL& response_url, - const int response_status_code, const base::Optional<std::string>& allow_origin_header, const base::Optional<std::string>& allow_credentials_header, mojom::CredentialsMode credentials_mode, const url::Origin& origin) { - base::Optional<CorsErrorStatus> error_status = CheckAccessInternal( - response_url, response_status_code, allow_origin_header, - allow_credentials_header, credentials_mode, origin); + const auto error_status = + CheckAccessInternal(response_url, allow_origin_header, + allow_credentials_header, credentials_mode, origin); ReportAccessCheckResultMetric(error_status ? AccessCheckResult::kNotPermitted : AccessCheckResult::kPermitted); if (error_status) { @@ -285,47 +278,58 @@ const base::Optional<std::string>& allow_credentials_header, mojom::CredentialsMode actual_credentials_mode, const url::Origin& origin) { - const auto error_status = CheckAccessInternal( - response_url, response_status_code, allow_origin_header, - allow_credentials_header, actual_credentials_mode, origin); + // Step 7 of https://fetch.spec.whatwg.org/#cors-preflight-fetch + auto error_status = CheckAccessInternal(response_url, allow_origin_header, + allow_credentials_header, + actual_credentials_mode, origin); + const bool has_ok_status = IsOkStatus(response_status_code); + ReportAccessCheckResultMetric( - error_status ? AccessCheckResult::kNotPermittedInPreflight - : AccessCheckResult::kPermittedInPreflight); - if (!error_status) + (error_status || !has_ok_status) + ? AccessCheckResult::kNotPermittedInPreflight + : AccessCheckResult::kPermittedInPreflight); + + // Prefer using a preflight specific error code. + if (error_status) { + switch (error_status->cors_error) { + case mojom::CorsError::kWildcardOriginNotAllowed: + error_status->cors_error = + mojom::CorsError::kPreflightWildcardOriginNotAllowed; + break; + case mojom::CorsError::kMissingAllowOriginHeader: + error_status->cors_error = + mojom::CorsError::kPreflightMissingAllowOriginHeader; + break; + case mojom::CorsError::kMultipleAllowOriginValues: + error_status->cors_error = + mojom::CorsError::kPreflightMultipleAllowOriginValues; + break; + case mojom::CorsError::kInvalidAllowOriginValue: + error_status->cors_error = + mojom::CorsError::kPreflightInvalidAllowOriginValue; + break; + case mojom::CorsError::kAllowOriginMismatch: + error_status->cors_error = + mojom::CorsError::kPreflightAllowOriginMismatch; + break; + case mojom::CorsError::kInvalidAllowCredentials: + error_status->cors_error = + mojom::CorsError::kPreflightInvalidAllowCredentials; + break; + default: + NOTREACHED(); + break; + } + } else if (!has_ok_status) { + error_status = base::make_optional<CorsErrorStatus>( + mojom::CorsError::kPreflightInvalidStatus); + } else { return base::nullopt; - - // TODO(toyoshim): Remove following two lines when the status code check is - // removed from CheckAccess(). - if (error_status->cors_error == mojom::CorsError::kInvalidResponse) - return error_status; - - mojom::CorsError error = error_status->cors_error; - switch (error_status->cors_error) { - case mojom::CorsError::kWildcardOriginNotAllowed: - error = mojom::CorsError::kPreflightWildcardOriginNotAllowed; - break; - case mojom::CorsError::kMissingAllowOriginHeader: - error = mojom::CorsError::kPreflightMissingAllowOriginHeader; - break; - case mojom::CorsError::kMultipleAllowOriginValues: - error = mojom::CorsError::kPreflightMultipleAllowOriginValues; - break; - case mojom::CorsError::kInvalidAllowOriginValue: - error = mojom::CorsError::kPreflightInvalidAllowOriginValue; - break; - case mojom::CorsError::kAllowOriginMismatch: - error = mojom::CorsError::kPreflightAllowOriginMismatch; - break; - case mojom::CorsError::kInvalidAllowCredentials: - error = mojom::CorsError::kPreflightInvalidAllowCredentials; - break; - default: - NOTREACHED(); - break; } - UMA_HISTOGRAM_ENUMERATION("Net.Cors.PreflightCheckError", error); - return CorsErrorStatus(error, error_status->failed_parameter); + UMA_HISTOGRAM_ENUMERATION("Net.Cors.PreflightCheckError", + error_status->cors_error); + return error_status; } base::Optional<CorsErrorStatus> CheckRedirectLocation( @@ -359,16 +363,6 @@ return base::nullopt; } -base::Optional<mojom::CorsError> CheckPreflight(const int status_code) { - // CORS preflight with 3XX is considered network error in - // Fetch API Spec: https://fetch.spec.whatwg.org/#cors-preflight-fetch - // CORS Spec: http://www.w3.org/TR/cors/#cross-origin-request-with-preflight-0 - // https://crbug.com/452394 - if (IsOkStatus(status_code)) - return base::nullopt; - return mojom::CorsError::kPreflightInvalidStatus; -} - // https://wicg.github.io/cors-rfc1918/#http-headerdef-access-control-allow-external base::Optional<CorsErrorStatus> CheckExternalPreflight( const base::Optional<std::string>& allow_external) {
diff --git a/services/network/public/cpp/cors/cors.h b/services/network/public/cpp/cors/cors.h index 231421f..736a01d 100644 --- a/services/network/public/cpp/cors/cors.h +++ b/services/network/public/cpp/cors/cors.h
@@ -53,7 +53,6 @@ COMPONENT_EXPORT(NETWORK_CPP) base::Optional<CorsErrorStatus> CheckAccess( const GURL& response_url, - const int response_status_code, const base::Optional<std::string>& allow_origin_header, const base::Optional<std::string>& allow_credentials_header, mojom::CredentialsMode credentials_mode, @@ -93,12 +92,6 @@ bool cors_flag, bool tainted); -// Performs the required CORS checks on the response to a preflight request. -// Returns |kPreflightSuccess| if preflight response was successful. -// TODO(toyoshim): Rename to CheckPreflightStatus. -COMPONENT_EXPORT(NETWORK_CPP) -base::Optional<mojom::CorsError> CheckPreflight(const int status_code); - // Checks errors for the currently experimental "Access-Control-Allow-External:" // header. Shares error conditions with standard preflight checking. // See https://crbug.com/590714.
diff --git a/services/network/public/cpp/cors/cors_unittest.cc b/services/network/public/cpp/cors/cors_unittest.cc index 111bd343..2d23129 100644 --- a/services/network/public/cpp/cors/cors_unittest.cc +++ b/services/network/public/cpp/cors/cors_unittest.cc
@@ -16,27 +16,15 @@ using CorsTest = testing::Test; -TEST_F(CorsTest, CheckAccessDetectsInvalidResponse) { - base::Optional<CorsErrorStatus> error_status = - CheckAccess(GURL(), 0 /* response_status_code */, - base::nullopt /* allow_origin_header */, - base::nullopt /* allow_credentials_header */, - network::mojom::CredentialsMode::kOmit, url::Origin()); - ASSERT_TRUE(error_status); - EXPECT_EQ(mojom::CorsError::kInvalidResponse, error_status->cors_error); -} - // Tests if CheckAccess detects kWildcardOriginNotAllowed error correctly. TEST_F(CorsTest, CheckAccessDetectsWildcardOriginNotAllowed) { const GURL response_url("http://example.com/data"); const url::Origin origin = url::Origin::Create(GURL("http://google.com")); - const int response_status_code = 200; const std::string allow_all_header("*"); // Access-Control-Allow-Origin '*' works. base::Optional<CorsErrorStatus> error1 = - CheckAccess(response_url, response_status_code, - allow_all_header /* allow_origin_header */, + CheckAccess(response_url, allow_all_header /* allow_origin_header */, base::nullopt /* allow_credentials_header */, network::mojom::CredentialsMode::kOmit, origin); EXPECT_FALSE(error1); @@ -44,8 +32,7 @@ // Access-Control-Allow-Origin '*' should not be allowed if credentials mode // is kInclude. base::Optional<CorsErrorStatus> error2 = - CheckAccess(response_url, response_status_code, - allow_all_header /* allow_origin_header */, + CheckAccess(response_url, allow_all_header /* allow_origin_header */, base::nullopt /* allow_credentials_header */, network::mojom::CredentialsMode::kInclude, origin); ASSERT_TRUE(error2); @@ -56,12 +43,10 @@ TEST_F(CorsTest, CheckAccessDetectsMissingAllowOriginHeader) { const GURL response_url("http://example.com/data"); const url::Origin origin = url::Origin::Create(GURL("http://google.com")); - const int response_status_code = 200; // Access-Control-Allow-Origin is missed. base::Optional<CorsErrorStatus> error = - CheckAccess(response_url, response_status_code, - base::nullopt /* allow_origin_header */, + CheckAccess(response_url, base::nullopt /* allow_origin_header */, base::nullopt /* allow_credentials_header */, network::mojom::CredentialsMode::kOmit, origin); ASSERT_TRUE(error); @@ -73,25 +58,22 @@ TEST_F(CorsTest, CheckAccessDetectsMultipleAllowOriginValues) { const GURL response_url("http://example.com/data"); const url::Origin origin = url::Origin::Create(GURL("http://google.com")); - const int response_status_code = 200; const std::string space_separated_multiple_origins( "http://example.com http://another.example.com"); - base::Optional<CorsErrorStatus> error1 = - CheckAccess(response_url, response_status_code, - space_separated_multiple_origins /* allow_origin_header */, - base::nullopt /* allow_credentials_header */, - network::mojom::CredentialsMode::kOmit, origin); + base::Optional<CorsErrorStatus> error1 = CheckAccess( + response_url, space_separated_multiple_origins /* allow_origin_header */, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin); ASSERT_TRUE(error1); EXPECT_EQ(mojom::CorsError::kMultipleAllowOriginValues, error1->cors_error); const std::string comma_separated_multiple_origins( "http://example.com,http://another.example.com"); - base::Optional<CorsErrorStatus> error2 = - CheckAccess(response_url, response_status_code, - comma_separated_multiple_origins /* allow_origin_header */, - base::nullopt /* allow_credentials_header */, - network::mojom::CredentialsMode::kOmit, origin); + base::Optional<CorsErrorStatus> error2 = CheckAccess( + response_url, comma_separated_multiple_origins /* allow_origin_header */, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin); ASSERT_TRUE(error2); EXPECT_EQ(mojom::CorsError::kMultipleAllowOriginValues, error2->cors_error); } @@ -100,13 +82,11 @@ TEST_F(CorsTest, CheckAccessDetectsInvalidAllowOriginValue) { const GURL response_url("http://example.com/data"); const url::Origin origin = url::Origin::Create(GURL("http://google.com")); - const int response_status_code = 200; - base::Optional<CorsErrorStatus> error = - CheckAccess(response_url, response_status_code, - std::string("invalid.origin") /* allow_origin_header */, - base::nullopt /* allow_credentials_header */, - network::mojom::CredentialsMode::kOmit, origin); + base::Optional<CorsErrorStatus> error = CheckAccess( + response_url, std::string("invalid.origin") /* allow_origin_header */, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin); ASSERT_TRUE(error); EXPECT_EQ(mojom::CorsError::kInvalidAllowOriginValue, error->cors_error); EXPECT_EQ("invalid.origin", error->failed_parameter); @@ -116,17 +96,15 @@ TEST_F(CorsTest, CheckAccessDetectsAllowOriginMismatch) { const GURL response_url("http://example.com/data"); const url::Origin origin = url::Origin::Create(GURL("http://google.com")); - const int response_status_code = 200; base::Optional<CorsErrorStatus> error1 = - CheckAccess(response_url, response_status_code, - origin.Serialize() /* allow_origin_header */, + CheckAccess(response_url, origin.Serialize() /* allow_origin_header */, base::nullopt /* allow_credentials_header */, network::mojom::CredentialsMode::kOmit, origin); ASSERT_FALSE(error1); base::Optional<CorsErrorStatus> error2 = CheckAccess( - response_url, response_status_code, + response_url, std::string("http://not.google.com") /* allow_origin_header */, base::nullopt /* allow_credentials_header */, network::mojom::CredentialsMode::kOmit, origin); @@ -139,10 +117,10 @@ const url::Origin null_origin; EXPECT_EQ(null_string, null_origin.Serialize()); - base::Optional<CorsErrorStatus> error3 = CheckAccess( - response_url, response_status_code, null_string /* allow_origin_header */, - base::nullopt /* allow_credentials_header */, - network::mojom::CredentialsMode::kOmit, null_origin); + base::Optional<CorsErrorStatus> error3 = + CheckAccess(response_url, null_string /* allow_origin_header */, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, null_origin); EXPECT_FALSE(error3); } @@ -150,18 +128,15 @@ TEST_F(CorsTest, CheckAccessDetectsInvalidAllowCredential) { const GURL response_url("http://example.com/data"); const url::Origin origin = url::Origin::Create(GURL("http://google.com")); - const int response_status_code = 200; base::Optional<CorsErrorStatus> error1 = - CheckAccess(response_url, response_status_code, - origin.Serialize() /* allow_origin_header */, + CheckAccess(response_url, origin.Serialize() /* allow_origin_header */, std::string("true") /* allow_credentials_header */, network::mojom::CredentialsMode::kInclude, origin); ASSERT_FALSE(error1); base::Optional<CorsErrorStatus> error2 = - CheckAccess(response_url, response_status_code, - origin.Serialize() /* allow_origin_header */, + CheckAccess(response_url, origin.Serialize() /* allow_origin_header */, std::string("fuga") /* allow_credentials_header */, network::mojom::CredentialsMode::kInclude, origin); ASSERT_TRUE(error2); @@ -284,14 +259,41 @@ } } -TEST_F(CorsTest, CheckPreflightDetectsErrors) { - EXPECT_FALSE(CheckPreflight(200)); - EXPECT_FALSE(CheckPreflight(299)); +TEST_F(CorsTest, CheckPreflightAccessDetectsErrorStatus) { + const GURL response_url("http://example.com/data"); + const url::Origin origin = url::Origin::Create(GURL("http://google.com")); + const std::string allow_all_header("*"); - base::Optional<mojom::CorsError> error1 = CheckPreflight(300); - ASSERT_TRUE(error1); - EXPECT_EQ(mojom::CorsError::kPreflightInvalidStatus, *error1); + // Status 200-299 should pass. + EXPECT_FALSE( + CheckPreflightAccess(response_url, 200, allow_all_header, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin)); + EXPECT_FALSE( + CheckPreflightAccess(response_url, 299, allow_all_header, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin)); + // Status 300 should fail. + base::Optional<CorsErrorStatus> invalid_status_error = + CheckPreflightAccess(response_url, 300, allow_all_header, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin); + ASSERT_TRUE(invalid_status_error); + EXPECT_EQ(mojom::CorsError::kPreflightInvalidStatus, + invalid_status_error->cors_error); + + // Status 0 should fail too. + invalid_status_error = + CheckPreflightAccess(response_url, 0, allow_all_header, + base::nullopt /* allow_credentials_header */, + network::mojom::CredentialsMode::kOmit, origin); + ASSERT_TRUE(invalid_status_error); + EXPECT_EQ(mojom::CorsError::kPreflightInvalidStatus, + invalid_status_error->cors_error); +} + +TEST_F(CorsTest, CheckExternalPreflightErrors) { EXPECT_FALSE(CheckExternalPreflight(std::string("true"))); base::Optional<CorsErrorStatus> error2 =
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom index 0b44874..32a60d94 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom
@@ -450,6 +450,12 @@ // the dynamic preference from NetworkService side, to populate // HttpAuthPreference. HttpAuthStaticNetworkContextParams? http_auth_static_network_context_params; + + // Indicates that the HttpCache back-end should be reset (e.g. when a Finch + // experiment changes the cache key representation via NetworkIsolationKey). + // A reset throws out all existing cache content when loading the cache, + // effectively starting with an empty cache. + bool reset_http_cache_backend = false; }; struct NetworkConditions {
diff --git a/services/tracing/perfetto/consumer_host.cc b/services/tracing/perfetto/consumer_host.cc index 58899e5..7df96762 100644 --- a/services/tracing/perfetto/consumer_host.cc +++ b/services/tracing/perfetto/consumer_host.cc
@@ -84,7 +84,7 @@ class ConsumerHost::StreamWriter { public: - using Slices = std::vector<std::string>; + using Slice = std::string; static scoped_refptr<base::SequencedTaskRunner> CreateTaskRunner() { return base::CreateSequencedTaskRunner({base::ThreadPool(), @@ -101,34 +101,32 @@ disconnect_callback_(std::move(disconnect_callback)), callback_task_runner_(callback_task_runner) {} - void WriteToStream(std::unique_ptr<Slices> slices, bool has_more) { + void WriteToStream(std::unique_ptr<Slice> slice, bool has_more) { DCHECK(stream_.is_valid()); - for (const auto& slice : *slices) { - uint32_t write_position = 0; - while (write_position < slice.size()) { - uint32_t write_bytes = slice.size() - write_position; + uint32_t write_position = 0; + while (write_position < slice->size()) { + uint32_t write_bytes = slice->size() - write_position; - MojoResult result = - stream_->WriteData(slice.data() + write_position, &write_bytes, - MOJO_WRITE_DATA_FLAG_NONE); + MojoResult result = + stream_->WriteData(slice->data() + write_position, &write_bytes, + MOJO_WRITE_DATA_FLAG_NONE); - if (result == MOJO_RESULT_OK) { - write_position += write_bytes; - continue; + if (result == MOJO_RESULT_OK) { + write_position += write_bytes; + continue; + } + + if (result == MOJO_RESULT_SHOULD_WAIT) { + result = mojo::Wait(stream_.get(), MOJO_HANDLE_SIGNAL_WRITABLE); + } + + if (result != MOJO_RESULT_OK) { + if (!disconnect_callback_.is_null()) { + callback_task_runner_->PostTask(FROM_HERE, + std::move(disconnect_callback_)); } - - if (result == MOJO_RESULT_SHOULD_WAIT) { - result = mojo::Wait(stream_.get(), MOJO_HANDLE_SIGNAL_WRITABLE); - } - - if (result != MOJO_RESULT_OK) { - if (!disconnect_callback_.is_null()) { - callback_task_runner_->PostTask(FROM_HERE, - std::move(disconnect_callback_)); - } - return; - } + return; } } @@ -465,11 +463,10 @@ void ConsumerHost::TracingSession::OnJSONTraceData(std::string json, bool has_more) { - auto slices = std::make_unique<StreamWriter::Slices>(); - slices->push_back(std::string()); - slices->back().swap(json); + auto slice = std::make_unique<StreamWriter::Slice>(); + slice->swap(json); read_buffers_stream_writer_.Post(FROM_HERE, &StreamWriter::WriteToStream, - std::move(slices), has_more); + std::move(slice), has_more); if (!has_more) { read_buffers_stream_writer_.Reset(); @@ -480,14 +477,15 @@ std::vector<perfetto::TracePacket> packets, bool has_more) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (trace_processor_) { - // Calculate space needed for trace chunk. Each packet has a preamble and - // payload size. - size_t max_size = packets.size() * perfetto::TracePacket::kMaxPreambleBytes; - for (const auto& packet : packets) { - max_size += packet.size(); - } + // Calculate space needed for trace chunk. Each packet has a preamble and + // payload size. + size_t max_size = packets.size() * perfetto::TracePacket::kMaxPreambleBytes; + for (const auto& packet : packets) { + max_size += packet.size(); + } + + if (trace_processor_) { // Copy packets into a trace file chunk. size_t position = 0; std::unique_ptr<uint8_t[]> data(new uint8_t[max_size]); @@ -518,19 +516,21 @@ return; } - auto copy = std::make_unique<StreamWriter::Slices>(); + // Copy packets into a trace slice. + auto chunk = std::make_unique<StreamWriter::Slice>(); + chunk->reserve(max_size); for (auto& packet : packets) { char* data; size_t size; std::tie(data, size) = packet.GetProtoPreamble(); - copy->emplace_back(data, size); + chunk->append(data, size); auto& slices = packet.slices(); for (auto& slice : slices) { - copy->emplace_back(static_cast<const char*>(slice.start), slice.size); + chunk->append(static_cast<const char*>(slice.start), slice.size); } } read_buffers_stream_writer_.Post(FROM_HERE, &StreamWriter::WriteToStream, - std::move(copy), has_more); + std::move(chunk), has_more); if (!has_more) { read_buffers_stream_writer_.Reset(); }
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index 4328ad5..07b170a 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -844,7 +844,7 @@ ] } } -if (is_mac) { +if (is_mac || is_ios) { bundle_data("test_fonts_bundle_data") { public_deps = [ "//third_party/test_fonts", @@ -865,7 +865,7 @@ deps = [] data_deps = [] - if (is_mac) { + if (is_mac || is_ios) { deps += [ ":test_fonts_bundle_data" ] data_deps += [ ":test_fonts_bundle_data" ] } else {
diff --git a/testing/scripts/run_wpt_tests.py b/testing/scripts/run_wpt_tests.py index 5a0012d..d4b0989 100755 --- a/testing/scripts/run_wpt_tests.py +++ b/testing/scripts/run_wpt_tests.py
@@ -55,7 +55,11 @@ "--no-capture-stdio", "--no-manifest-download", "--no-pause-after-test", - "--no-fail-on-unexpected", + # Setting --no-fail-on-unexpected makes the return code of wpt 0 + # even if there were test failures. The CQ doesn't like this since + # it uses the exit code to determine which shards to retry (ie: + # those that had non-zero exit codes). + #"--no-fail-on-unexpected", "--metadata", WPT_METADATA_DIR, # By specifying metadata above, WPT will try to find manifest in the
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn index b003d6e..bcc9ab1 100644 --- a/third_party/blink/common/BUILD.gn +++ b/third_party/blink/common/BUILD.gn
@@ -88,6 +88,7 @@ "origin_trials/trial_token_validator.cc", "page/page_zoom.cc", "peerconnection/webrtc_ip_handling_policy.cc", + "permissions/permission_utils.cc", "scheduler/web_scheduler_tracked_feature.cc", "service_worker/service_worker_status_code.cc", "service_worker/service_worker_type_converters.cc",
diff --git a/third_party/blink/common/permissions/OWNERS b/third_party/blink/common/permissions/OWNERS new file mode 100644 index 0000000..d83a9c5 --- /dev/null +++ b/third_party/blink/common/permissions/OWNERS
@@ -0,0 +1,3 @@ +file://third_party/blink/renderer/modules/permissions/OWNERS + +# COMPONENT: Blink>PermissionsAPI
diff --git a/third_party/blink/common/permissions/permission_utils.cc b/third_party/blink/common/permissions/permission_utils.cc new file mode 100644 index 0000000..fffd8eef --- /dev/null +++ b/third_party/blink/common/permissions/permission_utils.cc
@@ -0,0 +1,22 @@ +// Copyright 2019 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 "third_party/blink/public/common/permissions/permission_utils.h" + +#include "base/logging.h" + +namespace blink { + +mojom::PermissionStatus ToPermissionStatus(const std::string& status) { + if (status == "granted") + return mojom::PermissionStatus::GRANTED; + if (status == "prompt") + return mojom::PermissionStatus::ASK; + if (status == "denied") + return mojom::PermissionStatus::DENIED; + NOTREACHED(); + return mojom::PermissionStatus::DENIED; +} + +} // namespace blink
diff --git a/third_party/blink/public/common/BUILD.gn b/third_party/blink/public/common/BUILD.gn index ad924c4..9a4c1d9 100644 --- a/third_party/blink/public/common/BUILD.gn +++ b/third_party/blink/public/common/BUILD.gn
@@ -134,6 +134,7 @@ "page/page_visibility_state.h", "page/page_zoom.h", "peerconnection/webrtc_ip_handling_policy.h", + "permissions/permission_utils.h", "plugin/plugin_action.h", "prerender/prerender_rel_type.h", "presentation/presentation_receiver_flags.h",
diff --git a/third_party/blink/public/common/permissions/OWNERS b/third_party/blink/public/common/permissions/OWNERS new file mode 100644 index 0000000..d83a9c5 --- /dev/null +++ b/third_party/blink/public/common/permissions/OWNERS
@@ -0,0 +1,3 @@ +file://third_party/blink/renderer/modules/permissions/OWNERS + +# COMPONENT: Blink>PermissionsAPI
diff --git a/third_party/blink/public/common/permissions/permission_utils.h b/third_party/blink/public/common/permissions/permission_utils.h new file mode 100644 index 0000000..d623fc6 --- /dev/null +++ b/third_party/blink/public/common/permissions/permission_utils.h
@@ -0,0 +1,22 @@ +// Copyright 2019 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 THIRD_PARTY_BLINK_PUBLIC_COMMON_PERMISSIONS_PERMISSION_UTILS_H_ +#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PERMISSIONS_PERMISSION_UTILS_H_ + +#include <string> + +#include "third_party/blink/public/common/common_export.h" +#include "third_party/blink/public/mojom/permissions/permission_status.mojom-shared.h" + +namespace blink { + +// Converts a permission string ("granted", "denied", "prompt") into a +// PermissionStatus. +BLINK_COMMON_EXPORT mojom::PermissionStatus ToPermissionStatus( + const std::string& status); + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_PERMISSIONS_PERMISSION_UTILS_H_
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn index 601f7953..0ea1cc8 100644 --- a/third_party/blink/public/mojom/BUILD.gn +++ b/third_party/blink/public/mojom/BUILD.gn
@@ -94,6 +94,7 @@ "payments/payment_app.mojom", "peerconnection/peer_connection_tracker.mojom", "permissions/permission.mojom", + "permissions/permission_automation.mojom", "permissions/permission_status.mojom", "picture_in_picture/picture_in_picture.mojom", "plugins/plugin_registry.mojom",
diff --git a/third_party/blink/public/mojom/permissions/permission_automation.mojom b/third_party/blink/public/mojom/permissions/permission_automation.mojom new file mode 100644 index 0000000..9442f56 --- /dev/null +++ b/third_party/blink/public/mojom/permissions/permission_automation.mojom
@@ -0,0 +1,21 @@ +// Copyright 2019 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. + +module blink.test.mojom; + +import "third_party/blink/public/mojom/permissions/permission.mojom"; +import "third_party/blink/public/mojom/permissions/permission_status.mojom"; +import "url/mojom/url.mojom"; + +// Provides a way for tests to change the permission returned to permission +// requests of a certain type (via the PermissionService interface). +// See https://w3c.github.io/permissions/#automation +interface PermissionAutomation { + // Sets the permission for |descriptor| to |status| when queried or requested + // in |origin| from |embedding_origin|. + SetPermission(blink.mojom.PermissionDescriptor descriptor, + blink.mojom.PermissionStatus status, + url.mojom.Url origin, + url.mojom.Url embedding_origin) => (bool success); +};
diff --git a/third_party/blink/public/mojom/renderer_preferences.mojom b/third_party/blink/public/mojom/renderer_preferences.mojom index 487391f6..ec41e11 100644 --- a/third_party/blink/public/mojom/renderer_preferences.mojom +++ b/third_party/blink/public/mojom/renderer_preferences.mojom
@@ -40,7 +40,7 @@ // positions for glyphs. Currently only used by Linux. bool use_subpixel_positioning = false; - // The color of the focus ring. Currently only used on Linux. + // The color of the focus ring. uint32 focus_ring_color = 0xFFE59700; // The colors used in selection text. Currently only used on Linux and Ash.
diff --git a/third_party/blink/public/platform/web_url_response.h b/third_party/blink/public/platform/web_url_response.h index 500fa6e..5135156 100644 --- a/third_party/blink/public/platform/web_url_response.h +++ b/third_party/blink/public/platform/web_url_response.h
@@ -216,6 +216,7 @@ BLINK_PLATFORM_EXPORT void SetHasMajorCertificateErrors(bool); BLINK_PLATFORM_EXPORT void SetCTPolicyCompliance(net::ct::CTPolicyCompliance); BLINK_PLATFORM_EXPORT void SetIsLegacyTLSVersion(bool); + BLINK_PLATFORM_EXPORT void SetTimingAllowPassed(bool); BLINK_PLATFORM_EXPORT void SetSecurityStyle(SecurityStyle);
diff --git a/third_party/blink/renderer/bindings/core/v8/idl_types.h b/third_party/blink/renderer/bindings/core/v8/idl_types.h index cb2cb9a..3cc8a28 100644 --- a/third_party/blink/renderer/bindings/core/v8/idl_types.h +++ b/third_party/blink/renderer/bindings/core/v8/idl_types.h
@@ -80,6 +80,44 @@ using IDLStringTreatNullAsEmptyString = IDLStringBase<V8StringResourceMode::kTreatNullAsEmptyString>; +// Strings for the new bindings generator + +namespace bindings { + +enum class NativeValueTraitsStringConv { + kDefault, + kNullable, + kTreatNullAsEmptyString, +}; + +} // namespace bindings + +// ByteString +template <bindings::NativeValueTraitsStringConv mode> +struct IDLByteStringBaseV2 final : public IDLBaseHelper<String> {}; +using IDLByteStringV2 = + IDLByteStringBaseV2<bindings::NativeValueTraitsStringConv::kDefault>; +using IDLByteStringOrNullV2 = + IDLByteStringBaseV2<bindings::NativeValueTraitsStringConv::kNullable>; + +// DOMString +template <bindings::NativeValueTraitsStringConv mode> +struct IDLStringBaseV2 final : public IDLBaseHelper<String> {}; +using IDLStringV2 = + IDLStringBaseV2<bindings::NativeValueTraitsStringConv::kDefault>; +using IDLStringOrNullV2 = + IDLStringBaseV2<bindings::NativeValueTraitsStringConv::kNullable>; +using IDLStringTreatNullAsEmptyStringV2 = IDLStringBaseV2< + bindings::NativeValueTraitsStringConv::kTreatNullAsEmptyString>; + +// USVString +template <bindings::NativeValueTraitsStringConv mode> +struct IDLUSVStringBaseV2 final : public IDLBaseHelper<String> {}; +using IDLUSVStringV2 = + IDLUSVStringBaseV2<bindings::NativeValueTraitsStringConv::kDefault>; +using IDLUSVStringOrNullV2 = + IDLUSVStringBaseV2<bindings::NativeValueTraitsStringConv::kNullable>; + // Double struct IDLDouble final : public IDLBaseHelper<double> {}; struct IDLUnrestrictedDouble final : public IDLBaseHelper<double> {};
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h index 2a0c8ac9..e03b4ea 100644 --- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
@@ -341,6 +341,140 @@ static String NullValue() { return String(); } }; +// Strings for the new bindings generator + +namespace bindings { + +// ToBlinkString implements AtomicString- and String-specific conversions from +// v8::String. NativeValueTraitsStringAdapter helps select the best conversion. +// +// Example: +// void F(const AtomicString& s); +// void G(const String& s); +// +// const NativeValueTraitsStringAdapter& x = ...; +// F(x); // ToBlinkString<AtomicString> is used. +// G(x); // ToBlinkString<String> is used. +class NativeValueTraitsStringAdapter { + public: + NativeValueTraitsStringAdapter() = default; + NativeValueTraitsStringAdapter(const NativeValueTraitsStringAdapter&) = + default; + NativeValueTraitsStringAdapter(NativeValueTraitsStringAdapter&&) = default; + NativeValueTraitsStringAdapter(v8::Local<v8::String> value) + : v8_string_(value) {} + NativeValueTraitsStringAdapter(const String& value) : wtf_string_(value) {} + NativeValueTraitsStringAdapter(int32_t value) + : wtf_string_(ToBlinkString(value)) {} + + NativeValueTraitsStringAdapter& operator=( + const NativeValueTraitsStringAdapter&) = default; + NativeValueTraitsStringAdapter& operator=(NativeValueTraitsStringAdapter&&) = + default; + + operator String() const { return ToString<String>(); } + operator AtomicString() const { return ToString<AtomicString>(); } + + private: + template <class StringType> + StringType ToString() const { + if (LIKELY(!v8_string_.IsEmpty())) + return ToBlinkString<StringType>(v8_string_, kExternalize); + return StringType(wtf_string_); + } + + v8::Local<v8::String> v8_string_; + String wtf_string_; +}; + +} // namespace bindings + +template <bindings::NativeValueTraitsStringConv mode> +struct NativeValueTraits<IDLByteStringBaseV2<mode>> + : public NativeValueTraitsBase<IDLByteStringBaseV2<mode>> { + // http://heycam.github.io/webidl/#es-ByteString + static bindings::NativeValueTraitsStringAdapter NativeValue( + v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + if (value->IsString() and value.As<v8::String>()->ContainsOnlyOneByte()) + return bindings::NativeValueTraitsStringAdapter(value.As<v8::String>()); + if (value->IsInt32()) { + return bindings::NativeValueTraitsStringAdapter( + value.As<v8::Int32>()->Value()); + } + + if (mode == bindings::NativeValueTraitsStringConv::kNullable) { + if (value->IsNullOrUndefined()) + return bindings::NativeValueTraitsStringAdapter(); + } + + v8::TryCatch try_catch(isolate); + v8::Local<v8::String> v8_string; + if (!value->ToString(isolate->GetCurrentContext()).ToLocal(&v8_string)) { + exception_state.RethrowV8Exception(try_catch.Exception()); + return bindings::NativeValueTraitsStringAdapter(); + } + if (!v8_string->ContainsOnlyOneByte()) { + exception_state.ThrowTypeError( + "String contains non ISO-8859-1 code point."); + return bindings::NativeValueTraitsStringAdapter(); + } + return bindings::NativeValueTraitsStringAdapter(v8_string); + } +}; + +template <bindings::NativeValueTraitsStringConv mode> +struct NativeValueTraits<IDLStringBaseV2<mode>> + : public NativeValueTraitsBase<IDLStringBaseV2<mode>> { + // https://heycam.github.io/webidl/#es-DOMString + static bindings::NativeValueTraitsStringAdapter NativeValue( + v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + if (value->IsString()) + return bindings::NativeValueTraitsStringAdapter(value.As<v8::String>()); + if (value->IsInt32()) { + return bindings::NativeValueTraitsStringAdapter( + value.As<v8::Int32>()->Value()); + } + + if (mode == bindings::NativeValueTraitsStringConv::kNullable) { + if (value->IsNullOrUndefined()) + return bindings::NativeValueTraitsStringAdapter(); + } + if (mode == + bindings::NativeValueTraitsStringConv::kTreatNullAsEmptyString) { + if (value->IsNull()) + return bindings::NativeValueTraitsStringAdapter(g_empty_string); + } + + v8::TryCatch try_catch(isolate); + v8::Local<v8::String> v8_string; + if (!value->ToString(isolate->GetCurrentContext()).ToLocal(&v8_string)) { + exception_state.RethrowV8Exception(try_catch.Exception()); + return bindings::NativeValueTraitsStringAdapter(); + } + return bindings::NativeValueTraitsStringAdapter(v8_string); + } +}; + +template <bindings::NativeValueTraitsStringConv mode> +struct NativeValueTraits<IDLUSVStringBaseV2<mode>> + : public NativeValueTraitsBase<IDLUSVStringBaseV2<mode>> { + // http://heycam.github.io/webidl/#es-USVString + static String NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + String string = NativeValueTraits<IDLStringBaseV2<mode>>::NativeValue( + isolate, value, exception_state); + if (exception_state.HadException()) + return String(); + + return ReplaceUnmatchedSurrogates(string); + } +}; + // Floats and doubles template <> struct CORE_EXPORT NativeValueTraits<IDLDouble>
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py index 2955445..839981fc 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
@@ -150,13 +150,12 @@ "ScriptPromise", ref_fmt="{}&", const_ref_fmt="const {}&") if real_type.is_union: - def_obj = real_type.union_definition_object - blink_impl_type = blink_class_name(def_obj) + blink_impl_type = blink_class_name(real_type.union_definition_object) return TypeInfo( blink_impl_type, ref_fmt="{}&", const_ref_fmt="const {}&", - is_nullable=def_obj.does_include_nullable_type) + is_nullable=True) if real_type.is_nullable: inner_type = blink_type_info(real_type.inner_type) @@ -176,10 +175,13 @@ real_type = idl_type.unwrap(typedef=True) - if (real_type.is_boolean or real_type.is_numeric or real_type.is_string - or real_type.is_any or real_type.is_object): + if (real_type.is_boolean or real_type.is_numeric or real_type.is_any + or real_type.is_object): return "IDL{}".format(real_type.type_name) + if real_type.unwrap(nullable=True).is_string: + return "IDL{}V2".format(real_type.type_name) + if real_type.is_symbol: assert False, "Blink does not support/accept IDL symbol type." @@ -207,6 +209,8 @@ if real_type.is_nullable: return "IDLNullable<{}>".format(native_value_tag(real_type.inner_type)) + assert False + def make_default_value_expr(idl_type, default_value): """ @@ -239,6 +243,9 @@ elif type_info.value_t == "ScriptValue": initializer = None # ScriptValue::IsEmpty() by default assignment_value = "ScriptValue()" + elif idl_type.unwrap().is_union: + initializer = None # <union_type>::IsNull() by default + assignment_value = "{}()".format(type_info.value_t) else: assert not type_info.is_nullable initializer = None # !base::Optional::has_value() by default
diff --git a/third_party/blink/renderer/build/scripts/core/css/css_properties.py b/third_party/blink/renderer/build/scripts/core/css/css_properties.py index b6b40d0d..5967df70 100755 --- a/third_party/blink/renderer/build/scripts/core/css/css_properties.py +++ b/third_party/blink/renderer/build/scripts/core/css/css_properties.py
@@ -54,6 +54,18 @@ if property_to_check['alias_for']: assert not property_to_check['is_internal'], \ 'Internal aliases is not supported' + if property_to_check['valid_for_first_letter']: + assert not property_to_check['longhands'], \ + 'Shorthand %s should not be marked as valid_for_first_letter' % \ + property_to_check['name'] + if property_to_check['valid_for_cue']: + assert not property_to_check['longhands'], \ + 'Shorthand %s should not be marked as valid_for_cue' % \ + property_to_check['name'] + if property_to_check['valid_for_marker']: + assert not property_to_check['longhands'], \ + 'Shorthand %s should not be marked as valid_for_marker' % \ + property_to_check['name'] class CSSProperties(object):
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl index 20d6d09..3d46184 100644 --- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl +++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl
@@ -42,6 +42,9 @@ (property.affected_by_forced_colors and 'kIsAffectedByForcedColors' or ''), (property.ua and 'kUA' or ''), (property.is_animation_property and 'kAnimation' or ''), + (property.valid_for_first_letter and 'kValidForFirstLetter' or ''), + (property.valid_for_cue and 'kValidForCue' or ''), + (property.valid_for_marker and 'kValidForMarker' or ''), ] | reject('==', '') | join(' | ') %} {% set ctor_args = (not is_alias and [property_id, flags, separator] or []) %} // {{property.name}}
diff --git a/third_party/blink/renderer/core/DEPS b/third_party/blink/renderer/core/DEPS index 5c38eb42..d3d2c29 100644 --- a/third_party/blink/renderer/core/DEPS +++ b/third_party/blink/renderer/core/DEPS
@@ -134,5 +134,6 @@ ], "document.cc" : [ "+net/base/registry_controlled_domains/registry_controlled_domain.h", - ] + ], + "(computed_style|computed_style_test)\.cc" : [ "+ui/base/ui_base_features.h" ] }
diff --git a/third_party/blink/renderer/core/css/css_gradient_value.cc b/third_party/blink/renderer/core/css/css_gradient_value.cc index e4b4c49..13d416e 100644 --- a/third_party/blink/renderer/core/css/css_gradient_value.cc +++ b/third_party/blink/renderer/core/css/css_gradient_value.cc
@@ -48,6 +48,7 @@ #include "third_party/blink/renderer/platform/graphics/gradient_generated_image.h" #include "third_party/blink/renderer/platform/graphics/image.h" #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" +#include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -1522,7 +1523,7 @@ CSSConicGradientValue* CSSConicGradientValue::ComputedCSSValue( const ComputedStyle& style, bool allow_visited_style) { - CSSConicGradientValue* result = CSSConicGradientValue::Create( + auto* result = MakeGarbageCollected<CSSConicGradientValue>( x_, y_, from_angle_, repeating_ ? kRepeating : kNonRepeating); result->AddComputedStops(style, allow_visited_style, stops_); return result;
diff --git a/third_party/blink/renderer/core/css/css_gradient_value.h b/third_party/blink/renderer/core/css/css_gradient_value.h index 6976a76b..6596e0e0 100644 --- a/third_party/blink/renderer/core/css/css_gradient_value.h +++ b/third_party/blink/renderer/core/css/css_gradient_value.h
@@ -305,14 +305,6 @@ class CSSConicGradientValue final : public CSSGradientValue { public: - static CSSConicGradientValue* Create(const CSSValue* x, - const CSSValue* y, - const CSSPrimitiveValue* from_angle, - CSSGradientRepeat repeat) { - return MakeGarbageCollected<CSSConicGradientValue>(x, y, from_angle, - repeat); - } - CSSConicGradientValue(const CSSValue* x, const CSSValue* y, const CSSPrimitiveValue* from_angle,
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 index 9beb4c6..f4e2cfdb2 100644 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -443,6 +443,29 @@ valid_type: "str", }, + // - valid_for_first_letter: true + // + // https://drafts.csswg.org/css-pseudo-4/#first-letter-styling + valid_for_first_letter: { + default: false, + valid_type: "bool", + }, + + // - valid_for_cue: true + // + // https://w3c.github.io/webvtt/#the-cue-pseudo-element + valid_for_cue: { + default: false, + valid_type: "bool", + }, + + // - valid_for_marker: true + // + // https://drafts.csswg.org/css-pseudo-4/#marker-pseudo + valid_for_marker: { + default: false, + valid_type: "bool", + }, }, // Members in the data objects should appear in the same order as in the @@ -637,6 +660,9 @@ keywords: ["currentcolor"], typedom_types: ["Keyword"], affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "direction", @@ -651,6 +677,7 @@ type_name: "TextDirection", style_builder_custom_functions: ["value"], priority: "High", + valid_for_marker: true, }, { name: "font-family", @@ -662,6 +689,9 @@ type_name: "FontDescription::FamilyDescription", converter: "ConvertFontFamily", priority: "High", + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "font-kerning", @@ -673,6 +703,8 @@ priority: "High", keywords: ["auto", "normal", "none"], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-optical-sizing", @@ -683,7 +715,9 @@ type_name: "OpticalSizing", priority: "High", keywords: ["auto", "none"], - typedom_types: ["Keyword"] + typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-size", @@ -696,7 +730,10 @@ converter: "ConvertFontSize", priority: "High", keywords: ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "larger", "smaller", "-webkit-xxx-large"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "font-size-adjust", @@ -709,7 +746,9 @@ converter: "ConvertFontSizeAdjust", priority: "High", keywords: ["none"], - typedom_types: ["Keyword", "Number"] + typedom_types: ["Keyword", "Number"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-stretch", @@ -724,7 +763,10 @@ "normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" ], - typedom_types: ["Keyword", "Percentage"] + typedom_types: ["Keyword", "Percentage"], + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "font-style", @@ -737,6 +779,9 @@ priority: "High", keywords: ["normal", "italic", "oblique"], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "font-variant-ligatures", @@ -754,6 +799,8 @@ "no-contextual" ], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-variant-caps", @@ -768,6 +815,8 @@ "all-petite-caps", "unicase", "titling-caps" ], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-variant-east-asian", @@ -782,6 +831,8 @@ "traditional", "full-width", "proportional-width", "ruby" ], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-variant-numeric", @@ -797,6 +848,8 @@ "slashed-zero" ], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-weight", @@ -809,7 +862,10 @@ converter: "ConvertFontWeight", priority: "High", keywords: ["normal", "bold", "bolder", "lighter"], - typedom_types: ["Keyword", "Number"] + typedom_types: ["Keyword", "Number"], + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "font-feature-settings", @@ -822,6 +878,8 @@ priority: "High", keywords: ["normal"], typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_marker: true, }, { name: "font-variation-settings", @@ -833,7 +891,10 @@ converter: "ConvertFontVariationSettings", priority: "High", keywords: ["normal"], - typedom_types: ["Keyword"] + typedom_types: ["Keyword"], + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "-webkit-font-smoothing", @@ -842,6 +903,7 @@ font: true, type_name: "FontSmoothingMode", priority: "High", + valid_for_first_letter: true, }, { name: "forced-color-adjust", @@ -1000,6 +1062,8 @@ style_builder_template_args: { fill_type: "Attachment", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-blend-mode", @@ -1016,6 +1080,7 @@ fill_type: "BlendMode", fill_type_getter: "GetBlendMode", }, + valid_for_first_letter: true, }, { name: "background-clip", @@ -1027,6 +1092,8 @@ style_builder_template_args: { fill_type: "Clip", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-color", @@ -1046,6 +1113,8 @@ initial_color: "ComputedStyleInitialValues::InitialBackgroundColor", }, affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-image", @@ -1059,6 +1128,8 @@ fill_type: "Image", fill_type_getter: "GetImage", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-origin", @@ -1070,6 +1141,8 @@ style_builder_template_args: { fill_type: "Origin", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-position-x", @@ -1079,6 +1152,8 @@ style_builder_template_args: { fill_type: "PositionX", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-position-y", @@ -1088,6 +1163,8 @@ style_builder_template_args: { fill_type: "PositionY", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-repeat-x", @@ -1095,6 +1172,8 @@ style_builder_template_args: { fill_type: "RepeatX", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-repeat-y", @@ -1102,6 +1181,8 @@ style_builder_template_args: { fill_type: "RepeatY", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "background-size", @@ -1114,6 +1195,8 @@ style_builder_template_args: { fill_type: "Size", }, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "baseline-shift", @@ -1140,6 +1223,7 @@ converter: "ConvertStyleColor", style_builder_template: "color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "border-bottom-left-radius", @@ -1152,6 +1236,7 @@ type_name: "LengthSize", converter: "ConvertRadius", typedom_types: ["Length", "Percentage"], + valid_for_first_letter: true, }, { name: "border-bottom-right-radius", @@ -1164,6 +1249,7 @@ type_name: "LengthSize", converter: "ConvertRadius", typedom_types: ["Length", "Percentage"], + valid_for_first_letter: true, }, { name: "border-bottom-style", @@ -1178,6 +1264,7 @@ typedom_types: ["Keyword"], default_value: "none", type_name: "EBorderStyle", + valid_for_first_letter: true, }, { name: "border-bottom-width", @@ -1193,6 +1280,7 @@ type_name: "LayoutUnit", computed_style_custom_functions: ["getter", "setter"], converter: "ConvertBorderWidth", + valid_for_first_letter: true, }, { name: "border-collapse", @@ -1214,6 +1302,7 @@ style_builder_template_args: { modifier_type: "Outset", }, + valid_for_first_letter: true, }, { name: "border-image-repeat", @@ -1225,6 +1314,7 @@ style_builder_template_args: { modifier_type: "Repeat", }, + valid_for_first_letter: true, }, { name: "border-image-slice", @@ -1236,6 +1326,7 @@ style_builder_template_args: { modifier_type: "Slice", }, + valid_for_first_letter: true, }, { name: "border-image-source", @@ -1245,6 +1336,7 @@ keywords: ["none"], typedom_types: ["Keyword", "Image"], style_builder_custom_functions: ["value"], + valid_for_first_letter: true, }, { name: "border-image-width", @@ -1257,6 +1349,7 @@ style_builder_template_args: { modifier_type: "Width", }, + valid_for_first_letter: true, }, { name: "border-left-color", @@ -1274,6 +1367,7 @@ converter: "ConvertStyleColor", style_builder_template: "color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "border-left-style", @@ -1288,6 +1382,7 @@ typedom_types: ["Keyword"], default_value: "none", type_name: "EBorderStyle", + valid_for_first_letter: true, }, { name: "border-left-width", @@ -1303,6 +1398,7 @@ type_name: "LayoutUnit", computed_style_custom_functions: ["getter", "setter"], converter: "ConvertBorderWidth", + valid_for_first_letter: true, }, { name: "border-right-color", @@ -1320,6 +1416,7 @@ converter: "ConvertStyleColor", style_builder_template: "color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "border-right-style", @@ -1334,6 +1431,7 @@ typedom_types: ["Keyword"], default_value: "none", type_name: "EBorderStyle", + valid_for_first_letter: true, }, { name: "border-right-width", @@ -1349,6 +1447,7 @@ type_name: "LayoutUnit", computed_style_custom_functions: ["getter", "setter"], converter: "ConvertBorderWidth", + valid_for_first_letter: true, }, { name: "border-top-color", @@ -1366,6 +1465,7 @@ converter: "ConvertStyleColor", style_builder_template: "color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "border-top-left-radius", @@ -1378,6 +1478,7 @@ type_name: "LengthSize", converter: "ConvertRadius", typedom_types: ["Length", "Percentage"], + valid_for_first_letter: true, }, { name: "border-top-right-radius", @@ -1390,6 +1491,7 @@ type_name: "LengthSize", converter: "ConvertRadius", typedom_types: ["Length", "Percentage"], + valid_for_first_letter: true, }, { name: "border-top-style", @@ -1404,6 +1506,7 @@ typedom_types: ["Keyword"], default_value: "none", type_name: "EBorderStyle", + valid_for_first_letter: true, }, { name: "border-top-width", @@ -1419,6 +1522,7 @@ type_name: "LayoutUnit", computed_style_custom_functions: ["getter", "setter"], converter: "ConvertBorderWidth", + valid_for_first_letter: true, }, { name: "bottom", @@ -1447,6 +1551,7 @@ keywords: ["none"], typedom_types: ["Keyword"], affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "box-sizing", @@ -1643,6 +1748,7 @@ type_name: "ContentData", computed_style_custom_functions: ["getter", "setter"], style_builder_custom_functions: ["initial", "inherit", "value"], + valid_for_marker: true, }, { name: "counter-increment", @@ -1843,6 +1949,7 @@ default_value: "none", name_for_methods: "Floating", type_name: "EFloat", + valid_for_first_letter: true, }, { name: "flood-color", @@ -2146,7 +2253,8 @@ inherited: true, converter: "ConvertSpacing", keywords: ["normal"], - typedom_types: ["Keyword", "Length"] + typedom_types: ["Keyword", "Length"], + valid_for_first_letter: true, }, { name: "lighting-color", @@ -2169,7 +2277,9 @@ computed_style_custom_functions: ["getter"], converter: "ConvertLineHeight", keywords: ["normal"], - typedom_types: ["Keyword", "Length", "Number", "Percentage"] + typedom_types: ["Keyword", "Length", "Number", "Percentage"], + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "line-height-step", @@ -2242,7 +2352,8 @@ converter: "ConvertQuirkyLength", computed_style_custom_functions: ["setter"], keywords: ["auto"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "margin-left", @@ -2256,7 +2367,8 @@ converter: "ConvertQuirkyLength", computed_style_custom_functions: ["setter"], keywords: ["auto"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "margin-right", @@ -2270,7 +2382,8 @@ converter: "ConvertQuirkyLength", computed_style_custom_functions: ["setter"], keywords: ["auto"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "margin-top", @@ -2284,7 +2397,8 @@ converter: "ConvertQuirkyLength", computed_style_custom_functions: ["setter"], keywords: ["auto"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "marker-end", @@ -2502,7 +2616,9 @@ default_value: "1.0", type_name: "float", computed_style_custom_functions: ["setter"], - typedom_types: ["Number"] + typedom_types: ["Number"], + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "order", @@ -2542,6 +2658,7 @@ converter: "ConvertStyleColor", style_builder_template: "color", affected_by_forced_colors: true, + valid_for_cue: true, }, { name: "outline-offset", @@ -2554,6 +2671,7 @@ computed_style_custom_functions: ["getter"], converter: "ConvertComputedLength<int>", typedom_types: ["Length"], + valid_for_cue: true, }, { name: "outline-style", @@ -2568,6 +2686,7 @@ default_value: "none", type_name: "EBorderStyle", style_builder_custom_functions: ["initial", "inherit", "value"], + valid_for_cue: true, }, { name: "outline-width", @@ -2582,6 +2701,7 @@ converter: "ConvertLineWidth<unsigned short>", keywords: ["thin", "medium", "thick"], typedom_types: ["Keyword", "Length"], + valid_for_cue: true, }, { name: "overflow-anchor", @@ -2689,7 +2809,8 @@ default_value: "Length::Fixed()", converter: "ConvertLength", computed_style_custom_functions: ["setter"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "padding-left", @@ -2702,7 +2823,8 @@ default_value: "Length::Fixed()", converter: "ConvertLength", computed_style_custom_functions: ["setter"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "padding-right", @@ -2715,7 +2837,8 @@ default_value: "Length::Fixed()", converter: "ConvertLength", computed_style_custom_functions: ["setter"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "padding-top", @@ -2728,7 +2851,8 @@ default_value: "Length::Fixed()", converter: "ConvertLength", computed_style_custom_functions: ["setter"], - typedom_types: ["Keyword", "Length", "Percentage"] + typedom_types: ["Keyword", "Length", "Percentage"], + valid_for_first_letter: true, }, { name: "paint-order", @@ -3327,6 +3451,7 @@ typedom_types: ["Keyword"], default_value: "none", name_for_methods: "TextCombine", + valid_for_marker: true, }, { name: "text-decoration-color", @@ -3342,6 +3467,8 @@ converter: "ConvertStyleColor", style_builder_template: "color", affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "text-decoration-line", @@ -3354,6 +3481,8 @@ name_for_methods: "TextDecoration", type_name: "TextDecoration", converter: "ConvertFlags<TextDecoration>", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "text-decoration-skip-ink", @@ -3364,6 +3493,8 @@ keywords: ["none", "auto"], typedom_types: ["Keyword"], default_value: "auto", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "text-decoration-style", @@ -3373,6 +3504,8 @@ keywords: ["solid", "double", "dotted", "dashed", "wavy"], typedom_types: ["Keyword"], default_value: "solid", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "text-indent", @@ -3397,7 +3530,8 @@ default_value: "auto", getter: "GetTextJustify", type_name: "TextJustify", - typedom_types: ["Keyword"] + typedom_types: ["Keyword"], + valid_for_first_letter: true, }, { name: "text-overflow", @@ -3423,6 +3557,8 @@ keywords: ["none"], typedom_types: ["Keyword"], affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "text-size-adjust", @@ -3448,6 +3584,7 @@ keywords: ["capitalize", "uppercase", "lowercase", "none"], typedom_types: ["Keyword"], default_value: "none", + valid_for_first_letter: true, }, { name: "text-underline-position", @@ -3462,6 +3599,7 @@ converter: "ConvertTextUnderlinePosition", keywords: ["auto", "under", "left", "right"], typedom_types: ["Keyword"], + valid_for_first_letter: true, }, { name: "top", @@ -3591,6 +3729,7 @@ typedom_types: ["Keyword"], default_value: "normal", type_name: "UnicodeBidi", + valid_for_marker: true, }, { name: "vector-effect", @@ -3606,6 +3745,7 @@ style_builder_custom_functions: ["inherit", "value"], typedom_types: ["Keyword", "Length", "Percentage"], keywords: ["baseline", "sub", "super", "text-top", "text-bottom", "middle"], + valid_for_first_letter: true, }, { name: "visibility", @@ -3617,6 +3757,8 @@ keywords: ["visible", "hidden", "collapse"], typedom_types: ["Keyword"], default_value: "visible", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "x", @@ -3665,13 +3807,15 @@ name_for_methods: "HorizontalBorderSpacing", type_name: "short", converter: "ConvertComputedLength<short>", + valid_for_first_letter: true, }, { name: "-webkit-border-image", property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], style_builder_custom_functions: ["value"], slots: ["border-image-outset", "border-image-repeat", "border-image-slice", - "border-image-source", "border-image-width"] + "border-image-source", "border-image-width"], + valid_for_first_letter: true, }, { name: "-webkit-border-vertical-spacing", @@ -3684,6 +3828,7 @@ name_for_methods: "VerticalBorderSpacing", type_name: "short", converter: "ConvertComputedLength<short>", + valid_for_first_letter: true, }, // For valid values of box-align see // http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#alignment @@ -4221,6 +4366,8 @@ ], typedom_types: ["Keyword"], default_value: "normal", + valid_for_cue: true, + valid_for_marker: true, }, { name: "widows", @@ -4274,7 +4421,8 @@ converter: "ConvertSpacing", keywords: ["normal"], typedom_types: ["normal"], - typedom_types: ["Keyword", "Length"] + typedom_types: ["Keyword", "Length"], + valid_for_first_letter: true, }, { name: "z-index", @@ -4360,7 +4508,8 @@ physical_group: "margin", }, typedom_types: ["Length", "Percentage"], - keywords: ["auto"] + keywords: ["auto"], + valid_for_first_letter: true, }, { name: "margin-inline-end", @@ -4371,7 +4520,8 @@ physical_group: "margin", }, typedom_types: ["Length", "Percentage"], - keywords: ["auto"] + keywords: ["auto"], + valid_for_first_letter: true, }, { name: "margin-block-start", @@ -4382,7 +4532,8 @@ physical_group: "margin", }, typedom_types: ["Length", "Percentage"], - keywords: ["auto"] + keywords: ["auto"], + valid_for_first_letter: true, }, { name: "margin-block-end", @@ -4393,7 +4544,8 @@ physical_group: "margin", }, typedom_types: ["Length", "Percentage"], - keywords: ["auto"] + keywords: ["auto"], + valid_for_first_letter: true, }, { name: "padding-inline-start", @@ -4442,6 +4594,7 @@ resolver: "inline-start", physical_group: "border-width", }, + valid_for_first_letter: true, }, { name: "border-inline-start-style", @@ -4449,6 +4602,7 @@ resolver: "inline-start", physical_group: "border-style", }, + valid_for_first_letter: true, }, { name: "border-inline-start-color", @@ -4457,6 +4611,7 @@ resolver: "inline-start", physical_group: "border-color", }, + valid_for_first_letter: true, }, { name: "border-inline-end-width", @@ -4465,6 +4620,7 @@ resolver: "inline-end", physical_group: "border-width", }, + valid_for_first_letter: true, }, { name: "border-inline-end-style", @@ -4472,6 +4628,7 @@ resolver: "inline-end", physical_group: "border-style", }, + valid_for_first_letter: true, }, { name: "border-inline-end-color", @@ -4480,6 +4637,7 @@ resolver: "inline-end", physical_group: "border-color", }, + valid_for_first_letter: true, }, { name: "border-block-start-width", @@ -4488,6 +4646,7 @@ resolver: "block-start", physical_group: "border-width", }, + valid_for_first_letter: true, }, { name: "border-block-start-style", @@ -4495,6 +4654,7 @@ resolver: "block-start", physical_group: "border-style", }, + valid_for_first_letter: true, }, { name: "border-block-start-color", @@ -4503,6 +4663,7 @@ resolver: "block-start", physical_group: "border-color", }, + valid_for_first_letter: true, }, { name: "border-block-end-width", @@ -4511,6 +4672,7 @@ resolver: "block-end", physical_group: "border-width", }, + valid_for_first_letter: true, }, { name: "border-block-end-style", @@ -4518,6 +4680,7 @@ resolver: "block-end", physical_group: "border-style", }, + valid_for_first_letter: true, }, { name: "border-block-end-color", @@ -4526,6 +4689,7 @@ resolver: "block-end", physical_group: "border-color", }, + valid_for_first_letter: true, }, { name: "inset-inline-start", @@ -5331,6 +5495,9 @@ style_builder_custom_functions: ["initial", "inherit", "value"], priority: "High", affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, + valid_for_marker: true, }, { name: "-internal-visited-caret-color", @@ -5379,6 +5546,8 @@ initial_color: "ComputedStyleInitialValues::InitialBackgroundColor", }, affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-visited-border-left-color", @@ -5394,6 +5563,7 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-visited-border-right-color", @@ -5409,6 +5579,7 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-visited-border-top-color", @@ -5424,6 +5595,7 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-visited-border-bottom-color", @@ -5439,6 +5611,7 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-visited-border-inline-start-color", @@ -5448,6 +5621,7 @@ resolver: "inline-start", physical_group: "visited-border-color", }, + valid_for_first_letter: true, }, { name: "-internal-visited-border-inline-end-color", @@ -5457,6 +5631,7 @@ resolver: "inline-end", physical_group: "visited-border-color", }, + valid_for_first_letter: true, }, { name: "-internal-visited-border-block-start-color", @@ -5466,6 +5641,7 @@ resolver: "block-start", physical_group: "visited-border-color", }, + valid_for_first_letter: true, }, { name: "-internal-visited-border-block-end-color", @@ -5475,6 +5651,7 @@ resolver: "block-end", physical_group: "visited-border-color", }, + valid_for_first_letter: true, }, { name: "-internal-visited-fill", @@ -5501,6 +5678,7 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_cue: true, }, { name: "-internal-visited-stroke", @@ -5527,6 +5705,8 @@ converter: "ConvertStyleColor", style_builder_template: "visited_color", affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-visited-text-emphasis-color", @@ -5602,6 +5782,8 @@ fill_type: "Attachment", }, ua_property_for: "background-attachment", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-blend-mode", @@ -5611,6 +5793,7 @@ fill_type_getter: "GetBlendMode", }, ua_property_for: "background-blend-mode", + valid_for_first_letter: true, }, { name: "-internal-ua-background-clip", @@ -5619,6 +5802,8 @@ fill_type: "Clip", }, ua_property_for: "background-clip", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-color", @@ -5630,6 +5815,8 @@ }, ua_property_for: "background-color", affected_by_forced_colors: true, + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-image", @@ -5639,6 +5826,8 @@ fill_type_getter: "GetImage", }, ua_property_for: "background-image", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-origin", @@ -5647,6 +5836,8 @@ fill_type: "Origin", }, ua_property_for: "background-origin", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-position-x", @@ -5655,6 +5846,8 @@ fill_type: "PositionX", }, ua_property_for: "background-position-x", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-position-y", @@ -5663,6 +5856,8 @@ fill_type: "PositionY", }, ua_property_for: "background-position-y", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-background-size", @@ -5671,6 +5866,8 @@ fill_type: "Size", }, ua_property_for: "background-size", + valid_for_first_letter: true, + valid_for_cue: true, }, { name: "-internal-ua-border-bottom-color", @@ -5679,6 +5876,7 @@ style_builder_template: "color", ua_property_for: "border-bottom-color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-ua-border-left-color", @@ -5687,6 +5885,7 @@ style_builder_template: "color", ua_property_for: "border-left-color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-ua-border-right-color", @@ -5695,6 +5894,7 @@ style_builder_template: "color", ua_property_for: "border-right-color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-ua-border-top-color", @@ -5703,78 +5903,91 @@ style_builder_template: "color", ua_property_for: "border-top-color", affected_by_forced_colors: true, + valid_for_first_letter: true, }, { name: "-internal-ua-border-bottom-style", name_for_methods: "BorderBottomStyle", type_name: "EBorderStyle", ua_property_for: "border-bottom-style", + valid_for_first_letter: true, }, { name: "-internal-ua-border-left-style", name_for_methods: "BorderLeftStyle", type_name: "EBorderStyle", ua_property_for: "border-left-style", + valid_for_first_letter: true, }, { name: "-internal-ua-border-right-style", name_for_methods: "BorderRightStyle", type_name: "EBorderStyle", ua_property_for: "border-right-style", + valid_for_first_letter: true, }, { name: "-internal-ua-border-top-style", name_for_methods: "BorderTopStyle", type_name: "EBorderStyle", ua_property_for: "border-top-style", + valid_for_first_letter: true, }, { name: "-internal-ua-border-bottom-width", name_for_methods: "BorderBottomWidth", converter: "ConvertBorderWidth", ua_property_for: "border-bottom-width", + valid_for_first_letter: true, }, { name: "-internal-ua-border-left-width", name_for_methods: "BorderLeftWidth", converter: "ConvertBorderWidth", ua_property_for: "border-left-width", + valid_for_first_letter: true, }, { name: "-internal-ua-border-right-width", name_for_methods: "BorderRightWidth", converter: "ConvertBorderWidth", ua_property_for: "border-right-width", + valid_for_first_letter: true, }, { name: "-internal-ua-border-top-width", name_for_methods: "BorderTopWidth", converter: "ConvertBorderWidth", ua_property_for: "border-top-width", + valid_for_first_letter: true, }, { name: "-internal-ua-border-top-left-radius", name_for_methods: "BorderTopLeftRadius", converter: "ConvertRadius", ua_property_for: "border-top-left-radius", + valid_for_first_letter: true, }, { name: "-internal-ua-border-top-right-radius", name_for_methods: "BorderTopRightRadius", converter: "ConvertRadius", ua_property_for: "border-top-right-radius", + valid_for_first_letter: true, }, { name: "-internal-ua-border-bottom-left-radius", name_for_methods: "BorderBottomLeftRadius", converter: "ConvertRadius", ua_property_for: "border-bottom-left-radius", + valid_for_first_letter: true, }, { name: "-internal-ua-border-bottom-right-radius", name_for_methods: "BorderBottomRightRadius", converter: "ConvertRadius", ua_property_for: "border-bottom-right-radius", + valid_for_first_letter: true, }, { name: "-internal-ua-border-image-outset", @@ -5783,6 +5996,7 @@ modifier_type: "Outset", }, ua_property_for: "border-image-outset", + valid_for_first_letter: true, }, { name: "-internal-ua-border-image-repeat", @@ -5791,6 +6005,7 @@ modifier_type: "Repeat", }, ua_property_for: "border-image-repeat", + valid_for_first_letter: true, }, { name: "-internal-ua-border-image-slice", @@ -5799,6 +6014,7 @@ modifier_type: "Slice", }, ua_property_for: "border-image-slice", + valid_for_first_letter: true, }, { name: "-internal-ua-border-image-source", @@ -5807,6 +6023,7 @@ modifier_type: "Source", }, ua_property_for: "border-image-source", + valid_for_first_letter: true, }, { name: "-internal-ua-border-image-width", @@ -5815,6 +6032,7 @@ modifier_type: "Width", }, ua_property_for: "border-image-width", + valid_for_first_letter: true, }, // Aliases; these map to the same CSSPropertyID @@ -6105,4 +6323,4 @@ alias_for: "overflow-wrap", }, ], -} +} \ No newline at end of file
diff --git a/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc b/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc index e5ec350..051b3073 100644 --- a/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc +++ b/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc
@@ -31,6 +31,7 @@ #include "third_party/blink/renderer/core/css/style_color.h" #include "third_party/blink/renderer/core/frame/web_feature.h" #include "third_party/blink/renderer/core/style_property_shorthand.h" +#include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" @@ -1601,7 +1602,7 @@ return nullptr; } - cssvalue::CSSGradientValue* result = cssvalue::CSSConicGradientValue::Create( + auto* result = MakeGarbageCollected<cssvalue::CSSConicGradientValue>( center_x, center_y, from_angle, repeating); return ConsumeGradientColorStops(args, context, result, ConsumeGradientAngleOrPercent)
diff --git a/third_party/blink/renderer/core/css/properties/css_property.h b/third_party/blink/renderer/core/css/properties/css_property.h index 33eec78..e626fe8 100644 --- a/third_party/blink/renderer/core/css/properties/css_property.h +++ b/third_party/blink/renderer/core/css/properties/css_property.h
@@ -53,6 +53,9 @@ bool IsAffectedByForcedColors() const { return flags_ & kIsAffectedByForcedColors; } + bool IsValidForFirstLetter() const { return flags_ & kValidForFirstLetter; } + bool IsValidForCue() const { return flags_ & kValidForCue; } + bool IsValidForMarker() const { return flags_ & kValidForMarker; } bool IsRepeated() const { return repetition_separator_ != '\0'; } char RepetitionSeparator() const { return repetition_separator_; } @@ -118,6 +121,12 @@ // Animation properties have this flag set. (I.e. longhands of the // 'animation' and 'transition' shorthands). kAnimation = 1 << 11, + // https://drafts.csswg.org/css-pseudo-4/#first-letter-styling + kValidForFirstLetter = 1 << 12, + // https://w3c.github.io/webvtt/#the-cue-pseudo-element + kValidForCue = 1 << 13, + // https://drafts.csswg.org/css-pseudo-4/#marker-pseudo + kValidForMarker = 1 << 14, }; constexpr CSSProperty(CSSPropertyID property_id,
diff --git a/third_party/blink/renderer/core/css/properties/longhands/variable.h b/third_party/blink/renderer/core/css/properties/longhands/variable.h index fd5cd2e..db5c776 100644 --- a/third_party/blink/renderer/core/css/properties/longhands/variable.h +++ b/third_party/blink/renderer/core/css/properties/longhands/variable.h
@@ -35,7 +35,8 @@ protected: constexpr Variable(bool inherited) : Longhand(CSSPropertyID::kVariable, - kProperty | (inherited ? kInherited : 0), + kProperty | (inherited ? kInherited : 0) | + kValidForFirstLetter | kValidForMarker, '\0') {} };
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc index 32ede28..0621f39 100644 --- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc +++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -604,8 +604,12 @@ if (should_be_invisible) { // Add containment to style if we're invisible. - auto contain = - style.Contain() | kContainsStyle | kContainsLayout | kContainsSize; + auto contain = style.Contain() | kContainsStyle | kContainsLayout; + // If we haven't activated, then we should also contain size. This means + // that if we are rendering the element's subtree (i.e. it is either + // unlocked or activated), then we do not have size containment. + if (!context->IsActivated()) + contain |= kContainsSize; style.SetContain(contain); // If we're unlocked and unactivated, then we should lock the context. Note
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc index 52edde4..14b5ab4 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1355,210 +1355,6 @@ } } -static inline bool IsValidCueStyleProperty(CSSPropertyID id) { - switch (id) { - case CSSPropertyID::kBackground: - case CSSPropertyID::kBackgroundAttachment: - case CSSPropertyID::kBackgroundClip: - case CSSPropertyID::kBackgroundColor: - case CSSPropertyID::kBackgroundImage: - case CSSPropertyID::kBackgroundOrigin: - case CSSPropertyID::kBackgroundPosition: - case CSSPropertyID::kBackgroundPositionX: - case CSSPropertyID::kBackgroundPositionY: - case CSSPropertyID::kBackgroundRepeat: - case CSSPropertyID::kBackgroundRepeatX: - case CSSPropertyID::kBackgroundRepeatY: - case CSSPropertyID::kBackgroundSize: - case CSSPropertyID::kColor: - case CSSPropertyID::kFont: - case CSSPropertyID::kFontFamily: - case CSSPropertyID::kFontSize: - case CSSPropertyID::kFontStretch: - case CSSPropertyID::kFontStyle: - case CSSPropertyID::kFontVariant: - case CSSPropertyID::kFontWeight: - case CSSPropertyID::kLineHeight: - case CSSPropertyID::kOpacity: - case CSSPropertyID::kOutline: - case CSSPropertyID::kOutlineColor: - case CSSPropertyID::kOutlineOffset: - case CSSPropertyID::kOutlineStyle: - case CSSPropertyID::kOutlineWidth: - case CSSPropertyID::kVisibility: - case CSSPropertyID::kWhiteSpace: - // FIXME: 'text-decoration' shorthand to be handled when available. - // See https://chromiumcodereview.appspot.com/19516002 for details. - case CSSPropertyID::kTextDecoration: - case CSSPropertyID::kTextShadow: - case CSSPropertyID::kBorderStyle: - return true; - case CSSPropertyID::kTextDecorationLine: - case CSSPropertyID::kTextDecorationStyle: - case CSSPropertyID::kTextDecorationColor: - case CSSPropertyID::kTextDecorationSkipInk: - return true; - case CSSPropertyID::kFontVariationSettings: - return true; - default: - break; - } - return false; -} - -static inline bool IsValidFirstLetterStyleProperty(CSSPropertyID id) { - switch (id) { - // Valid ::first-letter properties listed in spec: - // https://drafts.csswg.org/css-pseudo-4/#first-letter-styling - case CSSPropertyID::kBackgroundAttachment: - case CSSPropertyID::kBackgroundBlendMode: - case CSSPropertyID::kBackgroundClip: - case CSSPropertyID::kBackgroundColor: - case CSSPropertyID::kBackgroundImage: - case CSSPropertyID::kBackgroundOrigin: - case CSSPropertyID::kBackgroundPosition: - case CSSPropertyID::kBackgroundPositionX: - case CSSPropertyID::kBackgroundPositionY: - case CSSPropertyID::kBackgroundRepeat: - case CSSPropertyID::kBackgroundRepeatX: - case CSSPropertyID::kBackgroundRepeatY: - case CSSPropertyID::kBackgroundSize: - case CSSPropertyID::kBorderBlockEnd: - case CSSPropertyID::kBorderBlockEndColor: - case CSSPropertyID::kBorderBlockEndStyle: - case CSSPropertyID::kBorderBlockEndWidth: - case CSSPropertyID::kBorderBlockStart: - case CSSPropertyID::kBorderBlockStartColor: - case CSSPropertyID::kBorderBlockStartStyle: - case CSSPropertyID::kBorderBlockStartWidth: - case CSSPropertyID::kBorderBottomColor: - case CSSPropertyID::kBorderBottomLeftRadius: - case CSSPropertyID::kBorderBottomRightRadius: - case CSSPropertyID::kBorderBottomStyle: - case CSSPropertyID::kBorderBottomWidth: - case CSSPropertyID::kBorderImageOutset: - case CSSPropertyID::kBorderImageRepeat: - case CSSPropertyID::kBorderImageSlice: - case CSSPropertyID::kBorderImageSource: - case CSSPropertyID::kBorderImageWidth: - case CSSPropertyID::kBorderInlineEnd: - case CSSPropertyID::kBorderInlineEndColor: - case CSSPropertyID::kBorderInlineEndStyle: - case CSSPropertyID::kBorderInlineEndWidth: - case CSSPropertyID::kBorderInlineStart: - case CSSPropertyID::kBorderInlineStartColor: - case CSSPropertyID::kBorderInlineStartStyle: - case CSSPropertyID::kBorderInlineStartWidth: - case CSSPropertyID::kBorderLeftColor: - case CSSPropertyID::kBorderLeftStyle: - case CSSPropertyID::kBorderLeftWidth: - case CSSPropertyID::kBorderRightColor: - case CSSPropertyID::kBorderRightStyle: - case CSSPropertyID::kBorderRightWidth: - case CSSPropertyID::kBorderTopColor: - case CSSPropertyID::kBorderTopLeftRadius: - case CSSPropertyID::kBorderTopRightRadius: - case CSSPropertyID::kBorderTopStyle: - case CSSPropertyID::kBorderTopWidth: - case CSSPropertyID::kBoxShadow: - case CSSPropertyID::kColor: - case CSSPropertyID::kFloat: - case CSSPropertyID::kFontFamily: - case CSSPropertyID::kFontFeatureSettings: - case CSSPropertyID::kFontKerning: - case CSSPropertyID::kFontOpticalSizing: - case CSSPropertyID::kFontSize: - case CSSPropertyID::kFontSizeAdjust: - case CSSPropertyID::kFontStretch: - case CSSPropertyID::kFontStyle: - case CSSPropertyID::kFontVariant: - case CSSPropertyID::kFontVariantCaps: - case CSSPropertyID::kFontVariantLigatures: - case CSSPropertyID::kFontVariantNumeric: - case CSSPropertyID::kFontVariantEastAsian: - case CSSPropertyID::kFontVariationSettings: - case CSSPropertyID::kFontWeight: - case CSSPropertyID::kLetterSpacing: - case CSSPropertyID::kLineHeight: - case CSSPropertyID::kMarginBlockEnd: - case CSSPropertyID::kMarginBlockStart: - case CSSPropertyID::kMarginBottom: - case CSSPropertyID::kMarginInlineEnd: - case CSSPropertyID::kMarginInlineStart: - case CSSPropertyID::kMarginLeft: - case CSSPropertyID::kMarginRight: - case CSSPropertyID::kMarginTop: - case CSSPropertyID::kOpacity: - case CSSPropertyID::kPaddingBottom: - case CSSPropertyID::kPaddingLeft: - case CSSPropertyID::kPaddingRight: - case CSSPropertyID::kPaddingTop: - case CSSPropertyID::kTextDecorationColor: - case CSSPropertyID::kTextDecorationLine: - case CSSPropertyID::kTextDecorationStyle: - case CSSPropertyID::kTextDecorationSkipInk: - case CSSPropertyID::kTextJustify: - case CSSPropertyID::kTextShadow: - case CSSPropertyID::kTextTransform: - case CSSPropertyID::kTextUnderlinePosition: - case CSSPropertyID::kVerticalAlign: - case CSSPropertyID::kWebkitBorderHorizontalSpacing: - case CSSPropertyID::kWebkitBorderImage: - case CSSPropertyID::kWebkitBorderVerticalSpacing: - case CSSPropertyID::kWebkitFontSmoothing: - case CSSPropertyID::kWordSpacing: - return true; - - // Not directly specified in spec, but variables should be supported nearly - // anywhere. - case CSSPropertyID::kVariable: - // Properties that we currently support outside of spec. - case CSSPropertyID::kVisibility: - return true; - - default: - return false; - } -} - -static inline bool IsValidMarkerStyleProperty(CSSPropertyID id) { - switch (id) { - // Valid ::marker properties listed in spec: - // https://drafts.csswg.org/css-pseudo-4/#marker-pseudo - case CSSPropertyID::kColor: - case CSSPropertyID::kContent: - case CSSPropertyID::kDirection: - case CSSPropertyID::kFont: - case CSSPropertyID::kFontFamily: - case CSSPropertyID::kFontFeatureSettings: - case CSSPropertyID::kFontKerning: - case CSSPropertyID::kFontOpticalSizing: - case CSSPropertyID::kFontSize: - case CSSPropertyID::kFontSizeAdjust: - case CSSPropertyID::kFontStretch: - case CSSPropertyID::kFontStyle: - case CSSPropertyID::kFontVariant: - case CSSPropertyID::kFontVariantCaps: - case CSSPropertyID::kFontVariantEastAsian: - case CSSPropertyID::kFontVariantLigatures: - case CSSPropertyID::kFontVariantNumeric: - case CSSPropertyID::kFontVariationSettings: - case CSSPropertyID::kFontWeight: - case CSSPropertyID::kTextCombineUpright: - case CSSPropertyID::kUnicodeBidi: - case CSSPropertyID::kWhiteSpace: - return true; - - // Not directly specified in spec, but variables should be supported nearly - // anywhere. - case CSSPropertyID::kVariable: - return true; - - default: - return false; - } -} - static bool PassesPropertyFilter(ValidPropertyFilter valid_property_filter, CSSPropertyID property, const Document& document) { @@ -1566,11 +1362,11 @@ case ValidPropertyFilter::kNoFilter: return true; case ValidPropertyFilter::kFirstLetter: - return IsValidFirstLetterStyleProperty(property); + return CSSProperty::Get(property).IsValidForFirstLetter(); case ValidPropertyFilter::kCue: - return IsValidCueStyleProperty(property); + return CSSProperty::Get(property).IsValidForCue(); case ValidPropertyFilter::kMarker: - return IsValidMarkerStyleProperty(property); + return CSSProperty::Get(property).IsValidForMarker(); } NOTREACHED(); return true;
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc index 73ca0e9..8d1f32da8 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
@@ -120,8 +120,14 @@ return; } + // We require observation if we are viewport-activatable, and one of the + // following is true: + // 1. We're locked, which means that we need to know when to unlock the + // element + // 2. We're activated (in the CSS version), which means that we need to know + // when we stop intersecting the viewport so that we can re-lock. bool should_observe = - IsLocked() && + (IsLocked() || (!IsAttributeVersion(this) && IsActivated())) && IsActivatable(DisplayLockActivationReason::kViewportIntersection) && ConnectedToView(); if (should_observe && !is_observed_) { @@ -414,7 +420,16 @@ weak_factory_.GetWeakPtr(), WrapPersistent(activated_element))); StartCommit(); - is_activated_ = true; + + if (!IsAttributeVersion(this)) { + css_is_activated_ = true; + // Since size containment depends on the activatability state, we should + // invalidate the style for this element, so that the style adjuster can + // properly remove the containment. + element_->SetNeedsStyleRecalc( + kLocalStyleChange, + StyleChangeReasonForTracing::Create(style_change_reason::kDisplayLock)); + } // Since setting the attribute might trigger a commit if we are still locked, // we set it after we start the commit. @@ -423,11 +438,12 @@ } bool DisplayLockContext::IsActivated() const { - return is_activated_; + DCHECK(!IsAttributeVersion(this)); + return css_is_activated_; } void DisplayLockContext::ClearActivated() { - is_activated_ = false; + css_is_activated_ = false; } bool DisplayLockContext::ShouldCommitForActivation(
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.h b/third_party/blink/renderer/core/display_lock/display_lock_context.h index 684f696..2eb28949 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_context.h +++ b/third_party/blink/renderer/core/display_lock/display_lock_context.h
@@ -279,7 +279,7 @@ // Note that this returns true if there is no context at all, so in order to // check whether this is strictly an attribute version, as opposed to a null // context, one needs to compare context with nullptr first. - static bool IsAttributeVersion(DisplayLockContext* context) { + static bool IsAttributeVersion(const DisplayLockContext* context) { return !context || context->GetMethod() == DisplayLockContextCreateMethod::kAttribute; } @@ -434,7 +434,9 @@ uint16_t activatable_mask_ = static_cast<uint16_t>(DisplayLockActivationReason::kAny); - bool is_activated_ = false; + // State that tracks whether we've been activated. Note that this is only + // valid for CSS version of render-subtree. + bool css_is_activated_ = false; DisplayLockContextCreateMethod method_ = DisplayLockContextCreateMethod::kUnknown;
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index cfdcf697..7ea8d3e 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -8536,12 +8536,24 @@ void Document::ProcessDisplayLockActivationObservation( const HeapVector<Member<IntersectionObserverEntry>>& entries) { for (auto& entry : entries) { + auto* context = entry->target()->GetDisplayLockContext(); + DCHECK(context); if (entry->isIntersecting()) { - auto* context = entry->target()->GetDisplayLockContext(); - DCHECK(context); + if (!context->IsLocked()) + continue; DCHECK(context->ShouldCommitForActivation( DisplayLockActivationReason::kViewportIntersection)); context->CommitForActivationWithSignal(entry->target()); + } else if (!DisplayLockContext::IsAttributeVersion(context)) { + // In a CSS version, if we're not visible, but are observing viewport + // intersections, it means that we're either locked (in which case we + // should remain locked), or we've been activated (in which case we should + // relock). + DCHECK(context->IsLocked() || context->IsActivated()); + if (context->IsLocked()) + continue; + context->ClearActivated(); + context->StartAcquire(); } } }
diff --git a/third_party/blink/renderer/core/loader/threadable_loader.cc b/third_party/blink/renderer/core/loader/threadable_loader.cc index c760dc2..f0ef7382 100644 --- a/third_party/blink/renderer/core/loader/threadable_loader.cc +++ b/third_party/blink/renderer/core/loader/threadable_loader.cc
@@ -570,8 +570,7 @@ if (cors_flag_) { if (const auto error_status = cors::CheckAccess( - original_url, redirect_response.HttpStatusCode(), - redirect_response.HttpHeaderFields(), + original_url, redirect_response.HttpHeaderFields(), new_request.GetCredentialsMode(), *GetSecurityOrigin())) { DispatchDidFail(ResourceError(original_url, *error_status)); return false; @@ -751,14 +750,6 @@ return; } - base::Optional<network::mojom::CorsError> preflight_error = - cors::CheckPreflight(response.HttpStatusCode()); - if (preflight_error) { - HandlePreflightFailure(response.CurrentRequestUrl(), - network::CorsErrorStatus(*preflight_error)); - return; - } - base::Optional<network::CorsErrorStatus> error_status; if (actual_request_.IsExternalRequest()) { error_status = cors::CheckExternalPreflight(response.HttpHeaderFields()); @@ -860,8 +851,8 @@ if (cors_flag_) { base::Optional<network::CorsErrorStatus> access_error = cors::CheckAccess( - response.CurrentRequestUrl(), response.HttpStatusCode(), - response.HttpHeaderFields(), credentials_mode_, *GetSecurityOrigin()); + response.CurrentRequestUrl(), response.HttpHeaderFields(), + credentials_mode_, *GetSecurityOrigin()); if (access_error) { ReportResponseReceived(resource->InspectorId(), response); DispatchDidFail(
diff --git a/third_party/blink/renderer/core/loader/web_associated_url_loader_impl_test.cc b/third_party/blink/renderer/core/loader/web_associated_url_loader_impl_test.cc index 2fd0e74..551498e 100644 --- a/third_party/blink/renderer/core/loader/web_associated_url_loader_impl_test.cc +++ b/third_party/blink/renderer/core/loader/web_associated_url_loader_impl_test.cc
@@ -387,36 +387,6 @@ EXPECT_FALSE(did_receive_response_); } -// Test an unsuccessful cross-origin load using CORS. -TEST_F(WebAssociatedURLLoaderTest, - CrossOriginWithAccessControlFailureBadStatusCode) { - // This is cross-origin since the frame was loaded from www.test.com. - KURL url = - ToKURL("http://www.other.com/CrossOriginWithAccessControlFailure.html"); - WebURLRequest request(url); - request.SetMode(network::mojom::RequestMode::kCors); - request.SetCredentialsMode(network::mojom::CredentialsMode::kOmit); - - expected_response_ = WebURLResponse(); - expected_response_.SetMimeType("text/html"); - expected_response_.SetHttpStatusCode(0); - expected_response_.AddHttpHeaderField("access-control-allow-origin", "*"); - RegisterMockedURLLoadWithCustomResponse(url, expected_response_, - frame_file_path_); - - WebAssociatedURLLoaderOptions options; - expected_loader_ = CreateAssociatedURLLoader(options); - EXPECT_TRUE(expected_loader_); - expected_loader_->LoadAsynchronously(request, this); - - // Failure should not be reported synchronously. - EXPECT_FALSE(did_fail_); - // The loader needs to receive the response, before doing the CORS check. - ServeRequests(); - EXPECT_TRUE(did_fail_); - EXPECT_FALSE(did_receive_response_); -} - // Test a same-origin URL redirect and load. TEST_F(WebAssociatedURLLoaderTest, RedirectSuccess) { KURL url = ToKURL("http://www.test.com/RedirectSuccess.html");
diff --git a/third_party/blink/renderer/core/paint/DEPS b/third_party/blink/renderer/core/paint/DEPS index 9850ce0..323b7c0 100644 --- a/third_party/blink/renderer/core/paint/DEPS +++ b/third_party/blink/renderer/core/paint/DEPS
@@ -7,14 +7,14 @@ ] specific_include_rules = { - "(theme_painter|fallback_theme)\.cc": [ + "(theme_painter|fallback_theme|object_painter_base)\.cc": [ "+ui/native_theme/native_theme.h", "+ui/native_theme/native_theme_base.h", ], ".*test\.cc": [ "+base/test/trace_event_analyzer.h", ], - "(paint_layer_scrollable_area|theme_painter|theme_painter_default)\.cc": [ + "(object_painter_base|paint_layer_scrollable_area|theme_painter|theme_painter_default)\.cc": [ "+ui/base/ui_base_features.h", ], }
diff --git a/third_party/blink/renderer/core/paint/box_painter_base.cc b/third_party/blink/renderer/core/paint/box_painter_base.cc index 6abea27..93cafae 100644 --- a/third_party/blink/renderer/core/paint/box_painter_base.cc +++ b/third_party/blink/renderer/core/paint/box_painter_base.cc
@@ -376,13 +376,11 @@ FloatRect CorrectSrcRectForImageOrientation(BitmapImage* image, FloatRect original_rect) { ImageOrientation orientation = image->CurrentFrameOrientation(); - if (orientation != kDefaultImageOrientation) { - AffineTransform forward_map = - orientation.TransformFromDefault(original_rect.Size()); - AffineTransform inverse_map = forward_map.Inverse(); - return inverse_map.MapRect(original_rect); - } - return original_rect; + DCHECK(orientation != kDefaultImageOrientation); + AffineTransform forward_map = + orientation.TransformFromDefault(original_rect.Size()); + AffineTransform inverse_map = forward_map.Inverse(); + return inverse_map.MapRect(original_rect); } // The unsnapped_subset_size should be the target painting area implied by the @@ -441,7 +439,7 @@ // rect to be in the unrotated image space, but we have computed it here in // the rotated space in order to position and size the background. Undo the // src rect rotation if necessaary. - if (respect_orientation && image->IsBitmapImage()) { + if (respect_orientation && !image->HasDefaultOrientation()) { visible_src_rect = CorrectSrcRectForImageOrientation(ToBitmapImage(image), visible_src_rect); } @@ -559,6 +557,7 @@ !has_intrinsic_size ? image_tile.Size() : FloatSize(image->Size(info.respect_image_orientation)); + // Subset computation needs the same location as was used with // ComputePhaseForBackground above, but needs the unsnapped destination // size to correctly calculate sprite subsets in the presence of zoom. But if @@ -584,7 +583,7 @@ // to be in the unrotated image space, but we have computed it here in the // rotated space in order to position and size the background. Undo the src // rect rotation if necessaary. - if (info.respect_image_orientation && image->IsBitmapImage()) { + if (info.respect_image_orientation && !image->HasDefaultOrientation()) { src_rect = CorrectSrcRectForImageOrientation(ToBitmapImage(image), src_rect); }
diff --git a/third_party/blink/renderer/core/paint/image_element_timing.cc b/third_party/blink/renderer/core/paint/image_element_timing.cc index ac6ec504..001ad4c 100644 --- a/third_party/blink/renderer/core/paint/image_element_timing.cc +++ b/third_party/blink/renderer/core/paint/image_element_timing.cc
@@ -150,14 +150,8 @@ DCHECK(layout_object.GetDocument().GetSecurityOrigin()); // It's ok to expose rendering timestamp for data URIs so exclude those from // the Timing-Allow-Origin check. - bool response_tainting_not_basic = false; - bool tainted_origin_flag = false; if (!url.ProtocolIsData() && - !Performance::PassesTimingAllowCheck( - cached_image.GetResponse(), cached_image.GetResponse(), - *layout_object.GetDocument().GetSecurityOrigin(), - &layout_object.GetDocument(), &response_tainting_not_basic, - &tainted_origin_flag)) { + !cached_image.GetResponse().TimingAllowPassed()) { WindowPerformance* performance = DOMWindowPerformance::performance(*GetSupplementable()); if (performance) {
diff --git a/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator.cc b/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator.cc index d5ab889..5185e76 100644 --- a/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator.cc +++ b/third_party/blink/renderer/core/paint/largest_contentful_paint_calculator.cc
@@ -121,18 +121,8 @@ return; const KURL& url = cached_image->Url(); - auto* document = window_performance_->GetExecutionContext(); - bool expose_paint_time_to_api = true; - bool response_tainting_not_basic = false; - bool tainted_origin_flag = false; - if (!url.ProtocolIsData() && - (!document || - !Performance::PassesTimingAllowCheck( - cached_image->GetResponse(), cached_image->GetResponse(), - *document->GetSecurityOrigin(), document, - &response_tainting_not_basic, &tainted_origin_flag))) { - expose_paint_time_to_api = false; - } + bool expose_paint_time_to_api = + url.ProtocolIsData() || cached_image->GetResponse().TimingAllowPassed(); const String& image_url = url.ProtocolIsData() ? url.GetString().Left(ImageElementTiming::kInlineImageMaxChars)
diff --git a/third_party/blink/renderer/core/paint/object_painter_base.cc b/third_party/blink/renderer/core/paint/object_painter_base.cc index f165cee..19a8aaa89 100644 --- a/third_party/blink/renderer/core/paint/object_painter_base.cc +++ b/third_party/blink/renderer/core/paint/object_painter_base.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/core/paint/object_painter_base.h" +#include "base/optional.h" #include "third_party/blink/renderer/core/paint/box_border_painter.h" #include "third_party/blink/renderer/core/paint/paint_info.h" #include "third_party/blink/renderer/core/style/border_edge.h" @@ -12,6 +13,8 @@ #include "third_party/blink/renderer/platform/graphics/graphics_context.h" #include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h" #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" +#include "ui/base/ui_base_features.h" +#include "ui/native_theme/native_theme.h" namespace blink { @@ -486,6 +489,46 @@ FillQuad(graphics_context, quad, color, antialias); } +float GetFocusRingBorderRadius(const ComputedStyle& style) { + // Default style is border-radius equal to outline width. + float border_radius = style.GetOutlineStrokeWidthForFocusRing(); + + if (::features::IsFormControlsRefreshEnabled() && !style.HasAuthorBorder() && + style.HasEffectiveAppearance()) { + // For the elements that have not been styled and that have an appearance, + // the focus ring should use the same border radius as the one used for + // drawing the element. + base::Optional<ui::NativeTheme::Part> part; + switch (style.EffectiveAppearance()) { + case kCheckboxPart: + part = ui::NativeTheme::kCheckbox; + break; + case kRadioPart: + part = ui::NativeTheme::kRadio; + break; + case kPushButtonPart: + case kSquareButtonPart: + case kButtonPart: + part = ui::NativeTheme::kPushButton; + break; + case kTextFieldPart: + case kTextAreaPart: + case kSearchFieldPart: + part = ui::NativeTheme::kTextField; + break; + default: + break; + } + if (part) { + return ui::NativeTheme::GetInstanceForWeb()->GetBorderRadiusForPart( + part.value(), style.Width().GetFloatValue(), + style.Height().GetFloatValue(), style.EffectiveZoom()); + } + } + + return border_radius; +} + } // anonymous namespace void ObjectPainterBase::PaintOutlineRects( @@ -498,9 +541,16 @@ Color color = style.VisitedDependentColor(GetCSSPropertyOutlineColor()); if (style.OutlineStyleIsAuto()) { + // Logic in draw focus ring is dependent on whether the border is large + // enough to have an inset outline. Use the smallest border edge for that + // test. + float min_border_width = + std::min(std::min(style.BorderTopWidth(), style.BorderBottomWidth()), + std::min(style.BorderLeftWidth(), style.BorderRightWidth())); + float border_radius = GetFocusRingBorderRadius(style); paint_info.context.DrawFocusRing( pixel_snapped_outline_rects, style.GetOutlineStrokeWidthForFocusRing(), - style.OutlineOffset(), color, + style.OutlineOffset(), border_radius, min_border_width, color, LayoutTheme::GetTheme().IsFocusRingOutset()); return; }
diff --git a/third_party/blink/renderer/core/style/computed_style.cc b/third_party/blink/renderer/core/style/computed_style.cc index 9b7525f..4066d9d 100644 --- a/third_party/blink/renderer/core/style/computed_style.cc +++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -74,6 +74,7 @@ #include "third_party/blink/renderer/platform/wtf/math_extras.h" #include "third_party/blink/renderer/platform/wtf/size_assertions.h" #include "third_party/blink/renderer/platform/wtf/text/case_map.h" +#include "ui/base/ui_base_features.h" namespace blink { @@ -2180,6 +2181,10 @@ } float ComputedStyle::GetOutlineStrokeWidthForFocusRing() const { + if (::features::IsFormControlsRefreshEnabled() && OutlineStyleIsAuto()) { + return std::max(EffectiveZoom(), 3.f); + } + #if defined(OS_MACOSX) return OutlineWidth(); #else
diff --git a/third_party/blink/renderer/core/style/computed_style_test.cc b/third_party/blink/renderer/core/style/computed_style_test.cc index 55c95aa0..2b6c183 100644 --- a/third_party/blink/renderer/core/style/computed_style_test.cc +++ b/third_party/blink/renderer/core/style/computed_style_test.cc
@@ -27,6 +27,7 @@ #include "third_party/blink/renderer/core/testing/dummy_page_holder.h" #include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" +#include "ui/base/ui_base_features.h" namespace blink { @@ -69,24 +70,32 @@ TEST(ComputedStyleTest, FocusRingWidth) { scoped_refptr<ComputedStyle> style = ComputedStyle::Create(); - style->SetEffectiveZoom(3.5); - style->SetOutlineStyle(EBorderStyle::kSolid); + if (::features::IsFormControlsRefreshEnabled()) { + style->SetOutlineStyleIsAuto(static_cast<bool>(OutlineIsAuto::kOn)); + EXPECT_EQ(3, style->GetOutlineStrokeWidthForFocusRing()); + style->SetEffectiveZoom(3.5); + style->SetOutlineWidth(4); + EXPECT_EQ(3.5, style->GetOutlineStrokeWidthForFocusRing()); + } else { + style->SetEffectiveZoom(3.5); + style->SetOutlineStyle(EBorderStyle::kSolid); #if defined(OS_MACOSX) - EXPECT_EQ(3, style->GetOutlineStrokeWidthForFocusRing()); + EXPECT_EQ(3, style->GetOutlineStrokeWidthForFocusRing()); #else - style->SetOutlineStyleIsAuto(static_cast<bool>(OutlineIsAuto::kOn)); - static uint16_t outline_width = 4; - style->SetOutlineWidth(outline_width); + style->SetOutlineStyleIsAuto(static_cast<bool>(OutlineIsAuto::kOn)); + static uint16_t outline_width = 4; + style->SetOutlineWidth(outline_width); - double expected_width = - LayoutTheme::GetTheme().IsFocusRingOutset() ? outline_width : 3.5; - EXPECT_EQ(expected_width, style->GetOutlineStrokeWidthForFocusRing()); + double expected_width = + LayoutTheme::GetTheme().IsFocusRingOutset() ? outline_width : 3.5; + EXPECT_EQ(expected_width, style->GetOutlineStrokeWidthForFocusRing()); - expected_width = - LayoutTheme::GetTheme().IsFocusRingOutset() ? outline_width : 1.0; - style->SetEffectiveZoom(0.5); - EXPECT_EQ(expected_width, style->GetOutlineStrokeWidthForFocusRing()); + expected_width = + LayoutTheme::GetTheme().IsFocusRingOutset() ? outline_width : 1.0; + style->SetEffectiveZoom(0.5); + EXPECT_EQ(expected_width, style->GetOutlineStrokeWidthForFocusRing()); #endif + } } TEST(ComputedStyleTest, FocusRingOutset) { @@ -94,11 +103,15 @@ style->SetOutlineStyle(EBorderStyle::kSolid); style->SetOutlineStyleIsAuto(static_cast<bool>(OutlineIsAuto::kOn)); style->SetEffectiveZoom(4.75); + if (::features::IsFormControlsRefreshEnabled()) { + EXPECT_EQ(4, style->OutlineOutsetExtent()); + } else { #if defined(OS_MACOSX) - EXPECT_EQ(4, style->OutlineOutsetExtent()); + EXPECT_EQ(4, style->OutlineOutsetExtent()); #else - EXPECT_EQ(3, style->OutlineOutsetExtent()); + EXPECT_EQ(3, style->OutlineOutsetExtent()); #endif + } } TEST(ComputedStyleTest, SVGStackingContext) {
diff --git a/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents_test.cc b/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents_test.cc index c7fd17d..3ce5bfe 100644 --- a/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents_test.cc +++ b/third_party/blink/renderer/core/typed_arrays/array_buffer/array_buffer_contents_test.cc
@@ -10,7 +10,15 @@ class ArrayBufferContentsTest : public testing::Test {}; -TEST_F(ArrayBufferContentsTest, AllocationFail) { +#if defined(ADDRESS_SANITIZER) +#define DISABLE_ON_ASAN(test_name) DISABLED_##test_name +#else +#define DISABLE_ON_ASAN(test_name) test_name +#endif // defined(ADDRESS_SANITIZER) + +// Disable on ASAN to avoid crashing on failed allocations, see +// https://crbug.com/1038741. +TEST_F(ArrayBufferContentsTest, DISABLE_ON_ASAN(AllocationFail)) { // This should be an amount of memory that cannot be allocated. size_t length = sizeof(size_t) == 4 ? 0x4fffffff : 0x8000000000; size_t element_byte_size = 1;
diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn index 800cbb1..94cb7b1 100644 --- a/third_party/blink/renderer/modules/BUILD.gn +++ b/third_party/blink/renderer/modules/BUILD.gn
@@ -208,6 +208,8 @@ "peerconnection/testing/internals_rtc_certificate.h", "peerconnection/testing/internals_rtc_peer_connection.cc", "peerconnection/testing/internals_rtc_peer_connection.h", + "permissions/testing/internals_permission.cc", + "permissions/testing/internals_permission.h", "service_worker/testing/internals_service_worker.cc", "service_worker/testing/internals_service_worker.h", "speech/testing/internals_speech_synthesis.cc",
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index f6239c6..0a9be50 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -1017,9 +1017,8 @@ SkColor color = LayoutTheme::GetTheme().FocusRingColor().Rgb(); const int kFocusRingWidth = 5; - DrawPlatformFocusRing(path.GetSkPath(), DrawingCanvas(), color, - kFocusRingWidth); + /*width=*/kFocusRingWidth, /*radius=*/kFocusRingWidth); // We need to add focusRingWidth to dirtyRect. StrokeData stroke_data;
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc index 0d4561f..344b42e6 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
@@ -335,7 +335,6 @@ void MediaStreamVideoSource::UpdateNumEncodedSinks() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); size_t count = CountEncodedSinks(); - DCHECK(SupportsEncodedOutput() || count == 0); if (count == 1) { OnEncodedSinkEnabled(); } else if (count == 0) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc index 316ba527..9c07383 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
@@ -494,7 +494,8 @@ DCHECK_CALLED_ON_VALID_THREAD(main_render_thread_checker_); AddSinkInternal(&encoded_sinks_, sink); frame_deliverer_->AddEncodedCallback(sink, std::move(callback)); - source_->UpdateNumEncodedSinks(); + if (source_) + source_->UpdateNumEncodedSinks(); UpdateSourceHasConsumers(); } @@ -514,7 +515,8 @@ DCHECK_CALLED_ON_VALID_THREAD(main_render_thread_checker_); RemoveSinkInternal(&encoded_sinks_, sink); frame_deliverer_->RemoveEncodedCallback(sink); - source_->UpdateNumEncodedSinks(); + if (source_) + source_->UpdateNumEncodedSinks(); UpdateSourceHasConsumers(); } @@ -532,7 +534,8 @@ // need a new keyframe from the source as we may have dropped data making the // stream undecodable. bool maybe_await_key_frame = false; - if (enabled && source_->SupportsEncodedOutput() && !encoded_sinks_.empty()) { + if (enabled && source_ && source_->SupportsEncodedOutput() && + !encoded_sinks_.empty()) { source_->RequestRefreshFrame(); maybe_await_key_frame = true; }
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc index 09011f4b..dc44c95 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
@@ -255,6 +255,22 @@ sink.DisconnectFromTrack(); } +TEST_F(MediaStreamVideoTrackTest, SourceDetached) { + InitializeSource(); + WebMediaStreamTrack track = CreateTrack(); + MockMediaStreamVideoSink sink; + auto* video_track = MediaStreamVideoTrack::GetVideoTrack(track); + video_track->StopAndNotify(base::BindOnce([] {})); + sink.ConnectToTrack(track); + sink.ConnectEncodedToTrack(track); + video_track->SetEnabled(true); + video_track->SetEnabled(false); + WebMediaStreamTrack::Settings settings; + video_track->GetSettings(settings); + sink.DisconnectFromTrack(); + sink.DisconnectEncodedFromTrack(); +} + TEST_F(MediaStreamVideoTrackTest, SourceStopped) { InitializeSource(); MockMediaStreamVideoSink sink;
diff --git a/third_party/blink/renderer/modules/modules_idl_files.gni b/third_party/blink/renderer/modules/modules_idl_files.gni index 8232d249..6df19648 100644 --- a/third_party/blink/renderer/modules/modules_idl_files.gni +++ b/third_party/blink/renderer/modules/modules_idl_files.gni
@@ -912,6 +912,7 @@ "serial/serial_input_signals.idl", "serial/serial_options.idl", "serial/serial_output_signals.idl", + "serial/serial_port_filter.idl", "serial/serial_port_request_options.idl", ], "abspath") @@ -1066,6 +1067,7 @@ "netinfo/testing/internals_net_info.idl", "peerconnection/testing/internals_rtc_certificate.idl", "peerconnection/testing/internals_rtc_peer_connection.idl", + "permissions/testing/internals_permission.idl", "service_worker/testing/internals_service_worker.idl", "speech/testing/internals_speech_synthesis.idl", "vibration/testing/internals_vibration.idl",
diff --git a/third_party/blink/renderer/modules/payments/payment_manager.h b/third_party/blink/renderer/modules/payments/payment_manager.h index 9a083f1..f618f288 100644 --- a/third_party/blink/renderer/modules/payments/payment_manager.h +++ b/third_party/blink/renderer/modules/payments/payment_manager.h
@@ -25,8 +25,6 @@ DEFINE_WRAPPERTYPEINFO(); public: - static PaymentManager* Create(ServiceWorkerRegistration*); - explicit PaymentManager(ServiceWorkerRegistration*); PaymentInstruments* instruments();
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc index 952689f..63d08f1 100644 --- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc +++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
@@ -407,6 +407,9 @@ bool MediaStreamRemoteVideoSource::SupportsEncodedOutput() const { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + if (!observer_ || !observer_->track()) { + return false; + } scoped_refptr<webrtc::VideoTrackInterface> video_track( static_cast<webrtc::VideoTrackInterface*>(observer_->track().get())); return video_track->GetSource()->SupportsEncodedOutput(); @@ -414,6 +417,9 @@ void MediaStreamRemoteVideoSource::RequestRefreshFrame() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + if (!observer_ || !observer_->track()) { + return; + } scoped_refptr<webrtc::VideoTrackInterface> video_track( static_cast<webrtc::VideoTrackInterface*>(observer_->track().get())); if (video_track->GetSource()) { @@ -423,6 +429,9 @@ void MediaStreamRemoteVideoSource::OnEncodedSinkEnabled() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + if (!observer_ || !observer_->track()) { + return; + } scoped_refptr<webrtc::VideoTrackInterface> video_track( static_cast<webrtc::VideoTrackInterface*>(observer_->track().get())); video_track->GetSource()->AddEncodedSink(delegate_.get()); @@ -430,7 +439,7 @@ void MediaStreamRemoteVideoSource::OnEncodedSinkDisabled() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - if (!observer_->track()) { + if (!observer_ || !observer_->track()) { return; } scoped_refptr<webrtc::VideoTrackInterface> video_track(
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc index 9ea0b42..8b96314 100644 --- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc
@@ -188,7 +188,31 @@ track->RemoveSink(&sink); } -TEST_F(MediaStreamRemoteVideoSourceTest, RemoteTrackStop) { +TEST_F(MediaStreamRemoteVideoSourceTest, + SourceTerminationWithEncodedSinkAdded) { + std::unique_ptr<blink::MediaStreamVideoTrack> track(CreateTrack()); + blink::MockMediaStreamVideoSink sink; + track->AddEncodedSink(&sink, sink.GetDeliverEncodedVideoFrameCB()); + source()->OnSourceTerminated(); + track->RemoveEncodedSink(&sink); +} + +TEST_F(MediaStreamRemoteVideoSourceTest, + SourceTerminationBeforeEncodedSinkAdded) { + std::unique_ptr<blink::MediaStreamVideoTrack> track(CreateTrack()); + blink::MockMediaStreamVideoSink sink; + source()->OnSourceTerminated(); + track->AddEncodedSink(&sink, sink.GetDeliverEncodedVideoFrameCB()); + track->RemoveEncodedSink(&sink); +} + +TEST_F(MediaStreamRemoteVideoSourceTest, + SourceTerminationBeforeRequestRefreshFrame) { + source()->OnSourceTerminated(); + source()->RequestRefreshFrame(); +} + +TEST_F(MediaStreamRemoteVideoSourceTest, SurvivesSourceTermination) { std::unique_ptr<blink::MediaStreamVideoTrack> track(CreateTrack()); blink::MockMediaStreamVideoSink sink;
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc index 9cc1e57..4d46233 100644 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -118,8 +118,8 @@ create_p2p_socket_dispatcher ? new P2PSocketDispatcher() : nullptr), signaling_thread_(nullptr), worker_thread_(nullptr), - chrome_signaling_thread_("Chrome_libJingle_Signaling"), - chrome_worker_thread_("Chrome_libJingle_WorkerThread") { + chrome_signaling_thread_("WebRTC_Signaling"), + chrome_worker_thread_("WebRTC_Worker") { TryScheduleStunProbeTrial(); }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.cc b/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.cc index 3ed79ac..a245598 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.cc
@@ -39,6 +39,7 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate_init.h" #include "third_party/blink/renderer/platform/bindings/exception_messages.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" +#include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" namespace blink { @@ -64,9 +65,10 @@ WebFeature::kRTCIceCandidateDefaultSdpMLineIndex); } - return MakeGarbageCollected<RTCIceCandidate>(RTCIceCandidatePlatform::Create( - candidate_init->candidate(), sdp_mid, std::move(sdp_m_line_index), - candidate_init->usernameFragment())); + return MakeGarbageCollected<RTCIceCandidate>( + MakeGarbageCollected<RTCIceCandidatePlatform>( + candidate_init->candidate(), sdp_mid, std::move(sdp_m_line_index), + candidate_init->usernameFragment())); } RTCIceCandidate* RTCIceCandidate::Create(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc index 3790579..b07f80df 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc
@@ -23,6 +23,7 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event_init.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_quic_transport.h" +#include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/thread.h" #include "third_party/webrtc/api/ice_transport_factory.h" @@ -53,7 +54,7 @@ } RTCIceCandidate* ConvertToRtcIceCandidate(const cricket::Candidate& candidate) { - return RTCIceCandidate::Create(RTCIceCandidatePlatform::Create( + return RTCIceCandidate::Create(MakeGarbageCollected<RTCIceCandidatePlatform>( String::FromUTF8(webrtc::SdpSerializeCandidate(candidate)), "", 0)); }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc index 89aee95..4e28b16 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -227,7 +227,7 @@ UseCounter::Count(context, WebFeature::kRTCIceCandidateDefaultSdpMLineIndex); } - return RTCIceCandidatePlatform::Create( + return MakeGarbageCollected<RTCIceCandidatePlatform>( ice_candidate_init->candidate(), ice_candidate_init->sdpMid(), sdp_m_line_index, ice_candidate_init->usernameFragment()); }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc index 5ffcbd0..50c7573 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc
@@ -35,6 +35,7 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl.h" #include "third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.h" #include "third_party/blink/renderer/modules/webrtc/webrtc_audio_device_impl.h" +#include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/mediastream/media_constraints.h" #include "third_party/blink/renderer/platform/mediastream/webrtc_uma_histograms.h" #include "third_party/blink/renderer/platform/peerconnection/rtc_answer_options_platform.h" @@ -2447,8 +2448,8 @@ int address_family) { DCHECK(task_runner_->RunsTasksInCurrentSequence()); TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::OnIceCandidateImpl"); - auto* platform_candidate = - RTCIceCandidatePlatform::Create(sdp, sdp_mid, sdp_mline_index); + auto* platform_candidate = MakeGarbageCollected<RTCIceCandidatePlatform>( + sdp, sdp_mid, sdp_mline_index); if (peer_connection_tracker_) { peer_connection_tracker_->TrackAddIceCandidate( this, platform_candidate, PeerConnectionTracker::SOURCE_LOCAL, true);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc index 09c7650..5f193ce 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc
@@ -787,8 +787,8 @@ } TEST_F(RTCPeerConnectionHandlerTest, addICECandidate) { - RTCIceCandidatePlatform* candidate = - RTCIceCandidatePlatform::Create(kDummySdp, "sdpMid", 1); + auto* candidate = + MakeGarbageCollected<RTCIceCandidatePlatform>(kDummySdp, "sdpMid", 1); EXPECT_CALL(*mock_tracker_.get(), TrackAddIceCandidate(pc_handler_.get(), candidate,
diff --git a/third_party/blink/renderer/modules/permissions/permission_utils.cc b/third_party/blink/renderer/modules/permissions/permission_utils.cc index 6f3c445..5bc3d90 100644 --- a/third_party/blink/renderer/modules/permissions/permission_utils.cc +++ b/third_party/blink/renderer/modules/permissions/permission_utils.cc
@@ -7,11 +7,20 @@ #include <utility> #include "third_party/blink/public/common/browser_interface_broker_proxy.h" +#include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h" +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_clipboard_permission_descriptor.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_midi_permission_descriptor.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_descriptor.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_push_permission_descriptor.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_wake_lock_permission_descriptor.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_thread.h" +#include "third_party/blink/renderer/platform/bindings/exception_state.h" +#include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -81,4 +90,130 @@ return descriptor; } +PermissionDescriptorPtr ParsePermissionDescriptor( + ScriptState* script_state, + const ScriptValue& raw_descriptor, + ExceptionState& exception_state) { + PermissionDescriptor* permission = + NativeValueTraits<PermissionDescriptor>::NativeValue( + script_state->GetIsolate(), raw_descriptor.V8Value(), + exception_state); + + if (exception_state.HadException()) + return nullptr; + + const String& name = permission->name(); + if (name == "geolocation") + return CreatePermissionDescriptor(PermissionName::GEOLOCATION); + if (name == "camera") + return CreatePermissionDescriptor(PermissionName::VIDEO_CAPTURE); + if (name == "microphone") + return CreatePermissionDescriptor(PermissionName::AUDIO_CAPTURE); + if (name == "notifications") + return CreatePermissionDescriptor(PermissionName::NOTIFICATIONS); + if (name == "persistent-storage") + return CreatePermissionDescriptor(PermissionName::DURABLE_STORAGE); + if (name == "push") { + PushPermissionDescriptor* push_permission = + NativeValueTraits<PushPermissionDescriptor>::NativeValue( + script_state->GetIsolate(), raw_descriptor.V8Value(), + exception_state); + if (exception_state.HadException()) + return nullptr; + + // Only "userVisibleOnly" push is supported for now. + if (!push_permission->userVisibleOnly()) { + exception_state.ThrowDOMException( + DOMExceptionCode::kNotSupportedError, + "Push Permission without userVisibleOnly:true isn't supported yet."); + return nullptr; + } + + return CreatePermissionDescriptor(PermissionName::NOTIFICATIONS); + } + if (name == "midi") { + MidiPermissionDescriptor* midi_permission = + NativeValueTraits<MidiPermissionDescriptor>::NativeValue( + script_state->GetIsolate(), raw_descriptor.V8Value(), + exception_state); + return CreateMidiPermissionDescriptor(midi_permission->sysex()); + } + if (name == "background-sync") + return CreatePermissionDescriptor(PermissionName::BACKGROUND_SYNC); + if (name == "ambient-light-sensor" || name == "accelerometer" || + name == "gyroscope" || name == "magnetometer") { + // ALS requires an extra flag. + if (name == "ambient-light-sensor") { + if (!RuntimeEnabledFeatures::SensorExtraClassesEnabled()) { + exception_state.ThrowTypeError( + "GenericSensorExtraClasses flag is not enabled."); + return nullptr; + } + } + + return CreatePermissionDescriptor(PermissionName::SENSORS); + } + if (name == "accessibility-events") { + if (!RuntimeEnabledFeatures::AccessibilityObjectModelEnabled()) { + exception_state.ThrowTypeError( + "Accessibility Object Model is not enabled."); + return nullptr; + } + return CreatePermissionDescriptor(PermissionName::ACCESSIBILITY_EVENTS); + } + if (name == "clipboard-read" || name == "clipboard-write") { + PermissionName permission_name = PermissionName::CLIPBOARD_READ; + if (name == "clipboard-write") + permission_name = PermissionName::CLIPBOARD_WRITE; + + ClipboardPermissionDescriptor* clipboard_permission = + NativeValueTraits<ClipboardPermissionDescriptor>::NativeValue( + script_state->GetIsolate(), raw_descriptor.V8Value(), + exception_state); + return CreateClipboardPermissionDescriptor( + permission_name, clipboard_permission->allowWithoutGesture(), + clipboard_permission->allowWithoutSanitization()); + } + if (name == "payment-handler") + return CreatePermissionDescriptor(PermissionName::PAYMENT_HANDLER); + if (name == "background-fetch") + return CreatePermissionDescriptor(PermissionName::BACKGROUND_FETCH); + if (name == "idle-detection") + return CreatePermissionDescriptor(PermissionName::IDLE_DETECTION); + if (name == "periodic-background-sync") + return CreatePermissionDescriptor(PermissionName::PERIODIC_BACKGROUND_SYNC); + if (name == "wake-lock") { + if (!RuntimeEnabledFeatures::WakeLockEnabled( + ExecutionContext::From(script_state))) { + exception_state.ThrowTypeError("Wake Lock is not enabled."); + return nullptr; + } + WakeLockPermissionDescriptor* wake_lock_permission = + NativeValueTraits<WakeLockPermissionDescriptor>::NativeValue( + script_state->GetIsolate(), raw_descriptor.V8Value(), + exception_state); + if (exception_state.HadException()) + return nullptr; + const String& type = wake_lock_permission->type(); + if (type == "screen") { + return CreateWakeLockPermissionDescriptor( + mojom::blink::WakeLockType::kScreen); + } else if (type == "system") { + return CreateWakeLockPermissionDescriptor( + mojom::blink::WakeLockType::kSystem); + } else { + NOTREACHED(); + } + } + if (name == "nfc") { + if (!RuntimeEnabledFeatures::WebNFCEnabled( + ExecutionContext::From(script_state))) { + exception_state.ThrowTypeError("Web NFC is not enabled."); + return nullptr; + } + return CreatePermissionDescriptor(PermissionName::NFC); + } + return nullptr; +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/permissions/permission_utils.h b/third_party/blink/renderer/modules/permissions/permission_utils.h index 50248b2..e790055c 100644 --- a/third_party/blink/renderer/modules/permissions/permission_utils.h +++ b/third_party/blink/renderer/modules/permissions/permission_utils.h
@@ -7,11 +7,15 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h" +#include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/wtf/forward.h" namespace blink { class ExecutionContext; +class ExceptionState; +class ScriptState; +class ScriptValue; void ConnectToPermissionService( ExecutionContext*, @@ -33,6 +37,18 @@ mojom::blink::PermissionDescriptorPtr CreateWakeLockPermissionDescriptor( mojom::blink::WakeLockType type); +// Parses the raw permission dictionary and returns the Mojo +// PermissionDescriptor if parsing was successful. If an exception occurs, it +// will be stored in |exceptionState| and nullptr will be returned. +// +// Websites will be able to run code when `name()` is called, changing the +// current context. The caller should make sure that no assumption is made +// after this has been called. +MODULES_EXPORT mojom::blink::PermissionDescriptorPtr ParsePermissionDescriptor( + ScriptState*, + const ScriptValue& raw_permission, + ExceptionState&); + } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_PERMISSIONS_PERMISSION_UTILS_H_
diff --git a/third_party/blink/renderer/modules/permissions/permissions.cc b/third_party/blink/renderer/modules/permissions/permissions.cc index f00bb757..511fb0a 100644 --- a/third_party/blink/renderer/modules/permissions/permissions.cc +++ b/third_party/blink/renderer/modules/permissions/permissions.cc
@@ -11,11 +11,6 @@ #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_clipboard_permission_descriptor.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_midi_permission_descriptor.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_descriptor.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_push_permission_descriptor.h" -#include "third_party/blink/renderer/bindings/modules/v8/v8_wake_lock_permission_descriptor.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -36,153 +31,11 @@ using mojom::blink::PermissionName; using mojom::blink::PermissionService; -namespace { - -// Parses the raw permission dictionary and returns the Mojo -// PermissionDescriptor if parsing was successful. If an exception occurs, it -// will be stored in |exceptionState| and null will be returned. Therefore, the -// |exceptionState| should be checked before attempting to use the returned -// permission as the non-null assert will be fired otherwise. -// -// Websites will be able to run code when `name()` is called, changing the -// current context. The caller should make sure that no assumption is made -// after this has been called. -PermissionDescriptorPtr ParsePermission(ScriptState* script_state, - const ScriptValue raw_permission, - ExceptionState& exception_state) { - PermissionDescriptor* permission = - NativeValueTraits<PermissionDescriptor>::NativeValue( - script_state->GetIsolate(), raw_permission.V8Value(), - exception_state); - - if (exception_state.HadException()) { - exception_state.ThrowTypeError(exception_state.Message()); - return nullptr; - } - - const String& name = permission->name(); - if (name == "geolocation") - return CreatePermissionDescriptor(PermissionName::GEOLOCATION); - if (name == "camera") - return CreatePermissionDescriptor(PermissionName::VIDEO_CAPTURE); - if (name == "microphone") - return CreatePermissionDescriptor(PermissionName::AUDIO_CAPTURE); - if (name == "notifications") - return CreatePermissionDescriptor(PermissionName::NOTIFICATIONS); - if (name == "persistent-storage") - return CreatePermissionDescriptor(PermissionName::DURABLE_STORAGE); - if (name == "push") { - PushPermissionDescriptor* push_permission = - NativeValueTraits<PushPermissionDescriptor>::NativeValue( - script_state->GetIsolate(), raw_permission.V8Value(), - exception_state); - if (exception_state.HadException()) { - exception_state.ThrowTypeError(exception_state.Message()); - return nullptr; - } - - // Only "userVisibleOnly" push is supported for now. - if (!push_permission->userVisibleOnly()) { - exception_state.ThrowDOMException( - DOMExceptionCode::kNotSupportedError, - "Push Permission without userVisibleOnly:true isn't supported yet."); - return nullptr; - } - - return CreatePermissionDescriptor(PermissionName::NOTIFICATIONS); - } - if (name == "midi") { - MidiPermissionDescriptor* midi_permission = - NativeValueTraits<MidiPermissionDescriptor>::NativeValue( - script_state->GetIsolate(), raw_permission.V8Value(), - exception_state); - return CreateMidiPermissionDescriptor(midi_permission->sysex()); - } - if (name == "background-sync") - return CreatePermissionDescriptor(PermissionName::BACKGROUND_SYNC); - if (name == "ambient-light-sensor" || name == "accelerometer" || - name == "gyroscope" || name == "magnetometer") { - // ALS requires an extra flag. - if (name == "ambient-light-sensor") { - if (!RuntimeEnabledFeatures::SensorExtraClassesEnabled()) { - exception_state.ThrowTypeError( - "GenericSensorExtraClasses flag is not enabled."); - return nullptr; - } - } - - return CreatePermissionDescriptor(PermissionName::SENSORS); - } - if (name == "accessibility-events") { - if (!RuntimeEnabledFeatures::AccessibilityObjectModelEnabled()) { - exception_state.ThrowTypeError( - "Accessibility Object Model is not enabled."); - return nullptr; - } - return CreatePermissionDescriptor(PermissionName::ACCESSIBILITY_EVENTS); - } - if (name == "clipboard-read" || name == "clipboard-write") { - PermissionName permission_name = PermissionName::CLIPBOARD_READ; - if (name == "clipboard-write") - permission_name = PermissionName::CLIPBOARD_WRITE; - - ClipboardPermissionDescriptor* clipboard_permission = - NativeValueTraits<ClipboardPermissionDescriptor>::NativeValue( - script_state->GetIsolate(), raw_permission.V8Value(), - exception_state); - return CreateClipboardPermissionDescriptor( - permission_name, clipboard_permission->allowWithoutGesture(), - clipboard_permission->allowWithoutSanitization()); - } - if (name == "payment-handler") - return CreatePermissionDescriptor(PermissionName::PAYMENT_HANDLER); - if (name == "background-fetch") - return CreatePermissionDescriptor(PermissionName::BACKGROUND_FETCH); - if (name == "idle-detection") - return CreatePermissionDescriptor(PermissionName::IDLE_DETECTION); - if (name == "periodic-background-sync") - return CreatePermissionDescriptor(PermissionName::PERIODIC_BACKGROUND_SYNC); - if (name == "wake-lock") { - if (!RuntimeEnabledFeatures::WakeLockEnabled( - ExecutionContext::From(script_state))) { - exception_state.ThrowTypeError("Wake Lock is not enabled."); - return nullptr; - } - WakeLockPermissionDescriptor* wake_lock_permission = - NativeValueTraits<WakeLockPermissionDescriptor>::NativeValue( - script_state->GetIsolate(), raw_permission.V8Value(), - exception_state); - if (exception_state.HadException()) - return nullptr; - const String& type = wake_lock_permission->type(); - if (type == "screen") { - return CreateWakeLockPermissionDescriptor( - mojom::blink::WakeLockType::kScreen); - } else if (type == "system") { - return CreateWakeLockPermissionDescriptor( - mojom::blink::WakeLockType::kSystem); - } else { - NOTREACHED(); - } - } - if (name == "nfc") { - if (!RuntimeEnabledFeatures::WebNFCEnabled( - ExecutionContext::From(script_state))) { - exception_state.ThrowTypeError("Web NFC is not enabled."); - return nullptr; - } - return CreatePermissionDescriptor(PermissionName::NFC); - } - return nullptr; -} - -} // anonymous namespace - ScriptPromise Permissions::query(ScriptState* script_state, const ScriptValue& raw_permission, ExceptionState& exception_state) { PermissionDescriptorPtr descriptor = - ParsePermission(script_state, raw_permission, exception_state); + ParsePermissionDescriptor(script_state, raw_permission, exception_state); if (exception_state.HadException()) return ScriptPromise(); @@ -206,7 +59,7 @@ const ScriptValue& raw_permission, ExceptionState& exception_state) { PermissionDescriptorPtr descriptor = - ParsePermission(script_state, raw_permission, exception_state); + ParsePermissionDescriptor(script_state, raw_permission, exception_state); if (exception_state.HadException()) return ScriptPromise(); @@ -231,7 +84,7 @@ const ScriptValue& raw_permission, ExceptionState& exception_state) { PermissionDescriptorPtr descriptor = - ParsePermission(script_state, raw_permission, exception_state); + ParsePermissionDescriptor(script_state, raw_permission, exception_state); if (exception_state.HadException()) return ScriptPromise(); @@ -261,8 +114,8 @@ for (wtf_size_t i = 0; i < raw_permissions.size(); ++i) { const ScriptValue& raw_permission = raw_permissions[i]; - auto descriptor = - ParsePermission(script_state, raw_permission, exception_state); + auto descriptor = ParsePermissionDescriptor(script_state, raw_permission, + exception_state); if (exception_state.HadException()) return ScriptPromise();
diff --git a/third_party/blink/renderer/modules/permissions/testing/internals_permission.cc b/third_party/blink/renderer/modules/permissions/testing/internals_permission.cc new file mode 100644 index 0000000..3e467cb --- /dev/null +++ b/third_party/blink/renderer/modules/permissions/testing/internals_permission.cc
@@ -0,0 +1,87 @@ +// Copyright 2019 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 "third_party/blink/renderer/modules/permissions/testing/internals_permission.h" + +#include <utility> + +#include "mojo/public/cpp/bindings/remote.h" +#include "third_party/blink/public/common/browser_interface_broker_proxy.h" +#include "third_party/blink/public/common/permissions/permission_utils.h" +#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h" +#include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h" +#include "third_party/blink/public/mojom/permissions/permission_automation.mojom-blink.h" +#include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/core/dom/dom_exception.h" +#include "third_party/blink/renderer/core/testing/internals.h" +#include "third_party/blink/renderer/modules/permissions/permission_utils.h" +#include "third_party/blink/renderer/platform/bindings/exception_state.h" +#include "third_party/blink/renderer/platform/bindings/script_state.h" +#include "third_party/blink/renderer/platform/testing/url_test_helpers.h" +#include "third_party/blink/renderer/platform/weborigin/kurl.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" +#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + +namespace blink { + +// static +ScriptPromise InternalsPermission::setPermission( + ScriptState* script_state, + Internals&, + const ScriptValue& raw_descriptor, + const String& state, + const String& origin, + const String& embedding_origin, + ExceptionState& exception_state) { + mojom::blink::PermissionDescriptorPtr descriptor = + ParsePermissionDescriptor(script_state, raw_descriptor, exception_state); + if (exception_state.HadException()) + return ScriptPromise(); + + KURL url = url_test_helpers::ToKURL(origin.Utf8()); + if (!url.IsValid()) { + exception_state.ThrowDOMException(DOMExceptionCode::kSyntaxError, + "'" + origin + "' is not a valid URL."); + return ScriptPromise(); + } + + KURL embedding_url = url_test_helpers::ToKURL(embedding_origin.Utf8()); + if (!embedding_url.IsValid()) { + exception_state.ThrowDOMException( + DOMExceptionCode::kSyntaxError, + "'" + embedding_origin + "' is not a valid URL."); + return ScriptPromise(); + } + + mojo::Remote<test::mojom::blink::PermissionAutomation> permission_automation; + Platform::Current()->GetBrowserInterfaceBroker()->GetInterface( + permission_automation.BindNewPipeAndPassReceiver()); + DCHECK(permission_automation.is_bound()); + + auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state); + ScriptPromise promise = resolver->Promise(); + auto* raw_permission_automation = permission_automation.get(); + raw_permission_automation->SetPermission( + std::move(descriptor), ToPermissionStatus(state.Utf8()), url, + embedding_url, + WTF::Bind( + // While we only really need |resolver|, we also take the + // mojo::Remote<> so that it remains alive after this function exits. + [](ScriptPromiseResolver* resolver, + mojo::Remote<test::mojom::blink::PermissionAutomation>, + bool success) { + if (success) + resolver->Resolve(); + else + resolver->Reject(); + }, + WrapPersistent(resolver), std::move(permission_automation))); + + return promise; +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/permissions/testing/internals_permission.h b/third_party/blink/renderer/modules/permissions/testing/internals_permission.h new file mode 100644 index 0000000..59fd0f0 --- /dev/null +++ b/third_party/blink/renderer/modules/permissions/testing/internals_permission.h
@@ -0,0 +1,34 @@ +// Copyright 2019 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 THIRD_PARTY_BLINK_RENDERER_MODULES_PERMISSIONS_TESTING_INTERNALS_PERMISSION_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_PERMISSIONS_TESTING_INTERNALS_PERMISSION_H_ + +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" +#include "third_party/blink/renderer/platform/wtf/forward.h" + +namespace blink { + +class ExceptionState; +class Internals; +class ScriptPromise; +class ScriptState; +class ScriptValue; + +class InternalsPermission { + STATIC_ONLY(InternalsPermission); + + public: + static ScriptPromise setPermission(ScriptState*, + Internals&, + const ScriptValue&, + const String& state, + const String& origin, + const String& embedding_origin, + ExceptionState&); +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_PERMISSIONS_TESTING_INTERNALS_PERMISSION_H_
diff --git a/third_party/blink/renderer/modules/permissions/testing/internals_permission.idl b/third_party/blink/renderer/modules/permissions/testing/internals_permission.idl new file mode 100644 index 0000000..5fe940b --- /dev/null +++ b/third_party/blink/renderer/modules/permissions/testing/internals_permission.idl
@@ -0,0 +1,9 @@ +// Copyright 2019 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. + +[ + ImplementedAs=InternalsPermission +] partial interface Internals { + [CallWith=ScriptState, RaisesException] Promise<void> setPermission(object descriptor, PermissionState state, USVString url, USVString embedding_url); +};
diff --git a/third_party/blink/renderer/modules/serial/serial.cc b/third_party/blink/renderer/modules/serial/serial.cc index 29abf84..9061201 100644 --- a/third_party/blink/renderer/modules/serial/serial.cc +++ b/third_party/blink/renderer/modules/serial/serial.cc
@@ -18,6 +18,8 @@ #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/modules/event_target_modules_names.h" #include "third_party/blink/renderer/modules/serial/serial_port.h" +#include "third_party/blink/renderer/modules/serial/serial_port_filter.h" +#include "third_party/blink/renderer/modules/serial/serial_port_request_options.h" #include "third_party/blink/renderer/platform/heap/heap.h" namespace blink { @@ -102,11 +104,40 @@ return ScriptPromise(); } + Vector<mojom::blink::SerialPortFilterPtr> filters; + if (options && options->hasFilters()) { + for (const auto& filter : options->filters()) { + auto mojo_filter = mojom::blink::SerialPortFilter::New(); + + mojo_filter->has_vendor_id = filter->hasUsbVendorId(); + if (mojo_filter->has_vendor_id) { + mojo_filter->vendor_id = filter->usbVendorId(); + } else { + exception_state.ThrowTypeError( + "A filter must provide a property to filter by."); + return ScriptPromise(); + } + + mojo_filter->has_product_id = filter->hasUsbProductId(); + if (mojo_filter->has_product_id) { + if (!mojo_filter->has_vendor_id) { + exception_state.ThrowTypeError( + "A filter containing a usbProductId must also specify a " + "usbVendorId."); + return ScriptPromise(); + } + mojo_filter->product_id = filter->usbProductId(); + } + + filters.push_back(std::move(mojo_filter)); + } + } + auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state); request_port_promises_.insert(resolver); EnsureServiceConnection(); - service_->RequestPort(Vector<mojom::blink::SerialPortFilterPtr>(), + service_->RequestPort(std::move(filters), WTF::Bind(&Serial::OnRequestPort, WrapPersistent(this), WrapPersistent(resolver)));
diff --git a/third_party/blink/renderer/modules/serial/serial_port_filter.idl b/third_party/blink/renderer/modules/serial/serial_port_filter.idl new file mode 100644 index 0000000..d173cdd9 --- /dev/null +++ b/third_party/blink/renderer/modules/serial/serial_port_filter.idl
@@ -0,0 +1,10 @@ +// Copyright 2020 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. + +// https://wicg.github.io/serial + +dictionary SerialPortFilter { + unsigned short usbVendorId; + unsigned short usbProductId; +};
diff --git a/third_party/blink/renderer/modules/serial/serial_port_request_options.idl b/third_party/blink/renderer/modules/serial/serial_port_request_options.idl index 8e9c05c..8a58d20 100644 --- a/third_party/blink/renderer/modules/serial/serial_port_request_options.idl +++ b/third_party/blink/renderer/modules/serial/serial_port_request_options.idl
@@ -5,4 +5,5 @@ // https://wicg.github.io/serial dictionary SerialPortRequestOptions { + sequence<SerialPortFilter> filters; };
diff --git a/third_party/blink/renderer/platform/exported/web_url_response.cc b/third_party/blink/renderer/platform/exported/web_url_response.cc index e8eca6af..2d15fb3 100644 --- a/third_party/blink/renderer/platform/exported/web_url_response.cc +++ b/third_party/blink/renderer/platform/exported/web_url_response.cc
@@ -244,6 +244,10 @@ resource_response_->SetIsLegacyTLSVersion(value); } +void WebURLResponse::SetTimingAllowPassed(bool value) { + resource_response_->SetTimingAllowPassed(value); +} + void WebURLResponse::SetSecurityStyle(SecurityStyle security_style) { resource_response_->SetSecurityStyle(security_style); }
diff --git a/third_party/blink/renderer/platform/graphics/DEPS b/third_party/blink/renderer/platform/graphics/DEPS index a41c151c8..23ab5079 100644 --- a/third_party/blink/renderer/platform/graphics/DEPS +++ b/third_party/blink/renderer/platform/graphics/DEPS
@@ -63,4 +63,5 @@ ".*_test.cc": [ "+components/viz/test", ], + "(graphics_context|skia_utils)\.cc" : [ "+ui/base/ui_base_features.h" ] }
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image.cc b/third_party/blink/renderer/platform/graphics/bitmap_image.cc index 493eaf1..e7faefdc 100644 --- a/third_party/blink/renderer/platform/graphics/bitmap_image.cc +++ b/third_party/blink/renderer/platform/graphics/bitmap_image.cc
@@ -156,6 +156,11 @@ return size_respecting_orientation_; } +bool BitmapImage::HasDefaultOrientation() const { + ImageOrientation orientation = CurrentFrameOrientation(); + return orientation == kDefaultImageOrientation; +} + bool BitmapImage::GetHotSpot(IntPoint& hot_spot) const { return decoder_ && decoder_->HotSpot(hot_spot); }
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image.h b/third_party/blink/renderer/platform/graphics/bitmap_image.h index b73b4ca..44cc102 100644 --- a/third_party/blink/renderer/platform/graphics/bitmap_image.h +++ b/third_party/blink/renderer/platform/graphics/bitmap_image.h
@@ -66,6 +66,7 @@ IntSize Size() const override; IntSize SizeRespectingOrientation() const; + bool HasDefaultOrientation() const override; bool GetHotSpot(IntPoint&) const override; String FilenameExtension() const override;
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test_helpers.h b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test_helpers.h index 1159bfb..4f965678 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test_helpers.h +++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test_helpers.h
@@ -279,9 +279,9 @@ // ImplementationBase implementation void GenSyncTokenCHROMIUM(GLbyte* sync_token) override { - static uint64_t unique_id = 1; - gpu::SyncToken source( - gpu::GPU_IO, gpu::CommandBufferId::FromUnsafeValue(unique_id++), 2); + static gpu::CommandBufferId::Generator command_buffer_id_generator; + gpu::SyncToken source(gpu::GPU_IO, + command_buffer_id_generator.GenerateNextId(), 2); memcpy(sync_token, &source, sizeof(source)); }
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc index 7ae6844..3acefef 100644 --- a/third_party/blink/renderer/platform/graphics/graphics_context.cc +++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -58,6 +58,7 @@ #include "third_party/skia/include/effects/SkTableColorFilter.h" #include "third_party/skia/include/pathops/SkPathOps.h" #include "third_party/skia/include/utils/SkNullCanvas.h" +#include "ui/base/ui_base_features.h" namespace blink { @@ -370,6 +371,10 @@ namespace { int AdjustedFocusRingOffset(int offset, int width, bool is_outset) { + if (::features::IsFormControlsRefreshEnabled()) { + return 0; + } + #if defined(OS_MACOSX) return offset + 2; #else @@ -387,29 +392,37 @@ // Unlike normal outlines (whole width is outside of the offset), focus // rings can be drawn with the center of the path aligned with the offset, so // only half of the width is outside of the offset. + if (::features::IsFormControlsRefreshEnabled()) { + // For FormControlsRefresh 2/3 of the width is outside of the offset. + return AdjustedFocusRingOffset(offset, width, is_outset) + + std::ceil(width / 3.f) * 2; + } + return AdjustedFocusRingOffset(offset, width, is_outset) + (width + 1) / 2; } void GraphicsContext::DrawFocusRingPath(const SkPath& path, const Color& color, - float width) { + float width, + float border_radius) { DrawPlatformFocusRing( path, canvas_, dark_mode_filter_ .InvertColorIfNeeded(color, DarkModeFilter::ElementRole::kBackground) .Rgb(), - width); + width, border_radius); } void GraphicsContext::DrawFocusRingRect(const SkRect& rect, const Color& color, - float width) { + float width, + float border_radius) { DrawPlatformFocusRing( rect, canvas_, dark_mode_filter_ .InvertColorIfNeeded(color, DarkModeFilter::ElementRole::kBackground) .Rgb(), - width); + width, border_radius); } void GraphicsContext::DrawFocusRing(const Path& focus_ring_path, @@ -420,12 +433,14 @@ if (ContextDisabled()) return; - DrawFocusRingPath(focus_ring_path.GetSkPath(), color, width); + DrawFocusRingPath(focus_ring_path.GetSkPath(), color, /*width=*/width, + /*radius=*/width); } void GraphicsContext::DrawFocusRingInternal(const Vector<IntRect>& rects, float width, int offset, + float border_radius, const Color& color, bool is_outset) { if (ContextDisabled()) @@ -436,7 +451,11 @@ return; SkRegion focus_ring_region; - offset = AdjustedFocusRingOffset(offset, std::ceil(width), is_outset); + if (!::features::IsFormControlsRefreshEnabled()) { + // For FormControlsRefresh the offset is already adjusted by + // GraphicsContext::DrawFocusRing. + offset = AdjustedFocusRingOffset(offset, std::ceil(width), is_outset); + } for (unsigned i = 0; i < rect_count; i++) { SkIRect r = rects[i]; if (r.isEmpty()) @@ -449,12 +468,12 @@ return; if (focus_ring_region.isRect()) { - DrawFocusRingRect(SkRect::Make(focus_ring_region.getBounds()), color, - width); + DrawFocusRingRect(SkRect::Make(focus_ring_region.getBounds()), color, width, + border_radius); } else { SkPath path; if (focus_ring_region.getBoundaryPath(&path)) - DrawFocusRingPath(path, color, width); + DrawFocusRingPath(path, color, width, border_radius); } } @@ -478,22 +497,46 @@ void GraphicsContext::DrawFocusRing(const Vector<IntRect>& rects, float width, int offset, + float border_radius, + float min_border_width, const Color& color, bool is_outset) { - // If a focus ring is outset and the color is dark, it may be hard to see on - // dark backgrounds. In this case, we'll actually draw two focus rings, the - // outset focus ring with a white inner ring for contrast. - if (ShouldDrawInnerFocusRingForContrast(is_outset, width, color)) { - int contrast_offset = static_cast<int>(std::floor(width * 0.5)); - // We create a 1px gap for the contrast ring. The contrast ring is drawn - // first, and we overdraw by a pixel to ensure no gaps or AA artifacts. - DrawFocusRingInternal(rects, contrast_offset, offset, SK_ColorWHITE, - is_outset); - DrawFocusRingInternal(rects, width - contrast_offset, - offset + contrast_offset, color, is_outset); + if (::features::IsFormControlsRefreshEnabled()) { + // The focus ring is made of two borders which have a 2:1 ratio. + const float first_border_width = (width / 3) * 2; + const float second_border_width = width - first_border_width; + offset = AdjustedFocusRingOffset(offset, std::ceil(width), is_outset); + // How much space the focus ring would like to take from the actual border. + const float inside_border_width = 1; + if (min_border_width >= inside_border_width) { + offset -= inside_border_width; + } + // The white ring is drawn first, and we overdraw to ensure no gaps or AA + // artifacts. + DrawFocusRingInternal(rects, first_border_width, + offset + std::ceil(second_border_width), + border_radius, SK_ColorWHITE, is_outset); + DrawFocusRingInternal(rects, first_border_width, offset, border_radius, + color, is_outset); } else { - DrawFocusRingInternal(rects, width, offset, color, is_outset); + // If a focus ring is outset and the color is dark, it may be hard to see on + // dark backgrounds. In this case, we'll actually draw two focus rings, the + // outset focus ring with a white inner ring for contrast. + if (ShouldDrawInnerFocusRingForContrast(is_outset, width, color)) { + int contrast_offset = static_cast<int>(std::floor(width * 0.5)); + // We create a 1px gap for the contrast ring. The contrast ring is drawn + // first, and we overdraw by a pixel to ensure no gaps or AA artifacts. + DrawFocusRingInternal(rects, contrast_offset, offset, border_radius, + SK_ColorWHITE, is_outset); + DrawFocusRingInternal(rects, width - contrast_offset, + offset + contrast_offset, border_radius, color, + is_outset); + + } else { + DrawFocusRingInternal(rects, width, offset, border_radius, color, + is_outset); + } } } @@ -978,7 +1021,8 @@ &image_flags); bool use_shader = (visible_src == src_rect) && - (respect_orientation == kDoNotRespectImageOrientation); + (respect_orientation == kDoNotRespectImageOrientation || + image->HasDefaultOrientation()); if (use_shader) { const SkMatrix local_matrix = SkMatrix::MakeRectToRect( visible_src, dest.Rect(), SkMatrix::kFill_ScaleToFit);
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.h b/third_party/blink/renderer/platform/graphics/graphics_context.h index 0e7b1135..5c1954d 100644 --- a/third_party/blink/renderer/platform/graphics/graphics_context.h +++ b/third_party/blink/renderer/platform/graphics/graphics_context.h
@@ -371,6 +371,8 @@ void DrawFocusRing(const Vector<IntRect>&, float width, int offset, + float border_radius, + float min_border_width, const Color&, bool is_outset); void DrawFocusRing(const Path&, float width, int offset, const Color&); @@ -462,12 +464,19 @@ void RestoreLayer(); // Helpers for drawing a focus ring (drawFocusRing) - void DrawFocusRingPath(const SkPath&, const Color&, float width); - void DrawFocusRingRect(const SkRect&, const Color&, float width); + void DrawFocusRingPath(const SkPath&, + const Color&, + float width, + float border_radius); + void DrawFocusRingRect(const SkRect&, + const Color&, + float width, + float border_radius); void DrawFocusRingInternal(const Vector<IntRect>&, float width, int offset, + float border_radius, const Color&, bool is_outset);
diff --git a/third_party/blink/renderer/platform/graphics/image.h b/third_party/blink/renderer/platform/graphics/image.h index 165d4ee2..56aff7b 100644 --- a/third_party/blink/renderer/platform/graphics/image.h +++ b/third_party/blink/renderer/platform/graphics/image.h
@@ -114,6 +114,9 @@ IntRect Rect() const { return IntRect(IntPoint(), Size()); } int width() const { return Size().Width(); } int height() const { return Size().Height(); } + + virtual bool HasDefaultOrientation() const { return true; } + virtual bool GetHotSpot(IntPoint&) const { return false; } enum SizeAvailability {
diff --git a/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc b/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc index 1e8ae93..bb51adf 100644 --- a/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc +++ b/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
@@ -38,6 +38,7 @@ #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h" #include "third_party/skia/include/effects/SkCornerPathEffect.h" #include "third_party/skia/include/third_party/skcms/skcms.h" +#include "ui/base/ui_base_features.h" #include <algorithm> #include <cmath> @@ -374,7 +375,8 @@ void DrawPlatformFocusRing(const PrimitiveType& primitive, cc::PaintCanvas* canvas, SkColor color, - float width) { + float width, + float border_radius) { PaintFlags flags; flags.setAntiAlias(true); flags.setStyle(PaintFlags::kStroke_Style); @@ -388,6 +390,11 @@ const float corner_radius = width; #endif + if (::features::IsFormControlsRefreshEnabled()) { + DrawFocusRingPrimitive(primitive, canvas, flags, border_radius); + return; + } + DrawFocusRingPrimitive(primitive, canvas, flags, corner_radius); #if defined(OS_MACOSX) @@ -398,14 +405,18 @@ #endif } -template void PLATFORM_EXPORT DrawPlatformFocusRing<SkRect>(const SkRect&, - cc::PaintCanvas*, - SkColor, - float width); -template void PLATFORM_EXPORT DrawPlatformFocusRing<SkPath>(const SkPath&, - cc::PaintCanvas*, - SkColor, - float width); +template void PLATFORM_EXPORT +DrawPlatformFocusRing<SkRect>(const SkRect&, + cc::PaintCanvas*, + SkColor, + float width, + float border_radius); +template void PLATFORM_EXPORT +DrawPlatformFocusRing<SkPath>(const SkPath&, + cc::PaintCanvas*, + SkColor, + float width, + float border_radius); sk_sp<SkData> TryAllocateSkData(size_t size) { void* buffer = WTF::Partitions::BufferPartition()->AllocFlags(
diff --git a/third_party/blink/renderer/platform/graphics/skia/skia_utils.h b/third_party/blink/renderer/platform/graphics/skia/skia_utils.h index b5f81ee..b35b6ce 100644 --- a/third_party/blink/renderer/platform/graphics/skia/skia_utils.h +++ b/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
@@ -144,7 +144,8 @@ void DrawPlatformFocusRing(const PrimitiveType&, cc::PaintCanvas*, SkColor, - float width); + float width, + float border_radius); // TODO(fmalita): remove in favor of direct SrcRectConstraint use. inline cc::PaintCanvas::SrcRectConstraint
diff --git a/third_party/blink/renderer/platform/heap/heap_page.cc b/third_party/blink/renderer/platform/heap/heap_page.cc index 5084bd05..083e6a8 100644 --- a/third_party/blink/renderer/platform/heap/heap_page.cc +++ b/third_party/blink/renderer/platform/heap/heap_page.cc
@@ -268,7 +268,7 @@ if (GetThreadState()->SweepForbidden()) return nullptr; - ThreadHeapStatsCollector::Scope stats_scope( + ThreadHeapStatsCollector::EnabledScope stats_scope( GetThreadState()->Heap().stats_collector(), ThreadHeapStatsCollector::kLazySweepOnAllocation); ThreadState::SweepForbiddenScope sweep_forbidden(GetThreadState());
diff --git a/third_party/blink/renderer/platform/heap/thread_state.cc b/third_party/blink/renderer/platform/heap/thread_state.cc index 7842798b..08d102eb 100644 --- a/third_party/blink/renderer/platform/heap/thread_state.cc +++ b/third_party/blink/renderer/platform/heap/thread_state.cc
@@ -1620,7 +1620,7 @@ } void ThreadState::MarkPhaseVisitRoots() { - ThreadHeapStatsCollector::Scope stats_scope( + ThreadHeapStatsCollector::EnabledScope stats_scope( Heap().stats_collector(), ThreadHeapStatsCollector::kVisitRoots); Visitor* visitor = current_gc_data_.visitor.get();
diff --git a/third_party/blink/renderer/platform/heap/unified_heap_controller.cc b/third_party/blink/renderer/platform/heap/unified_heap_controller.cc index 78c8242..c7f17541d 100644 --- a/third_party/blink/renderer/platform/heap/unified_heap_controller.cc +++ b/third_party/blink/renderer/platform/heap/unified_heap_controller.cc
@@ -124,7 +124,7 @@ ThreadHeapStatsCollector::BlinkGCInV8Scope nested_scope( thread_state_->Heap().stats_collector()); if (!thread_state_->in_atomic_pause()) { - ThreadHeapStatsCollector::Scope advance_tracing_scope( + ThreadHeapStatsCollector::EnabledScope advance_tracing_scope( thread_state_->Heap().stats_collector(), ThreadHeapStatsCollector::kUnifiedMarkingStep); // V8 calls into embedder tracing from its own marking to ensure
diff --git a/third_party/blink/renderer/platform/loader/cors/cors.cc b/third_party/blink/renderer/platform/loader/cors/cors.cc index d82ae65..68c569f0 100644 --- a/third_party/blink/renderer/platform/loader/cors/cors.cc +++ b/third_party/blink/renderer/platform/loader/cors/cors.cc
@@ -160,12 +160,11 @@ base::Optional<network::CorsErrorStatus> CheckAccess( const KURL& response_url, - const int response_status_code, const HTTPHeaderMap& response_header, network::mojom::CredentialsMode credentials_mode, const SecurityOrigin& origin) { return network::cors::CheckAccess( - response_url, response_status_code, + response_url, GetHeaderValue(response_header, http_names::kAccessControlAllowOrigin), GetHeaderValue(response_header, http_names::kAccessControlAllowCredentials), @@ -201,11 +200,6 @@ url, request_mode, origin_to_pass, cors_flag == CorsFlag::Set, false); } -base::Optional<network::mojom::CorsError> CheckPreflight( - const int preflight_response_status_code) { - return network::cors::CheckPreflight(preflight_response_status_code); -} - base::Optional<network::CorsErrorStatus> CheckExternalPreflight( const HTTPHeaderMap& response_header) { return network::cors::CheckExternalPreflight(
diff --git a/third_party/blink/renderer/platform/loader/cors/cors.h b/third_party/blink/renderer/platform/loader/cors/cors.h index 7b1eef1..610c2c75 100644 --- a/third_party/blink/renderer/platform/loader/cors/cors.h +++ b/third_party/blink/renderer/platform/loader/cors/cors.h
@@ -35,7 +35,6 @@ // be removed. PLATFORM_EXPORT base::Optional<network::CorsErrorStatus> CheckAccess( const KURL&, - const int response_status_code, const HTTPHeaderMap&, network::mojom::CredentialsMode, const SecurityOrigin&); @@ -53,9 +52,6 @@ const SecurityOrigin*, CorsFlag); -PLATFORM_EXPORT base::Optional<network::mojom::CorsError> CheckPreflight( - const int preflight_response_status_code); - PLATFORM_EXPORT base::Optional<network::CorsErrorStatus> CheckExternalPreflight( const HTTPHeaderMap&);
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc index 5e6db27..07629c1c 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
@@ -756,9 +756,9 @@ new_url, request_mode, origin.get(), GetCorsFlag() ? CorsFlag::Set : CorsFlag::Unset); if (!cors_error && GetCorsFlag()) { - cors_error = cors::CheckAccess( - new_url, redirect_response.HttpStatusCode(), - redirect_response.HttpHeaderFields(), credentials_mode, *origin); + cors_error = + cors::CheckAccess(new_url, redirect_response.HttpHeaderFields(), + credentials_mode, *origin); } if (cors_error) { HandleError( @@ -1021,9 +1021,8 @@ !(resource_->IsCacheValidator() && response.HttpStatusCode() == 304)) { if (GetCorsFlag()) { base::Optional<network::CorsErrorStatus> cors_error = cors::CheckAccess( - response.CurrentRequestUrl(), response.HttpStatusCode(), - response.HttpHeaderFields(), initial_request.GetCredentialsMode(), - *resource_->GetOrigin()); + response.CurrentRequestUrl(), response.HttpHeaderFields(), + initial_request.GetCredentialsMode(), *resource_->GetOrigin()); if (cors_error) { HandleError(ResourceError(response.CurrentRequestUrl(), *cors_error)); return;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_response.h b/third_party/blink/renderer/platform/loader/fetch/resource_response.h index 9ba1090..bf3846b 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_response.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_response.h
@@ -282,6 +282,9 @@ bool IsLegacyTLSVersion() const { return is_legacy_tls_version_; } void SetIsLegacyTLSVersion(bool value) { is_legacy_tls_version_ = value; } + bool TimingAllowPassed() const { return timing_allow_passed_; } + void SetTimingAllowPassed(bool value) { timing_allow_passed_ = value; } + SecurityStyle GetSecurityStyle() const { return security_style_; } void SetSecurityStyle(SecurityStyle security_style) { security_style_ = security_style; @@ -504,6 +507,10 @@ // will be removed in the future. bool is_legacy_tls_version_ = false; + // True if the Timing-Allow-Origin check passes. + // https://fetch.spec.whatwg.org/#concept-response-timing-allow-passed + bool timing_allow_passed_ = false; + // The time at which the resource's certificate expires. Null if there was no // certificate. base::Time cert_validity_start_;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.cc b/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.cc index 2e510b3..e9cbb3e 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.cc
@@ -40,26 +40,6 @@ } // namespace -// static -RTCIceCandidatePlatform* RTCIceCandidatePlatform::Create( - String candidate, - String sdp_mid, - base::Optional<uint16_t> sdp_m_line_index, - String username_fragment) { - return MakeGarbageCollected<RTCIceCandidatePlatform>( - std::move(candidate), std::move(sdp_mid), std::move(sdp_m_line_index), - std::move(username_fragment)); -} - -RTCIceCandidatePlatform* RTCIceCandidatePlatform::Create(String candidate, - String sdp_mid, - int sdp_m_line_index) { - return MakeGarbageCollected<RTCIceCandidatePlatform>( - std::move(candidate), std::move(sdp_mid), - sdp_m_line_index < 0 ? base::Optional<uint16_t>() - : base::Optional<uint16_t>(sdp_m_line_index)); -} - RTCIceCandidatePlatform::RTCIceCandidatePlatform( String candidate, String sdp_mid,
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.h b/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.h index 0c7bb50..2751f57 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_ice_candidate_platform.h
@@ -44,21 +44,12 @@ // Creates a new RTCIceCandidatePlatform using |candidate|, |sdp_mid| and // |sdp_m_line_index|. If |sdp_m_line_index| is negative, it is // considered as having no value. - static RTCIceCandidatePlatform* Create(String candidate, - String sdp_mid, - int sdp_m_line_index); - - // Creates a new RTCIceCandidatePlatform using |candidate|, |sdp_mid|, - // |sdp_m_line_index|, and |username_fragment|. - static RTCIceCandidatePlatform* Create( - String candidate, - String sdp_mid, - base::Optional<uint16_t> sdp_m_line_index, - String username_fragment); - RTCIceCandidatePlatform(String candidate, String sdp_mid, base::Optional<uint16_t> sdp_m_line_index); + + // Creates a new RTCIceCandidatePlatform using |candidate|, |sdp_mid|, + // |sdp_m_line_index|, and |username_fragment|. RTCIceCandidatePlatform(String candidate, String sdp_mid, base::Optional<uint16_t> sdp_m_line_index,
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py index f7088043..30a099a 100755 --- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py +++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -866,6 +866,7 @@ 'third_party/blink/renderer/core/layout/layout_theme.cc', 'third_party/blink/renderer/core/paint/fallback_theme.cc', 'third_party/blink/renderer/core/paint/fallback_theme.h', + 'third_party/blink/renderer/core/paint/object_painter_base.cc', 'third_party/blink/renderer/core/paint/theme_painter.cc', ], 'allowed': ['ui::NativeTheme.*'],
diff --git a/third_party/blink/web_tests/FlagExpectations/composite-after-paint b/third_party/blink/web_tests/FlagExpectations/composite-after-paint index a8de3af..14e1e874 100644 --- a/third_party/blink/web_tests/FlagExpectations/composite-after-paint +++ b/third_party/blink/web_tests/FlagExpectations/composite-after-paint
@@ -57,8 +57,6 @@ virtual/android/url-bar/bottom-fixed-adjusted-when-showing-url-bar.html [ Crash ] # Composited filters are not working. -crbug.com/1008501 compositing/culling/filter-occlusion-blur-large.html [ Failure ] -crbug.com/1008501 compositing/culling/filter-occlusion-blur.html [ Failure ] crbug.com/1008501 compositing/reflections/deeply-nested-reflections.html [ Failure ] # Wrong contentsOpaque or background color. @@ -238,3 +236,41 @@ crbug.com/1039401 virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125.html [ Failure ] crbug.com/1039401 virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance.html [ Failure ] crbug.com/1039401 virtual/scroll_customization/fast/scrolling/scrollbar-mousedown-mouseup.html [ Failure Pass ] + +# TODO(iopopesc) these need to be rebaselined for FormControlsRefresh focus ring. +crbug.com/1035582 fast/css/focus-ring-detached.html [ Skip ] +crbug.com/1035582 fast/events/sequential-focus-navigation-starting-point.html [ Skip ] +crbug.com/1035582 fast/inline/continuation-outlines-with-layers.html [ Skip ] +crbug.com/1035582 fast/inline/continuation-outlines.html [ Skip ] +crbug.com/1035582 paint/invalidation/4776765.html [ Skip ] +crbug.com/1035582 paint/invalidation/clip/caret-ancestor-clip-change.html [ Skip ] +crbug.com/1035582 paint/invalidation/invalidate-caret-before-text-node-update.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-continuations.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-enable-continuations.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-ring-on-child-move.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-ring-on-continuation-move.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-ring-on-inline-continuation-move.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/outline-become-affected-by-descendant.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/outline-become-not-affected-by-descendant.html [ Skip ] +crbug.com/1035582 paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container.html [ Skip ] +crbug.com/1035582 paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container.html [ Skip ] +crbug.com/1035582 paint/invalidation/svg/focus-element.html [ Skip ] +crbug.com/1035582 paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem.html [ Skip ] +crbug.com/1035582 paint/invalidation/svg/transform-focus-ring-repaint.html [ Skip ] +crbug.com/1035582 paint/invalidation/table/caret-contenteditable-content-after.html [ Skip ] +crbug.com/1035582 virtual/controls-refresh/focus-rect/focus-ring-detached.html [ Skip ] +crbug.com/1035582 virtual/mouseevent_fractional/fast/events/sequential-focus-navigation-starting-point.html [ Skip ] +crbug.com/1035582 external/wpt/css/css-pseudo/selection-text-shadow-016.html [ Skip ] +crbug.com/1035582 external/wpt/css/css-text-decor/text-decoration-subelements-001.html [ Skip ] +crbug.com/1035582 paint/background/background-clip-text-descendants.html [ Skip ] +crbug.com/1035582 tables/mozilla/bugs/bug2479-3.html [ Skip ] +crbug.com/1035582 virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic.html [ Skip ] +crbug.com/1035582 virtual/composite-after-paint/paint/background/background-clip-text-descendants.html [ Skip ] +crbug.com/1035582 virtual/forced-high-contrast-cascade/external/wpt/forced-colors-mode/forced-colors-mode-14.html [ Skip ] +crbug.com/1035582 virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom.html [ Skip ] +crbug.com/1035582 virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance.html [ Skip ] +crbug.com/1035582 fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html [ Skip ] +crbug.com/1035582 paint/invalidation/overflow/float-overflow-right.html [ Skip ] +crbug.com/1035582 virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations.html [ Skip ] +crbug.com/1035582 virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance.html [ Skip ] +crbug.com/1035582 paint/invalidation/forms/submit-focus-by-mouse-then-keydown.html [ Skip ]
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng index e3e8ba09..018a9f0 100644 --- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng +++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -425,7 +425,6 @@ virtual/text-antialias/ellipsis-with-self-painting-layer.html [ Failure ] virtual/text-antialias/zwnj-disables-kerning.html [ Failure ] virtual/text-antialias/international/shape-across-elements-simple.html [ Failure ] -paint/invalidation/overflow/float-overflow-right.html [ Failure ] paint/invalidation/overflow/float-overflow.html [ Failure ] scrollingcoordinator/non-fast-scrollable-transform-changed.html [ Crash ] svg/zoom/text/zoom-svg-float-border-padding.xml [ Failure ] @@ -456,3 +455,41 @@ crbug.com/6606 external/wpt/mathml/* [ Skip ] crbug.com/1034944 webexposed/global-interface-listing.html [ Skip ] + +# TODO(iopopesc) these need to be rebaselined for FormControlsRefresh focus ring. +crbug.com/1035582 fast/css/focus-ring-detached.html [ Skip ] +crbug.com/1035582 fast/events/sequential-focus-navigation-starting-point.html [ Skip ] +crbug.com/1035582 fast/inline/continuation-outlines-with-layers.html [ Skip ] +crbug.com/1035582 fast/inline/continuation-outlines.html [ Skip ] +crbug.com/1035582 paint/invalidation/4776765.html [ Skip ] +crbug.com/1035582 paint/invalidation/clip/caret-ancestor-clip-change.html [ Skip ] +crbug.com/1035582 paint/invalidation/invalidate-caret-before-text-node-update.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-continuations.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-enable-continuations.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-ring-on-child-move.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-ring-on-continuation-move.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/focus-ring-on-inline-continuation-move.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/outline-become-affected-by-descendant.html [ Skip ] +crbug.com/1035582 paint/invalidation/outline/outline-become-not-affected-by-descendant.html [ Skip ] +crbug.com/1035582 paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container.html [ Skip ] +crbug.com/1035582 paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container.html [ Skip ] +crbug.com/1035582 paint/invalidation/svg/focus-element.html [ Skip ] +crbug.com/1035582 paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem.html [ Skip ] +crbug.com/1035582 paint/invalidation/svg/transform-focus-ring-repaint.html [ Skip ] +crbug.com/1035582 paint/invalidation/table/caret-contenteditable-content-after.html [ Skip ] +crbug.com/1035582 virtual/controls-refresh/focus-rect/focus-ring-detached.html [ Skip ] +crbug.com/1035582 virtual/mouseevent_fractional/fast/events/sequential-focus-navigation-starting-point.html [ Skip ] +crbug.com/1035582 external/wpt/css/css-pseudo/selection-text-shadow-016.html [ Skip ] +crbug.com/1035582 external/wpt/css/css-text-decor/text-decoration-subelements-001.html [ Skip ] +crbug.com/1035582 paint/background/background-clip-text-descendants.html [ Skip ] +crbug.com/1035582 tables/mozilla/bugs/bug2479-3.html [ Skip ] +crbug.com/1035582 virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic.html [ Skip ] +crbug.com/1035582 virtual/composite-after-paint/paint/background/background-clip-text-descendants.html [ Skip ] +crbug.com/1035582 virtual/forced-high-contrast-cascade/external/wpt/forced-colors-mode/forced-colors-mode-14.html [ Skip ] +crbug.com/1035582 virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom.html [ Skip ] +crbug.com/1035582 virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance.html [ Skip ] +crbug.com/1035582 fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html [ Skip ] +crbug.com/1035582 paint/invalidation/overflow/float-overflow-right.html [ Skip ] +crbug.com/1035582 virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations.html [ Skip ] +crbug.com/1035582 virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance.html [ Skip ] +crbug.com/1035582 http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js [ Skip ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 771fbf70..629fa67 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2650,6 +2650,10 @@ crbug.com/1035582 external/wpt/css/css-pseudo/spelling-error-003-manual.html [ Skip ] crbug.com/1035582 external/wpt/css/css-transforms/transform-input-015.html [ Skip ] +# Focus ring related +crbug.com/1035582 fast/forms/text/input-appearance-autocomplete-very-long-value.html [ Skip ] +crbug.com/1035582 virtual/text-antialias/selection/mixed-directionality-selection.html [ Skip ] + # ====== # ====== End of rebaselines for crbug.com/1035582 ====== # ====== @@ -3692,6 +3696,7 @@ crbug.com/626703 [ Mac ] external/wpt/service-workers/service-worker/ready.https.window.html [ Timeout ] crbug.com/626703 [ Win ] external/wpt/service-workers/service-worker/ready.https.window.html [ Timeout ] crbug.com/626703 [ Win7 ] external/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch.html [ Timeout ] +crbug.com/1040874 [ Mac ] external/wpt/pointerevents/pointerevent_pointercapture_in_frame.html [ Pass Failure ] crbug.com/626703 [ Linux ] external/wpt/css/motion/offset-anchor-transform-box-fill-box-003.html [ Failure ] crbug.com/626703 [ Mac ] external/wpt/css/motion/offset-anchor-transform-box-fill-box-003.html [ Failure ] crbug.com/626703 [ Win ] external/wpt/css/motion/offset-anchor-transform-box-fill-box-003.html [ Failure ] @@ -6761,10 +6766,6 @@ crbug.com/994692 [ Linux ] compositing/reflections/nested-reflection-anchor-point.html [ Pass Failure ] crbug.com/994692 [ Win ] compositing/reflections/nested-reflection-anchor-point.html [ Pass Failure ] -crbug.com/1003943 external/wpt/element-timing/multi-redirect-image.html [ Failure ] -crbug.com/1003943 virtual/scalefactor200/external/wpt/element-timing/multi-redirect-image.html [ Failure ] -crbug.com/1003943 virtual/scalefactor200withoutzoom/external/wpt/element-timing/multi-redirect-image.html [ Failure ] - # Video flakily not being being rendered on Mac crbug.com/979298 [ Mac ] media/controls/captions-menu-always-visible.html [ Pass Failure ] crbug.com/979298 [ Mac ] media/controls/overflow-menu-always-visible.html [ Pass Failure ] @@ -7106,7 +7107,7 @@ crbug.com/1034492 http/tests/devtools/unit/soft-drop-down.js [ Pass Failure ] # Sheriff 2019-12-17 -crbug.com/1034789 [ Mac10.13 ] http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change-async.html [ Pass Timeout ] +crbug.com/1034789 [ Mac ] http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change-async.html [ Pass Timeout ] crbug.com/1034789 [ Mac10.13 ] virtual/threaded/fast/scroll-snap/snap-to-target-on-layout-change.html [ Pass Timeout ] crbug.com/1034789 [ Mac10.13 ] external/wpt/pointerevents/pointerevent_coalesced_events_attributes.html [ Pass Failure ] crbug.com/1034839 css3/filters/effect-reference-image.html [ Pass Failure ] @@ -7174,7 +7175,6 @@ crbug.com/1039401 [ Linux ] external/wpt/css/css-images/image-orientation/image-orientation-none.html [ Failure ] crbug.com/1039401 [ Linux ] external/wpt/css/css-text-decor/text-decoration-subelements-002.html [ Failure ] crbug.com/1039401 [ Linux ] external/wpt/css/css-text-decor/text-decoration-subelements-003.html [ Failure ] -crbug.com/1039401 [ Linux ] fast/backgrounds/background-svg-scaling.html [ Failure ] crbug.com/1039401 [ Linux ] fast/backgrounds/size/contain-and-cover.html [ Failure ] crbug.com/1039401 [ Linux ] fast/dom/HTMLMeterElement/meter-boundary-values.html [ Failure ] crbug.com/1039401 [ Linux ] fast/dom/HTMLMeterElement/meter-optimums.html [ Failure ] @@ -7183,7 +7183,6 @@ crbug.com/1039401 [ Linux ] paint/invalidation/forms/range-focus-by-mouse-then-keydown.html [ Failure ] crbug.com/1039401 [ Linux ] svg/W3C-SVG-1.1/filters-turb-01-f.svg [ Failure ] crbug.com/1039401 [ Linux ] svg/as-background-image/background-image-preserveaspectRatio-support.html [ Failure ] -crbug.com/1039401 [ Linux ] svg/as-image/image-respects-deviceScaleFactor.html [ Failure ] crbug.com/1039401 [ Linux ] svg/zoom/page/zoom-background-image-tiled.html [ Failure ] crbug.com/1039401 [ Linux ] svg/zoom/page/zoom-background-images.html [ Failure ] crbug.com/1039401 [ Linux ] svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html [ Failure ] @@ -7236,3 +7235,6 @@ # Temporarily disabled to land Animations accessibility changes in DevTools crbug.com/963183 http/tests/devtools/animation/animation-timeline.js [ Pass Failure ] + +# Broken in https://chromium-review.googlesource.com/c/chromium/src/+/1636716 +crbug.com/963183 http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js [ Pass Failure ] \ No newline at end of file
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites index e37f8df..344f801 100644 --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -68,13 +68,15 @@ "prefix": "gpu-rasterization", "bases": ["images"], "args": ["--force-gpu-rasterization", - "--enable-features=DecodeLossyWebPImagesToYUV"] + "--enable-features=DecodeLossyWebPImagesToYUV", + "--enable-features=DecodeJpeg420ImagesToYUV"] }, { "prefix": "gpu-rasterization-disable-yuv", "bases": ["images/yuv-decode-eligible"], "args": ["--force-gpu-rasterization", - "--disable-features=DecodeLossyWebPImagesToYUV"] + "--disable-features=DecodeLossyWebPImagesToYUV", + "--disable-features=DecodeJpeg420ImagesToYUV"] }, { "prefix": "exotic-color-space",
diff --git a/third_party/blink/web_tests/WPTOverrideExpectations b/third_party/blink/web_tests/WPTOverrideExpectations index cf1ca2c..85f79c1 100644 --- a/third_party/blink/web_tests/WPTOverrideExpectations +++ b/third_party/blink/web_tests/WPTOverrideExpectations
@@ -847,6 +847,7 @@ # Here are tests that were failing on WPT waterfall as of Dec. 2, 2019. They are triaged. # --- # Reftest with pixel diff. Fails locally. Fails on wpt.fyi +external/wpt/compat/webkit-box-rtl-flex.html [ Failure ] external/wpt/css/css-fonts/font-display/font-display-change.html [ Failure ] external/wpt/css/css-layout-api/fallback-layout/constructor-error.https.html [ Failure ] external/wpt/mathml/presentation-markup/direction/direction-007.html [ Failure ]
diff --git a/third_party/blink/web_tests/WebDriverExpectations b/third_party/blink/web_tests/WebDriverExpectations index 913d0a4e..3a89302 100644 --- a/third_party/blink/web_tests/WebDriverExpectations +++ b/third_party/blink/web_tests/WebDriverExpectations
@@ -161,3 +161,4 @@ crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/new_session/default_values.py>>test_desired [ Failure ] crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/take_screenshot/user_prompts.py>>test_dismiss_and_notify[capabilities0-alert] [ Failure ] crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/take_element_screenshot/user_prompts.py>>test_ignore[capabilities0-alert] [ Failure ] +crbug.com/1023255 [ Linux ] external/wpt/webdriver/tests/take_element_screenshot/iframe.py>>test_frame_element [ Failure Pass ]
diff --git a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-expected.png b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-expected.png index 46428a3..ed6192a 100644 --- a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-expected.png +++ b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large-expected.png b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large-expected.png index 644f773..5338936 100644 --- a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large-expected.png +++ b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large.html b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large.html index 55743da..6ec4431 100644 --- a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large.html +++ b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur-large.html
@@ -10,8 +10,6 @@ will-change: transform; } .yellow-parent { - width: 800px; - height: 800px; -webkit-filter: blur(10px); } .centered {
diff --git a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur.html b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur.html index ded27518..6512f22a 100644 --- a/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur.html +++ b/third_party/blink/web_tests/compositing/culling/filter-occlusion-blur.html
@@ -6,8 +6,6 @@ will-change: transform; } .yellow-parent { - width: 600px; - height: 600px; -webkit-filter: blur(10px); } .centered {
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json index 8075d947..e33352b 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json
@@ -251161,6 +251161,12 @@ } ] ], + "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html": [ + [ + "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html", + {} + ] + ], "html/cross-origin-opener-policy/popup-redirect-cache.https.html": [ [ "html/cross-origin-opener-policy/popup-redirect-cache.https.html", @@ -457367,6 +457373,10 @@ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", "support" ], + "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html": [ + "e36b5190aafc0b42b043802422dd411a831a20a5", + "testharness" + ], "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers": [ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", "support"
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/overflow-recalc-001.html b/third_party/blink/web_tests/external/wpt/css/css-overflow/overflow-recalc-001.html new file mode 100644 index 0000000..9c5919a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-overflow/overflow-recalc-001.html
@@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<meta charset="utf-8"> +<title>CSS Overflow: Overflow recalc after font-size change</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-overflow/"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1036644"> +<link rel="match" href="reference/overflow-recalc-001-ref.html"> +<meta name="assert" content="Checks that overflow of an inline element is properly recomputed after changes on the descendants."> +<script src="/common/reftest-wait.js"></script> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> +#scroller { + height: 200px; + overflow: scroll; + position: relative; +} +#wrapper { + margin-top: 100px; + width: 200px; + height: 200px; + overflow: hidden; + font-family: Ahem; + line-height: 1; + color: green; +} +#red { + background: red; + width: 200px; + height: 200px; + position: absolute; + top: 100px; + z-index: -1; +} +</style> +<p>Test passes if there is <strong>no red</strong>.</p> +<div id="scroller"> + <div id="wrapper"> + <span id="inlineouter"> + <span id="inlineinner">X</span> + </span> + </div> + <div id="red"></div> +</div> + +<script> + requestAnimationFrame(() => requestAnimationFrame(() => { + inlineinner.style.fontSize = "200px"; + takeScreenshot(); + })); +</script> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/reference/overflow-recalc-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-overflow/reference/overflow-recalc-001-ref.html new file mode 100644 index 0000000..b18dee8c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-overflow/reference/overflow-recalc-001-ref.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Overflow: Reference Overflow recalc after font-size change</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<style> +#scroller { + height: 200px; + overflow: scroll; +} +#wrapper { + margin-top: 100px; + width: 200px; + height: 200px; + background: green; +} +</style> +<p>Test passes if there is <strong>no red</strong>.</p> +<div id="scroller"> + <div id="wrapper"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/multi-redirect-image.html b/third_party/blink/web_tests/external/wpt/element-timing/multi-redirect-image.html index c2f570f..2a12c5f 100644 --- a/third_party/blink/web_tests/external/wpt/element-timing/multi-redirect-image.html +++ b/third_party/blink/web_tests/external/wpt/element-timing/multi-redirect-image.html
@@ -18,7 +18,7 @@ + '/resource-timing/resources/multi_redirect.py?'; destUrl += 'page_origin=' + get_host_info().HTTP_ORIGIN; destUrl += '&cross_origin=' + get_host_info().HTTP_REMOTE_ORIGIN; - destUrl += '&final_resource=' + '/images/blue.png'; + destUrl += '&final_resource=' + '/element-timing/resources/circle.svg'; destUrl += '&timing_allow=1'; destUrl += '&tao_steps='; for (let taoSteps=0; taoSteps < 4; taoSteps++) {
diff --git a/third_party/blink/web_tests/external/wpt/element-timing/resources/circle.svg.headers b/third_party/blink/web_tests/external/wpt/element-timing/resources/circle.svg.headers new file mode 100644 index 0000000..7296361 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/element-timing/resources/circle.svg.headers
@@ -0,0 +1 @@ +Timing-Allow-Origin: *
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html new file mode 100644 index 0000000..e36b519 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html
@@ -0,0 +1,19 @@ +<!doctype html> +<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin"><!-- should not be supported --> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/common.js"></script> + +<div id=log></div> +<script> + +let tests = [ + // popup Origin, popup COOP, expect opener + [SAME_ORIGIN, "", true], +]; + +run_coop_tests("same-origin", tests); + +</script>
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/multi-redirects-TAO.html b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/multi-redirects-TAO.html new file mode 100644 index 0000000..4e462c7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/multi-redirects-TAO.html
@@ -0,0 +1,52 @@ +<!DOCTYPE HTML> +<html> +<head> +<meta charset="utf-8" /> +<title>This test validates LargestContenfulPaint information for cross-origin redirect chain images.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/largest-contentful-paint-helpers.js"></script> +<script src=/common/get-host-info.sub.js></script> +</head> +<body> +<script> +async_test(t => { + if (!window.LargestContentfulPaint) { + assert_unreached("LargestContentfulPaint is not implemented"); + } + let destUrl = get_host_info().HTTP_REMOTE_ORIGIN + + '/resource-timing/resources/multi_redirect.py?'; + destUrl += 'page_origin=' + get_host_info().HTTP_ORIGIN; + destUrl += '&cross_origin=' + get_host_info().HTTP_REMOTE_ORIGIN; + destUrl += '&final_resource=' + '/element-timing/resources/circle.svg'; + destUrl += '&timing_allow=1'; + destUrl += '&tao_steps='; + + const image = document.createElement('img'); + image.src = destUrl + '0'; + image.setAttribute('id', 'id'); + document.body.appendChild(image); + + let numObserved = 0; + let beforeLoad = performance.now(); + + new PerformanceObserver(t.step_func(entries => { + assert_equals(entries.getEntries().length, 1); + const entry = entries.getEntries()[0]; + const options = numObserved === 3 ? [] : ['renderTimeIs0']; + checkImage(entry, destUrl + numObserved, 'id', 200 * 200, beforeLoad, options); + numObserved++; + if (numObserved === 4) + t.done(); + else { + // Change the image to trigger a new LCP entry. + const img = document.getElementById('id'); + image.src = destUrl + numObserved; + beforeLoad = performance.now(); + } + })).observe({type: 'largest-contentful-paint'}); +}, 'Cross-origin image without TAO should not have its renderTime set, with full TAO it should.'); +</script> +</body> +</html> +
diff --git a/third_party/blink/web_tests/fast/overflow/visual-overflow-recalc-expected.html b/third_party/blink/web_tests/fast/overflow/visual-overflow-recalc-expected.html deleted file mode 100644 index 58b1d2d3..0000000 --- a/third_party/blink/web_tests/fast/overflow/visual-overflow-recalc-expected.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!DOCTYPE html> -<style> -#scroller { - height: 200px; - overflow: scroll; -} -#wrapper { - margin-top: 100px; - width: 200px; - height: 200px; - background: green; -} -</style> -<p>Test passes if there is <strong>no red</strong>.</p> -<div id="scroller"> - <div id="wrapper"> -</div>
diff --git a/third_party/blink/web_tests/fast/overflow/visual-overflow-recalc.html b/third_party/blink/web_tests/fast/overflow/visual-overflow-recalc.html deleted file mode 100644 index d9e6ae8..0000000 --- a/third_party/blink/web_tests/fast/overflow/visual-overflow-recalc.html +++ /dev/null
@@ -1,40 +0,0 @@ -<!DOCTYPE html> -<script src="../../resources/run-after-layout-and-paint.js"></script> -<style> -#scroller { - height: 200px; - overflow: scroll; - position: relative; -} -#wrapper { - margin-top: 100px; - width: 200px; - height: 200px; - overflow: hidden; - font-family: Ahem; - color: green; -} -#red { - background: red; - width: 200px; - height: 200px; - position: absolute; - top: 100px; - z-index: -1; -} -</style> -<p>Test passes if there is <strong>no red</strong>.</p> -<div id="scroller"> - <div id="wrapper"> - <span id="inlineouter"> - <span id="inlineinner">X</span> - </span> - </div> - <div id="red"></div> -</div> - -<script> - runAfterLayoutAndPaint(function() { - inlineinner.style.fontSize = "200px"; - }, true); -</script>
diff --git a/third_party/blink/web_tests/http/tests/push_messaging/subscribe-success-in-document.html b/third_party/blink/web_tests/http/tests/push_messaging/subscribe-success-in-document.html index 9c64e1f..ee744e8 100644 --- a/third_party/blink/web_tests/http/tests/push_messaging/subscribe-success-in-document.html +++ b/third_party/blink/web_tests/http/tests/push_messaging/subscribe-success-in-document.html
@@ -18,10 +18,13 @@ swRegistration = serviceWorkerRegistration; return wait_for_state(test, swRegistration.installing, 'activated'); }) - .then(function() { + .then(async function() { // If running manually, grant permission when prompted. - if (window.testRunner) - testRunner.setPermission('push-messaging', 'granted', location.origin, location.origin); + if (window.internals) { + await window.internals.setPermission( + {name: 'push', userVisibleOnly: true}, 'granted', + location.origin, location.origin); + } return swRegistration.pushManager.subscribe({ userVisibleOnly: true }); }) .then(function(pushSubscription) {
diff --git a/third_party/blink/web_tests/http/tests/resources/permissions-helper.js b/third_party/blink/web_tests/http/tests/resources/permissions-helper.js index 7e513aa..5ffc949 100644 --- a/third_party/blink/web_tests/http/tests/resources/permissions-helper.js +++ b/third_party/blink/web_tests/http/tests/resources/permissions-helper.js
@@ -1,5 +1,5 @@ // This file provides a PermissionsHelper object which can be used by -// LayoutTests using testRunner to handle permissions. The methods in the object +// LayoutTests to handle permissions. The methods in the object // return promises so can be used to write idiomatic, race-free code. // // The current available methods are: @@ -46,21 +46,7 @@ return { setPermission: function(name, state) { - return new Promise(function(resolver, reject) { - navigator.permissions.query(nameToObject(name)).then(function(result) { - if (result.state == state) { - resolver() - return; - } - - result.onchange = function() { - result.onchange = null; - resolver(); - }; - - testRunner.setPermission(name, state, location.origin, location.origin); - }); - }); + return internals.setPermission(nameToObject(name), state, location.origin, location.origin); } } })();
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-001-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-001-expected.png new file mode 100644 index 0000000..cabbc51 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-002-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-002-expected.png new file mode 100644 index 0000000..cabbc51 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-002-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-003-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-003-expected.png new file mode 100644 index 0000000..cabbc51 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-004-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-004-expected.png new file mode 100644 index 0000000..cabbc51 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-005-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-005-expected.png new file mode 100644 index 0000000..cabbc51 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/pasteboard/paste-line-endings-005-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/selection/6476-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/selection/6476-expected.png new file mode 100644 index 0000000..ceb400f --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/selection/6476-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/selection/leave-requested-block-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/selection/leave-requested-block-expected.png new file mode 100644 index 0000000..37487384 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/selection/leave-requested-block-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/selection/previous-line-position-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/selection/previous-line-position-expected.png new file mode 100644 index 0000000..d340897 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/selection/previous-line-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/editing/style/block-styles-007-expected.png b/third_party/blink/web_tests/platform/fuchsia/editing/style/block-styles-007-expected.png new file mode 100644 index 0000000..5dc9b6a --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/editing/style/block-styles-007-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/fast/css/focus-ring-multiline-expected.png b/third_party/blink/web_tests/platform/fuchsia/fast/css/focus-ring-multiline-expected.png new file mode 100644 index 0000000..ca124578 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/fast/css/focus-ring-multiline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/fuchsia/fast/events/reveal-link-when-focused-expected.png new file mode 100644 index 0000000..512dd18 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/fast/events/reveal-link-when-focused-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/fast/inline/inline-focus-ring-expected.png b/third_party/blink/web_tests/platform/fuchsia/fast/inline/inline-focus-ring-expected.png new file mode 100644 index 0000000..5c8370d --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/fast/inline/inline-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/fuchsia/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png new file mode 100644 index 0000000..f5dd483e --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/paint/invalidation/outline/focus-layers-expected.png b/third_party/blink/web_tests/platform/fuchsia/paint/invalidation/outline/focus-layers-expected.png new file mode 100644 index 0000000..1b85754 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/paint/invalidation/outline/focus-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/transforms/transformed-caret-expected.png b/third_party/blink/web_tests/platform/fuchsia/transforms/transformed-caret-expected.png new file mode 100644 index 0000000..6f79b58 --- /dev/null +++ b/third_party/blink/web_tests/platform/fuchsia/transforms/transformed-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/custom-elements/form-validation-bubble-appearance-expected.png b/third_party/blink/web_tests/platform/linux/custom-elements/form-validation-bubble-appearance-expected.png index 7c270a6..0b5af35 100644 --- a/third_party/blink/web_tests/platform/linux/custom-elements/form-validation-bubble-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/custom-elements/form-validation-bubble-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-011-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-011-expected.png index 6287f9eb..edb2289 100644 --- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-011-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-011-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-014-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-014-expected.png index 621b583c..0c7c5d97 100644 --- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-014-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-014-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-015-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-015-expected.png index 1671265..070f97a3 100644 --- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-015-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-015-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-expected.png index 9cdecd9..e19d66a4 100644 --- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-painting-low-dpi-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-painting-low-dpi-expected.png index 7d80646..8cfdafa 100644 --- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-painting-low-dpi-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-painting-low-dpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/5369009-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/5369009-expected.png index 908be8f..c0179f9 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/5369009-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/5369009-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/5433862-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/5433862-2-expected.png index bf088a7..0c8e29b 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/5433862-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/5433862-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/5483370-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/5483370-expected.png index 154409f..0b4b05a3 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/5483370-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/5483370-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-at-paragraph-boundaries-011-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-at-paragraph-boundaries-011-expected.png index 5c1dec1..74846b4f 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-at-paragraph-boundaries-011-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-at-paragraph-boundaries-011-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-br-013-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-br-013-expected.png index 6072475..3b17d20 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-br-013-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-br-013-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-015-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-015-expected.png index 5f1d676..e016ab1 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-015-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-015-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-016-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-016-expected.png index 88f879f..3544d82 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-016-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-016-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-017-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-017-expected.png index 4b823b34..99aefac 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-017-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/delete-line-017-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/merge-different-styles-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/merge-different-styles-expected.png index 1aa2738b..dac87cd 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/merge-different-styles-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/merge-different-styles-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/merge-endOfParagraph-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/merge-endOfParagraph-expected.png index fd915560..8cf15d7b 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/merge-endOfParagraph-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/merge-endOfParagraph-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/merge-no-br-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/merge-no-br-expected.png index 486d4190..bdef124 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/merge-no-br-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/merge-no-br-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/deleting/table-cells-expected.png b/third_party/blink/web_tests/platform/linux/editing/deleting/table-cells-expected.png index c4b7c0d..132f8e5 100644 --- a/third_party/blink/web_tests/platform/linux/editing/deleting/table-cells-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/deleting/table-cells-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/execCommand/4916541-expected.png b/third_party/blink/web_tests/platform/linux/editing/execCommand/4916541-expected.png index 2893d58..83a9972 100644 --- a/third_party/blink/web_tests/platform/linux/editing/execCommand/4916541-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/execCommand/4916541-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/execCommand/5142012-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/execCommand/5142012-1-expected.png index b63d9d3..cb313fe 100644 --- a/third_party/blink/web_tests/platform/linux/editing/execCommand/5142012-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/execCommand/5142012-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/execCommand/format-block-with-trailing-br-expected.png b/third_party/blink/web_tests/platform/linux/editing/execCommand/format-block-with-trailing-br-expected.png index 5754aab..2cf9db2 100644 --- a/third_party/blink/web_tests/platform/linux/editing/execCommand/format-block-with-trailing-br-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/execCommand/format-block-with-trailing-br-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/execCommand/insertImage-expected.png b/third_party/blink/web_tests/platform/linux/editing/execCommand/insertImage-expected.png index e5dfa5c..5a02ded 100644 --- a/third_party/blink/web_tests/platform/linux/editing/execCommand/insertImage-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/execCommand/insertImage-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-contenteditable-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-contenteditable-expected.png index f604dbf3..f9c956f 100644 --- a/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/input/caret-read-only-after-editable-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/caret-read-only-after-editable-expected.png index 9f90d05..9d8b375a 100644 --- a/third_party/blink/web_tests/platform/linux/editing/input/caret-read-only-after-editable-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/input/caret-read-only-after-editable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-contenteditable-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-contenteditable-expected.png index 4769629..079b87a 100644 --- a/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/4278698-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/4278698-expected.png index ab1b7c9..b7e0dee 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/4278698-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/4278698-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/4840662-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/4840662-expected.png index b5b7c6e1..a254abb9 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/4840662-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/4840662-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/5002441-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/5002441-expected.png index abb47489..399c98d 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/5002441-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/5002441-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-1-expected.png index f710358..afd6350b 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-2-expected.png index 72a64f3..6ca324d 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/5058163-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-2-expected.png index 3f1eed6..c3d1a59 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-3-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-3-expected.png index 86e8a4e0..1a0fda1 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-3-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/5549929-3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-3800346-fix-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-3800346-fix-expected.png index 92aac43..bc24fddaf 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-3800346-fix-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-3800346-fix-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-space-in-empty-doc-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-space-in-empty-doc-expected.png index fe4a0fec..d1a114b 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-space-in-empty-doc-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-space-in-empty-doc-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-001-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-001-expected.png index 1b332e25..3a9333c 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-001-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-003-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-003-expected.png index 707c3ed4..410816e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-003-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/insert-text-at-tabspan-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/line-break-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/line-break-expected.png index 4dadd33d..3c61a0f 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/line-break-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/line-break-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-1-expected.png index 5ac9b69..738176f 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-2-expected.png index 959d8227..494e770d 100644 --- a/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/inserting/paragraph-separator-in-table-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/4631972-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/4631972-expected.png index 9c6f9fa..e97f8ca 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/4631972-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/4631972-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/4947130-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/4947130-expected.png index bc66a4c..ef0db17d 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/4947130-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/4947130-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-2-expected.png index 738f1c11..b9c0e3b 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-expected.png index 6861a46..0f0aace 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5071074-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5134759-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5134759-expected.png index dd7aa45f..7836a61 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5134759-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5134759-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5156401-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5156401-1-expected.png index 944e986..c084263 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5156401-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5156401-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5478250-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5478250-expected.png index ce61ee5..31f03d4 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5478250-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5478250-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5601583-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5601583-1-expected.png index 53a6327..d9d7582 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/5601583-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/5601583-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/bad-placeholder-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/bad-placeholder-expected.png index cf0243ac..7604934 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/bad-placeholder-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/bad-placeholder-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/copy-standalone-image-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/copy-standalone-image-expected.png index 3d95990..30b711d 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/copy-standalone-image-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/copy-standalone-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png index fffa07e..46840e4 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-after-blockquote-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-after-blockquote-expected.png index 545d155..0af3046a 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-after-blockquote-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-after-blockquote-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png index 0d72d2c..65145cdb 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-001-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-001-expected.png index cabbc51..a4dd637 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-001-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-002-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-002-expected.png index cabbc51..a4dd637 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-002-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-002-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-003-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-003-expected.png index cabbc51..a4dd637 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-003-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-004-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-004-expected.png index cabbc51..a4dd637 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-004-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-005-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-005-expected.png index cabbc51..a4dd637 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-005-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-line-endings-005-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-text-at-tabspan-003-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-text-at-tabspan-003-expected.png index 113897aa..dc8527bd 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-text-at-tabspan-003-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/paste-text-at-tabspan-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/quirks-mode-br-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/quirks-mode-br-1-expected.png index 16d9a5b..317a4b0 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/quirks-mode-br-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/quirks-mode-br-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/pasteboard/styled-element-markup-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/styled-element-markup-expected.png index f4901196..b41ae26 100644 --- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/styled-element-markup-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/styled-element-markup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/5099303-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/5099303-expected.png index b0f5110..d9444071 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/5099303-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/5099303-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/5195166-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/5195166-2-expected.png index 964bcea2..09b682e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/5195166-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/5195166-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/6476-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/6476-expected.png index ceb400f..b0f78410 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/6476-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/6476-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-expected.png index 9980886..14bcc3c 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-left-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-left-expected.png index 2677329..9fc79ef3 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-left-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-2-left-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-expected.png index a0d9b7c..421f3e36 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-right-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-right-expected.png index d37411e9..29518e2 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-right-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-ltr-right-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-expected.png index 101db49d..635fe4f 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-left-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-left-expected.png index 231bc4c..5b84dbf 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-left-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-2-left-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-expected.png index 606f3b2..67c9037 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-right-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-right-expected.png index 077f221..1d62fbf7 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-right-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/caret-rtl-right-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/click-start-of-line-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/click-start-of-line-expected.png index 6fa774d..631c0d2 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/click-start-of-line-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/click-start-of-line-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/contains-boundaries-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/contains-boundaries-expected.png index 9267e4d..31ae102e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/contains-boundaries-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/contains-boundaries-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/contenteditable-click-inside-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/contenteditable-click-inside-expected.png index 143a3a0..7208dc5c 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/contenteditable-click-inside-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/contenteditable-click-inside-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/extend-selection-bidi-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/extend-selection-bidi-expected.png index 234af63..dc923d6 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/extend-selection-bidi-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/extend-selection-bidi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/leave-requested-block-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/leave-requested-block-expected.png index 37487384..a12be89 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/leave-requested-block-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/leave-requested-block-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/move-backwords-by-word-001-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/move-backwords-by-word-001-expected.png index 68fd791..311d2f1 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/move-backwords-by-word-001-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/move-backwords-by-word-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/move-by-line-002-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/move-by-line-002-expected.png index 4a5cd68..389048e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/move-by-line-002-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/move-by-line-002-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/move-by-sentence-001-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/move-by-sentence-001-expected.png index 14b374d..81e48e4 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/move-by-sentence-001-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/move-by-sentence-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/move-past-trailing-space-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/move-past-trailing-space-expected.png index 9d740dc..1562b1f6 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/move-past-trailing-space-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/move-past-trailing-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/previous-line-position-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/previous-line-position-expected.png index d340897..433bdfc 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/previous-line-position-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/previous-line-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-1-expected.png index f3d3829..c18f18f6 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-2-expected.png index 303f7bb..488971e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-3-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-3-expected.png index efe8bfaf..e5f1042 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-3-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/replaced-boundaries-3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/select-missing-image-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/select-missing-image-expected.png index ca7a2a52..018166a 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/select-missing-image-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/select-missing-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/triple-click-in-pre-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/triple-click-in-pre-expected.png index 570d8b0..fe15f64 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/triple-click-in-pre-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/triple-click-in-pre-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-1-expected.png index 8f5e543..e833f153 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-1-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-2-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-2-expected.png index 7c15dab..92ed0f1 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/selection/wrapped-line-caret-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/4916887-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/4916887-expected.png index 08653bd6..1c11189 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/4916887-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/4916887-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/5065910-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/5065910-expected.png index a912e1a..827a0544 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/5065910-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/5065910-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/5084241-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/5084241-expected.png index 75de4d96..b400b8e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/5084241-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/5084241-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/5228141-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/5228141-expected.png index 1101be18..3012b0c2 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/5228141-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/5228141-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/5279521-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/5279521-expected.png index 8be20a7..bb9a6f4 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/5279521-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/5279521-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/block-styles-007-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/block-styles-007-expected.png index 5dc9b6a..1ca1996 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/block-styles-007-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/block-styles-007-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/style/highlight-expected.png b/third_party/blink/web_tests/platform/linux/editing/style/highlight-expected.png index 26d53e3e..03564b35 100644 --- a/third_party/blink/web_tests/platform/linux/editing/style/highlight-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/style/highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-001-expected.png b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-001-expected.png index 7d6441b..c75e0f0 100644 --- a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-001-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-003-expected.png b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-003-expected.png index a590f30..4b7790e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-003-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-delete-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-after-expected.png b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-after-expected.png index 8c83ee5d..1c59a9e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-after-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-after-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-before-expected.png b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-before-expected.png index e411dae..613e9247 100644 --- a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-before-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/list-type-before-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-after-expected.png b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-after-expected.png index 66dcb7cc..91d224e 100644 --- a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-after-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-after-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-before-expected.png b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-before-expected.png index e96ab959..a139ec1 100644 --- a/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-before-expected.png +++ b/third_party/blink/web_tests/platform/linux/editing/unsupported-content/table-type-before-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/backgrounds/background-svg-scaling-expected.png b/third_party/blink/web_tests/platform/linux/fast/backgrounds/background-svg-scaling-expected.png deleted file mode 100644 index e43aef8..0000000 --- a/third_party/blink/web_tests/platform/linux/fast/backgrounds/background-svg-scaling-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-continuations-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-continuations-expected.png index 2f95ba9a..146a698 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-continuations-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-continuations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-detached-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-detached-expected.png index 5d68d50..3f40e03 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-detached-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-detached-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-expected.png index ca124578..b1a79e1f 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-writingmode-vertical-expected.png index 3a083bd..c3c1d9a8 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-writingmode-vertical-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-writingmode-vertical-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-color-expected.png index 557e569..0b631b5 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-offset-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-offset-expected.png index b267d947..f16c9c3 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-offset-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-width-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-width-expected.png index b250eaa..5955278 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-width-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-outline-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/ignore-empty-focus-ring-rects-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/ignore-empty-focus-ring-rects-expected.png index 5710296..7a6a117 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/ignore-empty-focus-ring-rects-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/ignore-empty-focus-ring-rects-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-empty-rects-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-empty-rects-expected.png index 64a34f5b..7ed0967 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-empty-rects-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-empty-rects-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-location-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-location-expected.png index 76cd155..aeb0a15 100644 --- a/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-location-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/css/outline-auto-location-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/linux/fast/dom/52776-expected.png index 42ba6bf..8ada27b 100644 --- a/third_party/blink/web_tests/platform/linux/fast/dom/52776-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/dom/52776-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/linux/fast/dom/focus-contenteditable-expected.png index ad8f854..2300b2f 100644 --- a/third_party/blink/web_tests/platform/linux/fast/dom/focus-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/dom/focus-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/linux/fast/events/reveal-link-when-focused-expected.png index 512dd18..1b3a91e 100644 --- a/third_party/blink/web_tests/platform/linux/fast/events/reveal-link-when-focused-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/events/reveal-link-when-focused-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-paint-order-expected.png index 11c9346..6965322 100644 --- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-paint-order-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-outline-expected.png index 9e1a79f..d8770c5 100644 --- a/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-outline-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-paint-order-expected.png index 3efbf27..0c8c4a71 100644 --- a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-paint-order-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/inline/25277-2-expected.png b/third_party/blink/web_tests/platform/linux/fast/inline/25277-2-expected.png index 4c55675..9029bf0 100644 --- a/third_party/blink/web_tests/platform/linux/fast/inline/25277-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/inline/25277-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/inline/25277-expected.png b/third_party/blink/web_tests/platform/linux/fast/inline/25277-expected.png index 4c55675..9029bf0 100644 --- a/third_party/blink/web_tests/platform/linux/fast/inline/25277-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/inline/25277-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-expected.png b/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-expected.png index 0becce9d..838b491f 100644 --- a/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-2-expected.png b/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-2-expected.png index c2f92d85f..d6320f5 100644 --- a/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-2-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-expected.png b/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-expected.png index ea72ca4b..20334da 100644 --- a/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/inline/continuation-outlines-with-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/inline/inline-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/fast/inline/inline-focus-ring-expected.png index 5c8370d..2032eef 100644 --- a/third_party/blink/web_tests/platform/linux/fast/inline/inline-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/inline/inline-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-focus-ring-expected.png index 4c9875b..732f573 100644 --- a/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-1-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-1-and-click-expected.png index c70bcc8..f45d7fb 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-1-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-10-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-10-and-click-expected.png index 95fad259..35222a8 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-10-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-10-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-2-and-click-expected.png index 8576ebb..c15fc31 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-2-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-3-and-click-expected.png index 4b0f82f..77c04f9 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-3-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-4-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-4-and-click-expected.png index 1e678c8..8353760a 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-4-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-5-and-click-expected.png index ec66c3b..f3699d6 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-5-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-6-and-click-expected.png index 95fad259..35222a8 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-6-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-7-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-7-and-click-expected.png index 95fad259..35222a8 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-7-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-7-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-8-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-8-and-click-expected.png index 066a9fe..9e084c7 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-8-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-8-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-9-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-9-and-click-expected.png index 953e9e4e..7d65c180 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-9-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-add-summary-9-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-1-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-1-and-click-expected.png index b2258be..358d84c 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-1-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-2-and-click-expected.png index e2067f35..88fb71b 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-2-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-3-and-click-expected.png index 70b4d8b..b30847f 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-3-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-4-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-4-and-click-expected.png index dbefaf51..2a25f58 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-4-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-5-and-click-expected.png index ada869f..d3bdec4c 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-5-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-6-and-click-expected.png index 136b37a..b79c81a 100644 --- a/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-6-and-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/html/details_summary/details-remove-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-circle-focus-ring-expected.png index a2e1995..88701e5 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-expected.png index e8abbf0d..9a5875d4 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-in-positioned-container-expected.png index 121bfce2..69cec8e 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-expected.png index 0ba3b51..9e496c0 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index 4566a28..5eb3037 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png index f5dd483e..b6a42b5c 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-paint-root-offset-expected.png index fae588f2..bbb68ca6 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-scale-transform-expected.png index cdbcf0e36..674bf05 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-zoom-expected.png index 33e3512..f7b90275 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-circle-focus-ring-expected.png index 2bd1b4d..9da1992 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-polygon-focus-ring-expected.png index 644ae3f..f282522 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/images/imagemap-polygon-focus-ring-expected.png index 8328cf6..9c9427b5 100644 --- a/third_party/blink/web_tests/platform/linux/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/4776765-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/4776765-expected.png index f4a1fab..3883762 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/4776765-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/4776765-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/delete-into-nested-block-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/delete-into-nested-block-expected.png index a216988..e470d42d 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/delete-into-nested-block-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/delete-into-nested-block-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png index 870aa92..896752dd 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt index 23da500..c2ce56e 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt
@@ -8,12 +8,12 @@ "paintInvalidations": [ { "object": "LayoutButton INPUT", - "rect": [7, 7, 59, 24], + "rect": [6, 6, 61, 26], "reason": "subtree" }, { "object": "LayoutButton INPUT", - "rect": [7, 7, 59, 24], + "rect": [6, 6, 61, 26], "reason": "chunk appeared" }, {
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-continuations-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-continuations-expected.txt index ea00e5c..7025df3 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-continuations-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-continuations-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "NGPhysicalBoxFragment LayoutInline SPAN id='outer'", - "rect": [7, 87, 88, 22], + "rect": [6, 86, 90, 24], "reason": "disappeared" } ]
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.png index 34f5876..b8ff8f2 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.txt index 0adbadc..0167d17 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-enable-continuations-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "NGPhysicalBoxFragment LayoutInline SPAN id='outer'", - "rect": [7, 87, 88, 22], + "rect": [6, 86, 90, 24], "reason": "appeared" } ]
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-layers-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-layers-expected.png index 1b85754..85cbe44 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-layers-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt index a93af0c..c4fcde5 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt
@@ -8,13 +8,13 @@ }, { "name": "LayoutTextControl INPUT id='root'", - "position": [-1, -1], - "bounds": [63, 24], + "position": [-2, -2], + "bounds": [65, 26], "backgroundColor": "#FFFFFF", "paintInvalidations": [ { "object": "LayoutTextControl INPUT id='root'", - "rect": [0, 0, 63, 24], + "rect": [0, 0, 65, 26], "reason": "full layer" }, { @@ -24,7 +24,7 @@ }, { "object": "Caret", - "rect": [58, 4, 1, 16], + "rect": [59, 5, 1, 16], "reason": "caret" } ],
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt index a93af0c..c4fcde5 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt
@@ -8,13 +8,13 @@ }, { "name": "LayoutTextControl INPUT id='root'", - "position": [-1, -1], - "bounds": [63, 24], + "position": [-2, -2], + "bounds": [65, 26], "backgroundColor": "#FFFFFF", "paintInvalidations": [ { "object": "LayoutTextControl INPUT id='root'", - "rect": [0, 0, 63, 24], + "rect": [0, 0, 65, 26], "reason": "full layer" }, { @@ -24,7 +24,7 @@ }, { "object": "Caret", - "rect": [58, 4, 1, 16], + "rect": [59, 5, 1, 16], "reason": "caret" } ],
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png index 6612fa82..fc040c62 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt index ae577667..b2df0cd 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt
@@ -18,7 +18,7 @@ }, { "object": "NGPhysicalBoxFragment LayoutInline A", - "rect": [383, 971, 42, 21], + "rect": [382, 970, 44, 23], "reason": "appeared" }, {
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.png index 87a6a23..70b65bd 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.txt index ad1e3d3..b14e9e1 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.txt +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/table/caret-contenteditable-content-after-expected.txt
@@ -8,22 +8,22 @@ "paintInvalidations": [ { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "geometry" }, { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "geometry" }, { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "geometry" }, { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "appeared" }, {
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/transform/caret-with-transformation-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/transform/caret-with-transformation-expected.png index b514d81e..9d704ff 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/transform/caret-with-transformation-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/transform/caret-with-transformation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-expected.png index 38bac42..6a2883e 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-64px-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-64px-expected.png index 74427c5..6071420 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-64px-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-64px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-8px-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-8px-expected.png index 65bcaba0..c5e6129 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-8px-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-font-8px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-125-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-125-expected.png index 7fa29aa..070a433 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-125-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-150-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-150-expected.png index 36c9433..dc2299e 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-150-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-175-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-175-expected.png index 9f48668e..5331c8f 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-175-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-175-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-200-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-200-expected.png index 7ad97609..afe077f 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-200-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-2000-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-2000-expected.png index 271982b..841f07e 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-2000-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-2000-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-250-expected.png b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-250-expected.png index bf26630..342e61f 100644 --- a/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-250-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/markers/document-markers-zoom-250-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-expected.png index 6c30cf5..c1065fb 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-text-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-text-expected.png index 6f197e5..1919c56 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-text-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/focus-ring-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/transforms/transformed-caret-expected.png b/third_party/blink/web_tests/platform/linux/transforms/transformed-caret-expected.png index 6f79b58..be729393 100644 --- a/third_party/blink/web_tests/platform/linux/transforms/transformed-caret-expected.png +++ b/third_party/blink/web_tests/platform/linux/transforms/transformed-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png index 0502a01..5a3651e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png index 64fe9ab..8c6d644f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png index 79b6e0e1..a88f446e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png index b6f6340..c5d32807 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index e4b8540..ddb816f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index 7b1d119..4aa94ce 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 2524885..87a81a47 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index a546fe80..4727f166 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index 6dc623b..c18a0f9 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 1edbb01..bddd5eb3 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 6911fdf..b5f56c64 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index de6ea58..9a166b1e0 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 133d888..7687e46e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 8babe498..9bc65c9 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png index bbdc9d0..071c4c04 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index a2aef80..6bbc139 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index b1f1372a..fb16b17 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index 023ccb2f..47a86c73 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index 9746b9d8..bbc5eaf 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index 7a99bf5..ccf2509 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index 75a220e..a0668a5c 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index 8cec821..5c159bf6 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 8344972..a2450ad 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 66f21ee..89928d54 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index ad52197..df50a29a 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index ae8c53a8..651f5c70 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 25d9623..28c29b3b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 4b89f778..058d39bb 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png index 479e2be..83c6ee88 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 1bad19f..d4c6e63 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index a252df00..0a9ceec3a 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index 803e8ac..42372c5 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index df0a50e..6f98f25 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index 351b500..7a79f643 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index e5bedcd..48885e8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index 388f216..7a23828a 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 6c81cce2..19424d84 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png index 769d4d1..9b648e3e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png index 740bb2f..3d7762f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png index 646c4ba..14799ef 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png index 769d4d1..9b648e3e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png index 2d1d977..c1d8ed5 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png index c9401392..150732e6 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png index 3d2a7e7..885269d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png index aa8d65d..ea37ff8c 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png index edee1e2..5010a5b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png index 2b0342b..3d28ba9 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png index b82223be..5b9664b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png index e6f4b7e..6307cb8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png index ffe957ed..ac19185 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png index 2e8fedb..b6f359f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png index 620d5c1..8e291af 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png index 620d5c1..8e291af 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png index 58280c8..15d1ac3 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png index e2e039b..6a4f2a9d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png index 0794555..800ba82 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png index 03cecbd..fc9e650 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png index 30f2afb..8b27282 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png index 262b2f7..ab10dfc 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png index 6a95095..17733c7 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png index 5d72b31..011a03c4 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png index b48a52d..b00d37c 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png index ad15d91..7a48f33 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png index 4c05da1..784c4da 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png index 3908463..bb1693e3 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png index 24b8180..f41ce1a3 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png index 6c91446..7829f8b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png index 7dcf103..fc888be8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 69e1d36..77091f572 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png new file mode 100644 index 0000000..1edcf6a --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png similarity index 71% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png copy to third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png index b19ef2d5..d1bee74 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png new file mode 100644 index 0000000..724205e8 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png new file mode 100644 index 0000000..5fc802f --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png new file mode 100644 index 0000000..9a9c04b --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png similarity index 61% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png index ef426e5..4e767f02 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png new file mode 100644 index 0000000..9671fbac --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png new file mode 100644 index 0000000..9ad2e32 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png similarity index 65% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png copy to third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png index b19ef2d5..cbfc716 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png index 6e0f8cfd..49584d1 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-expected.png index 4b89f778..058d39bb 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-twice-expected.png index 4b89f778..058d39bb 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-alt-f8-twice-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png index 184e4e95..b8d107f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png index 671e318..3545952 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png index 0c6c878..6dd3c3197 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png index 71b1d9c..7cc44858 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-mismatched_glyph-expected.png index 4b89f778..058d39bb 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-mismatched_glyph-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png index d3e5474..a4877ec 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 53dd09c..2c41229 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 5e2a7b472..64e86d1 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index 4cd4a90..11e1ed81 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 6a0804e..cf7646f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index d0ab457..a21a5e8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 2fac4ca..0b723c22 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index a393957..2912de6 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png index d18d15c..7d234a11 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png index 9e0c2cc..c1c1849 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png index 8521d6ba..5b26cbe 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png index c7dbd7d..d12ffdf 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index 7db3caa..cf51bbc 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png index 7bc1471..57d7ce8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/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/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png index 80ae5b78..2f03248 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png index 6e0a7aa..6860e7ef 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png index 8535695..9ec7245 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png index 97253a14..b7ff189 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png index aada43e..3e2d777 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png index db6cafd..1fbc038b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png new file mode 100644 index 0000000..11c9346 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png new file mode 100644 index 0000000..9e1a79f --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png new file mode 100644 index 0000000..3efbf27 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png index 6bbc239..369f27c 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png index c2cd58b..960913d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png index 4121391..e2b54b9 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png index b467bfa..dc892c2 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index bbba817..d97cffc9 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/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/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png index 1d63322..4f7f83e9 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png index 978eca6..2c1e99a8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png index ece997c..6ef557a 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png index 1d2b2b8..ff291a3 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png index ffc5c92..8eb3531 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png index 9bab829..9bac769 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/linux/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png index 512dd18..1b3a91e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png index 5682c73..f8c749d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png index 206c123..b17d1832 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png index 823bb72..f9589a7f7 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance-expected.png index 64c0772..0dd7fa1 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png index d39f73f..25875b8d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 2c32e3a..3781904 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200/fast/hidpi/static/data-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200/fast/hidpi/static/data-suggestion-picker-appearance-expected.png index 59867dc..4d3a997 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200/fast/hidpi/static/data-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200/fast/hidpi/static/data-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png index f14e395..e425a26 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/data-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/data-suggestion-picker-appearance-expected.png index 59867dc..4d3a997 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/data-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/data-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png index 392b838b..5f18008 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index a8ed943f..7abbed0 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png index 0bb0fb7..72976bf 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png index 0fdfaee..c6d60dd 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png index a26105a..94a1aeebe 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png index 52a92ed..707e181 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png index ccafa11..8ce6012 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png index ec808df..62cd40b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png index 4d59ce14..d3fc153e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/delete-hard-break-character-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/delete-hard-break-character-expected.png index cb4a694..9f3ca21 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/delete-hard-break-character-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/delete-hard-break-character-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png index e2603aa..dfac66b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/rtl-caret-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/rtl-caret-expected.png index 1b1c65f..df8d298 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/rtl-caret-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/rtl-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png index 94503faa..2a7634f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/52776-expected.png new file mode 100644 index 0000000..8ada27b --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/52776-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png new file mode 100644 index 0000000..2300b2f --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png similarity index 63% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png copy to third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png index b19ef2d5..f45d7fb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png new file mode 100644 index 0000000..35222a8 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png new file mode 100644 index 0000000..c15fc31 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png new file mode 100644 index 0000000..77c04f9 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png new file mode 100644 index 0000000..8353760a --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png new file mode 100644 index 0000000..f3699d6 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png new file mode 100644 index 0000000..35222a8 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png new file mode 100644 index 0000000..35222a8 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png new file mode 100644 index 0000000..9e084c7 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png new file mode 100644 index 0000000..7d65c180 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png new file mode 100644 index 0000000..358d84c --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png new file mode 100644 index 0000000..88fb71b --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png new file mode 100644 index 0000000..b30847f --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png new file mode 100644 index 0000000..2a25f58 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png new file mode 100644 index 0000000..d3bdec4c --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png new file mode 100644 index 0000000..b79c81a --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index 2a9071c7..ad300402 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index 3f745c0..1782596 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 6695ec70..43fba0e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index 61ea59e..1ae0fb7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index a693b5a..36b7765 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index f0cf2da..3141ce2 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index b484b14..27bee9e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index 75ab4a72..0b3da5f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index d84db45..c631b31 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png similarity index 76% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 527065b..1c3b3793 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..2b3cb380 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 0cba7cb..2f090a1 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index cec2c10..41deb149 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index 750e488..7d9301a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index 63f680b..8f88db3b 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index 3194a49..d09b69cc 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index 7d9c829..a8da296 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index 905f519..321550d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 3c86c2fe..026ce3d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png index dfe7c6c..e682a79 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png index d86a0c03..32b9b8e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png index fbf152f..724bb50d2 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png index daa4ab7..d55ee6d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png index e189651..ff351d55 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png index 97b7b2e..642b630 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index dfe7c6c..e682a79 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index 33cde42..885ef33 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png deleted file mode 100644 index a673450..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 1d815442..f679eaa 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 452ae4b..dd5f84b 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index 57f8e7c..5c73dcd0 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 04f7c84..7adb35c9 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index 2c4f5820..9590fd4 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index 47cd928..96e78eb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index 3441c5d0..8221f65d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index e4bd6bb..5183b15 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index f4a6682..33e433307 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 878fbf3..34400152 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 8d1e798a..964bf740 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png new file mode 100644 index 0000000..f3443bd --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png index 07cc94fb..368dad92 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png index 9f5f148..696393e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png index 3ed5b30..c8272f0 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png index 6141d554..a8ca7ee6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-twice-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-mismatched_glyph-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 0762f76..1510a01e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index c34c03da..2027978 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index 7a380f0d..3be1077 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index aa5720c..0884c4b5 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 4c2d734a..45032f0 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index e6209d2..1ee49e6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 23097ab..2890e10 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 5979919..8ed372f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png new file mode 100644 index 0000000..207864c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png new file mode 100644 index 0000000..f731eff --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 6695ec70..43fba0e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..1ae0fb7 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png new file mode 100644 index 0000000..36b7765 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 109b1c015..b65ca43 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png new file mode 100644 index 0000000..7edb77a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png new file mode 100644 index 0000000..5f3eca9 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png new file mode 100644 index 0000000..e937d29 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png similarity index 76% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 527065b..1c3b3793 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..2b3cb380 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 0cba7cb..2f090a1 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index cec2c10..41deb149 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..7d5a794f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..441fd878 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..63f1e8e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..4b96d55 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..9caeeca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 14ad2959..ccaeb9d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png deleted file mode 100644 index a673450..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-alt-f8-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-alt-f8-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-alt-f8-twice-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png deleted file mode 100644 index ef426e5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png deleted file mode 100644 index 527065b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png deleted file mode 100644 index 7912dfd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png deleted file mode 100644 index c84cbdd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-mismatched_glyph-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png deleted file mode 100644 index a3c2b66e..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index a467e8a..207864c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index e33b00c..f731eff 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 6695ec70..43fba0e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index 61ea59e..1ae0fb7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index a693b5a..36b7765 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 109b1c015..b65ca43 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index b15e2d4..7edb77a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index fa776ba..5f3eca9 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 2f83522..e937d29 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png similarity index 76% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 527065b..1c3b3793 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..2b3cb380 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 0cba7cb..2f090a1 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index cec2c10..41deb149 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..7d5a794f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..441fd878 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..63f1e8e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..4b96d55 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..9caeeca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 14ad2959..ccaeb9d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png index e3bd113..68bb49f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png index 41a93c6..a127856 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png index c503e2e..e758fa7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png index 3c92b16..9cf99df 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png index 1586c37..7afaa50 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png index f14ccb3..a00da9a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index e3bd113..68bb49f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index bd5249b..ed27b69 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 1221349..8e76b668 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index a673450..8e75642 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index 8531eb63b5..d4f71d6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 9772416..2e161a6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 21ab713..8020723 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index 85ab889..f76214d7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 30a84bf..33d4c37 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 1aefab9..05200e1e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png index c18f1c6a..2ddaa8d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png index e558a6f..df3ea751 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png index a3bc7785..7f1111a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png index c18f1c6a..2ddaa8d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png index 0df61e8..32d4a07 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png index a2ebf3aa..0b115448 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png index 673b7d9..b0cc89b 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png index 1934d5f..f9440c4 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png index b7023a1..10373c8 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png index c97b53e8..20828ab 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png index 365e8e9..64437e22 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png index 976df5f..12a82796 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png index 78d9117..b990472 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png index d5e7852..3ea8814 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png index 5a72d10..87248ed 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png index 5a72d10..87248ed 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png index 744026d..7be4494 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png index 6fbf45a..0e84c68 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png index 2b63d63e..cfb4f7d5 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png index 430ad28..3d855e2 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png index 4989767..085e56a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png index 18412aa5..522a3a8d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png index 47cc3f7..dc3555b 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png index cacbc05..4f9ba8bc 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png index c4565d5..53c4f6d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png index 3cd1234..fc7c01b 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png index 186af6d..27e7918 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png index 0be013e4..2acbf6d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png index 7180578..8fdb449 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png index 7e31921..9f782388 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 0a39750..ba37d19 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png index 32ee326..f382d169 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png index a765e08..7216f414 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png index 81a445c..8037960 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png index 1bcc044..6a036282 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-alt-f8-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-alt-f8-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-alt-f8-twice-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png deleted file mode 100644 index ef426e5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png deleted file mode 100644 index 527065b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png deleted file mode 100644 index 7912dfd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png deleted file mode 100644 index c84cbdd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-mismatched_glyph-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png deleted file mode 100644 index a3c2b66e..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 08b68fc..96ab29c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 917caa9..6923411 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index 9b31142..419bcba 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index a709c9d6..ca537fb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 6b33b56..8774cbb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 2147d33..1385197a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 784ddc3b..5f57ca3 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index b1600612..643747e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png new file mode 100644 index 0000000..369ddd6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png new file mode 100644 index 0000000..71e041b35 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png new file mode 100644 index 0000000..9d9e6f4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..84ff2c2 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png new file mode 100644 index 0000000..4f61399 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index c0ba1d03..9799d32 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png new file mode 100644 index 0000000..ac8d5a4 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png new file mode 100644 index 0000000..def75be --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png new file mode 100644 index 0000000..9fa2f7c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png similarity index 76% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 527065b..1c3b3793 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..2b3cb380 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 0cba7cb..2f090a1 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index cec2c10..41deb149 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..7d5a794f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..441fd878 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..63f1e8e --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..4b96d55 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..9caeeca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index d3eef40..b32fb4f 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png deleted file mode 100644 index ef0ecd6..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-alt-f8-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-alt-f8-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-alt-f8-twice-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png deleted file mode 100644 index ef426e5..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png deleted file mode 100644 index 527065b..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png deleted file mode 100644 index 7912dfd..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png deleted file mode 100644 index c84cbdd..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-mismatched_glyph-expected.png deleted file mode 100644 index b19ef2d5..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png deleted file mode 100644 index a3c2b66e..0000000 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-svg-scaling-expected.png b/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-svg-scaling-expected.png index 027a214..3a7ef208 100644 --- a/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-svg-scaling-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-svg-scaling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/as-image/image-respects-deviceScaleFactor-expected.png b/third_party/blink/web_tests/platform/mac/svg/as-image/image-respects-deviceScaleFactor-expected.png index 73135f9..775efc4 100644 --- a/third_party/blink/web_tests/platform/mac/svg/as-image/image-respects-deviceScaleFactor-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/as-image/image-respects-deviceScaleFactor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index db833b07..369ddd6 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index 4dc69b5e..71e041b35 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 0506476..9d9e6f4 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index 3f1a166..84ff2c2 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index f3d54e6..4f61399 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index c0ba1d03..9799d32 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 78b9b8d5..ac8d5a4 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index 5e8fe0d..def75be 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index b54f638..9fa2f7c 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index 35b59d4d..1c3b3793 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png index 975f0ce..2b3cb380 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 0cba7cb..2f090a1 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index cec2c10..41deb149 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index 9b2bfee..7d5a794f 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index 208ae4c..441fd878 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index fca7b15..63f1e8e 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index 29d3959..4b96d55 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index 0fcdee3..9caeeca 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index d3eef40..b32fb4f 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png index 4a8d4dd..93325947 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png index e9aa6f7..18dfa4f 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png index 9398c57..80f060c 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png index 0545139..14c5996 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png index dceaeab..3096cbb 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png index 009a6dda..d00431a 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index 4a8d4dd..93325947 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index ffc336a..d64e114 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index d76ad62..8473e1f 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index ef0ecd6..fc491e4 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index e5179ef..ce8ea31 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index e11ba70eb..55d6754 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 4aa3fe5..0305e187 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index 90f019e..fa02738b 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 44f123d..0afffa82 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index b19ef2d5..b11a008 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png index 7cb61c8..6c4de7a 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png index 4dab192..d068b03 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index 60d93a46..f4f503d8 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index cb5e9fe..1dab0aa 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index c9bbf1d3..470e234 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index dafce97..d6fc450 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index 149f93e..5050a88 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index c50d655..d493b1aa 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index c7e9fc6..80da636 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png index 472b7cbb..29f3e17 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png index 2777e5e..0a842d6c 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png index 3a771b5..c9034fb 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png index 472b7cbb..29f3e17 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png index d7224dd..66d34db 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png index d4c7f47..7e7ab829 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png index 8dc58ec..2e38a15 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png index 8380ffd7..c292281d 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png index 236fb85..3fa2cca 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png index 4d7a46a..4d0266f 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png index b2b9877..c0dae31 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png index 2266fbee..997dc45 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png index 1331ff29..15dbe57 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png index 8b06bcf..231ac3ba 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png index 2bf6e04b..ec6b623 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png index 2bf6e04b..ec6b623 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png index 307468f7..0d61d62 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png index f3dd485..5f12e75 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png index 130d9bc..a0f7914 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png index 896918f..18c70ac 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png index cd8e63ea..2c81cf4 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png index 6acfe9c3..138bfda 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png index b4d50022..a4b54a8 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png index 1ae83c7..ae4fdefd 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png index 9ea95f9..4ef2969 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png index 5734410..7929635 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png index 83899c26..cb29008 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png index 1ee83f0..ba6facf 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png index ff3a2e5..705381d 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png index bbd3e2e..3c5cfd4 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png index eaa2c3c..f0496ed 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index a49b64b4..52d618b 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring-expected.png new file mode 100644 index 0000000..006eb49c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png similarity index 60% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png index 7912dfd..38aa417 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png similarity index 66% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png copy to third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png index c84cbdd..1a91a2e2 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png new file mode 100644 index 0000000..77945681 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png new file mode 100644 index 0000000..4565aca --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png new file mode 100644 index 0000000..69713ba --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png similarity index 66% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png copy to third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png index c84cbdd..933eb6c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png new file mode 100644 index 0000000..119698a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/radio-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/radio-focus-ring-expected.png new file mode 100644 index 0000000..66b2597 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/radio-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png new file mode 100644 index 0000000..b3fff1fc --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png similarity index 70% rename from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png rename to third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png index ef426e5..79408a3 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png index 891f91c..5f8c17d1 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png index 7ab112e..756d91e 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png index 8a8e4d8d..16af8346 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png index ca458d99..6f758c1 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-expected.png index b19ef2d5..b11a008 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-twice-expected.png index b19ef2d5..b11a008 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-alt-f8-twice-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png index ef426e5..29718168 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png index 527065b..7fe0612 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png index 7912dfd..21d611d 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png index c84cbdd..7d3e81e 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-mismatched_glyph-expected.png index b19ef2d5..b11a008 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-mismatched_glyph-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png index a3c2b66e..3bda168 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index b3dc43a..eae63e9 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index ec4e4562..f395faa 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index d6c995e1..2ea12043e 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index 6ab2c36..2f3694e 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 54c5c6b..3aa39ec 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index b742421..4a92f27 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 79ae69fd..88529d1 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index a83cf8d..5967d90da 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/custom-elements/form-validation-bubble-appearance-expected.png b/third_party/blink/web_tests/platform/win/custom-elements/form-validation-bubble-appearance-expected.png index 02ec64ac..a0d94fd 100644 --- a/third_party/blink/web_tests/platform/win/custom-elements/form-validation-bubble-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/custom-elements/form-validation-bubble-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-011-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-011-expected.png index e7d65e9..bf816f6 100644 --- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-011-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-011-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-014-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-014-expected.png index d434f2d..d8b98b6f 100644 --- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-014-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-014-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-015-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-015-expected.png index c0c0f49..d4fec29 100644 --- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-015-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-015-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-expected.png index a2c66bb..19de141 100644 --- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-painting-low-dpi-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-painting-low-dpi-expected.png index 1e738c4..9df9327 100644 --- a/third_party/blink/web_tests/platform/win/editing/caret/caret-painting-low-dpi-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-painting-low-dpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/5369009-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/5369009-expected.png index 0051f12..af99469 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/5369009-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/5369009-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/5433862-2-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/5433862-2-expected.png index 7d1ad28..774368e 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/5433862-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/5433862-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/5483370-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/5483370-expected.png index 116001a..1d08934 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/5483370-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/5483370-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.png index 14a4fbf..97a6c25 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/delete-br-013-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/delete-br-013-expected.png index 19abe1b..5907d225 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/delete-br-013-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/delete-br-013-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-015-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-015-expected.png index a214151..8249388 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-015-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-015-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-016-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-016-expected.png index 7471a84c..5406c3d 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-016-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-016-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-017-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-017-expected.png index 221af90..bb5c23b8 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-017-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/delete-line-017-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/merge-different-styles-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/merge-different-styles-expected.png index 9bfdb6c..b4397da 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/merge-different-styles-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/merge-different-styles-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/merge-endOfParagraph-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/merge-endOfParagraph-expected.png index 76e9e4b..1a42d8d 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/merge-endOfParagraph-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/merge-endOfParagraph-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/merge-no-br-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/merge-no-br-expected.png index 9de3ccc..f2fb648 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/merge-no-br-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/merge-no-br-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/deleting/table-cells-expected.png b/third_party/blink/web_tests/platform/win/editing/deleting/table-cells-expected.png index 828c784..22dec02 100644 --- a/third_party/blink/web_tests/platform/win/editing/deleting/table-cells-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/deleting/table-cells-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/execCommand/4916541-expected.png b/third_party/blink/web_tests/platform/win/editing/execCommand/4916541-expected.png index 0d64ee4..b29ba36 100644 --- a/third_party/blink/web_tests/platform/win/editing/execCommand/4916541-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/execCommand/4916541-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/execCommand/5142012-1-expected.png b/third_party/blink/web_tests/platform/win/editing/execCommand/5142012-1-expected.png index af105d2..1607b3b8 100644 --- a/third_party/blink/web_tests/platform/win/editing/execCommand/5142012-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/execCommand/5142012-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/execCommand/format-block-with-trailing-br-expected.png b/third_party/blink/web_tests/platform/win/editing/execCommand/format-block-with-trailing-br-expected.png index dd6bf82..48e8cee 100644 --- a/third_party/blink/web_tests/platform/win/editing/execCommand/format-block-with-trailing-br-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/execCommand/format-block-with-trailing-br-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/execCommand/insertImage-expected.png b/third_party/blink/web_tests/platform/win/editing/execCommand/insertImage-expected.png index b7157ee..cce0af8 100644 --- a/third_party/blink/web_tests/platform/win/editing/execCommand/insertImage-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/execCommand/insertImage-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-contenteditable-expected.png index 64e80a97..99f9a34d 100644 --- a/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/input/caret-read-only-after-editable-expected.png b/third_party/blink/web_tests/platform/win/editing/input/caret-read-only-after-editable-expected.png index f197421..8d78464 100644 --- a/third_party/blink/web_tests/platform/win/editing/input/caret-read-only-after-editable-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/input/caret-read-only-after-editable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png index 474b9294..d480448 100644 --- a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/4278698-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/4278698-expected.png index 9dd2945a..4a654412 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/4278698-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/4278698-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/4840662-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/4840662-expected.png index e211ce6..a4c4e0e 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/4840662-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/4840662-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/5002441-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/5002441-expected.png index 630335b..a126e06 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/5002441-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/5002441-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/5058163-1-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/5058163-1-expected.png index d8f7c4d6..fb031eab 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/5058163-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/5058163-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/5058163-2-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/5058163-2-expected.png index 39a7a45..1866747 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/5058163-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/5058163-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/5549929-2-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/5549929-2-expected.png index 0797fa6a..f9a3bfa 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/5549929-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/5549929-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/5549929-3-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/5549929-3-expected.png index 56fc645..0d13102 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/5549929-3-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/5549929-3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/insert-3800346-fix-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/insert-3800346-fix-expected.png index 59496afd..128372c 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/insert-3800346-fix-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/insert-3800346-fix-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/insert-space-in-empty-doc-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/insert-space-in-empty-doc-expected.png index cc4b563..fafa674e 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/insert-space-in-empty-doc-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/insert-space-in-empty-doc-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-001-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-001-expected.png index 0be08a7..3343e6fb 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-001-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-003-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-003-expected.png index f139006..f0f0467 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-003-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/insert-text-at-tabspan-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/line-break-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/line-break-expected.png index 2b8b3ce..017db59 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/line-break-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/line-break-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-1-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-1-expected.png index 1e8704c..77f8d883 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-2-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-2-expected.png index 02296d39..f0a33fd 100644 --- a/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/inserting/paragraph-separator-in-table-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/4631972-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/4631972-expected.png index a8059e3..d55a3f8 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/4631972-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/4631972-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/4947130-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/4947130-expected.png index e0e0137..793d9a2d 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/4947130-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/4947130-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-2-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-2-expected.png index 9638ace..b9df7a0 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-expected.png index 2d07465..1851566 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/5071074-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/5134759-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/5134759-expected.png index 09f8ccb..8617fcf 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/5134759-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/5134759-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/5156401-1-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/5156401-1-expected.png index f5d5588..990cbd3f 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/5156401-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/5156401-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/5478250-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/5478250-expected.png index 2e5999e..ce1fa22 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/5478250-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/5478250-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/5601583-1-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/5601583-1-expected.png index 48cff63..b426585 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/5601583-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/5601583-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/bad-placeholder-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/bad-placeholder-expected.png index 7f21a9c..5479e0f 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/bad-placeholder-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/bad-placeholder-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/copy-standalone-image-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/copy-standalone-image-expected.png index 543524ea..34bc9a4 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/copy-standalone-image-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/copy-standalone-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png index 14108a8..bfcdf5c 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/input-field-1-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/input-field-1-expected.png index a5e3c30f..f78a9be 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/input-field-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/input-field-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-after-blockquote-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-after-blockquote-expected.png index 5434d792..276fca7 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-after-blockquote-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-after-blockquote-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png index e72e371..a0049e98 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-001-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-001-expected.png index 44a62f4..ab9ac0d 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-001-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-002-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-002-expected.png index 44a62f4..ab9ac0d 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-002-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-002-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-003-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-003-expected.png index 44a62f4..ab9ac0d 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-003-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-004-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-004-expected.png index 44a62f4..ab9ac0d 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-004-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-005-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-005-expected.png index 44a62f4..ab9ac0d 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-005-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-line-endings-005-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-text-at-tabspan-003-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-text-at-tabspan-003-expected.png index 838fe586..0266cf0 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-text-at-tabspan-003-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/paste-text-at-tabspan-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/pasting-tabs-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/pasting-tabs-expected.png index 932ba6b..4c608c5 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/pasting-tabs-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/pasting-tabs-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/quirks-mode-br-1-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/quirks-mode-br-1-expected.png index ddd4109..031f890 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/quirks-mode-br-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/quirks-mode-br-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/pasteboard/styled-element-markup-expected.png b/third_party/blink/web_tests/platform/win/editing/pasteboard/styled-element-markup-expected.png index 754f853..1a34ba7 100644 --- a/third_party/blink/web_tests/platform/win/editing/pasteboard/styled-element-markup-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/pasteboard/styled-element-markup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/5099303-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/5099303-expected.png index 0c16f955..b3d434e 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/5099303-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/5099303-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/5195166-2-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/5195166-2-expected.png index 39fdf35..19c5b8b 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/5195166-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/5195166-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/6476-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/6476-expected.png index fe5421c..54aac6d 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/6476-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/6476-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-expected.png index b718838..b7003f3 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-left-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-left-expected.png index 3cfa390..98b1381c 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-left-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-2-left-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-expected.png index f0952b8..aba612ba 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-right-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-right-expected.png index 27e465e..142eb8d3 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-right-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-ltr-right-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-expected.png index c09e543..7a22f25f 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-left-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-left-expected.png index eead280..98eb2f1ad 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-left-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-2-left-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-expected.png index 8462902..ec96dec6 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-right-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-right-expected.png index 20b3411..3444f8d 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-right-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/caret-rtl-right-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/click-start-of-line-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/click-start-of-line-expected.png index 08da0b3..3ddcec2a3 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/click-start-of-line-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/click-start-of-line-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/contains-boundaries-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/contains-boundaries-expected.png index 981a60f1..9a68607 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/contains-boundaries-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/contains-boundaries-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/contenteditable-click-inside-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/contenteditable-click-inside-expected.png index 76b4860..9d8b8d6 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/contenteditable-click-inside-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/contenteditable-click-inside-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/extend-selection-bidi-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/extend-selection-bidi-expected.png index e159b73..48870b8 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/extend-selection-bidi-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/extend-selection-bidi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/leave-requested-block-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/leave-requested-block-expected.png index 7065b14..8d0d7a08 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/leave-requested-block-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/leave-requested-block-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/move-backwords-by-word-001-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/move-backwords-by-word-001-expected.png index c00de72..2d60be03 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/move-backwords-by-word-001-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/move-backwords-by-word-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/move-by-line-002-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/move-by-line-002-expected.png index 78d5645..da2dc9a 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/move-by-line-002-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/move-by-line-002-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/move-by-sentence-001-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/move-by-sentence-001-expected.png index 61293fd..ff6a050 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/move-by-sentence-001-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/move-by-sentence-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/move-past-trailing-space-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/move-past-trailing-space-expected.png index 865e455..2bd6b573 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/move-past-trailing-space-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/move-past-trailing-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/previous-line-position-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/previous-line-position-expected.png index d94329a..ca354c7 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/previous-line-position-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/previous-line-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-1-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-1-expected.png index 6b111b3..6a47b5f 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-2-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-2-expected.png index 1bfa9cbb..62ed8c06 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-3-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-3-expected.png index ebefac1..bd89c14 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-3-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/replaced-boundaries-3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/select-box-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/select-box-expected.png index 2edf8cfb..9313574 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/select-box-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/select-box-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/select-element-paragraph-boundary-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/select-element-paragraph-boundary-expected.png index c831b82..7177d7aa 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/select-element-paragraph-boundary-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/select-element-paragraph-boundary-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/select-missing-image-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/select-missing-image-expected.png index aed3f80..f206014d 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/select-missing-image-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/select-missing-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/triple-click-in-pre-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/triple-click-in-pre-expected.png index 261857f..3cf8c0e 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/triple-click-in-pre-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/triple-click-in-pre-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-1-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-1-expected.png index a30c703..b09c5cc 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-1-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-2-expected.png b/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-2-expected.png index 5dfc8c2..f0b5028e 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-2-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/selection/wrapped-line-caret-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/4916887-expected.png b/third_party/blink/web_tests/platform/win/editing/style/4916887-expected.png index a785d82..21fe771 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/4916887-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/4916887-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/5065910-expected.png b/third_party/blink/web_tests/platform/win/editing/style/5065910-expected.png index daa7314..db15b80 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/5065910-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/5065910-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/5084241-expected.png b/third_party/blink/web_tests/platform/win/editing/style/5084241-expected.png index 99ac039..af5c24f 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/5084241-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/5084241-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/5228141-expected.png b/third_party/blink/web_tests/platform/win/editing/style/5228141-expected.png index 2a0444a..521e25f5 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/5228141-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/5228141-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/5279521-expected.png b/third_party/blink/web_tests/platform/win/editing/style/5279521-expected.png index f38f46b..b2fd9e3f 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/5279521-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/5279521-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/block-styles-007-expected.png b/third_party/blink/web_tests/platform/win/editing/style/block-styles-007-expected.png index 7343583..80d98d0 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/block-styles-007-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/block-styles-007-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/style/highlight-expected.png b/third_party/blink/web_tests/platform/win/editing/style/highlight-expected.png index dc39a42..6221c47 100644 --- a/third_party/blink/web_tests/platform/win/editing/style/highlight-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/style/highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-001-expected.png b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-001-expected.png index d449cb3..90f4956 100644 --- a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-001-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-003-expected.png b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-003-expected.png index a44a2f8..e214804 100644 --- a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-003-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-delete-003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-after-expected.png b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-after-expected.png index 737e07d..39ada64 100644 --- a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-after-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-after-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-before-expected.png b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-before-expected.png index 2d825d43..0d06be4 100644 --- a/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-before-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/unsupported-content/list-type-before-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-after-expected.png b/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-after-expected.png index cef4e4a5..257bec7 100644 --- a/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-after-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-after-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-before-expected.png b/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-before-expected.png index db77879e..8ed2d5b 100644 --- a/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-before-expected.png +++ b/third_party/blink/web_tests/platform/win/editing/unsupported-content/table-type-before-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-svg-scaling-expected.png b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-svg-scaling-expected.png index 8bbd523..e43aef8 100644 --- a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-svg-scaling-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-svg-scaling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-continuations-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-continuations-expected.png index 173bdaba..4d69b45 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-continuations-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-continuations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-detached-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-detached-expected.png index ea26655..1d9ea8a 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-detached-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-detached-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-expected.png index 50ff4990..4ad5bbf 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-writingmode-vertical-expected.png index f9cdc58..3a9a760a 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-writingmode-vertical-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-writingmode-vertical-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-color-expected.png index 077a275b..23d466b 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-offset-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-offset-expected.png index cf6cb1d..5b79e8e 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-offset-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-width-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-width-expected.png index 9ac4c19..6d2863c 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-width-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-outline-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/ignore-empty-focus-ring-rects-expected.png b/third_party/blink/web_tests/platform/win/fast/css/ignore-empty-focus-ring-rects-expected.png index f542018..f1474e9 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/ignore-empty-focus-ring-rects-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/ignore-empty-focus-ring-rects-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/outline-auto-empty-rects-expected.png b/third_party/blink/web_tests/platform/win/fast/css/outline-auto-empty-rects-expected.png index 44bbbff..ba9a2e8 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/outline-auto-empty-rects-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/outline-auto-empty-rects-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/css/outline-auto-location-expected.png b/third_party/blink/web_tests/platform/win/fast/css/outline-auto-location-expected.png index ffb37c0..7663337 100644 --- a/third_party/blink/web_tests/platform/win/fast/css/outline-auto-location-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/css/outline-auto-location-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png index 745540df..3913cc5 100644 --- a/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/dom/52776-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png index 52c185e..56f1cd7 100644 --- a/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/dom/focus-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png index 8a3696f..7149f78 100644 --- a/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/events/reveal-link-when-focused-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-paint-order-expected.png index 6c13269..3106e77a 100644 --- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-paint-order-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-outline-expected.png index 8518a76..0f6f155 100644 --- a/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-outline-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-paint-order-expected.png index d706709..7150d3b 100644 --- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-paint-order-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/hidpi/focus-rings-expected.png b/third_party/blink/web_tests/platform/win/fast/hidpi/focus-rings-expected.png index 0bbf160..35b1bfe 100644 --- a/third_party/blink/web_tests/platform/win/fast/hidpi/focus-rings-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/hidpi/focus-rings-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/25277-2-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/25277-2-expected.png index 205cbbc..e54c774 100644 --- a/third_party/blink/web_tests/platform/win/fast/inline/25277-2-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/inline/25277-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/25277-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/25277-expected.png index 205cbbc..e54c774 100644 --- a/third_party/blink/web_tests/platform/win/fast/inline/25277-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/inline/25277-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-expected.png index acaf2a5..ed9dee31 100644 --- a/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-2-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-2-expected.png index e61fe5f9..4d1e4c98 100644 --- a/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-2-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-expected.png index a4713b8..f250101a 100644 --- a/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/inline/continuation-outlines-with-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/inline/inline-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/inline/inline-focus-ring-expected.png index 3fea33a..4a4148e 100644 --- a/third_party/blink/web_tests/platform/win/fast/inline/inline-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/inline/inline-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-focus-ring-expected.png index a9318de..333ce0c 100644 --- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/table-row-focus-ring-paint-expected.png b/third_party/blink/web_tests/platform/win/fast/table/table-row-focus-ring-paint-expected.png index 3ff3e4f..4fafa80 100644 --- a/third_party/blink/web_tests/platform/win/fast/table/table-row-focus-ring-paint-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/table/table-row-focus-ring-paint-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-1-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-1-and-click-expected.png index 406c1d0..73bbd9f 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-1-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-10-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-10-and-click-expected.png index f33d4ce0..1dce990 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-10-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-10-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-2-and-click-expected.png index 1d5821d..25e150ed 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-2-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-3-and-click-expected.png index b8e54bb..1f08ccb 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-3-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-4-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-4-and-click-expected.png index b706406..e7cac614 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-4-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-5-and-click-expected.png index eabedfe..4beb78f 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-5-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-6-and-click-expected.png index f33d4ce0..1dce990 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-6-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-7-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-7-and-click-expected.png index f33d4ce0..1dce990 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-7-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-7-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-8-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-8-and-click-expected.png index 828e2a4..dbdd4c7 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-8-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-8-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-9-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-9-and-click-expected.png index d038215b..fec28cba 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-9-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-add-summary-9-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-1-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-1-and-click-expected.png index fb57785..771a7e4 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-1-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-2-and-click-expected.png index 2da72af..76a7661 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-2-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-3-and-click-expected.png index f89f0b0..98e2e37 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-3-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-4-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-4-and-click-expected.png index 35d0bcd..0ce36680 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-4-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-5-and-click-expected.png index db340ae..a4b89872 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-5-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-6-and-click-expected.png index a3a30bbe9..1274063 100644 --- a/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-6-and-click-expected.png +++ b/third_party/blink/web_tests/platform/win/html/details_summary/details-remove-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-circle-focus-ring-expected.png index 0af1e19..208906ad 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-expected.png index fb5e8dc..c88bb83 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-in-positioned-container-expected.png index c20213c..69d9c77 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-expected.png index 045b593..70eafb5 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index a372e35e..04f429ff 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png index 4a1a4b2..0d9cd9d 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-paint-root-offset-expected.png index f6aa43e..a2e00a6 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-scale-transform-expected.png index 704dbe4..db1824a0 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-zoom-expected.png index af0e4b2..804d9e29 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-circle-focus-ring-expected.png index 56d050b..5c9990c 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-polygon-focus-ring-expected.png index f23379f..e0510edd 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/images/imagemap-polygon-focus-ring-expected.png index 4f3ea68..1b4954f 100644 --- a/third_party/blink/web_tests/platform/win/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.png index 34d0c0c..4125c2c 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.txt index 353d546..09eb127 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/4776765-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "LayoutBlockFlow DIV", - "rect": [7, 43, 786, 62], + "rect": [6, 42, 788, 64], "reason": "geometry" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt index dfe13e7..b5cf3c4b 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt
@@ -8,12 +8,12 @@ "paintInvalidations": [ { "object": "LayoutNGBlockFlow DIV", - "rect": [8, 58, 105, 62], + "rect": [8, 58, 106, 63], "reason": "incremental" }, { "object": "LayoutTextControl INPUT id='target'", - "rect": [8, 58, 105, 62], + "rect": [8, 58, 106, 63], "reason": "incremental" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/delete-into-nested-block-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/delete-into-nested-block-expected.png index 5f2b794..6e1003f 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/delete-into-nested-block-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/delete-into-nested-block-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png index 37050d9..27b68c7 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt index 8216fbe..e03a6504 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "LayoutSlider INPUT", - "rect": [9, 9, 131, 18], + "rect": [8, 8, 133, 20], "reason": "subtree" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/slider-thumb-float-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/slider-thumb-float-expected.png index 7057a68..e78098d 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/slider-thumb-float-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/slider-thumb-float-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png index e5b8d5a..aeb465b 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt index 1deb4c8c..b9274879 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt
@@ -8,12 +8,12 @@ "paintInvalidations": [ { "object": "LayoutButton INPUT", - "rect": [7, 7, 59, 24], + "rect": [6, 6, 61, 26], "reason": "subtree" }, { "object": "LayoutButton INPUT", - "rect": [7, 7, 59, 24], + "rect": [6, 6, 61, 26], "reason": "chunk appeared" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.png index 0fb345c..fdc8bf8 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt index 8f17f59..596d17b 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/invalidate-caret-before-text-node-update-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "LayoutBlockFlow DIV id='root' class='editing'", - "rect": [7, 7, 786, 20], + "rect": [6, 6, 788, 22], "reason": "style change" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-continuations-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-continuations-expected.txt index dee1b82..e28e0ff57 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-continuations-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-continuations-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "NGPhysicalBoxFragment LayoutInline SPAN id='outer'", - "rect": [7, 87, 85, 22], + "rect": [6, 86, 87, 24], "reason": "disappeared" } ]
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.png index 0c781fc..36c205b 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.txt index 8c51c130..5f79572 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-enable-continuations-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "NGPhysicalBoxFragment LayoutInline SPAN id='outer'", - "rect": [7, 87, 85, 22], + "rect": [6, 86, 87, 24], "reason": "appeared" } ]
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-layers-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-layers-expected.png index ffd7761..48c75ef 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-layers-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-expected.png index 02e9d72..964514b 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt index ae1f713..7d086c3 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt
@@ -8,12 +8,12 @@ "paintInvalidations": [ { "object": "NGPhysicalBoxFragment LayoutInline SPAN", - "rect": [207, 231, 102, 102], + "rect": [206, 230, 104, 104], "reason": "outline" }, { "object": "NGPhysicalBoxFragment LayoutInline SPAN", - "rect": [7, 231, 102, 102], + "rect": [6, 230, 104, 104], "reason": "outline" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt index 255c4d5..1b6207f 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt
@@ -8,12 +8,12 @@ "paintInvalidations": [ { "object": "NGPhysicalBoxFragment LayoutInline SPAN", - "rect": [7, 7, 102, 106], + "rect": [6, 6, 104, 108], "reason": "outline" }, { "object": "NGPhysicalBoxFragment LayoutInline SPAN", - "rect": [7, 87, 102, 102], + "rect": [6, 86, 104, 104], "reason": "outline" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt index e965c9d..41d42faf 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "LayoutNGBlockFlow DIV id='outline'", - "rect": [7, 7, 152, 102], + "rect": [6, 6, 154, 104], "reason": "outline" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt index 07deeb1..6427e9ee 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "LayoutNGBlockFlow DIV id='outline'", - "rect": [7, 7, 152, 102], + "rect": [6, 6, 154, 104], "reason": "geometry" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt index b6aa8c4..0ba430c 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt
@@ -8,13 +8,13 @@ }, { "name": "LayoutTextControl INPUT id='root'", - "position": [-1, -1], - "bounds": [70, 24], + "position": [-2, -2], + "bounds": [72, 26], "backgroundColor": "#FFFFFF", "paintInvalidations": [ { "object": "LayoutTextControl INPUT id='root'", - "rect": [0, 0, 70, 24], + "rect": [0, 0, 72, 26], "reason": "full layer" }, { @@ -24,7 +24,7 @@ }, { "object": "Caret", - "rect": [65, 4, 1, 16], + "rect": [66, 5, 1, 16], "reason": "caret" } ],
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt index b6aa8c4..0ba430c 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/invalidate-caret-in-non-composited-scrolling-container-expected.txt
@@ -8,13 +8,13 @@ }, { "name": "LayoutTextControl INPUT id='root'", - "position": [-1, -1], - "bounds": [70, 24], + "position": [-2, -2], + "bounds": [72, 26], "backgroundColor": "#FFFFFF", "paintInvalidations": [ { "object": "LayoutTextControl INPUT id='root'", - "rect": [0, 0, 70, 24], + "rect": [0, 0, 72, 26], "reason": "full layer" }, { @@ -24,7 +24,7 @@ }, { "object": "Caret", - "rect": [65, 4, 1, 16], + "rect": [66, 5, 1, 16], "reason": "caret" } ],
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.png index 8d2fee6..ccdfba5 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.txt index 60bde34..763aba7f 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/focus-element-expected.txt
@@ -8,7 +8,7 @@ "paintInvalidations": [ { "object": "LayoutSVGRect rect id='rect'", - "rect": [57, 57, 52, 52], + "rect": [56, 56, 54, 54], "reason": "style change" } ]
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png index 1368e0d..fd7df3e9 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt index bbc867d2..c2ba0403 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt
@@ -18,7 +18,7 @@ }, { "object": "NGPhysicalBoxFragment LayoutInline A", - "rect": [384, 1011, 46, 21], + "rect": [383, 1010, 48, 23], "reason": "appeared" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt new file mode 100644 index 0000000..fd365f4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
@@ -0,0 +1,48 @@ +{ + "layers": [ + { + "name": "Scrolling Contents Layer", + "bounds": [800, 600], + "contentsOpaque": true, + "backgroundColor": "#FFFFFF" + }, + { + "name": "LayoutNGBlockFlow (positioned) DIV id='target'", + "position": [-2, -2], + "bounds": [204, 204], + "backfaceVisibility": "hidden", + "backgroundColor": "#FFFF00", + "paintInvalidations": [ + { + "object": "LayoutNGBlockFlow (positioned) DIV id='target'", + "rect": [0, 0, 204, 204], + "reason": "full layer" + }, + { + "object": "LayoutNGBlockFlow (positioned) DIV id='target'", + "rect": [0, 0, 200, 200], + "reason": "full layer" + } + ], + "transform": 1 + }, + { + "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (positioned) DIV)", + "position": [100, 100], + "bounds": [300, 440], + "transform": 1 + } + ], + "transforms": [ + { + "id": 1, + "transform": [ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0], + [8, 58, 0, 1] + ] + } + ] +} +
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.png index 6594da91..859136d 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.txt index 84f9747..ff7a984f 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.txt +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/table/caret-contenteditable-content-after-expected.txt
@@ -8,22 +8,22 @@ "paintInvalidations": [ { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "geometry" }, { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "geometry" }, { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "geometry" }, { "object": "LayoutBlockFlow DIV id='editor'", - "rect": [7, 47, 786, 22], + "rect": [6, 46, 788, 24], "reason": "appeared" }, {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/transform/caret-with-transformation-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/transform/caret-with-transformation-expected.png index 1bf8481..b3ad373 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/transform/caret-with-transformation-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/transform/caret-with-transformation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-expected.png index 5924594..3230921c 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-64px-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-64px-expected.png index 3c3a340a..127379a 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-64px-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-64px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-8px-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-8px-expected.png index 80db476..0340037 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-8px-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-font-8px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-125-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-125-expected.png index f00b8fb..a3b996b 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-125-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-150-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-150-expected.png index 79cb6a2..7eca956 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-150-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-175-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-175-expected.png index c3447fa..efe18bb 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-175-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-175-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-200-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-200-expected.png index 32fea82..7feea42 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-200-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-2000-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-2000-expected.png index 7642fc25..4ab3990 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-2000-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-2000-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-250-expected.png b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-250-expected.png index a81c833..9b430f34 100644 --- a/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-250-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/markers/document-markers-zoom-250-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/as-image/image-respects-deviceScaleFactor-expected.png b/third_party/blink/web_tests/platform/win/svg/as-image/image-respects-deviceScaleFactor-expected.png index 20407b6..4aa17cf 100644 --- a/third_party/blink/web_tests/platform/win/svg/as-image/image-respects-deviceScaleFactor-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/as-image/image-respects-deviceScaleFactor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-expected.png index e5271c4..5f7fe4f 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-text-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-text-expected.png index f1cfd2b..d179531 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-text-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/focus-ring-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/transformed-caret-expected.png b/third_party/blink/web_tests/platform/win/transforms/transformed-caret-expected.png index 3a1b9d3..d825e8c 100644 --- a/third_party/blink/web_tests/platform/win/transforms/transformed-caret-expected.png +++ b/third_party/blink/web_tests/platform/win/transforms/transformed-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png index caa729f..76a85da 100644 --- a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png index 93536ba2..e1ddbce 100644 --- a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png index 4f3f951..b2fe11c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png index 45b6389..e6f80ae3 100644 --- a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png index 0c7aa00..af60cc9 100644 --- a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png new file mode 100644 index 0000000..b35834b --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png new file mode 100644 index 0000000..80bdae4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index 53e7683..fc30771 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..7b57b36 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png new file mode 100644 index 0000000..bba0f55 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index b4c099b..a034bc5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png new file mode 100644 index 0000000..c8136af --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png new file mode 100644 index 0000000..ef7cc54 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png new file mode 100644 index 0000000..5c1cfa8b --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png similarity index 68% rename from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png rename to third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index c84cbdd..f69b0a7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..29effb3e --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png new file mode 100644 index 0000000..60761d3 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png new file mode 100644 index 0000000..b0f23d4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..ce2fdaa1 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..2a5c60a1 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..e443cf4d --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..715c121 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..3c8a78d0 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index b0457aef..d3e7f5d 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png index 6dfaa5a..470ca9c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png index e6a8fe2..3ef156e 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png index 589c8a3..8a9bcb8 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png index 69d0c5d..e6e6789 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png index 923974e..880ba0b 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png index 7323fef..1b127a2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index 6dfaa5a..470ca9c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index e52d347..cd3d8aa 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png index d3c96b03..15db939 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png index 62e4cca..f45a5e9 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png index dcebf18..5643173 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index d1112112..5cf9f6a1 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index e2f2ee7..8ac811c4 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index d05f206..42b1f9bf5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 834a396..a793d3bd 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index d80992b..82acd406 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..e40c00f --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png new file mode 100644 index 0000000..adaa176 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png new file mode 100644 index 0000000..bdcd8d0 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png index 3225737..7bbec48 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png index 42b618a..84c57aa 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index cb48707..1677eec 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png index c0d3008..ea79af5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png index 210e5f02..0e8054ba 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 19adc10..7b58e5de 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png index e96b861..72c2e297 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png index 92f8ebe..9f9f21d 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png index 6776ef2..f244968 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png index e96b861..72c2e297 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png index f0644fe..943f4ca 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png index 3f4655f..2513819 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png index 4dfe404..03956a7 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png index 5e43cb4..f5db7957 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png index 9dbfbbd..71131460 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png index 2a47431..5e3b372 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png index 6bd37a8c..4e4464f 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png index 5e07307..a8872bd 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png index 1e6b80ff..6b95e3c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hsl-format-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png index 85ffe05..59136c28c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png index c959607d..1d630b18 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png index c959607d..1d630b18 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-drag-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png index 758ce17..8dd87156 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png index dbf011f4..7109590 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png index 47407a4..aab15fd 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png index 6b94fb1..39e516c3 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png index b985cc1..c1c05531 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-manual-color-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png index 87be1f6..27b1eb5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png index f989b7a..9f2da970 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png index edbf519..a19b86f3 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png index c8f313e..d8cddb18 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png index 6b39669..2567ebc5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-empty-list-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png index cf6f5040..fe646b50 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png index 57bb5b33..d38c389 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-two-rows-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png index 225334b..fadab2e5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png index 369d1bd..e7d9d69 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png index a18a4b0..59c882c3 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 769a96b..63b6472 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring-expected.png new file mode 100644 index 0000000..c3a6849 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png new file mode 100644 index 0000000..6123378 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png index 631cc0c..51f8b5b 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png index fa584477..40b2daad 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png index e08dfec..6a3fc93 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png index e6b9354..1a8fffd2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-expected.png index d80992b..82acd406 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-twice-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-twice-expected.png index d80992b..82acd406 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-twice-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-alt-f8-twice-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png index 639312e..85ed8d2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png index 8a739bd..a68fa09 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png index e58188c..79dba2e2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png index 47466e4..c2c01c1 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-mismatched_glyph-expected.png index d80992b..82acd406 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-mismatched_glyph-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-mismatched_glyph-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png index 1f3834f..d434075 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 8e2b79c..f5d999c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 52e0d94..7fa0ccf7 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index 561cebcb..ee4b373 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index 6a0b344d..b470470a 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 3d4112be..766b2c7 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 21ed4c8..79c04bd 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 8a2d80fb..220c134 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 282e845..28e8dbb 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png index 3c75d67..ce7a020f 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png index 94ac255..2997287 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png index 8f58f48..e80b560 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png index 0b2b524..7ffaa08 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index 36691a2f..80dc4e5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png index 5b6e63e..b4cacfb 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png index efca983..a46c967 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png index 425e555e..eeb3ef3 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png index 7e99a0be..7170f95 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png index b3756a6..77f6ecb0 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png index 4274da1..c37200c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png index 8414dc3..ac082b12 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png new file mode 100644 index 0000000..6c13269 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png new file mode 100644 index 0000000..8518a76 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png new file mode 100644 index 0000000..d706709 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png index 928fce3..4ffe6080 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png index c4f06e4..f70900e 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png index 922e4a4..ab27d45 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png index 15991e01..b427c7d 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png index 2656621..dda041f 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png index c415917..0f6f0c6 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png index a2b51547..47ed400 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png index 1cd6e7a6..a64613f 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png index 80d3f5d..2c8b197 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png index 0e2ee09f..eacd08b 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png index 213f88c..c698a08 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/win/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png new file mode 100644 index 0000000..7149f78 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png index c8ddef9..d08bbbb 100644 --- a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png index fb11c48..8c20c94 100644 --- a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png index 328dc8f..fa127e6 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png index 9b4ea6c..c44af57 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 38a1413..63605020 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png index e4f0b3b..f95ee41 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png index 1083dc32..fa4c58a4 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 33b91c7..65b02c6 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png index edea03e..f82533a 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png index b9ccdc8..6d82ae9 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png index 2d1d84b..aba2821 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png index 0e02c686..8409c85 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png index 1b43ae5..e6504528 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png index 6baf253..cf43f7b 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png index 94dd979..0d401a9 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/delete-hard-break-character-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/delete-hard-break-character-expected.png index 4152ad2..5718486 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/delete-hard-break-character-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/delete-hard-break-character-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/rtl-caret-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/rtl-caret-expected.png index e1dc046..9a81d1a1 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/rtl-caret-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/rtl-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png index 4aeadb48..950294e5 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/52776-expected.png new file mode 100644 index 0000000..3913cc5 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/52776-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png new file mode 100644 index 0000000..56f1cd7 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png index ef426e5..73bbd9f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png index ef426e5..1dce990 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png similarity index 73% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png index b19ef2d5..25e150ed 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png similarity index 69% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png index 7912dfd..1f08ccb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png index 527065b..e7cac614 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png index a3c2b66e..4beb78f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png index ef426e5..1dce990 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png index ef426e5..1dce990 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png index ef426e5..dbdd4c7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png similarity index 74% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png index 7912dfd..fec28cba 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png similarity index 76% rename from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png rename to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png index 527065b..771a7e4 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png similarity index 73% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png index 7912dfd..76a7661 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png index ef426e5..98e2e37 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png similarity index 75% rename from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png rename to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png index a3c2b66e..0ce36680 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png similarity index 71% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png index a3c2b66e..a4b89872 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png similarity index 74% rename from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png rename to third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png index 7912dfd..1274063 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/custom-elements/form-validation-bubble-appearance-expected.png b/third_party/blink/web_tests/platform/win7/custom-elements/form-validation-bubble-appearance-expected.png index b0639f6..2cb858f 100644 --- a/third_party/blink/web_tests/platform/win7/custom-elements/form-validation-bubble-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/custom-elements/form-validation-bubble-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png index 9f5f13b..aab0d8d 100644 --- a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png +++ b/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png index 869fd52..02a2b4e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..e1ddbce --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png new file mode 100644 index 0000000..b2fe11c --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png new file mode 100644 index 0000000..e6f80ae3 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png index 2e859d4..5c041a44 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index 85305ca..af73e88e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index f5f23bf..92bbaf4 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png new file mode 100644 index 0000000..fc30771 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..7b57b36 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png new file mode 100644 index 0000000..bba0f55 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 1f7c2586..719427c 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 0dad089..25ece75 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index bd985e9..bfc27ef 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 0a7a472..3153171 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png index c84cbdd..f69b0a7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png new file mode 100644 index 0000000..29effb3e --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png new file mode 100644 index 0000000..60761d3 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png new file mode 100644 index 0000000..b0f23d4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..ce2fdaa1 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..2a5c60a1 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index e518576..431a1e80 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..715c121 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..3c8a78d0 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index b0457aef..d3e7f5d 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png index 9043cdb..4f3eead 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png index ef44020..e7078c0 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png index a2c4ab7..c503f7e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png index a408cbb..345f1d7 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png index 08280656..6d5eccc 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png index 59cd069..f22efacf 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png index 9043cdb..4f3eead 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png index 0de972a..247e6a2 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index bff1ee3..a09c4590 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png index 48e0cfa..ff18fef 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png index 2d08858..5a9595a 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png index 350e63b..7134a8e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png index bdcba8c..3dbcb3a 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 0bae342..60f7d39 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png index f151430..5efd148e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png index 9a75b94..176a1a50 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png index 4051a11..a1216bc 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png index 3edf8e8..9138128 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/month-picker/month-picker-appearance-zoom150-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index b278bd7..6606e39 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png new file mode 100644 index 0000000..ce7a020f --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png new file mode 100644 index 0000000..2997287 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png new file mode 100644 index 0000000..e80b560 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png new file mode 100644 index 0000000..7ffaa08 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png new file mode 100644 index 0000000..80dc4e5 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png new file mode 100644 index 0000000..b4cacfb --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png new file mode 100644 index 0000000..a46c967 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png new file mode 100644 index 0000000..eeb3ef3 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png new file mode 100644 index 0000000..7170f95 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png new file mode 100644 index 0000000..77f6ecb0 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png new file mode 100644 index 0000000..c37200c --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png new file mode 100644 index 0000000..ac082b12 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png new file mode 100644 index 0000000..6c13269 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png new file mode 100644 index 0000000..8518a76 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png b/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png new file mode 100644 index 0000000..d706709 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png new file mode 100644 index 0000000..4ffe6080 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png new file mode 100644 index 0000000..f70900e --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png new file mode 100644 index 0000000..ab27d45 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png new file mode 100644 index 0000000..b427c7d --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png new file mode 100644 index 0000000..dda041f --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png new file mode 100644 index 0000000..0f6f0c6 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png new file mode 100644 index 0000000..47ed400 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png new file mode 100644 index 0000000..a64613f --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png new file mode 100644 index 0000000..2c8b197 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png new file mode 100644 index 0000000..eacd08b --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png new file mode 100644 index 0000000..c698a08 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png b/third_party/blink/web_tests/platform/win7/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png new file mode 100644 index 0000000..7149f78 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/mouseevent_fractional/fast/events/reveal-link-when-focused-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png new file mode 100644 index 0000000..d08bbbb --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png new file mode 100644 index 0000000..8c20c94 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png index 918c7ac..2c52cb2 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png new file mode 100644 index 0000000..c44af57 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png new file mode 100644 index 0000000..63605020 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png index 95060cf..5aa0320c 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png new file mode 100644 index 0000000..fa4c58a4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png new file mode 100644 index 0000000..65b02c6 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png index eca6e4b..c0dbd28 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png index ba02d54bb..cfac6f8e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png index e287e19..7b3d0a7 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png index 25c30a3..d28f01ed 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-ltr-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png index c9611ac..12a89da 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-ltr-text-in-rtl-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png index d88edc0..54ffc02 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-ltr-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png index 93fc59d..fa4b518 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/ellipsis-rtl-text-in-rtl-flow-underline-composition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/delete-hard-break-character-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/delete-hard-break-character-expected.png index e9ddd4d..01c129a 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/delete-hard-break-character-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/delete-hard-break-character-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png index 569351f..e5f6adb 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/rtl-caret-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/rtl-caret-expected.png index 73c8bc68..bdc2b9c 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/rtl-caret-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/rtl-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png index b44c4fb..d94d37cc 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/select-new-line-with-line-break-normal-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/fast/dom/52776-expected.png new file mode 100644 index 0000000..3913cc5 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/fast/dom/52776-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png new file mode 100644 index 0000000..56f1cd7 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/fast/dom/focus-contenteditable-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png index ef426e5..73bbd9f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png index ef426e5..1dce990 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png similarity index 73% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png index b19ef2d5..25e150ed 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png similarity index 69% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png index 7912dfd..1f08ccb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png index 527065b..e7cac614 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png index a3c2b66e..4beb78f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png index ef426e5..1dce990 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png index ef426e5..1dce990 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png index ef426e5..dbdd4c7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png similarity index 74% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png index 7912dfd..fec28cba 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png similarity index 76% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png index 527065b..771a7e4 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png similarity index 73% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png index 7912dfd..76a7661 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png similarity index 68% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png index ef426e5..98e2e37 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png similarity index 75% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png index a3c2b66e..0ce36680 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png similarity index 71% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png index a3c2b66e..a4b89872 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png similarity index 74% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png copy to third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png index 7912dfd..1274063 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-0.5x-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/serial/serial_requestPort.html b/third_party/blink/web_tests/serial/serial_requestPort.html index e253efb..aa04ee1 100644 --- a/third_party/blink/web_tests/serial/serial_requestPort.html +++ b/third_party/blink/web_tests/serial/serial_requestPort.html
@@ -55,5 +55,34 @@ assert_true(firstPort === secondPort); }, 'requestPort() returns the same port object every time'); +serial_test(async (t, fake) => { + let guid = fake.addPort(); + fake.setSelectedPort(guid); + + await trustedClick(); + let port = await navigator.serial.requestPort({ filters: [] }); + assert_true(port instanceof SerialPort); +}, 'An empty list of filters is valid'); + +serial_test(async (t, fake) => { + let guid = fake.addPort(); + fake.setSelectedPort(guid); + + await trustedClick(); + return promise_rejects(t, new TypeError(), navigator.serial.requestPort({ + filters: [{}], + })); +}, 'An empty filter is not valid'); + +serial_test(async (t, fake) => { + let guid = fake.addPort(); + fake.setSelectedPort(guid); + + await trustedClick(); + return promise_rejects(t, new TypeError(), navigator.serial.requestPort({ + filters: [{ usbProductId: 0x0001 }], + })); +}, 'requestPort() requires a USB vendor ID if a product ID specified'); + </script> </body>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png deleted file mode 100644 index df69cee..0000000 --- a/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png deleted file mode 100644 index 900c0d6..0000000 --- a/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-multiple-appearance-basic-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png deleted file mode 100644 index bb7c03696..0000000 --- a/third_party/blink/web_tests/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring.html new file mode 100644 index 0000000..9f7f100 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/checkbox-zoom-focus-ring.html
@@ -0,0 +1,13 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("input").focus(); +} +</script> +</head> +<body style="background-color: green;"> +<input id="input" type="checkbox" checked style="zoom: 10"/> +</body> +</head> +</html>
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png similarity index 61% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png copy to third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png index a3c2b66e..060657b0 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-small-size-alt-f8-expected.png +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius.html new file mode 100644 index 0000000..7a72fad6 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius.html
@@ -0,0 +1,13 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("input").focus(); +} +</script> +</head> +<body style="background-color: green;"> +<input id="input" type="text" style="border-radius: 40px;"/> +</body> +</head> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png similarity index 67% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png copy to third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png index ef426e5..094f334 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-48px-expected.png +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed.html new file mode 100644 index 0000000..2658e7a --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed.html
@@ -0,0 +1,13 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("input").focus(); +} +</script> +</head> +<body style="background-color: blue"> +<input id="input" type="text" style="border-width: 6px;" /> +</body> +</head> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png new file mode 100644 index 0000000..eb60f66ae --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-detached-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-detached.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-detached.html new file mode 100644 index 0000000..1f6adbc3 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-detached.html
@@ -0,0 +1,18 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("detached").focus(); +} +</script> +</head> +<body style="background-color: green;"> +<table> +<tr> +<td width=100px >This is some filler text. This is some filler text.This is some filler text. </td> +<td width=350px> The text in this anchor element <a href="#" id="detached">should <br>contain</a> 2 detached pieces. This test shows how the link would look text.</td> +</tr> +</table> +</body> +</html> +
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png new file mode 100644 index 0000000..cb4dda686 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-link-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-link.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-link.html new file mode 100644 index 0000000..19ec2b498 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-link.html
@@ -0,0 +1,18 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("multiline").focus(); +} +</script> +</head> +<body style="background-color: magenta"> +<table> +<tr> +<td width=100px>The <a href="#" id="multiline">text in this anchor element should spawn multiple lines. This test shows how multiline link would look</a>like. </td> +<td width=350px>This is some filler text. This is some filler text. This is some filler text. This is some filler text. </td> +</tr> +</table> +</body> +</html> +
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png new file mode 100644 index 0000000..83f4872 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical.html new file mode 100644 index 0000000..a50241d --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical.html
@@ -0,0 +1,15 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("multiline").focus(); +} +</script> +</head> +<body style="background-color: red"> +<div id="multiline" style="-webkit-writing-mode: vertical-rl; width: 10em; height: 10em;" contenteditable> +Assuming the port-specific theme draws focus rings, this test draws focus rings around editable multiline text in vertical writing mode. +</div> +</body> +</html> +
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png similarity index 70% copy from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png copy to third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png index 527065b..5fa8db6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-font-size-4px-expected.png +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-outline-color.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-outline-color.html new file mode 100644 index 0000000..4e34ca39 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-outline-color.html
@@ -0,0 +1,15 @@ +<html> +<head> +<style> +a:focus { outline-color: green; } +</style> +<script> +window.onload = function() { + document.getElementById("link").focus(); +} +</script> +</head> +<body style="background-color: red"> +<a id="link" href="#"/>Test</a> +</body> +</html>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-zoom.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-zoom.html new file mode 100644 index 0000000..1cc4078 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-zoom.html
@@ -0,0 +1,13 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("input").focus(); +} +</script> +</head> +<body style="background-color: green;"> +<input id="input" type="text" value="test" style="zoom: 8; width: 30px"/> +</body> +</head> +</html>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/radio-focus-ring-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/radio-focus-ring-expected.png new file mode 100644 index 0000000..695777a1b --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/radio-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/radio-focus-ring.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/radio-focus-ring.html new file mode 100644 index 0000000..dbb759b --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/radio-focus-ring.html
@@ -0,0 +1,13 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("input").focus(); +} +</script> +</head> +<body style="background-color: green;"> +<input id="input" type="radio" checked style="zoom: 30"/> +</body> +</head> +</html>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png new file mode 100644 index 0000000..ed760f9 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring.html new file mode 100644 index 0000000..efcf7da --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring.html
@@ -0,0 +1,18 @@ +<!doctype html> +<head> +<script> +function test() { + ta.setSelectionRange(ta.value.length, ta.value.length); + ta.focus(); +} +</script> +</head> +<body onload="test()" style="background-color: green"> +Test passes if a focus ring is visible around text area when focused and scrolled to bottom.<br> +<textarea id="ta" rows=2> +1 +2 +3 +4 +</textarea> +</body>
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png similarity index 73% rename from third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png rename to third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png index b19ef2d5..4e20550 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring.html b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring.html new file mode 100644 index 0000000..8ba51ae --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring.html
@@ -0,0 +1,13 @@ +<html> +<head> +<script> +window.onload = function() { + document.getElementById("input").focus(); +} +</script> +</head> +<body style="background-color: green;"> +<input id="input" type="text" value="test"/> +</body> +</head> +</html>
diff --git a/third_party/blink/web_tests/wake-lock/wakelock-document-hidden.https.html b/third_party/blink/web_tests/wake-lock/wakelock-document-hidden.https.html index 73986d7..6b47191 100644 --- a/third_party/blink/web_tests/wake-lock/wakelock-document-hidden.https.html +++ b/third_party/blink/web_tests/wake-lock/wakelock-document-hidden.https.html
@@ -6,9 +6,10 @@ <script> 'use strict'; -self.testRunner.setPermission('wake-lock-screen', 'granted', location.origin, location.origin); +promise_test(async t => { + await internals.setPermission({name: 'wake-lock', type: 'screen'}, 'granted', + location.origin, location.origin); -promise_test(t => { window.testRunner.setPageVisibility('hidden'); assert_true(document.hidden); return promise_rejects(t, "NotAllowedError", navigator.wakeLock.request('screen')); @@ -21,7 +22,10 @@ // A more interoperable test would allow both |screenLock| to reject with // NotAllowedError as well as it resolving to a WakeLockSentinel that would fire // a "release" event upon page vsibility change. -promise_test(t => { +promise_test(async t => { + await internals.setPermission({name: 'wake-lock', type: 'screen'}, 'granted', + location.origin, location.origin); + window.testRunner.setPageVisibility('visible'); const screenLock = navigator.wakeLock.request('screen'); @@ -31,6 +35,9 @@ }, "navigator.wakeLock.request('screen') aborts when the page is hidden"); promise_test(async t => { + await internals.setPermission({name: 'wake-lock', type: 'screen'}, 'granted', + location.origin, location.origin); + window.testRunner.setPageVisibility('visible'); const screenLock1 = await navigator.wakeLock.request('screen');
diff --git a/third_party/blink/web_tests/wake-lock/wakelock-request-denied.html b/third_party/blink/web_tests/wake-lock/wakelock-request-denied.html index 2819e5ca..ff22918 100644 --- a/third_party/blink/web_tests/wake-lock/wakelock-request-denied.html +++ b/third_party/blink/web_tests/wake-lock/wakelock-request-denied.html
@@ -6,8 +6,9 @@ <script> 'use strict'; -promise_test(t => { - self.testRunner.setPermission('wake-lock-screen', 'denied', location.origin, location.origin); +promise_test(async t => { + await internals.setPermission({name: 'wake-lock', type: 'screen'}, 'denied', + location.origin, location.origin); return promise_rejects(t, "NotAllowedError", navigator.wakeLock.request('screen')); }, 'Denied requests should abort with NotAllowedError'); </script>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/activated-removes-size-containment-ref.html b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/activated-removes-size-containment-ref.html new file mode 100644 index 0000000..f0e85ba --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/activated-removes-size-containment-ref.html
@@ -0,0 +1,17 @@ +<!doctype HTML> +<html> +<meta charset="utf8"> +<title>activated element removes size containment</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> + +<style> +.border { + border: 1px solid black; +} +</style> + +<div class=border> + Test passes if there is a border around this text. +</div> +</html>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/activated-removes-size-containment.html b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/activated-removes-size-containment.html new file mode 100644 index 0000000..63c6a15 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/activated-removes-size-containment.html
@@ -0,0 +1,36 @@ +<!doctype HTML> +<html class="reftest-wait"> +<meta charset="utf8"> +<title>activated element removes size containment</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> +<link rel="match" href="activated-removes-size-containment-ref.html"> +<meta name="assert" content="activated render-subtree removes size containment."> +<script src="/common/reftest-wait.js"></script> + +<style> +.locked { + render-subtree: invisible; + + border: 1px solid black; +} +</style> + +<div class=locked> + Test passes if there is a border around this text. +</div> + +<script> + +window.onload = requestAnimationFrame(() => { + requestAnimationFrame(() => { + requestAnimationFrame(() => { + takeScreenshot(); + }); + }); +}); + +</script> +</html> + +
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/element-unlocked-and-relocked.html b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/element-unlocked-and-relocked.html new file mode 100644 index 0000000..73bb0e8 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/element-unlocked-and-relocked.html
@@ -0,0 +1,84 @@ +<!doctype HTML> +<html> +<meta charset="utf8"> +<title>Element is unlocked near the viewport, and relocked again</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> +<meta name="assert" content="element is unlocked near the viewport"> +<meta name="assert" content="element is relocked when moving away from the viewport"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/utils.js"></script> + +<style> +#container { + height: 10000px; + background: lightblue; + display: inline-block; + padding-top: 5000px; +} +.locked { + render-subtree: invisible; + border: 1px solid black; + width: max-content; +} +</style> + +<div id=container> + <div class=locked>This is a locked element</div> +</div> + +<script> +async_test((t) => { + let container; + + function enqueueStep1() { + container = document.getElementById("container"); + requestAnimationFrame(runStep1); + } + + function runStep1() { + t.step(() => { + // The container should be 2 wide to account for the border + // on the locked element. + assert_equals(container.getBoundingClientRect().width, 2); + }); + + enqueueStep2(); + } + + function enqueueStep2() { + window.scrollTo(0, 5000); + requestAnimationFrame(runStep2); + } + + function runStep2() { + t.step(() => { + // The container should be wider than before because the element + // is now unlocked. + assert_greater_than(container.getBoundingClientRect().width, 50); + }); + + enqueueStep3(); + } + + function enqueueStep2() { + window.scrollTo(0, 10000); + requestAnimationFrame(runStep3); + } + + function runStep3() { + t.step(() => { + // The container should be 2 wide again since we relocked the + // element. + assert_equals(container.getBoundingClientRect().width, 2); + }); + t.done(); + } + + window.onload = () => { + requestAnimationFrame(enqueueStep1); + }; +}, "Element unlocking and relocking test"); +</script>
diff --git a/third_party/test_fonts/BUILD.gn b/third_party/test_fonts/BUILD.gn index 532142b..a0b69d22 100644 --- a/third_party/test_fonts/BUILD.gn +++ b/third_party/test_fonts/BUILD.gn
@@ -36,6 +36,6 @@ ] outputs = [ - "${root_build_dir}/test_fonts/{{source_file_part}}", + "$root_out_dir/test_fonts/{{source_file_part}}", ] }
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 6faf0c4..2b54a42 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -21715,6 +21715,8 @@ <int value="1429" label="AUTOTESTPRIVATE_ISARCPACKAGELISTINITIALREFRESHED"/> <int value="1430" label="AUTOTESTPRIVATE_STARTTRACING"/> <int value="1431" label="AUTOTESTPRIVATE_STOPTRACING"/> + <int value="1432" label="LOGIN_LOCKMANAGEDGUESTSESSION"/> + <int value="1433" label="LOGIN_UNLOCKMANAGEDGUESTSESSION"/> </enum> <enum name="ExtensionIconState"> @@ -37514,6 +37516,7 @@ <int value="-530480158" label="EnableSuggestedFiles:enabled"/> <int value="-528927088" label="AutofillCreditCardPopupLayout:disabled"/> <int value="-528149352" label="WebRtcUseEchoCanceller3:enabled"/> + <int value="-526236814" label="WebAssemblyTiering:enabled"/> <int value="-523030434" label="EnableBackgroundBlur:enabled"/> <int value="-520004021" label="WebXRHitTest:disabled"/> <int value="-519960638" label="enable-site-engagement-service"/> @@ -38626,6 +38629,7 @@ <int value="916316159" label="disable-new-app-list-mixer"/> <int value="918046854" label="NtlmV2Enabled:disabled"/> <int value="921536672" label="OfflinePagesDescriptiveFailStatus:enabled"/> + <int value="921561616" label="WebAssemblyTiering:disabled"/> <int value="925712999" label="V8Orinoco:enabled"/> <int value="926852901" label="DataReductionProxyMainMenu:disabled"/> <int value="928900043" label="OmniboxLooseMaxLimitOnDedicatedRows:disabled"/> @@ -38670,6 +38674,7 @@ <int value="983311394" label="tab-management-experiment-type"/> <int value="986796748" label="AccountConsistency:enabled"/> <int value="987843084" label="TerminalSystemApp:enabled"/> + <int value="988781221" label="SyncSetupFriendlySettings:disabled"/> <int value="988981463" label="ImageCaptureAPI:enabled"/> <int value="989062160" label="ModuleScriptsImportMetaUrl:enabled"/> <int value="994317727" @@ -39472,6 +39477,7 @@ <int value="1961425320" label="force-qtkit"/> <int value="1962485086" label="DesktopPWAsLocalUpdating:enabled"/> <int value="1964816410" label="AndroidPayIntegrationV2:enabled"/> + <int value="1965055310" label="SyncSetupFriendlySettings:enabled"/> <int value="1965976546" label="NewOverviewAnimations:disabled"/> <int value="1966730288" label="disable-threaded-compositing"/> <int value="1969604362" label="enable-pinch-virtual-viewport"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index bdbe3b3..88b6186 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -59081,6 +59081,16 @@ </summary> </histogram> +<histogram name="HttpCache.HardReset" enum="Boolean" expires_after="2020-06-15"> + <owner>ericrobinson@chromium.org</owner> + <owner>shivanisha@chromium.org</owner> + <summary> + Whether the HttpCache was forced to reset upon creation, effectively + clearing out its previous content. This is recorded when the cache is + created for the browsing session. + </summary> +</histogram> + <histogram name="HttpCache.NetworkIsolationKeyPresent" enum="BooleanNetworkIsolationKeyPresent" expires_after="2020-06-07"> <obsolete> @@ -148297,7 +148307,10 @@ </histogram> <histogram name="Startup.BrowserMainToRendererMain" units="ms" - expires_after="2020-07-06"> + expires_after="M81"> + <obsolete> + Removed 01/2020. Data is not used. + </obsolete> <owner>fdoray@chromium.org</owner> <summary> Time from the ChromeMain() entry in the browser process to the first @@ -165940,7 +165953,7 @@ </histogram> <histogram name="WebAudio.AudioBuffer.Length" units="frames" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -165950,7 +165963,7 @@ </histogram> <histogram name="WebAudio.AudioBuffer.NumberOfChannels" units="units" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -165974,7 +165987,7 @@ </histogram> <histogram name="WebAudio.AudioBuffer.SampleRate384kHz" units="Hz" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -165999,7 +166012,7 @@ </histogram> <histogram name="WebAudio.AudioBuffer.SampleRateRatio384kHz" units="units" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166020,7 +166033,7 @@ </histogram> <histogram name="WebAudio.AudioContext.MaxChannelsAvailable" units="units" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166053,7 +166066,7 @@ </histogram> <histogram name="WebAudio.AudioDestination.CallbackBufferSize" units="units" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166183,7 +166196,7 @@ </histogram> <histogram name="WebAudio.BiquadFilter.Type" enum="BiquadFilterType" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166205,7 +166218,7 @@ </histogram> <histogram name="WebAudio.IIRFilterNode.Order" units="units" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166216,7 +166229,7 @@ </histogram> <histogram name="WebAudio.OfflineAudioContext.ChannelCount" units="units" - expires_after="M81"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166227,7 +166240,7 @@ </histogram> <histogram name="WebAudio.OfflineAudioContext.Length" units="frames" - expires_after="M81"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166264,7 +166277,7 @@ </histogram> <histogram name="WebAudio.PannerNode.PanningModel" enum="PanningModelType" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166277,7 +166290,7 @@ </histogram> <histogram name="WebAudio.PushPullFIFO.UnderflowGlitches" enum="Boolean" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -166288,7 +166301,7 @@ </histogram> <histogram name="WebAudio.PushPullFIFO.UnderflowPercentage" units="%" - expires_after="2020-07-06"> + expires_after="2021-01-06"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index aab1b72..d66d6ff2 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -6283,6 +6283,9 @@ </summary> </metric> <metric name="Experimental.PaintTiming.NavigationToLargestImagePaint"> + <obsolete> + Removed on 01/2020 + </obsolete> <summary> Measures the time in milliseconds from navigation timing's navigation start to the time when the page first paints the largest image within @@ -6303,6 +6306,9 @@ </summary> </metric> <metric name="Experimental.PaintTiming.NavigationToLargestTextPaint"> + <obsolete> + Removed on 01/2020 + </obsolete> <summary> Measures the time in milliseconds from navigation timing's navigation start to the time when the page first paints the largest text within
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml index b87b5add..a71e020d 100644 --- a/tools/traffic_annotation/summary/annotations.xml +++ b/tools/traffic_annotation/summary/annotations.xml
@@ -130,8 +130,9 @@ <item id="google_url_tracker" hash_code="5492492" type="0" deprecated="2019-08-01" content_hash_code="54474899" file_path=""/> <item id="headless_url_request" hash_code="29865866" type="0" deprecated="2018-07-10" content_hash_code="76700151" file_path=""/> <item id="hintsfetcher_gethintsrequest" hash_code="34557599" type="0" content_hash_code="57003380" os_list="linux,windows" file_path="components/optimization_guide/hints_fetcher.cc"/> - <item id="history_notice_utils_notice" hash_code="102595701" type="1" second_id="110307337" content_hash_code="130829410" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/history_notice_utils.cc"/> + <item id="history_notice_utils_notice" hash_code="102595701" type="1" second_id="110307337" deprecated="2020-01-07" content_hash_code="130829410" file_path=""/> <item id="history_notice_utils_popup" hash_code="80832574" type="1" second_id="110307337" content_hash_code="30618510" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/history_notice_utils.cc"/> + <item id="history_recording_enabled" hash_code="18918377" type="1" second_id="110307337" content_hash_code="24841534" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/history_notice_utils.cc"/> <item id="history_ui_favicon_request_handler_get_favicon" hash_code="17562717" type="0" content_hash_code="64054629" os_list="linux,windows" file_path="components/favicon/core/history_ui_favicon_request_handler_impl.cc"/> <item id="http_server_error_response" hash_code="32197336" type="0" content_hash_code="61082230" os_list="linux,windows" file_path="net/server/http_server.cc"/> <item id="https_server_previews_navigation" hash_code="35725390" type="0" content_hash_code="84423109" os_list="linux,windows" file_path="chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.cc"/> @@ -169,8 +170,8 @@ <item id="oauth2_access_token_fetcher" hash_code="27915688" type="0" content_hash_code="33501872" os_list="linux,windows" file_path="google_apis/gaia/oauth2_access_token_fetcher_impl.cc"/> <item id="oauth2_api_call_flow" hash_code="29188932" type="2" content_hash_code="108831236" os_list="linux,windows" policy_fields="-1" file_path="google_apis/gaia/oauth2_api_call_flow.cc"/> <item id="oauth2_mint_token_flow" hash_code="1112842" type="1" second_id="29188932" content_hash_code="91581432" os_list="linux,windows" semantics_fields="1,2,3,4,5" policy_fields="3,4" file_path="google_apis/gaia/oauth2_mint_token_flow.cc"/> - <item id="ocsp_start_url_request" hash_code="60921996" type="0" content_hash_code="6288676" os_list="linux" file_path="net/cert_net/nss_ocsp_session_url_request.cc"/> <item id="ocsp_start_url_loader" hash_code="3646641" type="0" content_hash_code="106270072" os_list="linux" file_path="services/network/public/cpp/cert_verifier/nss_ocsp_session_url_loader.cc"/> + <item id="ocsp_start_url_request" hash_code="60921996" type="0" content_hash_code="6288676" os_list="linux" file_path="net/cert_net/nss_ocsp_session_url_request.cc"/> <item id="offline_prefetch" hash_code="19185953" type="0" content_hash_code="112039446" os_list="linux,windows" file_path="components/offline_pages/core/prefetch/prefetch_request_fetcher.cc"/> <item id="omnibox_documentsuggest" hash_code="6055066" type="0" content_hash_code="126973249" os_list="linux,windows" file_path="components/omnibox/browser/document_suggestions_service.cc"/> <item id="omnibox_navigation_observer" hash_code="61684939" type="0" content_hash_code="70941231" os_list="linux,windows" file_path="chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc"/>
diff --git a/ui/file_manager/file_manager/foreground/elements/files_quick_view.js b/ui/file_manager/file_manager/foreground/elements/files_quick_view.js index f43e56dd..3cb1b84 100644 --- a/ui/file_manager/file_manager/foreground/elements/files_quick_view.js +++ b/ui/file_manager/file_manager/foreground/elements/files_quick_view.js
@@ -48,6 +48,7 @@ listeners: { 'files-safe-media-tap-outside': 'close', + 'files-safe-media-load-error': 'loaderror', }, /** @@ -80,6 +81,7 @@ autoplay: false, browsable: false, }); + this.removeAttribute('load-error'); const video = this.$.contentPanel.querySelector('#videoSafeMedia'); if (video) { video.src = ''; @@ -87,6 +89,12 @@ } }, + // Handle load error from the files-safe-media container. + loaderror: function() { + this.contentUrl = ''; + this.setAttribute('load-error', ''); + }, + /** @return {boolean} */ isOpened: function() { return this.$.dialog.open;
diff --git a/ui/file_manager/file_manager/foreground/elements/files_safe_media.js b/ui/file_manager/file_manager/foreground/elements/files_safe_media.js index f93a6f0..2a476798 100644 --- a/ui/file_manager/file_manager/foreground/elements/files_safe_media.js +++ b/ui/file_manager/file_manager/foreground/elements/files_safe_media.js
@@ -10,7 +10,7 @@ * files-safe-media-tap-outside events are fired depending on the position * of the tap. */ -var FilesSafeMedia = Polymer({ +const FilesSafeMedia = Polymer({ is: 'files-safe-media', properties: { @@ -107,6 +107,8 @@ if (this.webview_) { this.webview_.removeAttribute('loaded'); } + } else if (event.data === 'content-decode-failed') { + this.fire('files-safe-media-load-error'); } }); }
diff --git a/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js b/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js index 108ad78..f13a4e7 100644 --- a/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js +++ b/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js
@@ -40,12 +40,10 @@ content.src = event.data.src; content.decode() .then(() => { - content.removeAttribute('generic-thumbnail'); document.body.appendChild(content); }) .catch(() => { - content.setAttribute('generic-thumbnail', 'image'); - document.body.appendChild(content); + contentDecodeFailed(); }); break; default: @@ -68,6 +66,10 @@ sendMessage(src ? 'webview-loaded' : 'webview-cleared'); } + function contentDecodeFailed() { + sendMessage('content-decode-failed'); + } + function sendMessage(message) { if (messageSource) { messageSource.postMessage(message, FILES_APP_ORIGIN);
diff --git a/ui/file_manager/integration_tests/file_manager/quick_view.js b/ui/file_manager/integration_tests/file_manager/quick_view.js index 26eaa0fe..825c400b 100644 --- a/ui/file_manager/integration_tests/file_manager/quick_view.js +++ b/ui/file_manager/integration_tests/file_manager/quick_view.js
@@ -1304,4 +1304,20 @@ 'requestAnimationFrame', appId, [])); } }; + + /** + * Tests opening a broken JPEG doesn't display a broken image icon. + */ + testcase.openQuickViewBrokenImage = async () => { + // Open Files app on Downloads containing ENTRIES.brokenJpeg. + const appId = await setupAndWaitUntilReady( + RootPath.DOWNLOADS, [ENTRIES.brokenJpeg], []); + + // Open the file in Quick View. + await openQuickView(appId, ENTRIES.brokenJpeg.nameText); + + // Check: the quick view should have the attribute 'load-error'. + const element = + await remoteCall.waitForElement(appId, '#quick-view[load-error]'); + }; })();
diff --git a/ui/file_manager/integration_tests/test_util.js b/ui/file_manager/integration_tests/test_util.js index 61981c6..74e551d 100644 --- a/ui/file_manager/integration_tests/test_util.js +++ b/ui/file_manager/integration_tests/test_util.js
@@ -608,6 +608,17 @@ typeText: 'JPEG image' }), + brokenJpeg: new TestEntryInfo({ + type: EntryType.FILE, + sourceFileName: 'broken.jpg', + targetPath: 'broken.jpg', + mimeType: 'image/jpeg', + lastModifiedTime: 'Jan 18, 2038, 1:02 AM', + nameText: 'broken.jpg', + sizeText: '1 byte', + typeText: 'JPEG image' + }), + exifImage: new TestEntryInfo({ type: EntryType.FILE, sourceFileName: 'exif.jpg',
diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc index d9175ae..c20f145 100644 --- a/ui/native_theme/native_theme.cc +++ b/ui/native_theme/native_theme.cc
@@ -19,6 +19,13 @@ memcpy(this, &other, sizeof(*this)); } +float NativeTheme::GetBorderRadiusForPart(Part part, + float width, + float height, + float zoom) const { + return 0; +} + void NativeTheme::AddObserver(NativeThemeObserver* observer) { native_theme_observers_.AddObserver(observer); }
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h index 0303c1b..a88a858 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h
@@ -278,6 +278,11 @@ State state, const ExtraParams& extra) const = 0; + virtual float GetBorderRadiusForPart(Part part, + float width, + float height, + float zoom) const; + // Paint the part to the canvas. virtual void Paint( cc::PaintCanvas* canvas,
diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc index 54af53c..a0a4057 100644 --- a/ui/native_theme/native_theme_base.cc +++ b/ui/native_theme/native_theme_base.cc
@@ -112,20 +112,17 @@ constexpr SkColor kButtonBorderColor[2] = {SK_ColorBLACK, SK_ColorWHITE}; constexpr SkColor kProgressBackgroundColor[2] = {SK_ColorWHITE, SK_ColorBLACK}; -const int kCheckboxBorderRadius = 2; // The "dash" is 8x2 px by default (the checkbox is 13x13 px). const SkScalar kIndeterminateInsetWidthRatio = (13 - 8) / 2.0f / 13; const SkScalar kIndeterminateInsetHeightRatio = (13 - 2) / 2.0f / 13; const SkScalar kBorderWidth = 1.f; const SkScalar kSliderTrackHeight = 8.f; -const SkScalar kSliderTrackBorderRadius = 40.f; const SkScalar kSliderThumbBorderWidth = 1.f; const SkScalar kSliderThumbBorderHoveredWidth = 1.f; // Default height for progress is 16px and the track is 8px. const SkScalar kTrackHeightRatio = 8.0f / 16; const SkScalar kMenuListArrowStrokeWidth = 2.f; const int kSliderThumbSize = 16; -const int kInputBorderRadius = 2; // Get a color constant based on color-scheme SkColor GetColor(const SkColor colors[2], @@ -213,6 +210,35 @@ return gfx::Size(); } +float NativeThemeBase::GetBorderRadiusForPart(Part part, + float width, + float height, + float zoom) const { + if (!features::IsFormControlsRefreshEnabled()) { + NOTREACHED() << "GetBorderRadiusForPart only supports FormControlsRefresh."; + return 0; + } + + switch (part) { + case kCheckbox: + return 2.f * zoom; + case kPushButton: + case kTextField: + return 2.f; + case kRadio: + return std::max(width, height) * 0.5; + case kProgressBar: + case kSliderTrack: + // default border radius for progress and range is 40px. + return 40.f; + case kSliderThumb: + return std::max(width, height) * 0.5; + default: + break; + } + return 0; +} + void NativeThemeBase::Paint(cc::PaintCanvas* canvas, Part part, State state, @@ -576,8 +602,8 @@ const ButtonExtraParams& button, ColorScheme color_scheme) const { if (features::IsFormControlsRefreshEnabled()) { - const float border_radius = - SkIntToScalar(kCheckboxBorderRadius) * button.zoom; + const float border_radius = GetBorderRadiusForPart( + kCheckbox, rect.width(), rect.height(), button.zoom); SkRect skrect = PaintCheckboxRadioCommon(canvas, state, rect, button, true, border_radius, color_scheme); @@ -811,11 +837,10 @@ if (features::IsFormControlsRefreshEnabled()) { // Most of a radio button is the same as a checkbox, except the the rounded // square is a circle (i.e. border radius >= 100%). - const SkScalar radius = SkFloatToScalar( - static_cast<float>(std::max(rect.width(), rect.height())) * 0.5); - + const float border_radius = GetBorderRadiusForPart( + kRadio, rect.width(), rect.height(), button.zoom); SkRect skrect = PaintCheckboxRadioCommon(canvas, state, rect, button, false, - radius, color_scheme); + border_radius, color_scheme); if (!skrect.isEmpty() && button.checked) { // Draw the dot. cc::PaintFlags flags; @@ -826,7 +851,7 @@ skrect.inset(skrect.width() * 0.2, skrect.height() * 0.2); // Use drawRoundedRect instead of drawOval to be completely consistent // with the border in PaintCheckboxRadioNewCommon. - canvas->drawRoundRect(skrect, radius, radius, flags); + canvas->drawRoundRect(skrect, border_radius, border_radius, flags); } return; } @@ -871,20 +896,20 @@ return; } + float border_radius = GetBorderRadiusForPart(kPushButton, rect.width(), + rect.height(), button.zoom); // Paint the background (is not visible behind the rounded corners). skrect.inset(kBorderWidth / 2, kBorderWidth / 2); - PaintLightenLayer(canvas, skrect, state, kInputBorderRadius, color_scheme); + PaintLightenLayer(canvas, skrect, state, border_radius, color_scheme); flags.setColor(ControlsFillColorForState(state, color_scheme)); - canvas->drawRoundRect(skrect, kInputBorderRadius, kInputBorderRadius, - flags); + canvas->drawRoundRect(skrect, border_radius, border_radius, flags); // Paint the border: 1px solid. if (button.has_border) { flags.setStyle(cc::PaintFlags::kStroke_Style); flags.setStrokeWidth(kBorderWidth); flags.setColor(ControlsBorderColorForState(state, color_scheme)); - canvas->drawRoundRect(skrect, kInputBorderRadius, kInputBorderRadius, - flags); + canvas->drawRoundRect(skrect, border_radius, border_radius, flags); } return; } @@ -945,16 +970,17 @@ ColorScheme color_scheme) const { if (features::IsFormControlsRefreshEnabled()) { SkRect bounds = gfx::RectToSkRect(rect); - const SkScalar borderRadius = SkIntToScalar(kInputBorderRadius); + const SkScalar border_radius = GetBorderRadiusForPart( + kTextField, rect.width(), rect.height(), /*zoom level=*/1); // Paint the background (is not visible behind the rounded corners). bounds.inset(kBorderWidth / 2, kBorderWidth / 2); cc::PaintFlags fill_flags; fill_flags.setStyle(cc::PaintFlags::kFill_Style); if (text.background_color != 0) { - PaintLightenLayer(canvas, bounds, state, borderRadius, color_scheme); + PaintLightenLayer(canvas, bounds, state, border_radius, color_scheme); fill_flags.setColor(ControlsBackgroundColorForState(state, color_scheme)); - canvas->drawRoundRect(bounds, borderRadius, borderRadius, fill_flags); + canvas->drawRoundRect(bounds, border_radius, border_radius, fill_flags); } // Paint the border: 1px solid. @@ -962,7 +988,7 @@ stroke_flags.setColor(ControlsBorderColorForState(state, color_scheme)); stroke_flags.setStyle(cc::PaintFlags::kStroke_Style); stroke_flags.setStrokeWidth(kBorderWidth); - canvas->drawRoundRect(bounds, borderRadius, borderRadius, stroke_flags); + canvas->drawRoundRect(bounds, border_radius, border_radius, stroke_flags); return; } @@ -1116,13 +1142,13 @@ track_rect.inset(0, 1); else track_rect.inset(1, 0); - canvas->drawRoundRect(track_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius, flags); + float border_radius = GetBorderRadiusForPart(kSliderTrack, rect.width(), + rect.height(), slider.zoom); + canvas->drawRoundRect(track_rect, border_radius, border_radius, flags); // Clip the track to create rounded corners for the value bar. SkRRect rounded_rect; - rounded_rect.setRectXY(track_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius); + rounded_rect.setRectXY(track_rect, border_radius, border_radius); canvas->clipRRect(rounded_rect, SkClipOp::kIntersect, true); // Paint the value slider track. @@ -1138,8 +1164,7 @@ border_color = SkColorSetA(border_color, 0x80); flags.setColor(border_color); track_rect.inset(kBorderWidth / 2, kBorderWidth / 2); - canvas->drawRoundRect(track_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius, flags); + canvas->drawRoundRect(track_rect, border_radius, border_radius, flags); return; } @@ -1166,8 +1191,8 @@ const SliderExtraParams& slider, ColorScheme color_scheme) const { if (features::IsFormControlsRefreshEnabled()) { - const SkScalar radius = SkFloatToScalar( - static_cast<float>(std::max(rect.width(), rect.height())) * 0.5); + const float radius = GetBorderRadiusForPart(kSliderThumb, rect.width(), + rect.height(), slider.zoom); SkRect thumb_rect = gfx::RectToSkRect(rect); cc::PaintFlags flags; @@ -1269,13 +1294,13 @@ slider.vertical = false; float track_height = rect.height() * kTrackHeightRatio; SkRect track_rect = AlignSliderTrack(rect, slider, false, track_height); - canvas->drawRoundRect(track_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius, flags); + float border_radius = GetBorderRadiusForPart( + kProgressBar, rect.width(), rect.height(), /*zoom level=*/1); + canvas->drawRoundRect(track_rect, border_radius, border_radius, flags); // Clip the track to create rounded corners for the value bar. SkRRect rounded_rect; - rounded_rect.setRectXY(track_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius); + rounded_rect.setRectXY(track_rect, border_radius, border_radius); canvas->clipRRect(rounded_rect, SkClipOp::kIntersect, true); // Paint the progress value bar. @@ -1292,8 +1317,7 @@ if (progress_bar.determinate) { canvas->drawRect(value_rect, flags); } else { - canvas->drawRoundRect(value_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius, flags); + canvas->drawRoundRect(value_rect, border_radius, border_radius, flags); } // Paint the border. @@ -1304,8 +1328,7 @@ border_color = SkColorSetA(border_color, 0x80); flags.setColor(border_color); track_rect.inset(kBorderWidth / 2, kBorderWidth / 2); - canvas->drawRoundRect(track_rect, kSliderTrackBorderRadius, - kSliderTrackBorderRadius, flags); + canvas->drawRoundRect(track_rect, border_radius, border_radius, flags); return; }
diff --git a/ui/native_theme/native_theme_base.h b/ui/native_theme/native_theme_base.h index a0530ef..0273ee3 100644 --- a/ui/native_theme/native_theme_base.h +++ b/ui/native_theme/native_theme_base.h
@@ -27,6 +27,10 @@ gfx::Size GetPartSize(Part part, State state, const ExtraParams& extra) const override; + float GetBorderRadiusForPart(Part part, + float width, + float height, + float zoom) const override; void Paint(cc::PaintCanvas* canvas, Part part, State state,
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn index 9ae4f8b..5fb141d 100644 --- a/weblayer/BUILD.gn +++ b/weblayer/BUILD.gn
@@ -220,7 +220,8 @@ "//components/security_interstitials/content/renderer:security_interstitial_page_controller", "//components/security_interstitials/core", "//components/spellcheck:buildflags", - "//components/startup_metric_utils/browser:lib", + "//components/ssl_errors", + "//components/startup_metric_utils/browser", "//components/user_prefs", "//components/version_info", "//components/web_cache/browser",
diff --git a/weblayer/browser/DEPS b/weblayer/browser/DEPS index d47f233..e9553e85 100644 --- a/weblayer/browser/DEPS +++ b/weblayer/browser/DEPS
@@ -16,6 +16,7 @@ "+components/safe_browsing", "+components/security_interstitials", "+components/spellcheck/browser", + "+components/ssl_errors", "+components/startup_metric_utils", "+components/version_info", "+components/web_cache/browser",
diff --git a/weblayer/browser/browser_process.cc b/weblayer/browser/browser_process.cc index 076fe49..c4278a6 100644 --- a/weblayer/browser/browser_process.cc +++ b/weblayer/browser/browser_process.cc
@@ -24,6 +24,8 @@ std::unique_ptr<PrefService> CreatePrefService() { auto pref_registry = base::MakeRefCounted<PrefRegistrySimple>(); + network_time::NetworkTimeTracker::RegisterPrefs(pref_registry.get()); + PrefServiceFactory pref_service_factory; pref_service_factory.set_user_prefs( base::MakeRefCounted<InMemoryPrefStore>());
diff --git a/weblayer/browser/ssl_browsertest.cc b/weblayer/browser/ssl_browsertest.cc index d3be75bc..26c6a39 100644 --- a/weblayer/browser/ssl_browsertest.cc +++ b/weblayer/browser/ssl_browsertest.cc
@@ -8,7 +8,9 @@ #include "base/macros.h" #include "base/optional.h" #include "build/build_config.h" +#include "components/network_time/network_time_tracker.h" #include "net/test/embedded_test_server/embedded_test_server.h" +#include "weblayer/browser/browser_process.h" #include "weblayer/browser/ssl_error_handler.h" #include "weblayer/shell/browser/shell.h" #include "weblayer/test/interstitial_utils.h" @@ -37,8 +39,15 @@ https_server_mismatched_->AddDefaultHandlers( base::FilePath(FILE_PATH_LITERAL("weblayer/test/data"))); + https_server_expired_ = std::make_unique<net::EmbeddedTestServer>( + net::EmbeddedTestServer::TYPE_HTTPS); + https_server_expired_->SetSSLConfig(net::EmbeddedTestServer::CERT_EXPIRED); + https_server_expired_->AddDefaultHandlers( + base::FilePath(FILE_PATH_LITERAL("weblayer/test/data"))); + ASSERT_TRUE(https_server_->Start()); ASSERT_TRUE(https_server_mismatched_->Start()); + ASSERT_TRUE(https_server_expired_->Start()); } void PostRunTestOnMainThread() override { @@ -53,9 +62,9 @@ EXPECT_FALSE(IsShowingSecurityInterstitial(shell()->tab())); } - void NavigateToPageWithSslErrorExpectSSLInterstitial() { + void NavigateToPageWithMismatchedCertExpectSSLInterstitial() { // Do a navigation that should result in an SSL error. - NavigateAndWaitForFailure(bad_ssl_url(), shell()); + NavigateAndWaitForFailure(mismatched_cert_url(), shell()); // First check that there *is* an interstitial. ASSERT_TRUE(IsShowingSecurityInterstitial(shell()->tab())); @@ -67,9 +76,9 @@ // ssl_browsertest.cc's CheckAuthenticationBrokenState() function. } - void NavigateToPageWithSslErrorExpectCaptivePortalInterstitial() { + void NavigateToPageWithMismatchedCertExpectCaptivePortalInterstitial() { // Do a navigation that should result in an SSL error. - NavigateAndWaitForFailure(bad_ssl_url(), shell()); + NavigateAndWaitForFailure(mismatched_cert_url(), shell()); // First check that there *is* an interstitial. ASSERT_TRUE(IsShowingSecurityInterstitial(shell()->tab())); @@ -82,8 +91,36 @@ // ssl_browsertest.cc's CheckAuthenticationBrokenState() function. } - void NavigateToPageWithSslErrorExpectNotBlocked() { - NavigateAndWaitForCompletion(bad_ssl_url(), shell()); + void NavigateToPageWithExpiredCertExpectSSLInterstitial() { + // Do a navigation that should result in an SSL error. + NavigateAndWaitForFailure(expired_cert_url(), shell()); + // First check that there *is* an interstitial. + ASSERT_TRUE(IsShowingSecurityInterstitial(shell()->tab())); + + // Now verify that the interstitial is in fact an SSL interstitial. + EXPECT_TRUE(IsShowingSSLInterstitial(shell()->tab())); + + // TODO(blundell): Check the security state once security state is available + // via the public WebLayer API, following the example of //chrome's + // ssl_browsertest.cc's CheckAuthenticationBrokenState() function. + } + + void NavigateToPageWithExpiredCertExpectBadClockInterstitial() { + // Do a navigation that should result in an SSL error. + NavigateAndWaitForFailure(expired_cert_url(), shell()); + // First check that there *is* an interstitial. + ASSERT_TRUE(IsShowingSecurityInterstitial(shell()->tab())); + + // Now verify that the interstitial is in fact a bad clock interstitial. + EXPECT_TRUE(IsShowingBadClockInterstitial(shell()->tab())); + + // TODO(blundell): Check the security state once security state is available + // via the public WebLayer API, following the example of //chrome's + // ssl_browsertest.cc's CheckAuthenticationBrokenState() function. + } + + void NavigateToPageWithMismatchedCertExpectNotBlocked() { + NavigateAndWaitForCompletion(mismatched_cert_url(), shell()); EXPECT_FALSE(IsShowingSecurityInterstitial(shell()->tab())); // TODO(blundell): Check the security state once security state is available @@ -95,7 +132,7 @@ bool proceed, base::Optional<GURL> previous_url = base::nullopt) { GURL expected_url = - proceed ? bad_ssl_url() : previous_url.value_or(ok_url()); + proceed ? mismatched_cert_url() : previous_url.value_or(ok_url()); ASSERT_TRUE(IsShowingSSLInterstitial(shell()->tab())); TestNavigationObserver navigation_observer( @@ -144,13 +181,18 @@ } GURL ok_url() { return https_server_->GetURL("/simple_page.html"); } - GURL bad_ssl_url() { + GURL mismatched_cert_url() { return https_server_mismatched_->GetURL("/simple_page.html"); } + GURL expired_cert_url() { + return https_server_expired_->GetURL("/simple_page.html"); + } + protected: std::unique_ptr<net::EmbeddedTestServer> https_server_; std::unique_ptr<net::EmbeddedTestServer> https_server_mismatched_; + std::unique_ptr<net::EmbeddedTestServer> https_server_expired_; private: DISALLOW_COPY_AND_ASSIGN(SSLBrowserTest); @@ -159,7 +201,7 @@ // Tests clicking "take me back" on the interstitial page. IN_PROC_BROWSER_TEST_F(SSLBrowserTest, TakeMeBack) { NavigateToOkPage(); - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); // Click "Take me back". SendInterstitialNavigationCommandAndWait(false /*proceed*/); @@ -169,13 +211,13 @@ // Navigate to the bad SSL page again, an interstitial shows again (in // contrast to what would happen had the user chosen to proceed). - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); } // Tests clicking "take me back" on the interstitial page when there's no // navigation history. The user should be taken to a safe page (about:blank). IN_PROC_BROWSER_TEST_F(SSLBrowserTest, TakeMeBackEmptyNavigationHistory) { - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); // Click "Take me back". SendInterstitialNavigationCommandAndWait(false /*proceed*/, @@ -184,19 +226,19 @@ IN_PROC_BROWSER_TEST_F(SSLBrowserTest, Reload) { NavigateToOkPage(); - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); SendInterstitialReloadCommandAndWait(); // TODO(blundell): Ideally we would fix the SSL error, reload, and verify // that the SSL interstitial isn't showing. However, currently this doesn't // work: Calling ResetSSLConfig() on |http_server_mismatched_| passing - // CERT_OK does not cause future reloads or navigations to bad_ssl_url() to - // succeed; they still fail and pop an interstitial. I verified that the - // LoadCompletionObserver is in fact waiting for a new load, i.e., there is - // actually a *new* SSL interstitial popped up. From looking at the - // ResetSSLConfig() impl there shouldn't be any waiting or anything needed - // within the client. + // CERT_OK does not cause future reloads or navigations to + // mismatched_cert_url() to succeed; they still fail and pop an interstitial. + // I verified that the LoadCompletionObserver is in fact waiting for a new + // load, i.e., there is actually a *new* SSL interstitial popped up. From + // looking at the ResetSSLConfig() impl there shouldn't be any waiting or + // anything needed within the client. } // Tests clicking proceed link on the interstitial page. This is a PRE_ test @@ -204,26 +246,26 @@ // across restarts. IN_PROC_BROWSER_TEST_F(SSLBrowserTest, PRE_Proceed) { NavigateToOkPage(); - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); SendInterstitialNavigationCommandAndWait(true /*proceed*/); // Go back to an OK page, then try to navigate again. The "Proceed" decision // should be saved, so no interstitial is shown this time. NavigateToOkPage(); - NavigateToPageWithSslErrorExpectNotBlocked(); + NavigateToPageWithMismatchedCertExpectNotBlocked(); } // The proceed decision is not perpetuated across WebLayer sessions, i.e. // WebLayer will block again when navigating to the same bad page that was // previously proceeded through. IN_PROC_BROWSER_TEST_F(SSLBrowserTest, Proceed) { - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); } // Tests navigating away from the interstitial page. IN_PROC_BROWSER_TEST_F(SSLBrowserTest, NavigateAway) { NavigateToOkPage(); - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); NavigateToOtherOkPage(); } @@ -234,11 +276,11 @@ IN_PROC_BROWSER_TEST_F(SSLBrowserTest, OSReportsCaptivePortal) { SetDiagnoseSSLErrorsAsCaptivePortalForTesting(true); - NavigateToPageWithSslErrorExpectCaptivePortalInterstitial(); + NavigateToPageWithMismatchedCertExpectCaptivePortalInterstitial(); // Check that clearing the test setting causes behavior to revert to normal. SetDiagnoseSSLErrorsAsCaptivePortalForTesting(false); - NavigateToPageWithSslErrorExpectSSLInterstitial(); + NavigateToPageWithMismatchedCertExpectSSLInterstitial(); } #if defined(OS_ANDROID) @@ -247,10 +289,28 @@ IN_PROC_BROWSER_TEST_F(SSLBrowserTest, CaptivePortalConnectToLoginPage) { SetDiagnoseSSLErrorsAsCaptivePortalForTesting(true); - NavigateToPageWithSslErrorExpectCaptivePortalInterstitial(); + NavigateToPageWithMismatchedCertExpectCaptivePortalInterstitial(); SendInterstitialOpenLoginCommandAndWait(); } #endif +IN_PROC_BROWSER_TEST_F(SSLBrowserTest, BadClockInterstitial) { + // Without the NetworkTimeTracker reporting that the clock is ahead or + // behind, navigating to a page with an expired cert should result in the + // default SSL interstitial appearing. + NavigateToPageWithExpiredCertExpectSSLInterstitial(); + + // Set network time back ten minutes. + BrowserProcess::GetInstance()->GetNetworkTimeTracker()->UpdateNetworkTime( + base::Time::Now() - base::TimeDelta::FromMinutes(10), + base::TimeDelta::FromMilliseconds(1), /* resolution */ + base::TimeDelta::FromMilliseconds(500), /* latency */ + base::TimeTicks::Now() /* posting time of this update */); + + // Now navigating to a page with an expired cert should cause the bad clock + // interstitial to appear. + NavigateToPageWithExpiredCertExpectBadClockInterstitial(); +} + } // namespace weblayer
diff --git a/weblayer/browser/ssl_error_controller_client.cc b/weblayer/browser/ssl_error_controller_client.cc index 45acb6a..be0a4d6 100644 --- a/weblayer/browser/ssl_error_controller_client.cc +++ b/weblayer/browser/ssl_error_controller_client.cc
@@ -51,4 +51,8 @@ OpenUrlInCurrentTab(url); } +bool SSLErrorControllerClient::CanLaunchDateAndTimeSettings() { + return true; +} + } // namespace weblayer
diff --git a/weblayer/browser/ssl_error_controller_client.h b/weblayer/browser/ssl_error_controller_client.h index 17e526d..8f21222 100644 --- a/weblayer/browser/ssl_error_controller_client.h +++ b/weblayer/browser/ssl_error_controller_client.h
@@ -38,6 +38,7 @@ void GoBack() override; void Proceed() override; void OpenUrlInNewForegroundTab(const GURL& url) override; + bool CanLaunchDateAndTimeSettings() override; private: const int cert_error_;
diff --git a/weblayer/browser/ssl_error_handler.cc b/weblayer/browser/ssl_error_handler.cc index 2ea089a..091dddf 100644 --- a/weblayer/browser/ssl_error_handler.cc +++ b/weblayer/browser/ssl_error_handler.cc
@@ -6,6 +6,7 @@ #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" +#include "components/security_interstitials/content/bad_clock_blocking_page.h" #include "components/security_interstitials/content/captive_portal_blocking_page.h" #include "components/security_interstitials/content/ssl_blocking_page.h" #include "components/security_interstitials/content/ssl_cert_reporter.h" @@ -13,6 +14,8 @@ #include "components/security_interstitials/core/metrics_helper.h" #include "components/security_interstitials/core/ssl_error_options_mask.h" #include "components/security_interstitials/core/ssl_error_ui.h" +#include "components/ssl_errors/error_info.h" +#include "weblayer/browser/browser_process.h" #include "weblayer/browser/ssl_error_controller_client.h" #include "weblayer/browser/weblayer_content_browser_overlay_manifest.h" @@ -146,6 +149,40 @@ base::WrapUnique(interstitial_page))); } +// Constructs and shows a bad clock interstitial. Adapted from //chrome's +// SSLErrorHandlerDelegateImpl::ShowCaptivePortalInterstitial(). +void ShowBadClockInterstitial( + content::WebContents* web_contents, + int cert_error, + const net::SSLInfo& ssl_info, + const GURL& request_url, + ssl_errors::ClockState clock_state, + std::unique_ptr<SSLCertReporter> ssl_cert_reporter, + base::OnceCallback< + void(std::unique_ptr<security_interstitials::SecurityInterstitialPage>)> + blocking_page_ready_callback) { + security_interstitials::MetricsHelper::ReportDetails report_details; + report_details.metric_prefix = "bad_clock"; + auto metrics_helper = std::make_unique<security_interstitials::MetricsHelper>( + request_url, report_details, /*history_service=*/nullptr); + + auto controller_client = std::make_unique<SSLErrorControllerClient>( + web_contents, cert_error, ssl_info, request_url, + std::move(metrics_helper)); + + auto* interstitial_page = new BadClockBlockingPage( + web_contents, cert_error, ssl_info, request_url, + base::Time::NowFromSystemTime(), clock_state, + std::move(ssl_cert_reporter), std::move(controller_client)); + + // Note: |blocking_page_ready_callback| must be posted due to + // HandleSSLError()'s guarantee that it will not invoke this callback + // synchronously. + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(blocking_page_ready_callback), + base::WrapUnique(interstitial_page))); +} + } // namespace void HandleSSLError( @@ -157,7 +194,35 @@ base::OnceCallback< void(std::unique_ptr<security_interstitials::SecurityInterstitialPage>)> blocking_page_ready_callback) { - // First check for captive portal. + // Check for a clock error. + if (ssl_errors::ErrorInfo::NetErrorToErrorType(cert_error) == + ssl_errors::ErrorInfo::CERT_DATE_INVALID) { + // This implementation is adapted from //chrome's + // SSLErrorHandler::HandleCertDateInvalidErrorImpl(). Note that we did not + // port the fetch of NetworkTimeTracker's time made in //chrome's + // SSLErrorHandler::HandleCertDateInvalidError() into //weblayer: this + // fetch introduces a fair degree of complexity into the flow by making it + // asynchronous, and it is not relevant on Android, where such fetches are + // not supported. This fetch will be incorporated when WebLayer shares + // //chrome's SSLErrorHandler implementation as part of crbug.com/1026547. + + const base::Time now = base::Time::NowFromSystemTime(); + + network_time::NetworkTimeTracker* tracker = + BrowserProcess::GetInstance()->GetNetworkTimeTracker(); + ssl_errors::ClockState clock_state = + ssl_errors::GetClockState(now, tracker); + + if (clock_state == ssl_errors::CLOCK_STATE_FUTURE || + clock_state == ssl_errors::CLOCK_STATE_PAST) { + ShowBadClockInterstitial(web_contents, cert_error, ssl_info, request_url, + clock_state, std::move(ssl_cert_reporter), + std::move(blocking_page_ready_callback)); + return; + } + } + + // Next check for a captive portal. // TODO(https://crbug.com/1030692): Share the check for known captive // portal certificates from //chrome's SSLErrorHandler:757.
diff --git a/weblayer/grit_strings_whitelist.txt b/weblayer/grit_strings_whitelist.txt index e6ad7d7..603ce96 100644 --- a/weblayer/grit_strings_whitelist.txt +++ b/weblayer/grit_strings_whitelist.txt
@@ -7,6 +7,12 @@ IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIRED IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI_SSID +IDS_CLOCK_ERROR_AHEAD_HEADING +IDS_CLOCK_ERROR_BEHIND_HEADING +IDS_CLOCK_ERROR_EXPLANATION +IDS_CLOCK_ERROR_PRIMARY_PARAGRAPH +IDS_CLOCK_ERROR_TITLE +IDS_CLOCK_ERROR_UPDATE_DATE_AND_TIME IDS_SSL_OPEN_DETAILS_BUTTON IDS_SSL_CLOSE_DETAILS_BUTTON IDS_SSL_NONOVERRIDABLE_HSTS
diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn index b5314f5f..587392c5 100644 --- a/weblayer/test/BUILD.gn +++ b/weblayer/test/BUILD.gn
@@ -81,6 +81,7 @@ "//components/autofill/core/browser", "//components/autofill/core/browser:test_support", "//components/autofill/core/common", + "//components/network_time", "//components/security_interstitials/content:security_interstitial_page", "//content/public/browser", "//content/test:test_support",
diff --git a/weblayer/test/interstitial_utils.cc b/weblayer/test/interstitial_utils.cc index 4266a77..7e0b9de 100644 --- a/weblayer/test/interstitial_utils.cc +++ b/weblayer/test/interstitial_utils.cc
@@ -4,6 +4,7 @@ #include "weblayer/test/interstitial_utils.h" +#include "components/security_interstitials/content/bad_clock_blocking_page.h" #include "components/security_interstitials/content/captive_portal_blocking_page.h" #include "components/security_interstitials/content/security_interstitial_tab_helper.h" #include "components/security_interstitials/content/ssl_blocking_page.h" @@ -57,4 +58,9 @@ tab, CaptivePortalBlockingPage::kTypeForTesting); } +bool IsShowingBadClockInterstitial(Tab* tab) { + return IsShowingInterstitialOfType(tab, + BadClockBlockingPage::kTypeForTesting); +} + } // namespace weblayer
diff --git a/weblayer/test/interstitial_utils.h b/weblayer/test/interstitial_utils.h index e8b7834..a1a1a063d 100644 --- a/weblayer/test/interstitial_utils.h +++ b/weblayer/test/interstitial_utils.h
@@ -24,6 +24,9 @@ // |tab|. bool IsShowingCaptivePortalInterstitial(Tab* tab); +// Returns true iff a bad clock interstitial is currently displaying in |tab|. +bool IsShowingBadClockInterstitial(Tab* tab); + } // namespace weblayer #endif // WEBLAYER_TEST_INTERSTITIAL_UTILS_H_