diff --git a/DEPS b/DEPS
index f2fb711..8445b24 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': 'f0b7edf6cd9442558fc71cbdf614afb8e3ee6ec5',
+  'skia_revision': '3322aafc36d4004eb2385a3ab63cba4293de2feb',
   # 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': '3bb6c2dd702c09576d665319c09a89242710a496',
+  'v8_revision': 'abd1a0fc04476bbb27ef2dfda2e444cc1467f5f6',
   # 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,7 +193,7 @@
   # 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': '579c59400f860d9f63510a5da9441bb7ccca422a',
+  'angle_revision': '0aba975494ce1a52aa64985c7d76aa37065b5b8d',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -1297,7 +1297,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '2e5c7edf368fac33734477cc9a621b7a5642f8f9',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '11c11a1a891c7731511d3cc302c3a9adbcb3575f',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1501,7 +1501,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'ec18cc3262922e7dcdbe70243c6f40606f979144',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'c380e97ee62a3e1a75290bfb0e438ca267c6237c',
+    Var('webrtc_git') + '/src.git' + '@' + '52c3688f08ac6466e5cb2f0dcccbd08759d8bfdd',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1571,7 +1571,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@a88ea0799692a9bfa3fb2a4eaaf97255519d625d',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@7a8dfb9c2acd53da9496acd5772fdce0c9652e72',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index ff5aae5..62e2cecb 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -82,9 +82,7 @@
 
   android_resource_sizes_test("resource_sizes_system_webview_apk") {
     apk_name = "SystemWebView"
-    data_deps = [
-      ":system_webview_apk",
-    ]
+    data_deps = [ ":system_webview_apk" ]
   }
 
   # Trichrome WebView APK.
@@ -344,9 +342,7 @@
     "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConfigHelper.java",
   ]
 
-  deps = [
-    ":cancellation_signal_android_jar_jni_headers",
-  ]
+  deps = [ ":cancellation_signal_android_jar_jni_headers" ]
 }
 
 generate_jar_jni("cancellation_signal_android_jar_jni_headers") {
@@ -493,9 +489,7 @@
 }
 
 android_library("common_variations_utils_java") {
-  sources = [
-    "java/src/org/chromium/android_webview/common/variations/VariationsUtils.java",
-  ]
+  sources = [ "java/src/org/chromium/android_webview/common/variations/VariationsUtils.java" ]
   deps = [
     "//android_webview/proto:aw_variations_seed_proto_java",
     "//base:base_java",
@@ -526,12 +520,8 @@
 
 # This target compiles the implementation of PlatformServiceBridge for AOSP targets.
 android_library("platform_service_bridge_upstream_implementation_java") {
-  sources = [
-    "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java",
-  ]
-  deps = [
-    ":common_platform_services_java",
-  ]
+  sources = [ "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java" ]
+  deps = [ ":common_platform_services_java" ]
 }
 
 android_library("common_crash_java") {
@@ -594,21 +584,16 @@
 # level - with the list of pak locales populated by looking at the assets that
 # are listed in the final APK's .build_config.
 android_library("android_webview_product_config_java") {
-  sources = [
-    "java/src/org/chromium/android_webview/AwLocaleConfig.java",
-  ]
+  sources = [ "java/src/org/chromium/android_webview/AwLocaleConfig.java" ]
   srcjar_deps = [ ":webview_product_config" ]
   jar_excluded_patterns = [ "*/ProductConfig.class" ]
 }
 
 if (enable_resource_whitelist_generation) {
   generate_resource_whitelist("system_webview_pak_whitelist") {
-    deps = [
-      ":libwebviewchromium",
-    ]
-    inputs = [
-      "$root_out_dir/lib.unstripped/libwebviewchromium$shlib_extension",
-    ]
+    deps = [ ":libwebviewchromium" ]
+    inputs =
+        [ "$root_out_dir/lib.unstripped/libwebviewchromium$shlib_extension" ]
     output = system_webview_pak_whitelist
   }
 }
@@ -619,9 +604,7 @@
 
   if (enable_resource_whitelist_generation) {
     repack_whitelist = system_webview_pak_whitelist
-    deps = [
-      ":system_webview_pak_whitelist",
-    ]
+    deps = [ ":system_webview_pak_whitelist" ]
   }
 }
 
@@ -634,9 +617,7 @@
     renaming_destinations += [ "stored-locales/$_locale.pak" ]
   }
   treat_as_locale_paks = true
-  deps = [
-    ":repack_locales",
-  ]
+  deps = [ ":repack_locales" ]
 }
 
 repack("repack_pack") {
@@ -654,7 +635,7 @@
     ":generate_components_resources",
     ":generate_mojo_resources",
     ":generate_webui_resources",
-    "//content:resources",
+    "//content:content_resources",
     "//net:net_resources",
     "//third_party/blink/public:resources",
   ]
@@ -726,20 +707,14 @@
 
 android_assets("webview_primary_abi_assets") {
   if (use_v8_context_snapshot) {
-    deps = [
-      "//tools/v8_context_snapshot:v8_context_snapshot_assets",
-    ]
+    deps = [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
   } else {
-    deps = [
-      "//v8:v8_external_startup_data_assets",
-    ]
+    deps = [ "//v8:v8_external_startup_data_assets" ]
   }
 }
 
 android_assets("monochrome_webview_primary_abi_assets") {
-  deps = [
-    "//third_party/icu:icu_assets",
-  ]
+  deps = [ "//third_party/icu:icu_assets" ]
   if (use_v8_context_snapshot) {
     deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
   } else {
@@ -749,15 +724,11 @@
 
 if (android_64bit_target_cpu) {
   android_assets("webview_secondary_abi_assets") {
-    deps = [
-      ":v8_snapshot_secondary_abi_assets",
-    ]
+    deps = [ ":v8_snapshot_secondary_abi_assets" ]
   }
 
   android_assets("monochrome_webview_secondary_abi_assets") {
-    deps = [
-      "//third_party/icu:icu_assets",
-    ]
+    deps = [ "//third_party/icu:icu_assets" ]
     deps += [ ":v8_snapshot_secondary_abi_assets" ]
   }
 }
@@ -775,17 +746,13 @@
 android_assets("stub_assets") {
   renaming_sources = [ "$root_gen_dir/components/resources/about_credits.html" ]
   renaming_destinations = [ "webview_licenses.notice" ]
-  deps = [
-    "//components/resources:about_credits",
-  ]
+  deps = [ "//components/resources:about_credits" ]
 }
 
 android_resources("resources") {
   resource_dirs = [ "java/res" ]
   custom_package = "org.chromium.android_webview"
-  deps = [
-    ":strings_grd",
-  ]
+  deps = [ ":strings_grd" ]
 }
 
 grit("generate_aw_resources") {
@@ -798,9 +765,7 @@
 
 grit("generate_aw_strings") {
   source = "ui/aw_strings.grd"
-  outputs = [
-    "grit/aw_strings.h",
-  ]
+  outputs = [ "grit/aw_strings.h" ]
   foreach(_locale, locales) {
     outputs += [ "aw_strings_${_locale}.pak" ]
   }
@@ -815,9 +780,7 @@
   # webui/resources has way too many resources. The whitelist is trim this down
   # to a reasonable size
   _whitelist = "ui/grit_resources_whitelist.txt"
-  inputs = [
-    _whitelist,
-  ]
+  inputs = [ _whitelist ]
   grit_flags = [
     "-w",
     rebase_path(_whitelist, root_build_dir),
@@ -838,9 +801,7 @@
 
   # See :generate_webui_resources for an explanation of the whitelist
   _whitelist = "ui/grit_resources_whitelist.txt"
-  inputs = [
-    _whitelist,
-  ]
+  inputs = [ _whitelist ]
   grit_flags = [
     "-w",
     rebase_path(_whitelist, root_build_dir),
@@ -853,9 +814,7 @@
     "grit/mojo_bindings_resources_map.h",
     "mojo_bindings_resources.pak",
   ]
-  deps = [
-    "//mojo/public/js:bindings_lite",
-  ]
+  deps = [ "//mojo/public/js:bindings_lite" ]
 }
 
 grit("generate_components_resources") {
@@ -869,9 +828,7 @@
 
   # See :generate_webui_resources for an explanation of the whitelist
   _whitelist = "ui/grit_resources_whitelist.txt"
-  inputs = [
-    _whitelist,
-  ]
+  inputs = [ _whitelist ]
   _about_credits_file = get_label_info("//components/resources",
                                        "target_gen_dir") + "/about_credits.html"
 
@@ -886,9 +843,7 @@
     "components_resources.pak",
   ]
 
-  deps = [
-    "//components/resources:about_credits",
-  ]
+  deps = [ "//components/resources:about_credits" ]
 }
 
 grit("generate_components_strings") {
@@ -899,9 +854,7 @@
   # strings. This whitelist trims about 50% more than the compile-based
   # whitelist generated by :system_webview_pak_whitelist.
   whitelist = rebase_path("ui/grit_strings_whitelist.txt", root_build_dir)
-  inputs = [
-    "//android_webview/ui/grit_strings_whitelist.txt",
-  ]
+  inputs = [ "//android_webview/ui/grit_strings_whitelist.txt" ]
   grit_flags = [
     "-w",
     whitelist,
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 8203bdb..9857a9f 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -753,6 +753,8 @@
     "system/locale/locale_update_controller_impl.h",
     "system/locale/unified_locale_detailed_view_controller.cc",
     "system/locale/unified_locale_detailed_view_controller.h",
+    "system/machine_learning/user_settings_event_logger.cc",
+    "system/machine_learning/user_settings_event_logger.h",
     "system/message_center/arc_notification_manager_delegate_impl.cc",
     "system/message_center/arc_notification_manager_delegate_impl.h",
     "system/message_center/ash_message_center_lock_screen_controller.cc",
diff --git a/ash/resources/BUILD.gn b/ash/resources/BUILD.gn
index 898b7a78..4679d52 100644
--- a/ash/resources/BUILD.gn
+++ b/ash/resources/BUILD.gn
@@ -75,11 +75,13 @@
   percent = "100"
   sources = [
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak",
     "$root_gen_dir/third_party/blink/public/strings/blink_strings_en-US.pak",
   ]
   deps = [
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//third_party/blink/public:scaled_resources_100_percent",
     "//third_party/blink/public/strings",
   ]
diff --git a/ash/shelf/login_shelf_view.cc b/ash/shelf/login_shelf_view.cc
index c15132c..a5eaf902 100644
--- a/ash/shelf/login_shelf_view.cc
+++ b/ash/shelf/login_shelf_view.cc
@@ -99,13 +99,12 @@
 // Spacing between the button image and label.
 constexpr int kImageLabelSpacingDp = 10;
 
-// The color of the button background.
-constexpr SkColor kButtonBackgroundColor =
-    SkColorSetA(gfx::kGoogleGrey100, 0x19);
-
 // The color of the button text.
 constexpr SkColor kButtonTextColor = gfx::kGoogleGrey100;
 
+// The color of the button text during OOBE.
+constexpr SkColor kButtonTextColorOobe = gfx::kGoogleGrey700;
+
 // The color of the button icon.
 constexpr SkColor kButtonIconColor = SkColorSetRGB(0xEB, 0xEA, 0xED);
 
@@ -195,7 +194,7 @@
   void PaintButtonContents(gfx::Canvas* canvas) override {
     cc::PaintFlags flags;
     flags.setAntiAlias(true);
-    flags.setColor(kButtonBackgroundColor);
+    flags.setColor(ShelfConfig::Get()->GetShelfControlButtonColor());
     flags.setStyle(cc::PaintFlags::kFill_Style);
     canvas->DrawPath(GetButtonHighlightPath(this), flags);
   }
@@ -214,15 +213,17 @@
   }
 
   void PaintDarkColors() {
-    SetEnabledTextColors(gfx::kGoogleGrey600);
+    SetEnabledTextColors(kButtonTextColorOobe);
     SetImage(views::Button::STATE_NORMAL,
-             gfx::CreateVectorIcon(icon_, gfx::kGoogleGrey600));
+             gfx::CreateVectorIcon(icon_, kButtonTextColorOobe));
+    SchedulePaint();
   }
 
   void PaintLightColors() {
     SetEnabledTextColors(kButtonTextColor);
     SetImage(views::Button::STATE_NORMAL,
              gfx::CreateVectorIcon(icon_, kButtonTextColor));
+    SchedulePaint();
   }
 
  private:
@@ -321,7 +322,7 @@
   void PaintButtonContents(gfx::Canvas* canvas) override {
     cc::PaintFlags flags;
     flags.setAntiAlias(true);
-    flags.setColor(kButtonBackgroundColor);
+    flags.setColor(ShelfConfig::Get()->GetShelfControlButtonColor());
     flags.setStyle(cc::PaintFlags::kFill_Style);
     canvas->DrawPath(GetButtonHighlightPath(this), flags);
   }
@@ -340,15 +341,17 @@
   }
 
   void PaintDarkColors() {
-    SetEnabledTextColors(gfx::kGoogleGrey600);
+    SetEnabledTextColors(kButtonTextColorOobe);
     SetImage(views::Button::STATE_NORMAL,
-             CreateVectorIcon(kShelfAppsButtonIcon, gfx::kGoogleGrey600));
+             CreateVectorIcon(kShelfAppsButtonIcon, kButtonTextColorOobe));
+    SchedulePaint();
   }
 
   void PaintLightColors() {
     SetEnabledTextColors(kButtonTextColor);
     SetImage(views::Button::STATE_NORMAL,
              CreateVectorIcon(kShelfAppsButtonIcon, kButtonIconColor));
+    SchedulePaint();
   }
 
   // views::ButtonListener:
diff --git a/ash/shelf/shelf_config.cc b/ash/shelf/shelf_config.cc
index ff389f89..9c6b9ed 100644
--- a/ash/shelf/shelf_config.cc
+++ b/ash/shelf/shelf_config.cc
@@ -254,10 +254,14 @@
 }
 
 SkColor ShelfConfig::GetShelfControlButtonColor() const {
+  const session_manager::SessionState session_state =
+      Shell::Get()->session_controller()->GetSessionState();
+
   if (chromeos::switches::ShouldShowShelfHotseat() && IsTabletMode() &&
-      Shell::Get()->session_controller()->GetSessionState() ==
-          session_manager::SessionState::ACTIVE) {
+      session_state == session_manager::SessionState::ACTIVE) {
     return is_in_app() ? SK_ColorTRANSPARENT : GetDefaultShelfColor();
+  } else if (session_state == session_manager::SessionState::OOBE) {
+    return SkColorSetA(SK_ColorBLACK, 16);  // 6% opacity
   }
   return shelf_control_permanent_highlight_background_;
 }
diff --git a/ash/shell.cc b/ash/shell.cc
index b936d71..68a4ceb5 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -97,6 +97,7 @@
 #include "ash/system/keyboard_brightness/keyboard_brightness_controller.h"
 #include "ash/system/keyboard_brightness_control_delegate.h"
 #include "ash/system/locale/locale_update_controller_impl.h"
+#include "ash/system/machine_learning/user_settings_event_logger.h"
 #include "ash/system/message_center/message_center_controller.h"
 #include "ash/system/model/system_tray_model.h"
 #include "ash/system/model/virtual_keyboard_model.h"
@@ -665,6 +666,10 @@
   tablet_mode_controller_->Shutdown();
   tablet_mode_controller_.reset();
 
+  // Destroy UserSettingsEventLogger before |system_tray_model_| and
+  // |video_detector_| which it observes.
+  ml::UserSettingsEventLogger::DeleteInstance();
+
   toast_manager_.reset();
 
   tray_bluetooth_helper_.reset();
@@ -1151,6 +1156,10 @@
   snap_controller_ = std::make_unique<SnapControllerImpl>();
   key_accessibility_enabler_ = std::make_unique<KeyAccessibilityEnabler>();
 
+  // Create UserSettingsEventLogger after |system_tray_model_| and
+  // |video_detector_| which it observes.
+  ml::UserSettingsEventLogger::CreateInstance();
+
   // The compositor thread and main message loop have to be running in
   // order to create mirror window. Run it after the main message loop
   // is started.
@@ -1176,7 +1185,6 @@
 }
 
 void Shell::InitializeDisplayManager() {
-
   display_manager_->InitConfigurator(
       ui::OzonePlatform::GetInstance()->CreateNativeDisplayDelegate());
   display_configuration_controller_ =
diff --git a/ash/system/machine_learning/OWNERS b/ash/system/machine_learning/OWNERS
index 7c435ba..a7df7fe 100644
--- a/ash/system/machine_learning/OWNERS
+++ b/ash/system/machine_learning/OWNERS
@@ -1,2 +1,3 @@
 jiameng@chromium.org
 wrong@chromium.org
+tby@chromium.org
diff --git a/ash/system/machine_learning/user_settings_event_logger.cc b/ash/system/machine_learning/user_settings_event_logger.cc
new file mode 100644
index 0000000..777458c
--- /dev/null
+++ b/ash/system/machine_learning/user_settings_event_logger.cc
@@ -0,0 +1,41 @@
+// 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 "ash/system/machine_learning/user_settings_event_logger.h"
+
+#include "base/logging.h"
+
+namespace ash {
+namespace ml {
+
+// static
+UserSettingsEventLogger* UserSettingsEventLogger::instance_ = nullptr;
+
+// static
+void UserSettingsEventLogger::CreateInstance() {
+  DCHECK(!instance_);
+  instance_ = new UserSettingsEventLogger();
+}
+
+// static
+void UserSettingsEventLogger::DeleteInstance() {
+  delete instance_;
+  instance_ = nullptr;
+}
+
+// static
+UserSettingsEventLogger* UserSettingsEventLogger::Get() {
+  return instance_;
+}
+
+void UserSettingsEventLogger::LogUkmEvent() {
+  // TODO(crbug/1014839): Populate a settings event and log it to UKM.
+}
+
+UserSettingsEventLogger::UserSettingsEventLogger() = default;
+
+UserSettingsEventLogger::~UserSettingsEventLogger() = default;
+
+}  // namespace ml
+}  // namespace ash
diff --git a/ash/system/machine_learning/user_settings_event_logger.h b/ash/system/machine_learning/user_settings_event_logger.h
new file mode 100644
index 0000000..23c3823
--- /dev/null
+++ b/ash/system/machine_learning/user_settings_event_logger.h
@@ -0,0 +1,38 @@
+// 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.
+
+#ifndef ASH_SYSTEM_MACHINE_LEARNING_USER_SETTINGS_EVENT_LOGGER_H_
+#define ASH_SYSTEM_MACHINE_LEARNING_USER_SETTINGS_EVENT_LOGGER_H_
+
+#include "ash/system/machine_learning/user_settings_event.pb.h"
+
+namespace ash {
+namespace ml {
+
+// Handler for logging user-initiated settings events to UKM.
+class UserSettingsEventLogger {
+ public:
+  UserSettingsEventLogger(const UserSettingsEventLogger&) = delete;
+  UserSettingsEventLogger& operator=(const UserSettingsEventLogger&) = delete;
+
+  // Creates an instance of the logger. Only one instance of the logger can
+  // exist in the current process.
+  static void CreateInstance();
+  static void DeleteInstance();
+  static UserSettingsEventLogger* Get();
+
+  // Logs a settings change event to UKM.
+  void LogUkmEvent();
+
+ private:
+  UserSettingsEventLogger();
+  ~UserSettingsEventLogger();
+
+  static UserSettingsEventLogger* instance_;
+};
+
+}  // namespace ml
+}  // namespace ash
+
+#endif  // ASH_SYSTEM_MACHINE_LEARNING_USER_SETTINGS_EVENT_LOGGER_H_
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
index 25ec551..d1c9093 100644
--- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h
@@ -146,6 +146,7 @@
 class DesktopCaptureDevice;
 class InProcessUtilityThread;
 class NestedMessagePumpAndroid;
+class RenderProcessHostImpl;
 class RenderWidgetHostViewMac;
 class RTCVideoDecoder;
 class SandboxHostLinux;
@@ -368,6 +369,7 @@
   friend class web::WebSubThread;
   friend class StackSamplingProfiler;
   friend class weblayer::ProfileImpl;
+  friend class content::RenderProcessHostImpl;
 
   ScopedAllowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF;
   ~ScopedAllowBlocking() EMPTY_BODY_IF_DCHECK_IS_OFF;
diff --git a/build/.gitignore b/build/.gitignore
index c23f5b2..6c6d8f8 100644
--- a/build/.gitignore
+++ b/build/.gitignore
@@ -21,5 +21,6 @@
 /linux/ubuntu_*-sysroot/
 /ios_files
 /mac_files
+/xcode_links
 
 !/util/LASTCHANGE.dummy
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
index 0bbdc72..b848861 100644
--- a/build/config/compiler/compiler.gni
+++ b/build/config/compiler/compiler.gni
@@ -210,7 +210,7 @@
 # official builders.
 strip_absolute_paths_from_debug_symbols_default =
     is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
-    (is_mac && !enable_dsyms)
+    (is_mac && !enable_dsyms) || ios_use_goma_rbe
 
 # If the platform uses stripped absolute paths by default, then we don't expose
 # it as a configuration option. If this is causing problems, please file a bug.
diff --git a/build/config/ios/ios_sdk.gni b/build/config/ios/ios_sdk.gni
index 27933ba..bc86bb67 100644
--- a/build/config/ios/ios_sdk.gni
+++ b/build/config/ios/ios_sdk.gni
@@ -54,8 +54,8 @@
   # using the syntax --args='additional_target_cpus=["arm"] target_cpu="arm64"'.
   additional_target_cpus = []
 
-  # TODO(crbug.com/1015730): true if use_goma = true.
-  ios_enable_relative_sdk_path = false
+  # TODO(crbug.com/1015730): remove this flag because ios_use_goma_rbe covers.
+  ios_enable_relative_sdk_path = ios_use_goma_rbe
 }
 
 # Official builds may not use goma.
@@ -105,6 +105,9 @@
       ios_sdk_developer_dir,
     ]
   }
+  if (ios_use_goma_rbe) {
+    ios_sdk_info_args += [ "--create_symlink_under_src" ]
+  }
   script_name = "//build/config/mac/sdk_info.py"
   _ios_sdk_result = exec_script(script_name, ios_sdk_info_args, "scope")
   if (ios_enable_relative_sdk_path) {
diff --git a/build/config/mac/sdk_info.py b/build/config/mac/sdk_info.py
index 5f845c22..4a64be6 100644
--- a/build/config/mac/sdk_info.py
+++ b/build/config/mac/sdk_info.py
@@ -12,6 +12,11 @@
 import subprocess
 import sys
 
+# src/build/xcode_links
+XCODE_LINK_DIR = os.path.join(
+    os.path.dirname(os.path.dirname(os.path.dirname(
+        os.path.realpath(__file__)))), "xcode_links")
+
 # This script prints information about the build system, the operating
 # system and the iOS or Mac SDK (depending on the platform "iphonesimulator",
 # "iphoneos" or "macosx" generally).
@@ -83,6 +88,20 @@
     settings['sdk_build'] = settings['sdk_version']
 
 
+def CreateXcodeSymlinkUnderChromiumSource(src):
+  """Create symlink to Xcode directory under Chromium source."""
+
+  if not os.path.isdir(XCODE_LINK_DIR):
+    os.makedirs(XCODE_LINK_DIR)
+
+  dst = os.path.join(XCODE_LINK_DIR, os.path.basename(src))
+  # Update the symlink if exist.
+  if os.path.islink(dst):
+    os.unlink(dst)
+  os.symlink(src, dst)
+  return dst
+
+
 if __name__ == '__main__':
   doctest.testmod()
 
@@ -91,6 +110,12 @@
   parser.add_argument("--get_sdk_info",
                     action="store_true", dest="get_sdk_info", default=False,
                     help="Returns SDK info in addition to xcode/machine info.")
+  parser.add_argument("--create_symlink_under_src",
+                      action="store_true", dest="create_symlink_under_src",
+                      default=False,
+                      help="Create symlink of SDK under Chromium source "
+                      "and returns the symlinked paths as SDK info instead "
+                      "of the original location.")
   args, unknownargs = parser.parse_known_args()
   if args.developer_dir:
     os.environ['DEVELOPER_DIR'] = args.developer_dir
@@ -109,6 +134,8 @@
 
   for key in sorted(settings):
     value = settings[key]
+    if args.create_symlink_under_src and '_path' in key:
+      value = CreateXcodeSymlinkUnderChromiumSource(value)
     if isinstance(value, str):
       value = '"%s"' % value
     print('%s=%s' % (key, value))
diff --git a/build/toolchain/goma.gni b/build/toolchain/goma.gni
index ba54c4e..baf20597 100644
--- a/build/toolchain/goma.gni
+++ b/build/toolchain/goma.gni
@@ -28,5 +28,11 @@
   }
 }
 
+declare_args() {
+  # Auto-configure for Goma RBE backend.
+  # TODO(crbug.com/1015730): true if use_goma = true in the future.
+  ios_use_goma_rbe = false
+}
+
 assert(!is_win || !use_goma || is_clang,
        "cl.exe does not work on goma, use clang")
diff --git a/chrome/VERSION b/chrome/VERSION
index e389e72..062b5660 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=81
 MINOR=0
-BUILD=4032
+BUILD=4034
 PATCH=0
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index ee8c4b82..f4a77dd9 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1846,7 +1846,6 @@
   "java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java",
   "java/src/org/chromium/chrome/browser/webapps/WebappScopePolicy.java",
   "java/src/org/chromium/chrome/browser/webapps/WebappSplashDelegate.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java",
   "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenCoordinator.java",
   "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenDialogView.java",
   "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenInstaller.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
index e4e300b7..f551d9a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -782,23 +782,26 @@
         IntentHeadersRecorder.HeaderClassifier headerClassifier = shouldBlockNonSafelistedHeaders
                 ? new IntentHeadersRecorder.HeaderClassifier()
                 : null;
+        boolean fromChrome = IntentHandler.wasIntentSenderChrome(intent);
         boolean firstParty = shouldLogHeaders
-                ? IntentHandler.notSecureIsIntentChromeOrFirstParty(intent)
+                ? (IntentHandler.notSecureIsIntentChromeOrFirstParty(intent) && !fromChrome)
                 : false;
 
         for (String key : bundleExtraHeaders.keySet()) {
             String value = bundleExtraHeaders.getString(key);
 
+            if (!HttpUtil.isAllowedHeader(key, value)) continue;
+
             // Strip the custom header that can only be added by ourselves.
             if ("x-chrome-intent-type".equals(key.toLowerCase(Locale.US))) continue;
 
-            if (!HttpUtil.isAllowedHeader(key, value)) continue;
+            if (!fromChrome) {
+                if (shouldLogHeaders) recorder.recordHeader(key, value, firstParty);
 
-            if (shouldLogHeaders) recorder.recordHeader(key, value, firstParty);
-
-            if (shouldBlockNonSafelistedHeaders
-                    && !headerClassifier.isCorsSafelistedHeader(key, value, firstParty)) {
-                continue;
+                if (shouldBlockNonSafelistedHeaders
+                        && !headerClassifier.isCorsSafelistedHeader(key, value, firstParty)) {
+                    continue;
+                }
             }
 
             if (extraHeaders.length() != 0) extraHeaders.append("\n");
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
index 31d145c..4be8b24ab 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
@@ -181,11 +181,6 @@
         }
 
         @Override
-        public boolean isOnCustomTab() {
-            return mActivityType == ActivityType.CUSTOM_TAB;
-        }
-
-        @Override
         public int applyWebappScopePolicyForUrl(String url) {
             int scopePolicy = super.applyWebappScopePolicyForUrl(url);
             if (scopePolicy != WebappScopePolicy.NavigationDirective.NORMAL_BEHAVIOR) {
@@ -227,7 +222,7 @@
 
         @Override
         public boolean shouldResumeRequestsForCreatedWindow() {
-            return !isWebappOrWebApk(mActivityType);
+            return true;
         }
 
         @Override
@@ -455,12 +450,7 @@
     @Override
     public ExternalNavigationHandler createExternalNavigationHandler(Tab tab) {
         if (mIsOpenedByChrome) {
-            mNavigationDelegate = new ExternalNavigationDelegateImpl(tab) {
-                @Override
-                public boolean isOnCustomTab() {
-                    return mActivityType == ActivityType.CUSTOM_TAB;
-                }
-            };
+            mNavigationDelegate = new ExternalNavigationDelegateImpl(tab);
         } else {
             mNavigationDelegate = new CustomTabNavigationDelegate(
                     tab, mExternalAuthUtils, mExternalIntentsPolicyProvider, mActivityType);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
index d0fb9fc..05a0b35e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
@@ -70,13 +70,10 @@
 public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvider {
     private static final String TAG = "CustomTabIntentData";
 
-    @IntDef({LaunchSourceType.OTHER, LaunchSourceType.WEBAPP, LaunchSourceType.WEBAPK,
-            LaunchSourceType.MEDIA_LAUNCHER_ACTIVITY})
+    @IntDef({LaunchSourceType.OTHER, LaunchSourceType.MEDIA_LAUNCHER_ACTIVITY})
     @Retention(RetentionPolicy.SOURCE)
     public @interface LaunchSourceType {
         int OTHER = -1;
-        int WEBAPP = 0;
-        int WEBAPK = 1;
         int MEDIA_LAUNCHER_ACTIVITY = 3;
     }
 
@@ -129,8 +126,7 @@
             "org.chromium.chrome.browser.customtabs.EXTRA_IS_OPENED_BY_WEBAPK";
 
     /**
-     * Indicates the source where the Custom Tab is launched. This is only used for
-     * WebApp/WebAPK/TrustedWebActivity. The value is defined as
+     * Indicates the source where the Custom Tab is launched. The value is defined as
      * {@link LaunchSourceType}.
      */
     public static final String EXTRA_BROWSER_LAUNCH_SOURCE =
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java
index ae4d0f6..70f5ffa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java
@@ -7,7 +7,6 @@
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.Bundle;
-import android.provider.Browser;
 import android.text.TextUtils;
 import android.view.Window;
 
@@ -28,8 +27,6 @@
 import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider;
 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
 import org.chromium.chrome.browser.customtabs.CustomTabDelegateFactory;
-import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
-import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider.LaunchSourceType;
 import org.chromium.chrome.browser.customtabs.CustomTabNavigationEventObserver;
 import org.chromium.chrome.browser.customtabs.CustomTabObserver;
 import org.chromium.chrome.browser.customtabs.CustomTabTabPersistencePolicy;
@@ -373,15 +370,7 @@
     private Tab createTab() {
         WebContents webContents = takeWebContents();
         Tab tab = mTabFactory.createTab(webContents, mCustomTabDelegateFactory.get());
-        int launchSource = mIntent.getIntExtra(
-                CustomTabIntentDataProvider.EXTRA_BROWSER_LAUNCH_SOURCE, LaunchSourceType.OTHER);
-        if (launchSource == LaunchSourceType.WEBAPK) {
-            String webapkPackageName = mIntent.getStringExtra(Browser.EXTRA_APPLICATION_ID);
-            TabAssociatedApp.from(tab).setAppId(webapkPackageName);
-        } else {
-            TabAssociatedApp.from(tab).setAppId(
-                    mConnection.getClientPackageNameForSession(mSession));
-        }
+        TabAssociatedApp.from(tab).setAppId(mConnection.getClientPackageNameForSession(mSession));
 
         if (mIntentDataProvider.shouldEnableEmbeddedMediaExperience()) {
             if (tab.getWebContents() != null) tab.getWebContents().notifyRendererPreferenceUpdate();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java
index 2e60e7918..7e062b6f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java
@@ -24,8 +24,6 @@
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl;
 import org.chromium.chrome.browser.util.IntentUtils;
-import org.chromium.chrome.browser.webapps.WebappActivity;
-import org.chromium.chrome.browser.webapps.WebappTabDelegate;
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.ui.base.ActivityWindowAndroid;
 
@@ -88,17 +86,8 @@
     }
 
     private ChromeTabCreator createTabCreator(boolean incognito) {
-        if (mIntentDataProvider.isWebappOrWebApkActivity()) {
-            return new WebappTabDelegate((WebappActivity) mActivity, mActivityWindowAndroid.get(),
-                    mStartupTabPreloader, mCustomTabDelegateFactory::get, incognito);
-        }
         return new ChromeTabCreator(mActivity, mActivityWindowAndroid.get(), mStartupTabPreloader,
-                mCustomTabDelegateFactory::get, incognito) {
-            @Override
-            public TabDelegateFactory createDefaultTabDelegateFactory() {
-                return mCustomTabDelegateFactory.get();
-            }
-        };
+                mCustomTabDelegateFactory::get, incognito);
     }
 
     /** Creates a new tab for a Custom Tab activity */
@@ -106,12 +95,8 @@
         Intent intent = mIntentDataProvider.getIntent();
         int assignedTabId =
                 IntentUtils.safeGetIntExtra(intent, IntentHandler.EXTRA_TAB_ID, Tab.INVALID_TAB_ID);
-        int parentTabId = IntentUtils.safeGetIntExtra(
-                intent, IntentHandler.EXTRA_PARENT_TAB_ID, Tab.INVALID_TAB_ID);
-        Tab parent = mTabModelSelector != null ? mTabModelSelector.getTabById(parentTabId) : null;
         return new TabBuilder()
                 .setId(assignedTabId)
-                .setParent(parent)
                 .setIncognito(mIntentDataProvider.isIncognito())
                 .setWindow(mActivityWindowAndroid.get())
                 .setLaunchType(TabLaunchType.FROM_EXTERNAL_APP)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/TabObserverRegistrar.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/TabObserverRegistrar.java
index 37b3278..74fc2f8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/TabObserverRegistrar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/TabObserverRegistrar.java
@@ -6,6 +6,7 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.base.ObserverList;
 import org.chromium.chrome.browser.dependency_injection.ActivityScope;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.Destroyable;
@@ -16,6 +17,7 @@
 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver;
 
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -31,7 +33,7 @@
     private final Set<TabObserver> mTabObservers = new HashSet<>();
 
     /** Observers for active tab. */
-    private final Set<CustomTabTabObserver> mActivityTabObservers = new HashSet<>();
+    private final ObserverList<CustomTabTabObserver> mActivityTabObservers = new ObserverList<>();
 
     /**
      * Caches the {@link CustomTabActivityTabProvider}'s active tab so that TabObservers can be
@@ -90,7 +92,7 @@
      * Differs from {@link #registerTabObserver()} which observes all newly created tabs.
      */
     public void registerActivityTabObserver(CustomTabTabObserver observer) {
-        mActivityTabObservers.add(observer);
+        mActivityTabObservers.addObserver(observer);
         Tab activeTab = mTabProvider.getTab();
         if (activeTab != null) {
             activeTab.addObserver(observer);
@@ -99,7 +101,7 @@
     }
 
     public void unregisterActivityTabObserver(CustomTabTabObserver observer) {
-        mActivityTabObservers.remove(observer);
+        mActivityTabObservers.removeObserver(observer);
         Tab activeTab = mTabProvider.getTab();
         if (activeTab != null) {
             activeTab.removeObserver(observer);
@@ -130,7 +132,7 @@
     @Override
     public void tabRemoved(Tab tab) {
         removePageLoadMetricsObservers();
-        removeTabObservers(tab, mTabObservers);
+        removeTabObservers(tab, mTabObservers.iterator());
     }
 
     /**
@@ -139,7 +141,7 @@
      */
     public void addObserversForTab(Tab tab) {
         addPageLoadMetricsObservers();
-        addTabObservers(tab, mTabObservers);
+        addTabObservers(tab, mTabObservers.iterator());
     }
 
     private void addPageLoadMetricsObservers() {
@@ -159,23 +161,23 @@
      */
     private void onTabProviderTabUpdated() {
         if (mTabProviderTab != null) {
-            removeTabObservers(mTabProviderTab, mActivityTabObservers);
+            removeTabObservers(mTabProviderTab, mActivityTabObservers.iterator());
         }
         mTabProviderTab = mTabProvider.getTab();
         if (mTabProviderTab != null) {
-            addTabObservers(mTabProviderTab, mActivityTabObservers);
+            addTabObservers(mTabProviderTab, mActivityTabObservers.iterator());
         }
     }
 
-    private void addTabObservers(Tab tab, Set<? extends TabObserver> tabObservers) {
-        for (TabObserver observer : tabObservers) {
-            tab.addObserver(observer);
+    private void addTabObservers(Tab tab, Iterator<? extends TabObserver> tabObserversIterator) {
+        while (tabObserversIterator.hasNext()) {
+            tab.addObserver(tabObserversIterator.next());
         }
     }
 
-    private void removeTabObservers(Tab tab, Set<? extends TabObserver> tabObservers) {
-        for (TabObserver observer : tabObservers) {
-            tab.removeObserver(observer);
+    private void removeTabObservers(Tab tab, Iterator<? extends TabObserver> tabObserversIterator) {
+        while (tabObserversIterator.hasNext()) {
+            tab.removeObserver(tabObserversIterator.next());
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java
index 67f2ddd..7499b473 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java
@@ -162,11 +162,4 @@
      * @return Whether the package is a valid WebAPK package.
      */
     boolean isValidWebApk(String packageName);
-
-    /**
-     * @return Whether the current tab is custom tab or not.
-     */
-    default boolean isOnCustomTab() {
-        return false;
-    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
index fb4f6a7..6d18ddd9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
@@ -4,8 +4,6 @@
 
 package org.chromium.chrome.browser.externalnav;
 
-import static org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider.EXTRA_BROWSER_LAUNCH_SOURCE;
-
 import android.content.ActivityNotFoundException;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -30,7 +28,6 @@
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.autofill_assistant.AutofillAssistantFacade;
-import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider.LaunchSourceType;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.instantapps.InstantAppsHandler;
 import org.chromium.chrome.browser.tab.Tab;
@@ -241,8 +238,7 @@
             Intent intent = Intent.parseUri(browserFallbackUrl, Intent.URI_INTENT_SCHEME);
             sanitizeQueryIntentActivitiesIntent(intent);
             List<ResolveInfo> resolvingInfos = mDelegate.queryIntentActivities(intent);
-            if (!shouldStayInWebApkCCT(params, resolvingInfos)
-                    && !isAlreadyInTargetWebApk(resolvingInfos, params)
+            if (!isAlreadyInTargetWebApk(resolvingInfos, params)
                     && launchWebApkIfSoleIntentHandler(resolvingInfos, intent)) {
                 return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
             }
@@ -920,9 +916,6 @@
             return OverrideUrlLoadingResult.NO_OVERRIDE;
         }
 
-        if (shouldStayInWebApkCCT(params, resolvingInfos)) {
-            return OverrideUrlLoadingResult.NO_OVERRIDE;
-        }
         if (isAlreadyInTargetWebApk(resolvingInfos, params)) {
             return OverrideUrlLoadingResult.NO_OVERRIDE;
         } else if (launchWebApkIfSoleIntentHandler(resolvingInfos, targetIntent)) {
@@ -1080,34 +1073,6 @@
         return null;
     }
 
-    // Returns whether a navigation in a CustomTabActivity opened from a WebAPK should stay
-    // within the CustomTabActivity. Returns false if the navigation does not occur within a
-    // CustomTabActivity or the CustomTabActivity was not opened from a WebAPK/TWA.
-    private boolean shouldStayInWebApkCCT(
-            ExternalNavigationParams params, List<ResolveInfo> handlers) {
-        Tab tab = params.getTab();
-        if (tab == null || !mDelegate.isOnCustomTab() || ((TabImpl) tab).getActivity() == null) {
-            return false;
-        }
-
-        int launchSource = IntentUtils.safeGetIntExtra(((TabImpl) tab).getActivity().getIntent(),
-                EXTRA_BROWSER_LAUNCH_SOURCE, LaunchSourceType.OTHER);
-        if (launchSource != LaunchSourceType.WEBAPK) {
-            return false;
-        }
-
-        String appId = IntentUtils.safeGetStringExtra(
-                ((TabImpl) tab).getActivity().getIntent(), Browser.EXTRA_APPLICATION_ID);
-        if (appId == null) return false;
-
-        boolean webApkHasSpecializedHandler =
-                ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(handlers, appId)
-                        .isEmpty();
-        if (webApkHasSpecializedHandler) return false;
-        if (DEBUG) Log.i(TAG, "Staying in WebApk CCT.");
-        return true;
-    }
-
     /**
      * Launches WebAPK if the WebAPK is the sole non-browser handler for the given intent.
      * @return Whether a WebAPK was launched.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java
index 43cc7a5..7547245 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/SplashController.java
@@ -25,11 +25,11 @@
 import org.chromium.chrome.browser.browserservices.trustedwebactivityui.TwaFinishHandler;
 import org.chromium.chrome.browser.compositor.CompositorView;
 import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar;
+import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar.CustomTabTabObserver;
 import org.chromium.chrome.browser.flags.FeatureUtilities;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.Destroyable;
 import org.chromium.chrome.browser.lifecycle.InflationObserver;
-import org.chromium.chrome.browser.tab.EmptyTabObserver;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabImpl;
 
@@ -40,7 +40,8 @@
 import javax.inject.Inject;
 
 /** Shows and hides splash screen for Webapps, WebAPKs and TWAs. */
-public class SplashController extends EmptyTabObserver implements InflationObserver, Destroyable {
+public class SplashController
+        extends CustomTabTabObserver implements InflationObserver, Destroyable {
     private static class SingleShotOnDrawListener implements ViewTreeObserver.OnDrawListener {
         private final View mView;
         private final Runnable mAction;
@@ -135,7 +136,7 @@
         mFinishHandler = finishHandler;
 
         mLifecycleDispatcher.register(this);
-        mTabObserverRegistrar.registerTabObserver(this);
+        mTabObserverRegistrar.registerActivityTabObserver(this);
     }
 
     public void setConfig(SplashDelegate delegate, boolean isWindowInitiallyTranslucent,
@@ -231,7 +232,7 @@
             mSplashView = mDelegate.buildSplashView();
         }
         if (mSplashView == null) {
-            mTabObserverRegistrar.unregisterTabObserver(this);
+            mTabObserverRegistrar.unregisterActivityTabObserver(this);
             mLifecycleDispatcher.unregister(this);
             if (mTranslucencyRemovalStrategy != TranslucencyRemoval.NONE) {
                 removeTranslucency();
@@ -336,8 +337,7 @@
         if (mWasSplashHideAnimationStarted) return;
 
         mWasSplashHideAnimationStarted = true;
-        mTabObserverRegistrar.unregisterTabObserver(this);
-        tab.removeObserver(this);
+        mTabObserverRegistrar.unregisterActivityTabObserver(this);
 
         recordTraceEventsStartedHidingSplash();
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
index d41888f3..97260d6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
@@ -17,6 +17,7 @@
 import android.text.TextUtils;
 import android.view.ViewGroup;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
@@ -513,10 +514,6 @@
                     boolean isNavigationInScope = WebappScopePolicy.isUrlInScope(
                             scopePolicy(), mWebappInfo, navigation.getUrl());
                     mBrowserControlsVisibilityManager.updateIsInTwaMode(isNavigationInScope);
-                    if (!isNavigationInScope) {
-                        // Briefly show the toolbar for off-scope navigations.
-                        mToolbarCoordinator.showToolbarTemporarily();
-                    }
                     if (mWebappInfo.isForWebApk()) {
                         boolean isChildTab = (tab.getParentId() != Tab.INVALID_TAB_ID);
                         WebApkUma.recordNavigation(isChildTab, isNavigationInScope);
@@ -552,6 +549,13 @@
                     }
                 }, MS_BEFORE_NAVIGATING_BACK_FROM_INTERSTITIAL);
             }
+
+            @Override
+            public void onObservingDifferentTab(@NonNull Tab tab) {
+                boolean isNavigationInScope =
+                        WebappScopePolicy.isUrlInScope(scopePolicy(), mWebappInfo, tab.getUrl());
+                mBrowserControlsVisibilityManager.updateIsInTwaMode(isNavigationInScope);
+            }
         };
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappCustomTabTimeSpentLogger.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappCustomTabTimeSpentLogger.java
index d096a51..d619c96 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappCustomTabTimeSpentLogger.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappCustomTabTimeSpentLogger.java
@@ -42,12 +42,6 @@
         String umaSuffix;
         // TODO(peconn): Combine this with TrustedWebActivityOpenTimeRecorder.
         switch (mActivityType) {
-            case LaunchSourceType.WEBAPP:
-                umaSuffix = ".Webapp";
-                break;
-            case LaunchSourceType.WEBAPK:
-                umaSuffix = ".WebApk";
-                break;
             case LaunchSourceType.MEDIA_LAUNCHER_ACTIVITY:
                 umaSuffix = ".MediaLauncherActivity";
                 break;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java
deleted file mode 100644
index cf381e8..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-package org.chromium.chrome.browser.webapps;
-
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.net.Uri;
-import android.provider.Browser;
-
-import androidx.annotation.Nullable;
-import androidx.browser.customtabs.CustomTabsIntent;
-
-import org.chromium.base.ContextUtils;
-import org.chromium.base.Log;
-import org.chromium.base.PackageManagerUtils;
-import org.chromium.base.StrictModeContext;
-import org.chromium.base.supplier.Supplier;
-import org.chromium.chrome.browser.IntentHandler;
-import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
-import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider.LaunchSourceType;
-import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
-import org.chromium.chrome.browser.init.StartupTabPreloader;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.tab.TabDelegateFactory;
-import org.chromium.chrome.browser.tab.TabIdManager;
-import org.chromium.chrome.browser.tab.TabLaunchType;
-import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
-import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
-import org.chromium.chrome.browser.tabmodel.document.AsyncTabCreationParams;
-import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
-import org.chromium.content_public.browser.LoadUrlParams;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.ui.base.WindowAndroid;
-
-import java.net.URISyntaxException;
-import java.util.List;
-
-/**
- * Asynchronously creates Tabs for navigation originating from an installed PWA.
- *
- * This is the same as the parent class with exception of checking for a specialized native handlers
- * first, and if none are found opening a Custom Tab instead of creating a new tab in Chrome.
- */
-public class WebappTabDelegate extends ChromeTabCreator {
-    private static final String TAG = "WebappTabDelegate";
-    private String mApkPackageName;
-    private @LaunchSourceType int mLaunchSourceType;
-    private final TabDelegate mTabDelegate;
-
-    public WebappTabDelegate(WebappActivity activity, WindowAndroid nativeWindow,
-            StartupTabPreloader startupTabPreloader,
-            Supplier<TabDelegateFactory> tabDelegateFactory, boolean incognito) {
-        super(activity, nativeWindow, startupTabPreloader, tabDelegateFactory, incognito);
-        WebappInfo webappInfo = activity.getWebappInfo();
-        mApkPackageName = webappInfo.webApkPackageName();
-        mLaunchSourceType =
-                webappInfo.isForWebApk() ? LaunchSourceType.WEBAPK : LaunchSourceType.WEBAPP;
-
-        mTabDelegate = new TabDelegate(incognito) {
-            @Override
-            public void createNewTab(
-                    AsyncTabCreationParams asyncParams, @TabLaunchType int type, int parentId) {
-                String url = asyncParams.getLoadUrlParams().getUrl();
-                if (maybeStartExternalActivity(url)) return;
-
-                int assignedTabId = TabIdManager.getInstance().generateValidId(Tab.INVALID_TAB_ID);
-                AsyncTabParamsManager.add(assignedTabId, asyncParams);
-
-                Intent intent = new CustomTabsIntent.Builder().setShowTitle(true).build().intent;
-                intent.setData(Uri.parse(url));
-                intent.putExtra(
-                        CustomTabIntentDataProvider.EXTRA_SEND_TO_EXTERNAL_DEFAULT_HANDLER, true);
-                intent.putExtra(CustomTabIntentDataProvider.EXTRA_IS_OPENED_BY_CHROME, true);
-                intent.putExtra(CustomTabIntentDataProvider.EXTRA_IS_OPENED_BY_WEBAPK, true);
-                intent.putExtra(
-                        CustomTabIntentDataProvider.EXTRA_BROWSER_LAUNCH_SOURCE, mLaunchSourceType);
-                intent.putExtra(Browser.EXTRA_APPLICATION_ID, mApkPackageName);
-                addAsyncTabExtras(
-                        asyncParams, parentId, false /* isChromeUI */, assignedTabId, intent);
-
-                IntentHandler.startActivityForTrustedIntent(intent);
-            }
-        };
-    }
-
-    @Override
-    public boolean createsTabsAsynchronously() {
-        return mTabDelegate.createsTabsAsynchronously();
-    }
-
-    @Override
-    @Nullable
-    public Tab createNewTab(LoadUrlParams loadUrlParams, @TabLaunchType int type, Tab parent) {
-        if (type != TabLaunchType.FROM_RESTORE) {
-            return mTabDelegate.createNewTab(loadUrlParams, type, parent);
-        }
-        return super.createNewTab(loadUrlParams, type, parent);
-    }
-
-    @Override
-    @Nullable
-    public Tab launchUrl(String url, @TabLaunchType int type) {
-        if (type != TabLaunchType.FROM_RESTORE) {
-            return mTabDelegate.launchUrl(url, type);
-        }
-        return super.launchUrl(url, type);
-    }
-
-    @Override
-    public boolean createTabWithWebContents(
-            @Nullable Tab parent, WebContents webContents, @TabLaunchType int type, String url) {
-        if (type != TabLaunchType.FROM_RESTORE) {
-            return mTabDelegate.createTabWithWebContents(parent, webContents, type, url);
-        }
-        return super.createTabWithWebContents(parent, webContents, type, url);
-    }
-
-    private boolean maybeStartExternalActivity(String url) {
-        Intent intent;
-        try {
-            intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
-        } catch (URISyntaxException ex) {
-            Log.w(TAG, "Bad URI %s", url, ex);
-            return false;
-        }
-
-        List<ResolveInfo> handlers = PackageManagerUtils.queryIntentActivities(
-                intent, PackageManager.GET_RESOLVED_FILTER);
-
-        boolean foundSpecializedHandler = false;
-
-        for (String result :
-                ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(handlers, null)) {
-            if (result.equals(mApkPackageName)) {
-                // Current WebAPK matches and this is a HTTP(s) link. Don't intercept so that we
-                // can launch a CCT. See http://crbug.com/831806 for more context.
-                return false;
-            } else {
-                foundSpecializedHandler = true;
-            }
-        }
-
-        // Launch a native app iff there is a specialized handler for a given URL.
-        if (foundSpecializedHandler) {
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-            // StartActivity may cause StrictMode violations on Android K.
-            try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
-                ContextUtils.getApplicationContext().startActivity(intent);
-            }
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
index 987b82f..f9f4301 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
@@ -76,7 +76,6 @@
     private static final int START_INCOGNITO = 0x1;
     private static final int START_WEBAPK = 0x2;
     private static final int START_FILE = 0x4;
-    private static final int START_WEBAPP_CCT = 0x8;
     private static final int START_OTHER_ACTIVITY = 0x10;
     private static final int INTENT_SANITIZATION_EXCEPTION = 0x20;
     private static final int PROXY_FOR_INSTANT_APPS = 0x40;
@@ -1954,7 +1953,6 @@
             startActivityIntent = null;
             startIncognitoIntentCalled = false;
             startFileIntentCalled = false;
-            startWebappCctIntentCalled = false;
             mCalledWithProxy = false;
         }
 
@@ -2009,7 +2007,6 @@
         public Intent startActivityIntent;
         public boolean startIncognitoIntentCalled;
         public boolean startFileIntentCalled;
-        public boolean startWebappCctIntentCalled;
         public String defaultSmsPackageName;
 
         private String mReferrerWebappPackageName;
@@ -2104,7 +2101,6 @@
             boolean expectStartActivity =
                     (otherExpectation & (START_WEBAPK | START_OTHER_ACTIVITY)) != 0;
             boolean expectStartWebApk = (otherExpectation & START_WEBAPK) != 0;
-            boolean expectStartWebappCct = (otherExpectation & START_WEBAPP_CCT) != 0;
             boolean expectStartOtherActivity = (otherExpectation & START_OTHER_ACTIVITY) != 0;
             boolean expectStartFile = (otherExpectation & START_FILE) != 0;
             boolean expectSaneIntent = expectStartOtherActivity
@@ -2138,7 +2134,6 @@
 
             Assert.assertEquals(expectedOverrideResult, result);
             Assert.assertEquals(expectStartIncognito, mDelegate.startIncognitoIntentCalled);
-            Assert.assertEquals(expectStartWebappCct, mDelegate.startWebappCctIntentCalled);
             Assert.assertEquals(expectStartActivity, startActivityCalled);
             Assert.assertEquals(expectStartWebApk, startWebApkCalled);
             Assert.assertEquals(expectStartFile, mDelegate.startFileIntentCalled);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java
index f51c158f..1ee9906 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java
@@ -11,7 +11,6 @@
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.LargeTest;
 
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -24,18 +23,14 @@
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
-import org.chromium.chrome.browser.customtabs.CustomTabActivity;
-import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
 import org.chromium.chrome.browser.tab.TabTestUtils;
 import org.chromium.chrome.browser.tab.TabWebContentsDelegateAndroid;
-import org.chromium.chrome.browser.util.IntentUtils;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.ApplicationTestUtils;
 import org.chromium.chrome.test.util.ChromeTabUtils;
 import org.chromium.chrome.test.util.browser.webapps.WebApkInfoBuilder;
 import org.chromium.content_public.browser.test.NativeLibraryTestRule;
-import org.chromium.content_public.browser.test.util.JavaScriptUtils;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 import org.chromium.webapk.lib.common.WebApkConstants;
 
@@ -86,55 +81,6 @@
     }
 
     /**
-     * Test launching a WebAPK. Test that opening a url within scope through window.open() will open
-     * a CCT.
-     */
-    @Test
-    @LargeTest
-    @Feature({"WebApk"})
-    public void testLaunchAndOpenNewWindowInScope() throws Exception {
-        String scopeUrl = getTestServerUrl("scope_a/");
-        String inScopeUrl = getTestServerUrl("scope_a/page_1.html");
-        WebApkActivity webApkActivity =
-                mActivityTestRule.startWebApkActivity(createWebApkInfo(inScopeUrl, scopeUrl));
-
-        WebappActivityTestRule.jsWindowOpen(mActivityTestRule.getActivity(), inScopeUrl);
-
-        CustomTabActivity customTabActivity =
-                ChromeActivityTestRule.waitFor(CustomTabActivity.class);
-        ChromeTabUtils.waitForTabPageLoaded(customTabActivity.getActivityTab(), inScopeUrl);
-        Assert.assertTrue(
-                "Sending to external handlers needs to be enabled for redirect back (e.g. OAuth).",
-                IntentUtils.safeGetBooleanExtra(customTabActivity.getIntent(),
-                        CustomTabIntentDataProvider.EXTRA_SEND_TO_EXTERNAL_DEFAULT_HANDLER, false));
-    }
-
-    /**
-     * Test launching a WebAPK. Test that opening a url off scope through window.open() will open a
-     * CCT, and in scope urls will stay in the CCT.
-     */
-    @Test
-    @LargeTest
-    @Feature({"WebApk"})
-    public void testLaunchAndNavigationInNewWindowOffandInScope() throws Exception {
-        String scopeUrl = getTestServerUrl("scope_a/");
-        String inScopeUrl = getTestServerUrl("scope_a/page_1.html");
-        String offScopeUrl = getTestServerUrl("scope_b/scope_b.html");
-        WebApkActivity webApkActivity =
-                mActivityTestRule.startWebApkActivity(createWebApkInfo(inScopeUrl, scopeUrl));
-
-        WebappActivityTestRule.jsWindowOpen(mActivityTestRule.getActivity(), offScopeUrl);
-        CustomTabActivity customTabActivity =
-                ChromeActivityTestRule.waitFor(CustomTabActivity.class);
-        ChromeTabUtils.waitForTabPageLoaded(customTabActivity.getActivityTab(), offScopeUrl);
-
-        JavaScriptUtils.executeJavaScriptAndWaitForResult(
-                customTabActivity.getActivityTab().getWebContents(),
-                String.format("window.location.href='%s'", inScopeUrl));
-        ChromeTabUtils.waitForTabPageLoaded(customTabActivity.getActivityTab(), inScopeUrl);
-    }
-
-    /**
      * Test the L+ logic in {@link TabWebContentsDelegateAndroid#activateContents} for bringing
      * WebAPK to the foreground.
      */
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java
index d16f2526..573475bd 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java
@@ -31,10 +31,10 @@
 import org.chromium.base.test.util.Restriction;
 import org.chromium.base.test.util.RetryOnFailure;
 import org.chromium.chrome.R;
+import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.ShortcutHelper;
-import org.chromium.chrome.browser.customtabs.CustomTabActivity;
 import org.chromium.chrome.browser.firstrun.FirstRunStatus;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.tab.Tab;
@@ -66,8 +66,6 @@
 @RunWith(ChromeJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
 public class WebappNavigationTest {
-    private static final String YOUTUBE_URL = "https://www.youtube.com/watch?v=EYmjoW4vIX8";
-
     public final WebappActivityTestRule mActivityTestRule = new WebappActivityTestRule();
 
     public final NativeLibraryTestRule mNativeLibraryTestRule = new NativeLibraryTestRule();
@@ -194,69 +192,49 @@
 
     /**
      * Test that navigating outside of the webapp scope by tapping a link with target="_blank":
-     * - Launches a CCT.
-     * - The Minimal UI toolbar does not use the webapp theme colour.
+     * - Opens a new tab.
+     * - Causes the toolbar to be shown.
      */
     @Test
     @SmallTest
     @Feature({"Webapps"})
     @RetryOnFailure
-    public void testOffScopeNewTabLinkOpensInCct() throws Exception {
-        runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra(
-                ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN));
+    public void testOffScopeNewTabLinkShowsToolbar() throws Exception {
+        runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent());
         addAnchorAndClick(offOriginUrl(), "_blank");
-        CustomTabActivity customTab = ChromeActivityTestRule.waitFor(CustomTabActivity.class);
-        ChromeTabUtils.waitForTabPageLoaded(customTab.getActivityTab(), offOriginUrl());
+        ChromeActivity activity = mActivityTestRule.getActivity();
+        CriteriaHelper.pollUiThread(Criteria.equals(
+                2, () -> activity.getTabModelSelector().getModel(false).getCount()));
+        ChromeTabUtils.waitForTabPageLoaded(activity.getActivityTab(), offOriginUrl());
 
-        Assert.assertEquals(
-                getDefaultPrimaryColor(), customTab.getToolbarManager().getPrimaryColor());
+        WebappActivityTestRule.assertToolbarShowState(activity, true);
     }
 
     /**
-     * Test that navigating within the webapp scope by tapping a link with target="_blank" launches
-     * a CCT.
+     * Test that navigating within the webapp scope by tapping a link with target="_blank":
+     * - Launches a new tab.
+     * - Causes the toolbar to be shown.
      */
     @Test
     @SmallTest
     @Feature({"Webapps"})
     @RetryOnFailure
-    public void testInScopeNewTabLinkOpensInCct() throws Exception {
+    public void testInScopeNewTabLinkShowsToolbar() throws Exception {
         String inScopeUrl =
                 WebappTestPage.getNonServiceWorkerUrl(mActivityTestRule.getTestServer());
-        runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra(
-                ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN));
+        runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent());
         addAnchorAndClick(inScopeUrl, "_blank");
-        CustomTabActivity customTab = ChromeActivityTestRule.waitFor(CustomTabActivity.class);
-        ChromeTabUtils.waitForTabPageLoaded(customTab.getActivityTab(), inScopeUrl);
-        Assert.assertTrue(
-                mActivityTestRule.runJavaScriptCodeInCurrentTab("document.body.textContent")
-                        .contains("Do-nothing page with a manifest and a service worker."));
+        ChromeActivity activity = mActivityTestRule.getActivity();
+        CriteriaHelper.pollUiThread(Criteria.equals(
+                2, () -> activity.getTabModelSelector().getModel(false).getCount()));
+        ChromeTabUtils.waitForTabPageLoaded(activity.getActivityTab(), inScopeUrl);
+
+        WebappActivityTestRule.assertToolbarShowState(activity, true);
     }
 
     /**
-     * Test that navigating outside of the webapp via window.open():
-     * - Launches a CCT.
-     * - The CCT toolbar does not use the webapp theme colour.
-     */
-    @Test
-    @SmallTest
-    @Feature({"Webapps"})
-    @RetryOnFailure
-    public void testWindowOpenInCct() throws Exception {
-        runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra(
-                ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.CYAN));
-
-        WebappActivityTestRule.jsWindowOpen(mActivityTestRule.getActivity(), offOriginUrl());
-        CustomTabActivity customTab = ChromeActivityTestRule.waitFor(CustomTabActivity.class);
-        ChromeTabUtils.waitForTabPageLoaded(customTab.getActivityTab(), offOriginUrl());
-        Assert.assertEquals(
-                getDefaultPrimaryColor(), customTab.getToolbarManager().getPrimaryColor());
-    }
-
-    /**
-     * Test that navigating a webapp within the webapp scope by tapping a regular link:
-     * - Does not show a CCT-like webapp toolbar.
-     * - Does not launch a CCT.
+     * Test that navigating a webapp within the webapp scope by tapping a regular link
+     * shows a CCT-like webapp toolbar.
      */
     @Test
     @SmallTest
@@ -338,18 +316,6 @@
     @SmallTest
     @Feature({"Webapps"})
     @RetryOnFailure
-    public void testNewTabLinkToExternalApp() throws Exception {
-        runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent());
-
-        addAnchorAndClick(YOUTUBE_URL, "_blank");
-
-        waitForExternalAppOrIntentPicker();
-    }
-
-    @Test
-    @SmallTest
-    @Feature({"Webapps"})
-    @RetryOnFailure
     // Regression test for crbug.com/771174.
     public void testCanNavigateAfterReparentingToTabbedChrome() throws Exception {
         runWebappActivityAndWaitForIdle(
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index b2004e40..2b32d16 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -13,6 +13,7 @@
 import("//build/config/ui.gni")
 import("//chrome/browser/buildflags.gni")
 import("//chrome/common/features.gni")
+import("//components/captive_portal/features.gni")
 import("//components/feature_engagement/features.gni")
 import("//components/feed/features.gni")
 import("//components/nacl/features.gni")
@@ -1984,6 +1985,7 @@
     "//components/browsing_data/content",
     "//components/browsing_data/core",
     "//components/captive_portal",
+    "//components/captive_portal:buildflags",
     "//components/certificate_matching",
     "//components/certificate_transparency",
     "//components/cloud_devices/common",
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 786094b9..978ba63 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -183,6 +183,7 @@
 #include "chrome/installer/util/google_update_settings.h"
 #include "components/autofill/core/common/autofill_switches.h"
 #include "components/browsing_data/core/browsing_data_utils.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/cdm/browser/cdm_message_filter_android.h"
 #include "components/certificate_matching/certificate_principal_pattern.h"
 #include "components/cloud_devices/common/cloud_devices_switches.h"
@@ -3927,6 +3928,7 @@
   throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
       handle,
       std::make_unique<CertificateReportingServiceCertReporter>(web_contents),
+      g_browser_process->network_time_tracker(),
       base::BindOnce(&SSLErrorHandler::HandleSSLError),
       base::BindOnce(&IsInHostedApp)));
 
diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc
index bd025731..3f9636ef 100644
--- a/chrome/browser/chrome_content_browser_client_unittest.cc
+++ b/chrome/browser/chrome_content_browser_client_unittest.cc
@@ -24,6 +24,7 @@
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "chrome/test/base/testing_profile.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/search_engines/template_url_service.h"
 #include "components/variations/variations_associated_data.h"
diff --git a/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.cc b/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.cc
index 69d7e84..3ef5645 100644
--- a/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.cc
+++ b/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.cc
@@ -6,6 +6,7 @@
 
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
+#include "chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.h"
 #include "chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h"
 #include "ui/accessibility/ax_enums.mojom.h"
 #include "ui/accessibility/ax_node.h"
@@ -30,10 +31,12 @@
 AccessibilityNodeInfoDataWrapper::AccessibilityNodeInfoDataWrapper(
     AXTreeSourceArc* tree_source,
     AXNodeInfoData* node,
-    bool is_clickable_leaf)
+    bool is_clickable_leaf,
+    bool is_important)
     : AccessibilityInfoDataWrapper(tree_source),
       node_ptr_(node),
-      is_clickable_leaf_(is_clickable_leaf) {}
+      is_clickable_leaf_(is_clickable_leaf),
+      is_important_(is_important) {}
 
 AccessibilityNodeInfoDataWrapper::~AccessibilityNodeInfoDataWrapper() = default;
 
@@ -70,8 +73,6 @@
   // - interesting leaf nodes
   ui::AXNodeData data;
   PopulateAXRole(&data);
-  bool important = GetProperty(AXBooleanProperty::IMPORTANCE) ||
-                   IsFocusableNativeWeb(data.role);
   bool non_generic_role = data.role != ax::mojom::Role::kGenericContainer &&
                           data.role != ax::mojom::Role::kGroup &&
                           data.role != ax::mojom::Role::kList &&
@@ -81,7 +82,7 @@
                     GetProperty(AXBooleanProperty::CHECKABLE);
   bool top_level_scrollable = HasProperty(AXStringProperty::TEXT) &&
                               GetProperty(AXBooleanProperty::SCROLLABLE);
-  return important && non_generic_role &&
+  return is_important_ && non_generic_role &&
          (actionable || top_level_scrollable || IsInterestingLeaf());
 }
 
@@ -271,11 +272,7 @@
   if (!GetProperty(AXBooleanProperty::VISIBLE_TO_USER))
     out_data->AddState(ax::mojom::State::kInvisible);
 
-  // WebView and its child nodes do not have accessibility importance set.
-  // IsFocusableNativeWeb can be removed once the change in crrev/c/1890402 is
-  // landed in all ARC containers.
-  if (!GetProperty(AXBooleanProperty::IMPORTANCE) &&
-      !IsFocusableNativeWeb(out_data->role))
+  if (!is_important_)
     out_data->AddState(ax::mojom::State::kIgnored);
 }
 
@@ -602,45 +599,12 @@
   }
 }
 
-// Returns true if the node is (or is inside) WebView and it's accessibility
-// focusable.
-bool AccessibilityNodeInfoDataWrapper::IsFocusableNativeWeb(
-    ax::mojom::Role role) const {
-  std::vector<int32_t> standard_action_ids;
-  if (GetProperty(AXIntListProperty::STANDARD_ACTION_IDS,
-                  &standard_action_ids)) {
-    bool is_native_web = false;
-    bool is_focusable = GetProperty(AXBooleanProperty::FOCUSABLE);
-    for (const int32_t id : standard_action_ids) {
-      switch (static_cast<AXActionType>(id)) {
-        case AXActionType::NEXT_HTML_ELEMENT:
-        case AXActionType::PREVIOUS_HTML_ELEMENT:
-          is_native_web = true;
-          break;
-        case AXActionType::CLICK:
-        case AXActionType::FOCUS:
-        case AXActionType::ACCESSIBILITY_FOCUS:
-          is_focusable = true;
-          break;
-        default:
-          // unused.
-          break;
-      }
-    }
-    return is_native_web &&
-           (is_focusable || ui::IsControl(role) || IsInterestingLeaf());
-  }
-  return false;
-}
-
 bool AccessibilityNodeInfoDataWrapper::IsInterestingLeaf() const {
-  bool has_text = HasProperty(AXStringProperty::CONTENT_DESCRIPTION) ||
-                  HasProperty(AXStringProperty::TEXT);
   std::vector<AccessibilityInfoDataWrapper*> children;
   GetChildren(&children);
   // TODO(hirokisato) Even if the node has children, they might be empty. In
   // this case we should return true.
-  return has_text && children.empty();
+  return HasImportantProperty(node_ptr_) && children.empty();
 }
 
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.h b/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.h
index 9a8343a9..833a9b5 100644
--- a/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.h
+++ b/chrome/browser/chromeos/arc/accessibility/accessibility_node_info_data_wrapper.h
@@ -18,7 +18,8 @@
  public:
   AccessibilityNodeInfoDataWrapper(AXTreeSourceArc* tree_source,
                                    mojom::AccessibilityNodeInfoData* node,
-                                   bool is_clickable_leaf);
+                                   bool is_clickable_leaf,
+                                   bool is_important);
 
   ~AccessibilityNodeInfoDataWrapper() override;
 
@@ -59,13 +60,12 @@
   void ComputeNameFromContents(const AccessibilityNodeInfoDataWrapper* data,
                                std::vector<std::string>* names) const;
 
-  bool IsFocusableNativeWeb(ax::mojom::Role role) const;
-
   bool IsInterestingLeaf() const;
 
   mojom::AccessibilityNodeInfoData* node_ptr_ = nullptr;
 
   bool is_clickable_leaf_;
+  bool is_important_;
 
   base::Optional<ax::mojom::Role> role_;
   base::Optional<std::string> cached_name_;
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
index 31edfe5..93f048ae 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
@@ -394,22 +394,19 @@
   if (!window_id)
     return;
 
-  arc::mojom::AccessibilityActionDataPtr action_data =
-      arc::mojom::AccessibilityActionData::New();
-
-  action_data->node_id = data.target_node_id;
-
-  action_data->window_id = window_id.value();
-
   const base::Optional<mojom::AccessibilityActionType> action =
       ConvertToAndroidAction(data.action);
   if (!action.has_value())
     return;
 
+  arc::mojom::AccessibilityActionDataPtr action_data =
+      arc::mojom::AccessibilityActionData::New();
+
+  action_data->node_id = data.target_node_id;
+  action_data->window_id = window_id.value();
   action_data->action_type = action.value();
 
-  if (action_data->action_type ==
-      arc::mojom::AccessibilityActionType::GET_TEXT_LOCATION) {
+  if (action == arc::mojom::AccessibilityActionType::GET_TEXT_LOCATION) {
     action_data->start_index = data.start_index;
     action_data->end_index = data.end_index;
     auto* instance = ARC_GET_INSTANCE_FOR_METHOD(
@@ -424,10 +421,15 @@
             &ArcAccessibilityHelperBridge::OnGetTextLocationDataResult,
             base::Unretained(this), data));
     return;
-  } else if (action_data->action_type ==
-             arc::mojom::AccessibilityActionType::CUSTOM_ACTION) {
+  } else if (action == arc::mojom::AccessibilityActionType::CUSTOM_ACTION) {
     action_data->custom_action_id = data.custom_action_id;
+  } else if (action == arc::mojom::AccessibilityActionType::SHOW_ON_SCREEN) {
+    // This action is performed every time ChromeVox focus gets changed (from
+    // Background.setCurrentRange). Use this action as a notification of focus
+    // change, and update focus cache.
+    tree_source->UpdateAccessibilityFocusLocation(data.target_node_id);
   }
+
   auto* instance = ARC_GET_INSTANCE_FOR_METHOD(
       arc_bridge_service_->accessibility_helper(), PerformAction);
   if (!instance) {
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc
index 522c9f1..29173ec 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc
@@ -9,6 +9,12 @@
 
 namespace arc {
 
+using AXActionType = mojom::AccessibilityActionType;
+using AXBooleanProperty = mojom::AccessibilityBooleanProperty;
+using AXIntListProperty = mojom::AccessibilityIntListProperty;
+using AXNodeInfoData = mojom::AccessibilityNodeInfoData;
+using AXStringProperty = mojom::AccessibilityStringProperty;
+
 ax::mojom::Event ToAXEvent(
     mojom::AccessibilityEventType arc_event_type,
     mojom::AccessibilityNodeInfoData* focused_node_info_data) {
@@ -111,6 +117,71 @@
   }
 }
 
+bool IsImportantInAndroid(AXNodeInfoData* node) {
+  if (!node)
+    return false;
+
+  if (GetBooleanProperty(node, AXBooleanProperty::IMPORTANCE))
+    return true;
+
+  // WebView and its child nodes do not have accessibility importance set.
+  // This logic can be removed once the change in crrev/c/1890402 landed
+  // in all ARC containers.
+  std::vector<int32_t> standard_action_ids;
+  if (GetProperty(node->int_list_properties,
+                  AXIntListProperty::STANDARD_ACTION_IDS,
+                  &standard_action_ids)) {
+    for (const int32_t id : standard_action_ids) {
+      switch (static_cast<AXActionType>(id)) {
+        case AXActionType::NEXT_HTML_ELEMENT:
+        case AXActionType::PREVIOUS_HTML_ELEMENT:
+          return true;
+        default:
+          // unused.
+          break;
+      }
+    }
+  }
+
+  return false;
+}
+
+bool HasImportantProperty(AXNodeInfoData* node) {
+  if (!node)
+    return false;
+
+  std::string prop;
+  if (HasNonEmptyStringProperty(node, AXStringProperty::CONTENT_DESCRIPTION) ||
+      HasNonEmptyStringProperty(node, AXStringProperty::TEXT) ||
+      HasNonEmptyStringProperty(node, AXStringProperty::PANE_TITLE) ||
+      HasNonEmptyStringProperty(node, AXStringProperty::HINT_TEXT))
+    return true;
+
+  if (GetBooleanProperty(node, AXBooleanProperty::EDITABLE) ||
+      GetBooleanProperty(node, AXBooleanProperty::CHECKABLE) ||
+      GetBooleanProperty(node, AXBooleanProperty::SELECTED))
+    return true;
+
+  std::vector<int32_t> standard_action_ids;
+  if (GetProperty(node->int_list_properties,
+                  AXIntListProperty::STANDARD_ACTION_IDS,
+                  &standard_action_ids)) {
+    for (const int32_t id : standard_action_ids) {
+      switch (static_cast<AXActionType>(id)) {
+        case AXActionType::CLICK:
+        case AXActionType::FOCUS:
+          return true;
+        default:
+          // unused.
+          break;
+      }
+    }
+  }
+
+  // TODO(hirokisato) Also check LABELED_BY and ui::IsControl(role)
+  return false;
+}
+
 bool GetBooleanProperty(mojom::AccessibilityNodeInfoData* node,
                         mojom::AccessibilityBooleanProperty prop) {
   if (!node || !node->boolean_properties)
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.h b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.h
index 3ecca1e..94eff9c 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.h
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_CHROMEOS_ARC_ACCESSIBILITY_ARC_ACCESSIBILITY_UTIL_H_
 
 #include <stdint.h>
+#include <string>
 #include <vector>
 
 #include "base/optional.h"
@@ -20,26 +21,40 @@
 base::Optional<mojom::AccessibilityActionType> ConvertToAndroidAction(
     ax::mojom::Action action);
 
+bool IsImportantInAndroid(mojom::AccessibilityNodeInfoData* node);
+
+bool HasImportantProperty(mojom::AccessibilityNodeInfoData* node);
+
 // TODO(hirokisato) clean up GetProperty methods in AccessibilityNodeInfoData
 // and AccessibilityWindowInfoData.
 bool GetBooleanProperty(mojom::AccessibilityNodeInfoData* node,
                         mojom::AccessibilityBooleanProperty prop);
 
-template <class InfoDataType, class PropType>
-bool GetIntListProperty(InfoDataType* node,
-                        PropType prop,
-                        std::vector<int32_t>* out_value) {
-  if (!node || !node->int_list_properties)
+template <class PropMTypeMap, class PropType, class OutType>
+bool GetProperty(PropMTypeMap properties, PropType prop, OutType* out_value) {
+  if (!properties)
     return false;
 
-  auto it = node->int_list_properties->find(prop);
-  if (it == node->int_list_properties->end())
+  auto it = properties->find(prop);
+  if (it == properties->end())
     return false;
 
   *out_value = it->second;
   return true;
 }
 
+template <class InfoDataType, class PropType>
+bool HasNonEmptyStringProperty(InfoDataType* node, PropType prop) {
+  if (!node || !node->string_properties)
+    return false;
+
+  auto it = node->string_properties->find(prop);
+  if (it == node->string_properties->end())
+    return false;
+
+  return !it->second.empty();
+}
+
 }  // namespace arc
 
 #endif  // CHROME_BROWSER_CHROMEOS_ARC_ACCESSIBILITY_ARC_ACCESSIBILITY_UTIL_H_
diff --git a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc
index 988a1a3..b2c7f81 100644
--- a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc
+++ b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc
@@ -91,8 +91,8 @@
         std::make_unique<AccessibilityWindowInfoDataWrapper>(this, window);
 
     std::vector<int32_t> children;
-    if (GetIntListProperty(window, AXWindowIntListProperty::CHILD_WINDOW_IDS,
-                           &children)) {
+    if (GetProperty(window->int_list_properties,
+                    AXWindowIntListProperty::CHILD_WINDOW_IDS, &children)) {
       for (const int32_t child : children) {
         DCHECK(child != root_id_);
         parent_map_[child] = window_id;
@@ -106,19 +106,21 @@
     int32_t node_id = event_data->node_data[i]->id;
     node_data_index_map[node_id] = i;
     std::vector<int32_t> children;
-    if (GetIntListProperty(event_data->node_data[i].get(),
-                           AXIntListProperty::CHILD_NODE_IDS, &children)) {
+    if (GetProperty(event_data->node_data[i].get()->int_list_properties,
+                    AXIntListProperty::CHILD_NODE_IDS, &children)) {
       for (const int32_t child : children)
         parent_map_[child] = node_id;
     }
   }
-  for (size_t i = 0; i < event_data->node_data.size(); ++i) {
+  std::map<int32_t, bool> important_map;
+  BuildImportantMap(event_data->node_data, node_data_index_map, important_map);
+  for (int i = event_data->node_data.size() - 1; i >= 0; --i) {
     int32_t id = event_data->node_data[i]->id;
     AXNodeInfoData* node = event_data->node_data[i].get();
     bool is_clickable_leaf =
-        ComputeIsClickableLeaf(i, event_data->node_data, node_data_index_map);
+        ComputeIsClickableLeaf(event_data->node_data, i, node_data_index_map);
     tree_map_[id] = std::make_unique<AccessibilityNodeInfoDataWrapper>(
-        this, node, is_clickable_leaf);
+        this, node, is_clickable_leaf, important_map[i]);
   }
 
   // Assuming |nodeData| is in pre-order, compute cached bounds in post-order to
@@ -141,8 +143,8 @@
       // Sometimes Android sets focus on unfocusable node, e.g. ListView.
       AccessibilityInfoDataWrapper* adjusted_node =
           FindFirstFocusableNode(focused_node);
-      focused_id_ = IsValid(adjusted_node) ? adjusted_node->GetId()
-                                           : event_data->source_id;
+      android_focused_id_ = IsValid(adjusted_node) ? adjusted_node->GetId()
+                                                   : event_data->source_id;
     }
   } else if (event_data->event_type == AXEventType::WINDOW_STATE_CHANGED) {
     // When accessibility window changed, a11y event of WINDOW_CONTENT_CHANGED
@@ -154,25 +156,25 @@
     AccessibilityInfoDataWrapper* new_focus =
         FindFirstFocusableNode(focused_node);
     if (IsValid(new_focus))
-      focused_id_ = new_focus->GetId();
+      android_focused_id_ = new_focus->GetId();
 
     if (event_data->eventText)
       UpdateAXNameCache(focused_node, *event_data->eventText);
   }
-  if (!focused_id_.has_value()) {
+  if (!android_focused_id_.has_value()) {
     AccessibilityInfoDataWrapper* root = GetRoot();
     // TODO (sarakato): Add proper fix once cause of invalid node is known.
     if (!IsValid(root)) {
       return;
     } else if (root->IsNode()) {
-      focused_id_ = root_id_;
+      android_focused_id_ = root_id_;
     } else {
       std::vector<AccessibilityInfoDataWrapper*> children;
       root->GetChildren(&children);
       if (!children.empty()) {
         for (size_t i = 0; i < children.size(); ++i) {
           if (children[i]->IsNode()) {
-            focused_id_ = children[i]->GetId();
+            android_focused_id_ = children[i]->GetId();
             break;
           }
         }
@@ -191,12 +193,28 @@
   // When the focused node exists, give it as a hint to decide a Chrome
   // automation event type.
   AXNodeInfoData* focused_node = nullptr;
-  if (focused_id_.has_value() &&
-      tree_map_.find(*focused_id_) != tree_map_.end())
-    focused_node = tree_map_[*focused_id_]->GetNode();
+  if (android_focused_id_.has_value() &&
+      tree_map_.find(*android_focused_id_) != tree_map_.end())
+    focused_node = tree_map_[*android_focused_id_]->GetNode();
   event.event_type = ToAXEvent(event_data->event_type, focused_node);
   event.id = event_data->source_id;
 
+  if ((event_data->event_type == AXEventType::WINDOW_CONTENT_CHANGED ||
+       event_data->event_type == AXEventType::VIEW_SCROLLED) &&
+      chrome_focused_id_ && chrome_focused_bounds_) {
+    AccessibilityInfoDataWrapper* chrome_focused_node =
+        GetFromId(*chrome_focused_id_);
+    if (chrome_focused_node &&
+        chrome_focused_bounds_ != chrome_focused_node->GetBounds()) {
+      // Notify ChromeVox that the accessibility focus location changed.
+      event_bundle.events.emplace_back();
+      ui::AXEvent& additional_event = event_bundle.events.back();
+      additional_event.event_type = ax::mojom::Event::kLocationChanged;
+      additional_event.id = *chrome_focused_id_;
+      chrome_focused_bounds_ = chrome_focused_node->GetBounds();
+    }
+  }
+
   event_bundle.updates.emplace_back();
 
   // Force the tree, starting at the target of the event, to update, so
@@ -221,6 +239,14 @@
   GetAutomationEventRouter()->DispatchGetTextLocationDataResult(data, rect);
 }
 
+void AXTreeSourceArc::UpdateAccessibilityFocusLocation(int32_t id) {
+  AccessibilityInfoDataWrapper* node = GetFromId(id);
+  if (!IsValid(node))
+    return;
+  chrome_focused_id_ = id;
+  chrome_focused_bounds_ = node->GetBounds();
+}
+
 const gfx::Rect AXTreeSourceArc::GetBounds(
     AccessibilityInfoDataWrapper* info_data,
     aura::Window* active_window) const {
@@ -283,8 +309,8 @@
 
 bool AXTreeSourceArc::GetTreeData(ui::AXTreeData* data) const {
   data->tree_id = ax_tree_id();
-  if (focused_id_.has_value())
-    data->focus_id = *focused_id_;
+  if (android_focused_id_.has_value())
+    data->focus_id = *android_focused_id_;
   return true;
 }
 
@@ -360,15 +386,16 @@
 }
 
 bool AXTreeSourceArc::ComputeIsClickableLeaf(
-    int32_t root_index,
     const std::vector<AXNodeInfoDataPtr>& nodes,
-    const std::map<int32_t, int32_t>& node_id_to_array_index) const {
-  AXNodeInfoData* node = nodes[root_index].get();
+    int32_t node_index,
+    const std::map<int32_t, int32_t>& node_id_to_nodes_index) const {
+  AXNodeInfoData* node = nodes[node_index].get();
   if (!GetBooleanProperty(node, AXBooleanProperty::CLICKABLE))
     return false;
 
   std::vector<int32_t> children;
-  if (!GetIntListProperty(node, AXIntListProperty::CHILD_NODE_IDS, &children))
+  if (!GetProperty(node->int_list_properties, AXIntListProperty::CHILD_NODE_IDS,
+                   &children))
     return true;
 
   std::stack<int32_t, std::vector<int32_t>> stack(children);
@@ -376,11 +403,11 @@
     int32_t parent_id = stack.top();
     stack.pop();
     AXNodeInfoData* parent_node =
-        nodes[node_id_to_array_index.at(parent_id)].get();
+        nodes[node_id_to_nodes_index.at(parent_id)].get();
     if (GetBooleanProperty(parent_node, AXBooleanProperty::CLICKABLE))
       return false;
-    if (GetIntListProperty(parent_node, AXIntListProperty::CHILD_NODE_IDS,
-                           &children)) {
+    if (GetProperty(parent_node->int_list_properties,
+                    AXIntListProperty::CHILD_NODE_IDS, &children)) {
       for (const int32_t child : children)
         stack.push(child);
     }
@@ -388,6 +415,41 @@
   return true;
 }
 
+void AXTreeSourceArc::BuildImportantMap(
+    const std::vector<AXNodeInfoDataPtr>& nodes,
+    const std::map<int32_t, int32_t>& node_id_to_nodes_index,
+    std::map<int32_t, bool>& out_map) const {
+  // nodes can be empty only in tests.
+  if (nodes.size() > 0)
+    BuildImportantMapInternal(0, nodes, node_id_to_nodes_index, out_map);
+}
+
+bool AXTreeSourceArc::BuildImportantMapInternal(
+    int32_t nodes_index,
+    const std::vector<AXNodeInfoDataPtr>& nodes,
+    const std::map<int32_t, int32_t>& node_id_to_nodes_index,
+    std::map<int32_t, bool>& is_important_cache) const {
+  AXNodeInfoData* node = nodes[nodes_index].get();
+
+  bool is_important = IsImportantInAndroid(node) &&
+                      (HasImportantProperty(node) ||
+                       cached_names_.find(node->id) != cached_names_.end());
+
+  // If any child node has importance, this node is also important.
+  std::vector<int32_t> children;
+  if (GetProperty(node->int_list_properties, AXIntListProperty::CHILD_NODE_IDS,
+                  &children)) {
+    for (const int32_t child : children) {
+      is_important |=
+          BuildImportantMapInternal(node_id_to_nodes_index.at(child), nodes,
+                                    node_id_to_nodes_index, is_important_cache);
+    }
+  }
+
+  is_important_cache[nodes_index] = is_important;
+  return is_important;
+}
+
 AccessibilityInfoDataWrapper* AXTreeSourceArc::FindFirstFocusableNode(
     AccessibilityInfoDataWrapper* info_data) const {
   if (!IsValid(info_data))
@@ -461,7 +523,7 @@
   current_tree_serializer_.reset(new AXTreeArcSerializer(this));
   root_id_.reset();
   window_id_.reset();
-  focused_id_.reset();
+  android_focused_id_.reset();
   extensions::AutomationEventRouterInterface* router =
       GetAutomationEventRouter();
   if (!router)
diff --git a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h
index d2fdaad..81449b2 100644
--- a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h
+++ b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.h
@@ -56,6 +56,9 @@
   void NotifyGetTextLocationDataResult(const ui::AXActionData& data,
                                        const base::Optional<gfx::Rect>& rect);
 
+  // Update Chrome's accessibility focused node by id.
+  void UpdateAccessibilityFocusLocation(int32_t id);
+
   // Returns bounds of a node which can be passed to AXNodeData.location. Bounds
   // are returned in the following coordinates depending on whether it's root or
   // not.
@@ -106,11 +109,25 @@
   void ComputeEnclosingBoundsInternal(AccessibilityInfoDataWrapper* info_data,
                                       gfx::Rect& computed_bounds) const;
 
-  // Computes the node is clickable and there is no clickable descendant of it.
+  // Computes if the node is clickable and has no clickable descendants.
   bool ComputeIsClickableLeaf(
-      int32_t root_index,
       const std::vector<mojom::AccessibilityNodeInfoDataPtr>& nodes,
-      const std::map<int32_t, int32_t>& node_id_to_array_index) const;
+      int32_t node_index,
+      const std::map<int32_t, int32_t>& node_id_to_nodes_index) const;
+
+  // Builds a mapping from index in |nodes| to whether ignored state should be
+  // applied to the node in chrome accessibility.
+  // Assuming that |nodes[0]| is a root of the tree.
+  void BuildImportantMap(
+      const std::vector<mojom::AccessibilityNodeInfoDataPtr>& nodes,
+      const std::map<int32_t, int32_t>& node_id_to_nodes_index,
+      std::map<int32_t, bool>& out_node) const;
+
+  bool BuildImportantMapInternal(
+      int32_t nodes_index,
+      const std::vector<mojom::AccessibilityNodeInfoDataPtr>& nodes,
+      const std::map<int32_t, int32_t>& node_id_to_nodes_index,
+      std::map<int32_t, bool>& is_important_cache) const;
 
   // Find the most top-left focusable node under the given node.
   AccessibilityInfoDataWrapper* FindFirstFocusableNode(
@@ -143,10 +160,16 @@
 
   // Maps an AccessibilityInfoDataWrapper ID to its parent.
   std::map<int32_t, int32_t> parent_map_;
+
   std::unique_ptr<AXTreeArcSerializer> current_tree_serializer_;
   base::Optional<int32_t> root_id_;
   base::Optional<int32_t> window_id_;
-  base::Optional<int32_t> focused_id_;
+  base::Optional<int32_t> android_focused_id_;
+
+  // Cache of ChromeVox accessibility focus.
+  base::Optional<int32_t> chrome_focused_id_;
+  base::Optional<gfx::Rect> chrome_focused_bounds_;
+
   bool is_notification_;
   bool is_input_method_window_;
 
diff --git a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc_unittest.cc b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc_unittest.cc
index eb18084..bcb2118 100644
--- a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc_unittest.cc
+++ b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc_unittest.cc
@@ -162,6 +162,10 @@
     tree_source_->NotifyAccessibilityEvent(event_data);
   }
 
+  void CallUpdateAccessibilityFocusLocation(int32_t id) {
+    tree_source_->UpdateAccessibilityFocusLocation(id);
+  }
+
   void CallGetChildren(
       AXNodeInfoData* node,
       std::vector<AccessibilityInfoDataWrapper*>* out_children) const {
@@ -248,6 +252,7 @@
   SetProperty(button1, AXBooleanProperty::VISIBLE_TO_USER, true);
   SetProperty(button1, AXBooleanProperty::FOCUSABLE, true);
   SetProperty(button1, AXBooleanProperty::IMPORTANCE, true);
+  SetProperty(button1, AXStringProperty::CONTENT_DESCRIPTION, "button1");
 
   // Add another child button.
   event->node_data.push_back(AXNodeInfoData::New());
@@ -257,6 +262,7 @@
   SetProperty(button2, AXBooleanProperty::VISIBLE_TO_USER, true);
   SetProperty(button2, AXBooleanProperty::FOCUSABLE, true);
   SetProperty(button2, AXBooleanProperty::IMPORTANCE, true);
+  SetProperty(button2, AXStringProperty::CONTENT_DESCRIPTION, "button2");
 
   // Non-overlapping, bottom to top.
   button1->bounds_in_screen = gfx::Rect(100, 100, 100, 100);
@@ -366,9 +372,9 @@
       "  id=10 genericContainer INVISIBLE (0, 0)-(0, 0) restriction=disabled "
       "modal=true child_ids=1,2\n"
       "    id=1 button FOCUSABLE (100, 100)-(100, 100) restriction=disabled "
-      "class_name=android.widget.Button\n"
+      "class_name=android.widget.Button name=button1\n"
       "    id=2 button FOCUSABLE (100, 100)-(10, 100) restriction=disabled "
-      "class_name=android.widget.Button\n");
+      "class_name=android.widget.Button name=button2\n");
 }
 
 TEST_F(AXTreeSourceArcTest, AccessibleNameComputation) {
@@ -1076,8 +1082,8 @@
   EXPECT_EQ(1, GetDispatchedEventCount(ax::mojom::Event::kFocus));
   ExpectTree(
       "id=100 window (0, 0)-(0, 0) child_ids=10\n"
-      "  id=10 genericContainer INVISIBLE (0, 0)-(0, 0) restriction=disabled "
-      "modal=true child_ids=1\n"
+      "  id=10 genericContainer IGNORED INVISIBLE (0, 0)-(0, 0) "
+      "restriction=disabled modal=true child_ids=1\n"
       "    id=1 genericContainer IGNORED INVISIBLE (0, 0)-(0, 0) "
       "restriction=disabled child_ids=2\n"
       "      id=2 genericContainer IGNORED INVISIBLE (0, 0)-(0, 0) "
@@ -1100,9 +1106,9 @@
       "id=100 window (0, 0)-(0, 0) child_ids=10\n"
       "  id=10 genericContainer INVISIBLE (0, 0)-(0, 0) restriction=disabled "
       "modal=true child_ids=1\n"
-      "    id=1 genericContainer IGNORED INVISIBLE (0, 0)-(0, 0) "
-      "restriction=disabled child_ids=2\n"
-      "      id=2 genericContainer IGNORED INVISIBLE (0, 0)-(0, 0) "
+      "    id=1 genericContainer INVISIBLE (0, 0)-(0, 0) restriction=disabled "
+      "child_ids=2\n"
+      "      id=2 genericContainer INVISIBLE (0, 0)-(0, 0) "
       "restriction=disabled child_ids=3\n"
       "        id=3 genericContainer INVISIBLE (0, 0)-(0, 0) "
       "restriction=disabled name=some text\n");
@@ -1141,6 +1147,7 @@
       node2, AXIntListProperty::STANDARD_ACTION_IDS,
       std::vector<int>({static_cast<int>(AXActionType::NEXT_HTML_ELEMENT),
                         static_cast<int>(AXActionType::FOCUS)}));
+  SetProperty(node2, AXStringProperty::CONTENT_DESCRIPTION, "text");
 
   CallNotifyAccessibilityEvent(event.get());
 
@@ -1153,4 +1160,56 @@
   ASSERT_FALSE(data->HasState(ax::mojom::State::kIgnored));
 }
 
+TEST_F(AXTreeSourceArcTest, SyncFocus) {
+  auto event = AXEventData::New();
+  event->source_id = 1;
+  event->task_id = 1;
+  event->event_type = AXEventType::VIEW_FOCUSED;
+
+  event->window_data = std::vector<mojom::AccessibilityWindowInfoDataPtr>();
+  event->window_data->emplace_back(AXWindowInfoData::New());
+  AXWindowInfoData* root_window = event->window_data->back().get();
+  root_window->window_id = 100;
+  root_window->root_node_id = 10;
+
+  event->node_data.emplace_back(AXNodeInfoData::New());
+  AXNodeInfoData* root = event->node_data.back().get();
+  root->id = 10;
+  SetProperty(root, AXIntListProperty::CHILD_NODE_IDS,
+              std::vector<int>({1, 2}));
+
+  // Add child nodes.
+  event->node_data.emplace_back(AXNodeInfoData::New());
+  AXNodeInfoData* node1 = event->node_data.back().get();
+  node1->id = 1;
+  SetProperty(node1, AXBooleanProperty::FOCUSABLE, true);
+  SetProperty(node1, AXBooleanProperty::IMPORTANCE, true);
+  node1->bounds_in_screen = gfx::Rect(0, 0, 50, 50);
+
+  event->node_data.emplace_back(AXNodeInfoData::New());
+  AXNodeInfoData* node2 = event->node_data.back().get();
+  node2->id = 2;
+  SetProperty(node2, AXBooleanProperty::FOCUSABLE, true);
+  SetProperty(node2, AXBooleanProperty::IMPORTANCE, true);
+  node2->bounds_in_screen = gfx::Rect(50, 50, 100, 100);
+
+  CallNotifyAccessibilityEvent(event.get());
+
+  // Initially |node1| has a focus.
+  ui::AXTreeData data;
+  EXPECT_TRUE(CallGetTreeData(&data));
+  EXPECT_EQ(node1->id, data.focus_id);
+
+  // Move Chrome accessibility focus to |node2|.
+  CallUpdateAccessibilityFocusLocation(node2->id);
+
+  // When focused node moved, dispatch kLocationChanged event.
+  event->source_id = root->id;
+  event->event_type = AXEventType::WINDOW_CONTENT_CHANGED;
+  node2->bounds_in_screen = gfx::Rect(100, 100, 150, 150);
+  CallNotifyAccessibilityEvent(event.get());
+
+  EXPECT_EQ(1, GetDispatchedEventCount(ax::mojom::Event::kLocationChanged));
+}
+
 }  // namespace arc
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.cc b/chrome/browser/chromeos/crostini/crostini_manager.cc
index bc7b0064..75529cd1 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.cc
+++ b/chrome/browser/chromeos/crostini/crostini_manager.cc
@@ -12,6 +12,7 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/compiler_specific.h"
+#include "base/feature_list.h"
 #include "base/files/file_util.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/no_destructor.h"
@@ -40,6 +41,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/browser.h"
+#include "chrome/common/chrome_features.h"
 #include "chromeos/constants/chromeos_features.h"
 #include "chromeos/dbus/anomaly_detector_client.h"
 #include "chromeos/dbus/concierge_client.h"
@@ -47,6 +49,7 @@
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
 #include "chromeos/dbus/image_loader_client.h"
+#include "chromeos/dbus/session_manager/session_manager_client.h"
 #include "chromeos/disks/disk_mount_manager.h"
 #include "components/component_updater/component_updater_service.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
@@ -456,6 +459,8 @@
           vm_name_);
       vm_info->usb_devices_shared = true;
     }
+    // If arc sideloading is enabled, configure the container for that.
+    crostini_manager_->ConfigureForArcSideload();
     auto info = crostini_manager_->GetContainerInfo(vm_name_, container_name_);
     if (vm_name_ == kCrostiniDefaultVmName &&
         container_name_ == kCrostiniDefaultContainerName && info &&
@@ -672,6 +677,51 @@
   base::UmaHistogramEnumeration("Crostini.ContainerOsVersion", version);
 }
 
+void CrostiniManager::ConfigureForArcSideload() {
+  chromeos::SessionManagerClient* session_manager_client =
+      chromeos::SessionManagerClient::Get();
+  if (!base::FeatureList::IsEnabled(features::kCrostiniArcSideload) ||
+      !session_manager_client)
+    return;
+  session_manager_client->QueryAdbSideload(base::BindOnce(
+      // We use a lambda to keep the arc sideloading implementation local, and
+      // avoid header pollution. This means we have to manually check the weak
+      // pointer is alive.
+      [](base::WeakPtr<CrostiniManager> manager,
+         chromeos::SessionManagerClient::AdbSideloadResponseCode response_code,
+         bool is_allowed) {
+        if (!manager || !is_allowed ||
+            response_code != chromeos::SessionManagerClient::
+                                 AdbSideloadResponseCode::SUCCESS) {
+          return;
+        }
+        vm_tools::cicerone::ConfigureForArcSideloadRequest request;
+        request.set_owner_id(manager->owner_id_);
+        request.set_vm_name(std::move(kCrostiniDefaultVmName));
+        request.set_container_name(std::move(kCrostiniDefaultContainerName));
+        GetCiceroneClient()->ConfigureForArcSideload(
+            request,
+            base::BindOnce(
+                [](base::Optional<
+                    vm_tools::cicerone::ConfigureForArcSideloadResponse>
+                       response) {
+                  if (!response) {
+                    LOG(ERROR) << "Failed to configure for arc sideloading: no "
+                                  "response from vm";
+                    return;
+                  }
+                  if (response->status() ==
+                      vm_tools::cicerone::ConfigureForArcSideloadResponse::
+                          SUCCEEDED) {
+                    return;
+                  }
+                  LOG(ERROR) << "Failed to configure for arc sideloading: "
+                             << response->failure_reason();
+                }));
+      },
+      weak_ptr_factory_.GetWeakPtr()));
+}
+
 const vm_tools::cicerone::OsRelease* CrostiniManager::GetContainerOsRelease(
     std::string vm_name,
     std::string container_name) {
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.h b/chrome/browser/chromeos/crostini/crostini_manager.h
index db53121..5df5f9c 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.h
+++ b/chrome/browser/chromeos/crostini/crostini_manager.h
@@ -784,6 +784,9 @@
   void EmitContainerVersionMetric(
       const vm_tools::cicerone::OsRelease& os_release);
 
+  // Configure the container so that it can sideload apps into Arc++.
+  void ConfigureForArcSideload();
+
   Profile* profile_;
   std::string owner_id_;
 
diff --git a/chrome/browser/chromeos/crostini/crostini_manager_unittest.cc b/chrome/browser/chromeos/crostini/crostini_manager_unittest.cc
index 98f8a29..9b3018e 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager_unittest.cc
+++ b/chrome/browser/chromeos/crostini/crostini_manager_unittest.cc
@@ -29,6 +29,7 @@
 #include "chromeos/dbus/fake_anomaly_detector_client.h"
 #include "chromeos/dbus/fake_cicerone_client.h"
 #include "chromeos/dbus/fake_concierge_client.h"
+#include "chromeos/dbus/session_manager/fake_session_manager_client.h"
 #include "chromeos/disks/mock_disk_mount_manager.h"
 #include "components/account_id/account_id.h"
 #include "components/user_manager/scoped_user_manager.h"
@@ -157,7 +158,8 @@
   ~CrostiniManagerTest() override { chromeos::DBusThreadManager::Shutdown(); }
 
   void SetUp() override {
-    scoped_feature_list_.InitWithFeatures({features::kCrostini}, {});
+    scoped_feature_list_.InitWithFeatures(
+        {features::kCrostini, features::kCrostiniArcSideload}, {});
     run_loop_ = std::make_unique<base::RunLoop>();
     profile_ = std::make_unique<TestingProfile>();
     crostini_manager_ = CrostiniManager::GetForProfile(profile_.get());
@@ -1257,6 +1259,44 @@
   EXPECT_EQ(1, restart_crostini_callback_count_);
 }
 
+TEST_F(CrostiniManagerRestartTest, RestartTriggersArcSideloadIfEnabled) {
+  chromeos::SessionManagerClient::InitializeFake();
+  chromeos::FakeSessionManagerClient::Get()->set_adb_sideload_enabled(true);
+
+  vm_tools::cicerone::ConfigureForArcSideloadResponse fake_response;
+  fake_response.set_status(
+      vm_tools::cicerone::ConfigureForArcSideloadResponse::SUCCEEDED);
+  fake_cicerone_client_->set_enable_arc_sideload_response(fake_response);
+
+  restart_id_ = crostini_manager()->RestartCrostini(
+      kVmName, kContainerName,
+      base::BindOnce(&CrostiniManagerRestartTest::RestartCrostiniCallback,
+                     base::Unretained(this), run_loop()->QuitClosure()),
+      this);
+  run_loop()->RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
+  EXPECT_TRUE(fake_cicerone_client_->configure_for_arc_sideload_called());
+}
+
+TEST_F(CrostiniManagerRestartTest, RestartDoesNotTriggerArcSideloadIfDisabled) {
+  chromeos::SessionManagerClient::InitializeFake();
+  chromeos::FakeSessionManagerClient::Get()->set_adb_sideload_enabled(false);
+
+  vm_tools::cicerone::ConfigureForArcSideloadResponse fake_response;
+  fake_response.set_status(
+      vm_tools::cicerone::ConfigureForArcSideloadResponse::SUCCEEDED);
+  fake_cicerone_client_->set_enable_arc_sideload_response(fake_response);
+
+  restart_id_ = crostini_manager()->RestartCrostini(
+      kVmName, kContainerName,
+      base::BindOnce(&CrostiniManagerRestartTest::RestartCrostiniCallback,
+                     base::Unretained(this), run_loop()->QuitClosure()),
+      this);
+  run_loop()->RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(fake_cicerone_client_->configure_for_arc_sideload_called());
+}
+
 class CrostiniManagerEnterpriseReportingTest
     : public CrostiniManagerRestartTest {
  public:
diff --git a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
index 4e457fa..d9c05f3f 100644
--- a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
@@ -3172,6 +3172,9 @@
         ash::DesksHelper::Get()->BelongsToActiveDesk(window);
     window_info.is_active = wm::IsActiveWindow(window);
     window_info.has_capture = window->HasCapture();
+    window_info.can_resize =
+        (window->GetProperty(aura::client::kResizeBehaviorKey) &
+         aura::client::kResizeBehaviorCanResize) != 0;
 
     if (window->GetProperty(aura::client::kAppType) ==
         static_cast<int>(ash::AppType::ARC_APP)) {
diff --git a/chrome/browser/chromeos/kerberos/OWNERS b/chrome/browser/chromeos/kerberos/OWNERS
index 93fe1bd..be79187 100644
--- a/chrome/browser/chromeos/kerberos/OWNERS
+++ b/chrome/browser/chromeos/kerberos/OWNERS
@@ -2,8 +2,12 @@
 # structural changes, use usual OWNERS rules.
 per-file BUILD.gn=*
 
+# Current owners (prefer)
 fsandrade@chromium.org
-ljusten@chromium.org
 tomdobro@chromium.org
 
+# Previous owners (ask if current owners are not available)
+# Commented out so automatic tools don't prefer.
+# ljusten@chromium.org
+
 # COMPONENT: Enterprise>ActiveDirectory
diff --git a/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc b/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc
index a1f1b6b..f0e32409 100644
--- a/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc
+++ b/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc
@@ -47,11 +47,9 @@
 }
 
 GURL TerminalExtensionHelper::GetCroshURL(Profile* profile) {
-  // chrome://terminal by default.
-  GURL url(chrome::kChromeUITerminalURL);
+  GURL url;
   const extensions::Extension* extension = GetTerminalExtension(profile);
-  // Allow nassh-dev or nassh to override, but not crosh-buitin.
-  if (extension && extension->id() != extension_misc::kCroshBuiltinAppId) {
+  if (extension) {
     url = extension->GetResourceURL(kCroshExtensionEntryPoint);
   }
   return url;
diff --git a/chrome/browser/extensions/api/terminal/terminal_extension_helper.h b/chrome/browser/extensions/api/terminal/terminal_extension_helper.h
index a17094a..06c6d20 100644
--- a/chrome/browser/extensions/api/terminal/terminal_extension_helper.h
+++ b/chrome/browser/extensions/api/terminal/terminal_extension_helper.h
@@ -23,8 +23,8 @@
   // 3. crosh builtin: nkoccljplnhpfnfiajclkommnmllphnl
   static const Extension* GetTerminalExtension(Profile* profile);
 
-  // Returns crosh URL.  chrome://terminal is used by default, but it can
-  // be overridden by nassh-dev or nassh.
+  // Returns crosh URL.  TODO(crbug.com/1022250) Use chrome://terminal
+  // when terminalPrivate is supported for webui to allow gzipped resources.
   static GURL GetCroshURL(Profile* profile);
 };
 
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 5507a72..58cc5862 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2134,21 +2134,6 @@
     "expiry_milestone": 81
   },
   {
-    "name": "enable-webrtc-hw-h264-encoding",
-    "owners": [ "hiroh", "chromeos-video-eng@google.com" ],
-    "expiry_milestone": 76
-  },
-  {
-    "name": "enable-webrtc-hw-vp8-encoding",
-    "owners": [ "hiroh", "chromeos-video-eng@google.com" ],
-    "expiry_milestone": 76
-  },
-  {
-    "name": "enable-webrtc-hw-vp9-encoding",
-    "owners": [ "hiroh", "chromeos-video-eng@google.com" ],
-    "expiry_milestone": 76
-  },
-  {
     "name": "enable-webrtc-hybrid-agc",
     "owners": [ "aleloi" ],
     "expiry_milestone": 83
diff --git a/chrome/browser/interstitials/chrome_metrics_helper.cc b/chrome/browser/interstitials/chrome_metrics_helper.cc
index 7b00fc3..35046b6 100644
--- a/chrome/browser/interstitials/chrome_metrics_helper.cc
+++ b/chrome/browser/interstitials/chrome_metrics_helper.cc
@@ -7,7 +7,7 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/common/buildflags.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/history/core/browser/history_service.h"
 #include "content/public/browser/web_contents.h"
 
diff --git a/chrome/browser/interstitials/chrome_metrics_helper.h b/chrome/browser/interstitials/chrome_metrics_helper.h
index f51fd64e..e53ec42 100644
--- a/chrome/browser/interstitials/chrome_metrics_helper.h
+++ b/chrome/browser/interstitials/chrome_metrics_helper.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "base/macros.h"
-#include "chrome/common/buildflags.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/security_interstitials/core/metrics_helper.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc
index 8d13efb..d2e8d71 100644
--- a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc
+++ b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc
@@ -115,11 +115,6 @@
           receiver_connection_receiver);
   void RemovePresentation(const std::string& presentation_id);
 
-  const base::small_map<std::map<std::string, MediaRoute>>&
-  presentation_id_to_route() const {
-    return presentation_id_to_route_;
-  }
-
  private:
   base::small_map<std::map<std::string, MediaRoute>> presentation_id_to_route_;
   base::small_map<
@@ -507,7 +502,8 @@
     const MediaRoute& route) {
   auto* presentation_frame = GetOrAddPresentationFrame(render_frame_host_id);
   presentation_frame->AddPresentation(presentation_info, route);
-  NotifyMediaRoutesChanged();
+  // TODO(crbug.com/1031672): Notify WebContentsPresentationManager::Observer
+  // that the presentation routes have changed for the WebContents.
 }
 
 void PresentationServiceDelegateImpl::RemovePresentation(
@@ -516,7 +512,8 @@
   const auto it = presentation_frames_.find(render_frame_host_id);
   if (it != presentation_frames_.end())
     it->second->RemovePresentation(presentation_id);
-  NotifyMediaRoutesChanged();
+  // TODO(crbug.com/1031672): Notify WebContentsPresentationManager::Observer
+  // that the presentation routes have changed for the WebContents.
 }
 
 void PresentationServiceDelegateImpl::StartPresentation(
@@ -541,8 +538,7 @@
       request,
       base::BindOnce(
           &PresentationServiceDelegateImpl::OnStartPresentationSucceeded,
-          weak_factory_.GetWeakPtr(), render_frame_host_id,
-          std::move(success_cb)),
+          GetWeakPtr(), render_frame_host_id, std::move(success_cb)),
       std::move(error_cb));
   if (start_presentation_cb_) {
     start_presentation_cb_.Run(std::move(presentation_context));
@@ -613,8 +609,8 @@
         MediaSource::ForPresentationUrl(presentation_url).id(), presentation_id,
         request.frame_origin, web_contents_,
         base::BindOnce(&PresentationServiceDelegateImpl::OnJoinRouteResponse,
-                       weak_factory_.GetWeakPtr(), render_frame_host_id,
-                       presentation_url, presentation_id, std::move(success_cb),
+                       GetWeakPtr(), render_frame_host_id, presentation_url,
+                       presentation_id, std::move(success_cb),
                        std::move(error_cb)),
         base::TimeDelta(), incognito);
   }
@@ -722,7 +718,7 @@
   }
 }
 
-base::WeakPtr<WebContentsPresentationManager>
+base::WeakPtr<PresentationServiceDelegateImpl>
 PresentationServiceDelegateImpl::GetWeakPtr() {
   return weak_factory_.GetWeakPtr();
 }
@@ -806,20 +802,10 @@
 
 void PresentationServiceDelegateImpl::NotifyDefaultPresentationChanged(
     const content::PresentationRequest* request) {
-  for (auto& presentation_observer : presentation_observers_)
+  for (WebContentsPresentationManager::Observer& presentation_observer :
+       presentation_observers_) {
     presentation_observer.OnDefaultPresentationChanged(request);
-}
-
-void PresentationServiceDelegateImpl::NotifyMediaRoutesChanged() {
-  std::vector<MediaRoute> routes;
-  for (const auto& presentation_frame : presentation_frames_) {
-    for (const auto& route :
-         presentation_frame.second->presentation_id_to_route()) {
-      routes.push_back(route.second);
-    }
   }
-  for (auto& presentation_observer : presentation_observers_)
-    presentation_observer.OnMediaRoutesChanged(routes);
 }
 
 WEB_CONTENTS_USER_DATA_KEY_IMPL(PresentationServiceDelegateImpl)
diff --git a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h
index 33579ad..a183bb0 100644
--- a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h
+++ b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h
@@ -158,7 +158,8 @@
   void OnPresentationResponse(const content::PresentationRequest& request,
                               mojom::RoutePresentationConnectionPtr connection,
                               const RouteRequestResult& result) override;
-  base::WeakPtr<WebContentsPresentationManager> GetWeakPtr() override;
+
+  base::WeakPtr<PresentationServiceDelegateImpl> GetWeakPtr();
 
   // Returns the WebContents that owns this instance.
   content::WebContents* web_contents() const { return web_contents_; }
@@ -253,7 +254,6 @@
 
   void NotifyDefaultPresentationChanged(
       const content::PresentationRequest* request);
-  void NotifyMediaRoutesChanged();
 
   // References to the WebContents that owns this instance, and associated
   // browser profile's MediaRouter instance.
@@ -261,7 +261,7 @@
   MediaRouter* router_;
 
   // References to the observers listening for changes to the default
-  // presentation and presentation MediaRoutes associated with the WebContents.
+  // presentation of the associated WebContents.
   base::ObserverList<WebContentsPresentationManager::Observer>
       presentation_observers_;
 
diff --git a/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc b/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc
index cd46837b..b3cbe43 100644
--- a/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc
+++ b/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc
@@ -393,7 +393,8 @@
   RunDefaultPresentationUrlCallbackTest(true);
 }
 
-TEST_F(PresentationServiceDelegateImplTest, NotifyDefaultPresentationChanged) {
+TEST_F(PresentationServiceDelegateImplTest,
+       NotifyWebContentsPresentationObservers) {
   auto callback = base::BindRepeating(
       &PresentationServiceDelegateImplTest::OnDefaultPresentationStarted,
       base::Unretained(this));
@@ -430,28 +431,6 @@
                                              callback);
 }
 
-TEST_F(PresentationServiceDelegateImplTest, NotifyMediaRoutesChanged) {
-  const int render_process_id = 100;
-  const int render_frame_id = 200;
-  content::PresentationRequest request(
-      content::GlobalFrameRoutingId(render_process_id, render_frame_id),
-      {presentation_url1_}, frame_origin_);
-  MediaRoute media_route("differentRouteId", source1_, "mediaSinkId", "", true,
-                         true);
-  std::unique_ptr<RouteRequestResult> result =
-      RouteRequestResult::FromSuccess(media_route, kPresentationId);
-  StrictMock<MockWebContentsPresentationObserver> observer(GetWebContents());
-
-  EXPECT_CALL(observer,
-              OnMediaRoutesChanged(std::vector<MediaRoute>({media_route})));
-  delegate_impl_->OnPresentationResponse(request,
-                                         /** connection */ nullptr, *result);
-
-  EXPECT_CALL(observer, OnMediaRoutesChanged(std::vector<MediaRoute>()));
-  delegate_impl_->Terminate(render_process_id, render_frame_id,
-                            kPresentationId);
-}
-
 TEST_F(PresentationServiceDelegateImplTest, ListenForConnnectionStateChange) {
   content::WebContentsTester::For(GetWebContents())
       ->NavigateAndCommit(frame_url_);
diff --git a/chrome/browser/media/router/presentation/web_contents_presentation_manager.cc b/chrome/browser/media/router/presentation/web_contents_presentation_manager.cc
index c0a761c..17d69184 100644
--- a/chrome/browser/media/router/presentation/web_contents_presentation_manager.cc
+++ b/chrome/browser/media/router/presentation/web_contents_presentation_manager.cc
@@ -8,27 +8,14 @@
 
 namespace media_router {
 
-namespace {
-WebContentsPresentationManager* g_test_instance = nullptr;
-}  // namespace
-
 // static
 base::WeakPtr<WebContentsPresentationManager>
 WebContentsPresentationManager::Get(content::WebContents* web_contents) {
-  if (g_test_instance)
-    return g_test_instance->GetWeakPtr();
-
   return PresentationServiceDelegateImpl::GetOrCreateForWebContents(
              web_contents)
       ->GetWeakPtr();
 }
 
-// static
-void WebContentsPresentationManager::SetTestInstance(
-    WebContentsPresentationManager* test_instance) {
-  g_test_instance = test_instance;
-}
-
 WebContentsPresentationManager::~WebContentsPresentationManager() = default;
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/presentation/web_contents_presentation_manager.h b/chrome/browser/media/router/presentation/web_contents_presentation_manager.h
index ba3861fa..d3158a166 100644
--- a/chrome/browser/media/router/presentation/web_contents_presentation_manager.h
+++ b/chrome/browser/media/router/presentation/web_contents_presentation_manager.h
@@ -46,10 +46,6 @@
   static base::WeakPtr<WebContentsPresentationManager> Get(
       content::WebContents* web_contents);
 
-  // Sets the instance to be returned by Get(). If this is set, Get() ignores
-  // the |web_contents| argument.
-  static void SetTestInstance(WebContentsPresentationManager* test_instance);
-
   virtual ~WebContentsPresentationManager() = 0;
 
   virtual void AddObserver(Observer* observer) = 0;
@@ -72,8 +68,6 @@
       mojom::RoutePresentationConnectionPtr connection,
       const RouteRequestResult& result) = 0;
 
-  virtual base::WeakPtr<WebContentsPresentationManager> GetWeakPtr() = 0;
-
  protected:
   WebContentsPresentationManager() = default;
 };
diff --git a/chrome/browser/metrics/process_memory_metrics_emitter.cc b/chrome/browser/metrics/process_memory_metrics_emitter.cc
index fa03a7e..8d4984d 100644
--- a/chrome/browser/metrics/process_memory_metrics_emitter.cc
+++ b/chrome/browser/metrics/process_memory_metrics_emitter.cc
@@ -61,6 +61,7 @@
 
 enum class EmitTo {
   kCountsInUkmOnly,
+  kCountsInUkmAndSizeInUma,
   kSizeInUkmAndUma,
   kSizeInUmaOnly,
   kIgnored
@@ -88,25 +89,54 @@
     {"blink_gc", "BlinkGC.AllocatedObjects", MetricSize::kLarge,
      kAllocatedObjectsSize, EmitTo::kSizeInUkmAndUma,
      &Memory_Experimental::SetBlinkGC_AllocatedObjects},
-    {"blink_objects/Document", "NumberOfDocuments", MetricSize::kSmall,
-     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmOnly,
+    {"blink_objects/Document", "NumberOfDocuments", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmAndSizeInUma,
      &Memory_Experimental::SetNumberOfDocuments},
-    {"blink_objects/AdSubframe", "NumberOfAdSubframes", MetricSize::kSmall,
-     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmOnly,
+    {"blink_objects/AdSubframe", "NumberOfAdSubframes", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmAndSizeInUma,
      &Memory_Experimental::SetNumberOfAdSubframes},
     {"blink_objects/DetachedScriptState", "NumberOfDetachedScriptStates",
-     MetricSize::kSmall, MemoryAllocatorDump::kNameObjectCount,
-     EmitTo::kCountsInUkmOnly,
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kCountsInUkmAndSizeInUma,
      &Memory_Experimental::SetNumberOfDetachedScriptStates},
-    {"blink_objects/Frame", "NumberOfFrames", MetricSize::kSmall,
-     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmOnly,
+    {"blink_objects/Frame", "NumberOfFrames", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmAndSizeInUma,
      &Memory_Experimental::SetNumberOfFrames},
-    {"blink_objects/LayoutObject", "NumberOfLayoutObjects", MetricSize::kSmall,
-     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmOnly,
+    {"blink_objects/LayoutObject", "NumberOfLayoutObjects", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmAndSizeInUma,
      &Memory_Experimental::SetNumberOfLayoutObjects},
     {"blink_objects/Node", "NumberOfNodes", MetricSize::kSmall,
-     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmOnly,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kCountsInUkmAndSizeInUma,
      &Memory_Experimental::SetNumberOfNodes},
+    {"blink_objects/AudioHandler", "NumberOfAudioHandler", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/JSEventListener", "NumberOfJSEventListener",
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/MediaKeySession", "NumberOfMediaKeySession",
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/MediaKeys", "NumberOfMediaKeys", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/Resource", "NumberOfResources", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/ContextLifecycleStateObserver",
+     "NumberOfContextLifecycleStateObserver", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/V8PerContextData", "NumberOfV8PerContextData",
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/WorkerGlobalScope", "NumberOfWorkerGlobalScope",
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/UACSSResource", "NumberOfUACSSResource", MetricSize::kTiny,
+     MemoryAllocatorDump::kNameObjectCount, EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/RTCPeerConnection", "NumberOfRTCPeerConnection",
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kSizeInUmaOnly, nullptr},
+    {"blink_objects/ResourceFetcher", "NumberOfResourceFetcher",
+     MetricSize::kTiny, MemoryAllocatorDump::kNameObjectCount,
+     EmitTo::kSizeInUmaOnly, nullptr},
     {"components/download", "DownloadService", MetricSize::kSmall,
      kEffectiveSize, EmitTo::kSizeInUkmAndUma,
      &Memory_Experimental::SetDownloadService},
@@ -379,6 +409,11 @@
       case EmitTo::kCountsInUkmOnly:
         EmitProcessUkm(item, value.value(), builder);
         break;
+      case EmitTo::kCountsInUkmAndSizeInUma:
+        EmitProcessUkm(item, value.value(), builder);
+        if (record_uma)
+          EmitProcessUma(process_type, item, value.value());
+        break;
       case EmitTo::kSizeInUmaOnly:
         if (record_uma)
           EmitProcessUma(process_type, item, value.value());
diff --git a/chrome/browser/policy/policy_conversions.h b/chrome/browser/policy/policy_conversions.h
index 74ea828..bb46686 100644
--- a/chrome/browser/policy/policy_conversions.h
+++ b/chrome/browser/policy/policy_conversions.h
@@ -9,10 +9,10 @@
 #include <string>
 
 #include "base/values.h"
-#include "chrome/browser/ui/webui/webui_util.h"
 #include "components/policy/core/common/policy_map.h"
 #include "components/policy/core/common/policy_namespace.h"
 #include "components/policy/core/common/policy_types.h"
+#include "ui/base/webui/web_ui_util.h"
 
 class Profile;
 
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
index c136190..a5a90780 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -86,6 +86,7 @@
 #include "chrome/browser/unified_consent/unified_consent_service_factory.h"
 #include "chrome/browser/web_data_service_factory.h"
 #include "chrome/common/buildflags.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/feature_engagement/buildflags.h"
 #include "components/safe_browsing/buildflags.h"
 #include "components/spellcheck/spellcheck_buildflags.h"
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index 25bf80e36..fb4a7ee 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -420,6 +420,7 @@
     "$root_gen_dir/components/sync_driver_resources.pak",
     "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
     "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
   ]
   deps = [
     "//chrome/browser:dev_ui_browser_resources",
@@ -432,6 +433,7 @@
     "//chrome/browser/resources/usb_internals:resources",
     "//components/resources:dev_ui_components_resources",
     "//components/sync/driver:resources",
+    "//content:dev_ui_content_resources",
     "//content/browser/resources/media:media_internals_resources",
     "//content/browser/webrtc/resources",
   ]
diff --git a/chrome/browser/resources/chromeos/BUILD.gn b/chrome/browser/resources/chromeos/BUILD.gn
index dfae197..697ea61 100644
--- a/chrome/browser/resources/chromeos/BUILD.gn
+++ b/chrome/browser/resources/chromeos/BUILD.gn
@@ -46,7 +46,10 @@
   ]
   output_dir = "$root_gen_dir/chrome"
 
-  deps = [ "//media/capture/video/chromeos/mojom:cros_camera_js" ]
+  deps = [
+    "//components/arc/mojom:camera_intent_js",
+    "//media/capture/video/chromeos/mojom:cros_camera_js",
+  ]
 
   # The .grd contains references to generated files.
   source_is_generated = true
diff --git a/chrome/browser/ssl/blocked_interception_blocking_page.cc b/chrome/browser/ssl/blocked_interception_blocking_page.cc
index a4a59c254..735f61c 100644
--- a/chrome/browser/ssl/blocked_interception_blocking_page.cc
+++ b/chrome/browser/ssl/blocked_interception_blocking_page.cc
@@ -4,10 +4,8 @@
 
 #include "chrome/browser/ssl/blocked_interception_blocking_page.h"
 
-#include "chrome/browser/interstitials/chrome_metrics_helper.h"
-#include "chrome/browser/ssl/chrome_security_blocking_page_factory.h"
-#include "chrome/browser/ssl/ssl_error_controller_client.h"
 #include "components/security_interstitials/content/cert_report_helper.h"
+#include "components/security_interstitials/content/security_interstitial_controller_client.h"
 #include "components/security_interstitials/content/ssl_cert_reporter.h"
 #include "components/security_interstitials/core/metrics_helper.h"
 #include "content/public/browser/interstitial_page.h"
@@ -32,21 +30,6 @@
 
 namespace {
 
-const char kBlockedInterceptionMetricsName[] = "blocked_interception";
-
-std::unique_ptr<ChromeMetricsHelper> CreateBlockedInterceptionMetricsHelper(
-    content::WebContents* web_contents,
-    const GURL& request_url) {
-  // Set up the metrics helper for the BlockedInterceptionUI.
-  security_interstitials::MetricsHelper::ReportDetails reporting_info;
-  reporting_info.metric_prefix = kBlockedInterceptionMetricsName;
-  std::unique_ptr<ChromeMetricsHelper> metrics_helper =
-      std::make_unique<ChromeMetricsHelper>(web_contents, request_url,
-                                            reporting_info);
-  metrics_helper.get()->StartRecordingCaptivePortalMetrics(false);
-  return metrics_helper;
-}
-
 }  // namespace
 
 // Note that we always create a navigation entry with SSL errors.
@@ -58,7 +41,10 @@
     int cert_error,
     const GURL& request_url,
     std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
-    const net::SSLInfo& ssl_info)
+    const net::SSLInfo& ssl_info,
+    std::unique_ptr<
+        security_interstitials::SecurityInterstitialControllerClient>
+        controller_client)
     : SSLBlockingPageBase(
           web_contents,
           CertificateErrorReport::INTERSTITIAL_BLOCKED_INTERCEPTION,
@@ -67,21 +53,13 @@
           std::move(ssl_cert_reporter),
           true /* overridable */,
           base::Time::Now(),
-          std::make_unique<SSLErrorControllerClient>(
-              web_contents,
-              ssl_info,
-              cert_error,
-              request_url,
-              CreateBlockedInterceptionMetricsHelper(web_contents,
-                                                     request_url))),
+          std::move(controller_client)),
       ssl_info_(ssl_info),
       blocked_interception_ui_(
           new security_interstitials::BlockedInterceptionUI(request_url,
                                                             cert_error,
                                                             ssl_info,
-                                                            controller())) {
-  ChromeSecurityBlockingPageFactory::DoChromeSpecificSetup(this);
-}
+                                                            controller())) {}
 
 BlockedInterceptionBlockingPage::~BlockedInterceptionBlockingPage() = default;
 
diff --git a/chrome/browser/ssl/blocked_interception_blocking_page.h b/chrome/browser/ssl/blocked_interception_blocking_page.h
index 05e143e..d9d4160 100644
--- a/chrome/browser/ssl/blocked_interception_blocking_page.h
+++ b/chrome/browser/ssl/blocked_interception_blocking_page.h
@@ -21,7 +21,10 @@
       int cert_error,
       const GURL& request_url,
       std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
-      const net::SSLInfo& ssl_info);
+      const net::SSLInfo& ssl_info,
+      std::unique_ptr<
+          security_interstitials::SecurityInterstitialControllerClient>
+          controller_client);
   ~BlockedInterceptionBlockingPage() override;
 
   // InterstitialPageDelegate method:
diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc
index 178ab7fe..695a4d23 100644
--- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc
+++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc
@@ -112,6 +112,19 @@
   return metrics_helper;
 }
 
+std::unique_ptr<ChromeMetricsHelper> CreateBlockedInterceptionMetricsHelper(
+    content::WebContents* web_contents,
+    const GURL& request_url) {
+  // Set up the metrics helper for the BlockedInterceptionUI.
+  security_interstitials::MetricsHelper::ReportDetails reporting_info;
+  reporting_info.metric_prefix = "blocked_interception";
+  std::unique_ptr<ChromeMetricsHelper> metrics_helper =
+      std::make_unique<ChromeMetricsHelper>(web_contents, request_url,
+                                            reporting_info);
+  metrics_helper.get()->StartRecordingCaptivePortalMetrics(false);
+  return metrics_helper;
+}
+
 }  // namespace
 
 // static
@@ -241,6 +254,25 @@
 }
 
 // static
+BlockedInterceptionBlockingPage*
+ChromeSecurityBlockingPageFactory::CreateBlockedInterceptionBlockingPage(
+    content::WebContents* web_contents,
+    int cert_error,
+    const GURL& request_url,
+    std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+    const net::SSLInfo& ssl_info) {
+  auto page = std::make_unique<BlockedInterceptionBlockingPage>(
+      web_contents, cert_error, request_url, std::move(ssl_cert_reporter),
+      ssl_info,
+      std::make_unique<SSLErrorControllerClient>(
+          web_contents, ssl_info, cert_error, request_url,
+          CreateBlockedInterceptionMetricsHelper(web_contents, request_url)));
+
+  ChromeSecurityBlockingPageFactory::DoChromeSpecificSetup(page.get());
+  return page.release();
+}
+
+// static
 void ChromeSecurityBlockingPageFactory::DoChromeSpecificSetup(
     SSLBlockingPageBase* page) {
   page->set_renderer_pref_callback(
diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.h b/chrome/browser/ssl/chrome_security_blocking_page_factory.h
index 6fec88e..4ac10a3b 100644
--- a/chrome/browser/ssl/chrome_security_blocking_page_factory.h
+++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_SSL_CHROME_SECURITY_BLOCKING_PAGE_FACTORY_H_
 
 #include "base/macros.h"
+#include "chrome/browser/ssl/blocked_interception_blocking_page.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/mitm_software_blocking_page.h"
@@ -61,6 +62,15 @@
       const std::string& mitm_software_name,
       bool is_enterprise_managed);
 
+  // Creates a blocked interception blocking page. The caller is
+  // responsible for ownership of the returned object.
+  static BlockedInterceptionBlockingPage* CreateBlockedInterceptionBlockingPage(
+      content::WebContents* web_contents,
+      int cert_error,
+      const GURL& request_url,
+      std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+      const net::SSLInfo& ssl_info);
+
   // Does setup on |page| that is specific to the client (Chrome).
   static void DoChromeSpecificSetup(SSLBlockingPageBase* page);
 
diff --git a/chrome/browser/ssl/ssl_error_handler.cc b/chrome/browser/ssl/ssl_error_handler.cc
index 9e3d3391..f576a48 100644
--- a/chrome/browser/ssl/ssl_error_handler.cc
+++ b/chrome/browser/ssl/ssl_error_handler.cc
@@ -30,8 +30,8 @@
 #include "chrome/browser/ssl/captive_portal_helper.h"
 #include "chrome/browser/ssl/chrome_security_blocking_page_factory.h"
 #include "chrome/browser/ssl/ssl_error_assistant.h"
-#include "chrome/common/buildflags.h"
 #include "chrome/common/pref_names.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/network_time/network_time_tracker.h"
 #include "components/prefs/pref_service.h"
 #include "components/security_interstitials/content/bad_clock_blocking_page.h"
@@ -186,7 +186,6 @@
   base::TimeDelta interstitial_delay() const;
   SSLErrorHandler::TimerStartedCallback* timer_started_callback() const;
   base::Clock* clock() const;
-  network_time::NetworkTimeTracker* network_time_tracker() const;
 
   bool IsKnownCaptivePortalCertificate(const net::SSLInfo& ssl_info);
 
@@ -208,8 +207,6 @@
   void SetTimerStartedCallbackForTesting(
       SSLErrorHandler::TimerStartedCallback* callback);
   void SetClockForTesting(base::Clock* clock);
-  void SetNetworkTimeTrackerForTesting(
-      network_time::NetworkTimeTracker* tracker);
   void SetReportNetworkConnectivityCallbackForTesting(
       base::OnceClosure callback);
 
@@ -241,8 +238,6 @@
   // testing.
   base::Clock* testing_clock_ = nullptr;
 
-  network_time::NetworkTimeTracker* network_time_tracker_ = nullptr;
-
   base::OnceClosure report_network_connectivity_callback_;
 
   enum EnterpriseManaged {
@@ -278,12 +273,6 @@
   return timer_started_callback_;
 }
 
-network_time::NetworkTimeTracker* ConfigSingleton::network_time_tracker()
-    const {
-  return network_time_tracker_ ? network_time_tracker_
-                               : g_browser_process->network_time_tracker();
-}
-
 base::Clock* ConfigSingleton::clock() const {
   return testing_clock_;
 }
@@ -292,7 +281,6 @@
   interstitial_delay_ =
       base::TimeDelta::FromMilliseconds(kInterstitialDelayInMilliseconds);
   timer_started_callback_ = nullptr;
-  network_time_tracker_ = nullptr;
   testing_clock_ = nullptr;
   ssl_error_assistant_->ResetForTesting();
   is_enterprise_managed_for_testing_ = ENTERPRISE_MANAGED_STATUS_NOT_SET;
@@ -314,11 +302,6 @@
   testing_clock_ = clock;
 }
 
-void ConfigSingleton::SetNetworkTimeTrackerForTesting(
-    network_time::NetworkTimeTracker* tracker) {
-  network_time_tracker_ = tracker;
-}
-
 void ConfigSingleton::SetReportNetworkConnectivityCallbackForTesting(
     base::OnceClosure closure) {
   report_network_connectivity_callback_ = std::move(closure);
@@ -553,9 +536,10 @@
 
 void SSLErrorHandlerDelegateImpl::ShowBlockedInterceptionInterstitial() {
   // Show interception blocking page. The interstitial owns the blocking page.
-  OnBlockingPageReady(new BlockedInterceptionBlockingPage(
-      web_contents_, cert_error_, request_url_, std::move(ssl_cert_reporter_),
-      ssl_info_));
+  OnBlockingPageReady(
+      ChromeSecurityBlockingPageFactory::CreateBlockedInterceptionBlockingPage(
+          web_contents_, cert_error_, request_url_,
+          std::move(ssl_cert_reporter_), ssl_info_));
 }
 
 void SSLErrorHandlerDelegateImpl::ReportNetworkConnectivity(
@@ -595,6 +579,7 @@
     const net::SSLInfo& ssl_info,
     const GURL& request_url,
     std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+    network_time::NetworkTimeTracker* network_time_tracker,
     base::OnceCallback<
         void(std::unique_ptr<security_interstitials::SecurityInterstitialPage>)>
         blocking_page_ready_callback) {
@@ -621,7 +606,8 @@
               web_contents, ssl_info, profile, cert_error, options_mask,
               request_url, std::move(ssl_cert_reporter),
               std::move(blocking_page_ready_callback))),
-      web_contents, profile, cert_error, ssl_info, request_url);
+      web_contents, profile, cert_error, ssl_info, network_time_tracker,
+      request_url);
   web_contents->SetUserData(UserDataKey(), base::WrapUnique(error_handler));
   error_handler->StartHandlingError();
 }
@@ -649,12 +635,6 @@
 }
 
 // static
-void SSLErrorHandler::SetNetworkTimeTrackerForTesting(
-    network_time::NetworkTimeTracker* tracker) {
-  g_config.Pointer()->SetNetworkTimeTrackerForTesting(tracker);
-}
-
-// static
 void SSLErrorHandler::SetReportNetworkConnectivityCallbackForTesting(
     base::OnceClosure closure) {
   g_config.Pointer()->SetReportNetworkConnectivityCallbackForTesting(
@@ -698,22 +678,24 @@
   g_config.Pointer()->SetErrorAssistantProto(std::move(config_proto));
 }
 
-SSLErrorHandler::SSLErrorHandler(std::unique_ptr<Delegate> delegate,
-                                 content::WebContents* web_contents,
-                                 Profile* profile,
-                                 int cert_error,
-                                 const net::SSLInfo& ssl_info,
-                                 const GURL& request_url)
+SSLErrorHandler::SSLErrorHandler(
+    std::unique_ptr<Delegate> delegate,
+    content::WebContents* web_contents,
+    Profile* profile,
+    int cert_error,
+    const net::SSLInfo& ssl_info,
+    network_time::NetworkTimeTracker* network_time_tracker,
+    const GURL& request_url)
     : content::WebContentsObserver(web_contents),
       delegate_(std::move(delegate)),
       web_contents_(web_contents),
       profile_(profile),
       cert_error_(cert_error),
       ssl_info_(ssl_info),
-      request_url_(request_url) {}
+      request_url_(request_url),
+      network_time_tracker_(network_time_tracker) {}
 
-SSLErrorHandler::~SSLErrorHandler() {
-}
+SSLErrorHandler::~SSLErrorHandler() = default;
 
 void SSLErrorHandler::StartHandlingError() {
   RecordUMA(HANDLE_ALL);
@@ -994,9 +976,7 @@
   // Pass a weak pointer as the callback; if the timer fires before the
   // fetch completes and shows an interstitial, this SSLErrorHandler
   // will be deleted.
-  network_time::NetworkTimeTracker* tracker =
-      g_config.Pointer()->network_time_tracker();
-  if (!tracker->StartTimeFetch(
+  if (!network_time_tracker_->StartTimeFetch(
           base::BindOnce(&SSLErrorHandler::HandleCertDateInvalidErrorImpl,
                          weak_ptr_factory_.GetWeakPtr(), now))) {
     HandleCertDateInvalidErrorImpl(now);
@@ -1020,9 +1000,8 @@
   const base::Time now =
       testing_clock ? testing_clock->Now() : base::Time::NowFromSystemTime();
 
-  network_time::NetworkTimeTracker* tracker =
-      g_config.Pointer()->network_time_tracker();
-  ssl_errors::ClockState clock_state = ssl_errors::GetClockState(now, tracker);
+  ssl_errors::ClockState clock_state =
+      ssl_errors::GetClockState(now, network_time_tracker_);
   if (clock_state == ssl_errors::CLOCK_STATE_FUTURE ||
       clock_state == ssl_errors::CLOCK_STATE_PAST) {
     ShowBadClockInterstitial(now, clock_state);
diff --git a/chrome/browser/ssl/ssl_error_handler.h b/chrome/browser/ssl/ssl_error_handler.h
index 6933e3ee..c4678153 100644
--- a/chrome/browser/ssl/ssl_error_handler.h
+++ b/chrome/browser/ssl/ssl_error_handler.h
@@ -139,6 +139,7 @@
       const net::SSLInfo& ssl_info,
       const GURL& request_url,
       std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+      network_time::NetworkTimeTracker* network_time_tracker,
       BlockingPageReadyCallback blocking_page_ready_callback);
 
   // Sets the binary proto for SSL error assistant. The binary proto
@@ -154,8 +155,6 @@
   static void SetInterstitialTimerStartedCallbackForTesting(
       TimerStartedCallback* callback);
   static void SetClockForTesting(base::Clock* testing_clock);
-  static void SetNetworkTimeTrackerForTesting(
-      network_time::NetworkTimeTracker* tracker);
   static void SetReportNetworkConnectivityCallbackForTesting(
       base::OnceClosure callback);
   static void SetEnterpriseManagedForTesting(bool enterprise_managed);
@@ -172,6 +171,7 @@
                   Profile* profile,
                   int cert_error,
                   const net::SSLInfo& ssl_info,
+                  network_time::NetworkTimeTracker* network_time_tracker,
                   const GURL& request_url);
 
   // Called when an SSL cert error is encountered. Triggers a captive portal
@@ -226,6 +226,7 @@
   const int cert_error_;
   const net::SSLInfo ssl_info_;
   const GURL request_url_;
+  network_time::NetworkTimeTracker* network_time_tracker_;
 
   content::NotificationRegistrar registrar_;
   base::OneShotTimer timer_;
diff --git a/chrome/browser/ssl/ssl_error_handler_unittest.cc b/chrome/browser/ssl/ssl_error_handler_unittest.cc
index a40114e8..c9f8133 100644
--- a/chrome/browser/ssl/ssl_error_handler_unittest.cc
+++ b/chrome/browser/ssl/ssl_error_handler_unittest.cc
@@ -23,9 +23,9 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ssl/ssl_error_assistant.h"
 #include "chrome/browser/ssl/ssl_error_handler.h"
-#include "chrome/common/buildflags.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "chrome/test/base/testing_profile.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/captive_portal/captive_portal_testing_utils.h"
 #include "components/network_time/network_time_test_utils.h"
 #include "components/network_time/network_time_tracker.h"
@@ -138,12 +138,14 @@
                       Profile* profile,
                       int cert_error,
                       const net::SSLInfo& ssl_info,
+                      network_time::NetworkTimeTracker* network_time_tracker,
                       const GURL& request_url)
       : SSLErrorHandler(std::move(delegate),
                         web_contents,
                         profile,
                         cert_error,
                         ssl_info,
+                        network_time_tracker,
                         request_url) {}
 
   using SSLErrorHandler::StartHandlingError;
@@ -329,7 +331,7 @@
     error_handler_.reset(new TestSSLErrorHandler(
         std::unique_ptr<SSLErrorHandler::Delegate>(delegate_), web_contents(),
         profile(), net::MapCertStatusToNetError(ssl_info_.cert_status),
-        ssl_info_, GURL() /*request_url*/));
+        ssl_info_, /*network_time_tracker=*/nullptr, GURL() /*request_url*/));
   }
 
   void TearDown() override {
@@ -591,7 +593,7 @@
     error_handler_.reset(new TestSSLErrorHandler(
         std::unique_ptr<SSLErrorHandler::Delegate>(delegate_), web_contents(),
         profile(), net::MapCertStatusToNetError(ssl_info_.cert_status),
-        ssl_info_, GURL() /*request_url*/));
+        ssl_info_, /*network_time_tracker=*/nullptr, GURL() /*request_url*/));
   }
 
   net::SSLInfo ssl_info_;
@@ -652,8 +654,7 @@
     error_handler_.reset(new TestSSLErrorHandler(
         std::unique_ptr<SSLErrorHandler::Delegate>(delegate_), web_contents(),
         profile(), net::MapCertStatusToNetError(ssl_info_.cert_status),
-        ssl_info_, GURL() /*request_url*/));
-    error_handler_->SetNetworkTimeTrackerForTesting(tracker_.get());
+        ssl_info_, tracker_.get(), GURL() /*request_url*/));
 
     // Fix flakiness in case system time is off and triggers a bad clock
     // interstitial. https://crbug.com/666821#c50
@@ -1549,7 +1550,7 @@
   TestSSLErrorHandler error_handler(
       std::move(delegate), web_contents(), profile(),
       net::MapCertStatusToNetError(ssl_info.cert_status), ssl_info,
-      GURL() /*request_url*/);
+      /*network_time_tracker=*/nullptr, GURL() /*request_url*/);
 
   base::HistogramTester histograms;
   delegate_ptr->set_has_blocked_interception();
diff --git a/chrome/browser/themes/browser_theme_pack.cc b/chrome/browser/themes/browser_theme_pack.cc
index 1cb2bdf..97c9ef1 100644
--- a/chrome/browser/themes/browser_theme_pack.cc
+++ b/chrome/browser/themes/browser_theme_pack.cc
@@ -953,7 +953,7 @@
   return false;
 }
 
-gfx::Image BrowserThemePack::GetImageNamed(int idr_id) {
+gfx::Image BrowserThemePack::GetImageNamed(int idr_id) const {
   int prs_id = GetPersistentIDByIDR(idr_id);
   if (prs_id == -1)
     return gfx::Image();
diff --git a/chrome/browser/themes/browser_theme_pack.h b/chrome/browser/themes/browser_theme_pack.h
index 752fba006..20b8078 100644
--- a/chrome/browser/themes/browser_theme_pack.h
+++ b/chrome/browser/themes/browser_theme_pack.h
@@ -94,7 +94,7 @@
   bool GetTint(int id, color_utils::HSL* hsl) const override;
   bool GetColor(int id, SkColor* color) const override;
   bool GetDisplayProperty(int id, int* result) const override;
-  gfx::Image GetImageNamed(int id) override;
+  gfx::Image GetImageNamed(int id) const override;
   base::RefCountedMemory* GetRawData(int id, ui::ScaleFactor scale_factor)
       const override;
   bool HasCustomImage(int id) const override;
@@ -330,9 +330,9 @@
   // needs to be in |image_memory_|.
   RawImages image_memory_;
 
-  // Loaded images. These are loaded from |image_memory_|, from |data_pack_|,
-  // and by BuildFromExtension().
-  ImageCache images_;
+  // Cached loaded images. These are loaded from |image_memory_|, from
+  // |data_pack_|, and by BuildFromExtension().
+  mutable ImageCache images_;
 
   // Cache of images created in BuildFromExtension(). Once the theme pack is
   // created, this cache should only be accessed on the file thread. There
diff --git a/chrome/browser/themes/custom_theme_supplier.cc b/chrome/browser/themes/custom_theme_supplier.cc
index a8ab011..b6ad35f 100644
--- a/chrome/browser/themes/custom_theme_supplier.cc
+++ b/chrome/browser/themes/custom_theme_supplier.cc
@@ -44,7 +44,7 @@
   return false;
 }
 
-gfx::Image CustomThemeSupplier::GetImageNamed(int id) {
+gfx::Image CustomThemeSupplier::GetImageNamed(int id) const {
   return gfx::Image();
 }
 
diff --git a/chrome/browser/themes/custom_theme_supplier.h b/chrome/browser/themes/custom_theme_supplier.h
index 7ad355e..5b5bf57 100644
--- a/chrome/browser/themes/custom_theme_supplier.h
+++ b/chrome/browser/themes/custom_theme_supplier.h
@@ -59,8 +59,7 @@
 
   // Returns the theme image for |id|. Returns an empty image if no image is
   // found for |id|.
-  // TODO(estade): Remove this function; it's not used in Material Design.
-  virtual gfx::Image GetImageNamed(int id);
+  virtual gfx::Image GetImageNamed(int id) const;
 
   // Returns the raw PNG encoded data for IDR_THEME_NTP_*. This method only
   // works for the NTP attribution and background resources.
diff --git a/chrome/browser/themes/theme_service_aura_linux.cc b/chrome/browser/themes/theme_service_aura_linux.cc
index 405cfa76..2a59550 100644
--- a/chrome/browser/themes/theme_service_aura_linux.cc
+++ b/chrome/browser/themes/theme_service_aura_linux.cc
@@ -26,7 +26,7 @@
   bool GetTint(int id, color_utils::HSL* hsl) const override;
   bool GetColor(int id, SkColor* color) const override;
   bool GetDisplayProperty(int id, int* result) const override;
-  gfx::Image GetImageNamed(int id) override;
+  gfx::Image GetImageNamed(int id) const override;
   bool HasCustomImage(int id) const override;
 
  private:
@@ -69,7 +69,7 @@
   return linux_ui_ && linux_ui_->GetDisplayProperty(id, result);
 }
 
-gfx::Image SystemThemeX11::GetImageNamed(int id) {
+gfx::Image SystemThemeX11::GetImageNamed(int id) const {
   return gfx::Image();
 }
 
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 4387f41..cb9568c 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -425,6 +425,7 @@
     "//components/browsing_data/content",
     "//components/browsing_data/core",
     "//components/bubble",
+    "//components/captive_portal:buildflags",
     "//components/consent_auditor/",
     "//components/content_settings/core/browser",
     "//components/crx_file",
diff --git a/chrome/browser/ui/app_list/search/drive_quick_access_provider.cc b/chrome/browser/ui/app_list/search/drive_quick_access_provider.cc
index 5d1e37d..0103da80 100644
--- a/chrome/browser/ui/app_list/search/drive_quick_access_provider.cc
+++ b/chrome/browser/ui/app_list/search/drive_quick_access_provider.cc
@@ -58,6 +58,15 @@
                         mounted);
 }
 
+// Given an absolute path representing a file in the user's Drive, returns a
+// reparented version of the path within the user's DriveFS mount.
+base::FilePath ReparentToDriveMount(
+    const base::FilePath& path,
+    const drive::DriveIntegrationService* drive_service) {
+  DCHECK(path.IsAbsolute());
+  return drive_service->GetMountPointPath().Append(path.value().substr(1));
+}
+
 // Given a vector of QuickAccessItems, return only those that exist on-disk.
 std::vector<drive::QuickAccessItem> FilterResults(
     const drive::DriveIntegrationService* drive_service,
@@ -65,8 +74,7 @@
   std::vector<drive::QuickAccessItem> valid_results;
   int num_filtered = 0;
   for (const auto& result : drive_results) {
-    if (base::PathExists(
-            drive_service->GetMountPointPath().Append(result.path))) {
+    if (base::PathExists(ReparentToDriveMount(result.path, drive_service))) {
       valid_results.emplace_back(result);
       ++num_filtered;
     }
@@ -122,8 +130,8 @@
   SearchProvider::Results results;
   for (const auto& result : results_cache_) {
     results.emplace_back(std::make_unique<DriveQuickAccessResult>(
-        drive_service_->GetMountPointPath().Append(result.path),
-        result.confidence, profile_));
+        ReparentToDriveMount(result.path, drive_service_), result.confidence,
+        profile_));
   }
   UMA_HISTOGRAM_TIMES("Apps.AppList.DriveQuickAccessProvider.Latency",
                       base::TimeTicks::Now() - query_start_time_);
diff --git a/chrome/browser/ui/global_media_controls/media_notification_service.cc b/chrome/browser/ui/global_media_controls/media_notification_service.cc
index 6cd2d73..62f5dc3 100644
--- a/chrome/browser/ui/global_media_controls/media_notification_service.cc
+++ b/chrome/browser/ui/global_media_controls/media_notification_service.cc
@@ -63,13 +63,6 @@
   return browser->tab_strip_model()->GetActiveWebContents() == web_contents;
 }
 
-base::WeakPtr<media_router::WebContentsPresentationManager>
-GetPresentationManager(content::WebContents* web_contents) {
-  return web_contents
-             ? media_router::WebContentsPresentationManager::Get(web_contents)
-             : nullptr;
-}
-
 }  // anonymous namespace
 
 MediaNotificationService::Session::Session(
@@ -81,14 +74,11 @@
     : content::WebContentsObserver(web_contents),
       owner_(owner),
       id_(id),
-      item_(std::move(item)),
-      presentation_manager_(GetPresentationManager(web_contents)) {
+      item_(std::move(item)) {
   DCHECK(owner_);
   DCHECK(item_);
 
   SetController(std::move(controller));
-  if (presentation_manager_)
-    presentation_manager_->AddObserver(this);
 }
 
 MediaNotificationService::Session::~Session() {
@@ -99,8 +89,6 @@
 
   RecordDismissReason(dismiss_reason_.value_or(
       GlobalMediaControlsDismissReason::kMediaSessionStopped));
-  if (presentation_manager_)
-    presentation_manager_->RemoveObserver(this);
 }
 
 void MediaNotificationService::Session::WebContentsDestroyed() {
@@ -146,12 +134,6 @@
   OnSessionInteractedWith();
 }
 
-void MediaNotificationService::Session::OnMediaRoutesChanged(
-    const std::vector<media_router::MediaRoute>& routes) {
-  if (!routes.empty())
-    item_->Dismiss();
-}
-
 void MediaNotificationService::Session::SetController(
     mojo::Remote<media_session::mojom::MediaController> controller) {
   if (controller.is_bound()) {
diff --git a/chrome/browser/ui/global_media_controls/media_notification_service.h b/chrome/browser/ui/global_media_controls/media_notification_service.h
index e8b4da17..a71cf448 100644
--- a/chrome/browser/ui/global_media_controls/media_notification_service.h
+++ b/chrome/browser/ui/global_media_controls/media_notification_service.h
@@ -14,7 +14,6 @@
 #include "base/optional.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
-#include "chrome/browser/media/router/presentation/web_contents_presentation_manager.h"
 #include "chrome/browser/ui/global_media_controls/cast_media_notification_provider.h"
 #include "chrome/browser/ui/global_media_controls/media_notification_container_observer.h"
 #include "chrome/browser/ui/global_media_controls/overlay_media_notifications_manager.h"
@@ -123,10 +122,8 @@
     kMaxValue = kMediaSessionStopped,
   };
 
-  class Session
-      : public content::WebContentsObserver,
-        public media_session::mojom::MediaControllerObserver,
-        public media_router::WebContentsPresentationManager::Observer {
+  class Session : public content::WebContentsObserver,
+                  public media_session::mojom::MediaControllerObserver {
    public:
     Session(MediaNotificationService* owner,
             const std::string& id,
@@ -138,7 +135,7 @@
     Session& operator=(const Session&) = delete;
     ~Session() override;
 
-    // content::WebContentsObserver:
+    // content::WebContentsObserver implementation.
     void WebContentsDestroyed() override;
 
     // media_session::mojom::MediaControllerObserver:
@@ -155,10 +152,6 @@
     void MediaSessionPositionChanged(
         const base::Optional<media_session::MediaPosition>& position) override;
 
-    // media_router::WebContentsPresentationManager::Observer:
-    void OnMediaRoutesChanged(
-        const std::vector<media_router::MediaRoute>& routes) override;
-
     media_message_center::MediaSessionNotificationItem* item() {
       return item_.get();
     }
@@ -214,9 +207,6 @@
     // Used to receive updates to the Media Session playback state.
     mojo::Receiver<media_session::mojom::MediaControllerObserver>
         observer_receiver_{this};
-
-    base::WeakPtr<media_router::WebContentsPresentationManager>
-        presentation_manager_;
   };
 
   void OnReceivedAudioFocusRequests(
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index 2fbeda3..a50441d 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -86,6 +86,7 @@
 #include "chrome/common/chrome_switches.h"
 #include "components/autofill/content/browser/content_autofill_driver_factory.h"
 #include "components/autofill/core/browser/autofill_manager.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/dom_distiller/core/dom_distiller_features.h"
 #include "components/download/content/factory/navigation_monitor_factory.h"
 #include "components/download/content/public/download_navigation_observer.h"
diff --git a/chrome/browser/ui/views/global_media_controls/media_dialog_view_interactive_browsertest.cc b/chrome/browser/ui/views/global_media_controls/media_dialog_view_interactive_browsertest.cc
index eaf0c5d8..b4e4538 100644
--- a/chrome/browser/ui/views/global_media_controls/media_dialog_view_interactive_browsertest.cc
+++ b/chrome/browser/ui/views/global_media_controls/media_dialog_view_interactive_browsertest.cc
@@ -6,9 +6,6 @@
 
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
-#include "chrome/browser/media/router/media_router_factory.h"
-#include "chrome/browser/media/router/presentation/web_contents_presentation_manager.h"
-#include "chrome/browser/media/router/test/mock_media_router.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/global_media_controls/media_toolbar_button_observer.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
@@ -20,7 +17,6 @@
 #include "chrome/test/base/interactive_test_utils.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/media_message_center/media_notification_view_impl.h"
-#include "content/public/browser/presentation_request.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/media_start_stop_observer.h"
 #include "media/base/media_switches.h"
@@ -94,17 +90,6 @@
     Wait();
   }
 
-  void WaitForNotificationCount(int count) {
-    if (GetNotificationCount() == count)
-      return;
-
-    waiting_for_notification_count_ = true;
-    expected_notification_count_ = count;
-    observed_dialog_ = MediaDialogView::GetDialogViewForTesting();
-    observed_dialog_->AddObserver(this);
-    Wait();
-  }
-
  private:
   void CheckDialogForText() {
     if (!waiting_for_dialog_to_contain_text_)
@@ -117,24 +102,12 @@
     MaybeStopWaiting();
   }
 
-  void CheckNotificationCount() {
-    if (!waiting_for_notification_count_)
-      return;
-
-    if (GetNotificationCount() != expected_notification_count_)
-      return;
-
-    waiting_for_notification_count_ = false;
-    MaybeStopWaiting();
-  }
-
   void MaybeStopWaiting() {
     if (!run_loop_)
       return;
 
     if (!waiting_for_dialog_opened_ && !waiting_for_button_shown_ &&
-        !waiting_for_dialog_to_contain_text_ &&
-        !waiting_for_notification_count_) {
+        !waiting_for_dialog_to_contain_text_) {
       run_loop_->Quit();
     }
   }
@@ -156,98 +129,26 @@
       if (view->title_label_for_testing()->GetText().find(text) !=
               std::string::npos ||
           view->artist_label_for_testing()->GetText().find(text) !=
-              std::string::npos ||
-          view->GetSourceTitleForTesting().find(text) != std::string::npos) {
+              std::string::npos) {
         return true;
       }
     }
     return false;
   }
 
-  int GetNotificationCount() {
-    return MediaDialogView::GetDialogViewForTesting()
-        ->GetNotificationsForTesting()
-        .size();
-  }
-
   MediaToolbarButtonView* const button_;
   std::unique_ptr<base::RunLoop> run_loop_;
 
   bool waiting_for_dialog_opened_ = false;
   bool waiting_for_button_shown_ = false;
-  bool waiting_for_notification_count_ = false;
 
   MediaDialogView* observed_dialog_ = nullptr;
   bool waiting_for_dialog_to_contain_text_ = false;
   base::string16 expected_text_;
-  int expected_notification_count_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(MediaToolbarButtonWatcher);
 };
 
-class TestWebContentsPresentationManager
-    : public media_router::WebContentsPresentationManager {
- public:
-  void NotifyMediaRoutesChanged(
-      const std::vector<media_router::MediaRoute>& routes) {
-    for (auto& observer : observers_) {
-      observer.OnMediaRoutesChanged(routes);
-    }
-  }
-
-  void AddObserver(Observer* observer) override {
-    observers_.AddObserver(observer);
-  }
-
-  void RemoveObserver(Observer* observer) override {
-    observers_.RemoveObserver(observer);
-  }
-
-  MOCK_CONST_METHOD0(HasDefaultPresentationRequest, bool());
-  MOCK_CONST_METHOD0(GetDefaultPresentationRequest,
-                     const content::PresentationRequest&());
-
-  void OnPresentationResponse(
-      const content::PresentationRequest& presentation_request,
-      media_router::mojom::RoutePresentationConnectionPtr connection,
-      const media_router::RouteRequestResult& result) override {}
-
-  base::WeakPtr<WebContentsPresentationManager> GetWeakPtr() override {
-    return weak_factory_.GetWeakPtr();
-  }
-
- private:
-  base::ObserverList<Observer> observers_;
-  base::WeakPtrFactory<TestWebContentsPresentationManager> weak_factory_{this};
-};
-
-class TestMediaRouter : public media_router::MockMediaRouter {
- public:
-  static std::unique_ptr<KeyedService> Create(
-      content::BrowserContext* context) {
-    return std::make_unique<TestMediaRouter>();
-  }
-
-  void RegisterMediaRoutesObserver(
-      media_router::MediaRoutesObserver* observer) override {
-    routes_observers_.push_back(observer);
-  }
-
-  void UnregisterMediaRoutesObserver(
-      media_router::MediaRoutesObserver* observer) override {
-    base::Erase(routes_observers_, observer);
-  }
-
-  void NotifyMediaRoutesChanged(
-      const std::vector<media_router::MediaRoute>& routes) {
-    for (auto* observer : routes_observers_)
-      observer->OnRoutesUpdated(routes, {});
-  }
-
- private:
-  std::vector<media_router::MediaRoutesObserver*> routes_observers_;
-};
-
 }  // anonymous namespace
 
 class MediaDialogViewBrowserTest : public InProcessBrowserTest {
@@ -262,38 +163,10 @@
   }
 
   void SetUp() override {
-    feature_list_.InitWithFeatures(
-        {media::kGlobalMediaControls, media::kGlobalMediaControlsForCast}, {});
-
-    presentation_manager_ =
-        std::make_unique<TestWebContentsPresentationManager>();
-    media_router::WebContentsPresentationManager::SetTestInstance(
-        presentation_manager_.get());
-
+    feature_list_.InitAndEnableFeature(media::kGlobalMediaControls);
     InProcessBrowserTest::SetUp();
   }
 
-  void TearDown() override {
-    InProcessBrowserTest::TearDown();
-    media_router::WebContentsPresentationManager::SetTestInstance(nullptr);
-  }
-
-  void SetUpInProcessBrowserTestFixture() override {
-    subscription_ =
-        BrowserContextDependencyManager::GetInstance()
-            ->RegisterWillCreateBrowserContextServicesCallbackForTesting(
-                base::BindRepeating(&MediaDialogViewBrowserTest::
-                                        OnWillCreateBrowserContextServices,
-                                    base::Unretained(this)));
-  }
-
-  void OnWillCreateBrowserContextServices(content::BrowserContext* context) {
-    media_router_ = static_cast<TestMediaRouter*>(
-        media_router::MediaRouterFactory::GetInstance()
-            ->SetTestingFactoryAndUse(
-                context, base::BindRepeating(&TestMediaRouter::Create)));
-  }
-
   MediaToolbarButtonView* GetToolbarIcon() {
     return BrowserView::GetBrowserViewForBrowser(browser())
         ->toolbar()
@@ -355,10 +228,6 @@
         .WaitForDialogToContainText(text);
   }
 
-  void WaitForNotificationCount(int count) {
-    MediaToolbarButtonWatcher(GetToolbarIcon()).WaitForNotificationCount(count);
-  }
-
   void ClickPauseButtonOnDialog() {
     base::RunLoop().RunUntilIdle();
     ASSERT_TRUE(MediaDialogView::IsShowing());
@@ -383,10 +252,6 @@
     return browser()->tab_strip_model()->GetActiveWebContents();
   }
 
- protected:
-  std::unique_ptr<TestWebContentsPresentationManager> presentation_manager_;
-  TestMediaRouter* media_router_ = nullptr;
-
  private:
   void ClickButton(views::Button* button) {
     base::RunLoop closure_loop;
@@ -437,9 +302,6 @@
   }
 
   base::test::ScopedFeatureList feature_list_;
-  std::unique_ptr<
-      base::CallbackList<void(content::BrowserContext*)>::Subscription>
-      subscription_;
 
   DISALLOW_COPY_AND_ASSIGN(MediaDialogViewBrowserTest);
 };
@@ -546,26 +408,3 @@
   ClickNotificationByTitle(base::ASCIIToUTF16("Big Buck Bunny"));
   EXPECT_EQ(first_web_contents, GetActiveWebContents());
 }
-
-IN_PROC_BROWSER_TEST_F(MediaDialogViewBrowserTest, ShowsCastSession) {
-  OpenTestURL();
-  StartPlayback();
-  WaitForStart();
-
-  const std::string route_description = "Casting: Big Buck Bunny";
-  const std::string sink_name = "My Sink";
-  media_router::MediaRoute route("id", media_router::MediaSource("source_id"),
-                                 "sink_id", route_description, true, true);
-  route.set_media_sink_name(sink_name);
-  route.set_controller_type(media_router::RouteControllerType::kGeneric);
-  media_router_->NotifyMediaRoutesChanged({route});
-  base::RunLoop().RunUntilIdle();
-  presentation_manager_->NotifyMediaRoutesChanged({route});
-
-  WaitForVisibleToolbarIcon();
-  ClickToolbarIcon();
-  WaitForDialogOpened();
-  WaitForDialogToContainText(
-      base::UTF8ToUTF16(route_description + " \xC2\xB7 " + sink_name));
-  WaitForNotificationCount(1);
-}
diff --git a/chrome/browser/ui/web_applications/system_web_app_ui_utils.cc b/chrome/browser/ui/web_applications/system_web_app_ui_utils.cc
index bbcba79..aa951d1 100644
--- a/chrome/browser/ui/web_applications/system_web_app_ui_utils.cc
+++ b/chrome/browser/ui/web_applications/system_web_app_ui_utils.cc
@@ -6,8 +6,10 @@
 
 #include <string>
 #include <utility>
+#include <vector>
 
 #include "base/feature_list.h"
+#include "base/files/file_path.h"
 #include "base/logging.h"
 #include "base/memory/ref_counted_memory.h"
 #include "base/strings/string16.h"
@@ -90,6 +92,27 @@
   return LaunchSystemWebApp(profile, app_type, url, params, did_create);
 }
 
+namespace {
+base::FilePath GetLaunchDirectory(
+    const std::vector<base::FilePath>& launch_files) {
+  // |launch_dir| is the directory that contains all |launch_files|. If
+  // there are no launch files, launch_dir is empty.
+  base::FilePath launch_dir =
+      launch_files.size() ? launch_files[0].DirName() : base::FilePath();
+
+#if DCHECK_IS_ON()
+  // Check |launch_files| all come from the same directory.
+  if (!launch_dir.empty()) {
+    for (auto path : launch_files) {
+      DCHECK_EQ(launch_dir, path.DirName());
+    }
+  }
+#endif
+
+  return launch_dir;
+}
+}  // namespace
+
 Browser* LaunchSystemWebApp(Profile* profile,
                             SystemAppType app_type,
                             const GURL& url,
@@ -137,8 +160,15 @@
 
   // Send launch files.
   if (base::FeatureList::IsEnabled(blink::features::kFileHandlingAPI)) {
-    web_launch::WebLaunchFilesHelper::SetLaunchPaths(
-        web_contents, web_contents->GetURL(), params.launch_files);
+    if (provider->system_web_app_manager().AppShouldReceiveLaunchDirectory(
+            app_type)) {
+      web_launch::WebLaunchFilesHelper::SetLaunchDirectoryAndLaunchPaths(
+          web_contents, web_contents->GetURL(),
+          GetLaunchDirectory(params.launch_files), params.launch_files);
+    } else {
+      web_launch::WebLaunchFilesHelper::SetLaunchPaths(
+          web_contents, web_contents->GetURL(), params.launch_files);
+    }
   }
 
   browser->window()->Show();
diff --git a/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc b/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
index d214402..4f805f3 100644
--- a/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_file_handling_browsertest.cc
@@ -107,7 +107,8 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTest, PWAsCanViewLaunchParams) {
+IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTest,
+                       LaunchConsumerIsNotTriggeredWithNoFiles) {
   ASSERT_TRUE(https_server()->Start());
 
   const std::string app_id = InstallFileHandlingPWA();
@@ -116,10 +117,7 @@
   EXPECT_EQ(false, content::EvalJs(web_contents, "!!window.launchParams"));
 }
 
-using WebAppFileHandlingBrowserTestNoUnifiedWebApp =
-    WebAppFileHandlingBrowserTest;
-
-IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTestNoUnifiedWebApp,
+IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTest,
                        PWAsCanReceiveFileLaunchParams) {
   ASSERT_TRUE(https_server()->Start());
 
@@ -134,7 +132,7 @@
             content::EvalJs(web_contents, "window.launchParams.files[0].name"));
 }
 
-IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTestNoUnifiedWebApp,
+IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTest,
                        PWAsCanReceiveFileLaunchParamsInTab) {
   ASSERT_TRUE(https_server()->Start());
 
@@ -150,7 +148,7 @@
             content::EvalJs(web_contents, "window.launchParams.files[0].name"));
 }
 
-IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTestNoUnifiedWebApp,
+IN_PROC_BROWSER_TEST_P(WebAppFileHandlingBrowserTest,
                        PWAsDispatchOnCorrectFileHandlingURL) {
   ASSERT_TRUE(https_server()->Start());
 
@@ -182,13 +180,3 @@
         web_app::ControllerType::kUnifiedControllerWithBookmarkApp,
         web_app::ControllerType::kUnifiedControllerWithWebApp),
     web_app::ControllerTypeParamToString);
-
-// Currently web apps don't support getting a list of all file handlers, so some
-// tests cannot be run.
-INSTANTIATE_TEST_SUITE_P(
-    All,
-    WebAppFileHandlingBrowserTestNoUnifiedWebApp,
-    ::testing::Values(
-        web_app::ControllerType::kHostedAppController,
-        web_app::ControllerType::kUnifiedControllerWithBookmarkApp),
-    web_app::ControllerTypeParamToString);
diff --git a/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc b/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc
index dd3afef..60ec5a0f 100644
--- a/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc
+++ b/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc
@@ -32,6 +32,7 @@
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace {
 
diff --git a/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc b/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc
index c65864a..1fb5f60 100644
--- a/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc
@@ -9,6 +9,7 @@
 #include "chrome/grit/generated_resources.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace certificate_manager {
 
diff --git a/chrome/browser/ui/webui/certificate_viewer_ui.cc b/chrome/browser/ui/webui/certificate_viewer_ui.cc
index 7bc1042..1f56b479 100644
--- a/chrome/browser/ui/webui/certificate_viewer_ui.cc
+++ b/chrome/browser/ui/webui/certificate_viewer_ui.cc
@@ -15,6 +15,7 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/web_dialogs/web_dialog_delegate.h"
 
 namespace {
diff --git a/chrome/browser/ui/webui/chromeos/bluetooth_dialog_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/bluetooth_dialog_localized_strings_provider.cc
index b5015697..c1e8120 100644
--- a/chrome/browser/ui/webui/chromeos/bluetooth_dialog_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/bluetooth_dialog_localized_strings_provider.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/ui/webui/webui_util.h"
 #include "chrome/grit/generated_resources.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 namespace bluetooth_dialog {
diff --git a/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
index 7a902928..ed762b3 100644
--- a/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
@@ -9,6 +9,7 @@
 #include "components/login/localized_values_builder.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc b/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc
index 5acfd50..80c5729c 100644
--- a/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc
@@ -23,6 +23,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/text/bytes_formatting.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/chromeos/devicetype_utils.h"
 #include "ui/resources/grit/webui_resources.h"
 #include "ui/strings/grit/ui_strings.h"
diff --git a/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.cc b/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.cc
index d7903cf..eb6d161 100644
--- a/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.cc
@@ -23,6 +23,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/text/bytes_formatting.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/chromeos/devicetype_utils.h"
 #include "ui/resources/grit/webui_resources.h"
 #include "ui/strings/grit/ui_strings.h"
diff --git a/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.cc b/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.cc
index c919256..02e8de71 100644
--- a/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.cc
@@ -30,6 +30,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "net/base/url_util.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/display/display.h"
 #include "ui/display/screen.h"
 #include "ui/strings/grit/ui_strings.h"
diff --git a/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc
index a034584a..113bcca56 100644
--- a/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc
@@ -23,6 +23,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "services/service_manager/public/cpp/connector.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/chromeos/devicetype_utils.h"
 
 namespace chromeos {
diff --git a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
index ad998076..13fe503 100644
--- a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
@@ -18,6 +18,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 namespace network_element {
diff --git a/chrome/browser/ui/webui/chromeos/power_ui.cc b/chrome/browser/ui/webui/chromeos/power_ui.cc
index 6fc8c5a8..3205d20d 100644
--- a/chrome/browser/ui/webui/chromeos/power_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/power_ui.cc
@@ -28,6 +28,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/browser/web_ui_message_handler.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/ui/webui/chromeos/set_time_ui.cc b/chrome/browser/ui/webui/chromeos/set_time_ui.cc
index c95a763c..ec4bb54 100644
--- a/chrome/browser/ui/webui/chromeos/set_time_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/set_time_ui.cc
@@ -33,6 +33,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/browser/web_ui_message_handler.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/resources/grit/webui_resources.h"
 
 namespace chromeos {
diff --git a/chrome/browser/ui/webui/chromeos/smb_shares/smb_shares_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/smb_shares/smb_shares_localized_strings_provider.cc
index cfa4d21..aa3a981 100644
--- a/chrome/browser/ui/webui/chromeos/smb_shares/smb_shares_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/smb_shares/smb_shares_localized_strings_provider.cc
@@ -7,6 +7,7 @@
 #include "chrome/browser/ui/webui/webui_util.h"
 #include "chrome/grit/generated_resources.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 namespace smb_dialog {
diff --git a/chrome/browser/ui/webui/components/components_ui.cc b/chrome/browser/ui/webui/components/components_ui.cc
index 09fce49..cddfc81 100644
--- a/chrome/browser/ui/webui/components/components_ui.cc
+++ b/chrome/browser/ui/webui/components/components_ui.cc
@@ -28,6 +28,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/base/resource/resource_bundle.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "components/user_manager/user_manager.h"
diff --git a/chrome/browser/ui/webui/device_log_ui.cc b/chrome/browser/ui/webui/device_log_ui.cc
index 67d50fd..46bd5cf0 100644
--- a/chrome/browser/ui/webui/device_log_ui.cc
+++ b/chrome/browser/ui/webui/device_log_ui.cc
@@ -20,6 +20,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/browser/web_ui_message_handler.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chrome/browser/ui/webui/downloads/downloads_ui.cc
index d6128c7..043070c 100644
--- a/chrome/browser/ui/webui/downloads/downloads_ui.cc
+++ b/chrome/browser/ui/webui/downloads/downloads_ui.cc
@@ -44,6 +44,7 @@
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
+#include "ui/base/webui/web_ui_util.h"
 
 using content::BrowserContext;
 using content::DownloadManager;
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc
index 51cede42..5503ae01 100644
--- a/chrome/browser/ui/webui/extensions/extensions_ui.cc
+++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc
@@ -42,6 +42,7 @@
 #include "extensions/common/extension_urls.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_factory.h"
diff --git a/chrome/browser/ui/webui/history/history_ui.cc b/chrome/browser/ui/webui/history/history_ui.cc
index e99ffc3b..bf17379 100644
--- a/chrome/browser/ui/webui/history/history_ui.cc
+++ b/chrome/browser/ui/webui/history/history_ui.cc
@@ -36,6 +36,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace {
 
diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
index 3c3e749..d0d5cf54 100644
--- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
+++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
@@ -23,6 +23,7 @@
 #include "chrome/browser/ssl/chrome_security_blocking_page_factory.h"
 #include "chrome/common/buildflags.h"
 #include "chrome/common/url_constants.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/grit/dev_ui_components_resources.h"
 #include "components/safe_browsing/core/db/database_manager.h"
 #include "components/security_interstitials/content/bad_clock_blocking_page.h"
@@ -185,8 +186,9 @@
 
   net::SSLInfo ssl_info;
   ssl_info.cert = ssl_info.unverified_cert = CreateFakeCert();
-  return new BlockedInterceptionBlockingPage(web_contents, cert_error,
-                                             request_url, nullptr, ssl_info);
+  return ChromeSecurityBlockingPageFactory::
+      CreateBlockedInterceptionBlockingPage(web_contents, cert_error,
+                                            request_url, nullptr, ssl_info);
 }
 
 BadClockBlockingPage* CreateBadClockBlockingPage(
diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
index c3129339..79d76f9a 100644
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
@@ -20,6 +20,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "printing/buildflags/buildflags.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace {
 
diff --git a/chrome/browser/ui/webui/management_ui.cc b/chrome/browser/ui/webui/management_ui.cc
index 64eb5c0..263c05e 100644
--- a/chrome/browser/ui/webui/management_ui.cc
+++ b/chrome/browser/ui/webui/management_ui.cc
@@ -21,6 +21,7 @@
 #include "extensions/buildflags/buildflags.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/browser_process.h"
diff --git a/chrome/browser/ui/webui/media/webrtc_logs_ui.cc b/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
index a38cb80..bfb7af3 100644
--- a/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
+++ b/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
@@ -35,6 +35,7 @@
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/browser/web_ui_message_handler.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/settings/cros_settings.h"
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index c702ba9..bd4e43d 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -20,6 +20,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 
 using content::BrowserContext;
 using content::WebContents;
diff --git a/chrome/browser/ui/webui/policy_indicator_localized_strings_provider.cc b/chrome/browser/ui/webui/policy_indicator_localized_strings_provider.cc
index 9b435b7..1d3271b5 100644
--- a/chrome/browser/ui/webui/policy_indicator_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/policy_indicator_localized_strings_provider.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/ui/webui/webui_util.h"
 #include "chrome/grit/generated_resources.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/login/demo_mode/demo_session.h"
diff --git a/chrome/browser/ui/webui/policy_ui.cc b/chrome/browser/ui/webui/policy_ui.cc
index 33b2a46..7695bbf0 100644
--- a/chrome/browser/ui/webui/policy_ui.cc
+++ b/chrome/browser/ui/webui/policy_ui.cc
@@ -14,6 +14,7 @@
 #include "components/grit/dev_ui_components_resources.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace {
 
diff --git a/chrome/browser/ui/webui/policy_ui_handler.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
index cee8afd..10c1b86 100644
--- a/chrome/browser/ui/webui/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy_ui_handler.cc
@@ -65,6 +65,7 @@
 #include "google_apis/gaia/gaia_auth_util.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/l10n/time_format.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/shell_dialogs/select_file_policy.h"
 
 #if defined(OS_ANDROID)
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_ui.cc b/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
index ed2914c..68ce7fb 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -56,6 +56,7 @@
 #include "printing/print_job_constants.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/ui_base_features.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/web_dialogs/web_dialog_delegate.h"
 #include "ui/web_dialogs/web_dialog_ui.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider.cc
index a1486bb..e363205 100644
--- a/chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider.cc
@@ -15,6 +15,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/common/content_switches.h"
 #include "ui/accessibility/accessibility_switches.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace chromeos {
 namespace settings {
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 eb7a6e6..41aaa19 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -76,6 +76,7 @@
 #include "ui/accessibility/accessibility_switches.h"
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "ash/public/cpp/ash_features.h"
diff --git a/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
index 940f983..8f9c6d0f 100644
--- a/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
@@ -12,6 +12,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/common/content_features.h"
 #include "media/base/media_switches.h"
+#include "ui/base/webui/web_ui_util.h"
 
 namespace settings {
 namespace {
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc
index 2910da6..c5921a2 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc
@@ -30,6 +30,7 @@
 #include "content/public/browser/web_ui_message_handler.h"
 #include "content/public/common/url_constants.h"
 #include "ui/base/theme_provider.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/gfx/color_utils.h"
 #include "ui/resources/grit/webui_resources.h"
 
diff --git a/chrome/browser/ui/webui/version_ui.cc b/chrome/browser/ui/webui/version_ui.cc
index e69859c..65b02f8 100644
--- a/chrome/browser/ui/webui/version_ui.cc
+++ b/chrome/browser/ui/webui/version_ui.cc
@@ -28,6 +28,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/common/user_agent.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "v8/include/v8-version-string.h"
 
 #if defined(OS_ANDROID)
diff --git a/chrome/browser/ui/webui/webui_util.cc b/chrome/browser/ui/webui/webui_util.cc
index fa40383..26c0fe87 100644
--- a/chrome/browser/ui/webui/webui_util.cc
+++ b/chrome/browser/ui/webui/webui_util.cc
@@ -6,6 +6,7 @@
 
 #include "chrome/common/buildflags.h"
 #include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/webui/web_ui_util.h"
 #include "ui/resources/grit/webui_resources.h"
 #include "ui/resources/grit/webui_resources_map.h"
 
diff --git a/chrome/browser/ui/webui/webui_util.h b/chrome/browser/ui/webui/webui_util.h
index 2eeef688..728da9d 100644
--- a/chrome/browser/ui/webui/webui_util.h
+++ b/chrome/browser/ui/webui/webui_util.h
@@ -18,11 +18,7 @@
 struct GritResourceMap;
 
 namespace webui {
-
-struct LocalizedString {
-  const char* name;
-  int id;
-};
+struct LocalizedString;
 
 struct ResourcePath {
   const char* path;
diff --git a/chrome/browser/ui/webui/welcome/welcome_ui.cc b/chrome/browser/ui/webui/welcome/welcome_ui.cc
index a6209d2e..659d9d6 100644
--- a/chrome/browser/ui/webui/welcome/welcome_ui.cc
+++ b/chrome/browser/ui/webui/welcome/welcome_ui.cc
@@ -25,6 +25,7 @@
 #include "components/signin/public/base/signin_pref_names.h"
 #include "components/strings/grit/components_strings.h"
 #include "net/base/url_util.h"
+#include "ui/base/webui/web_ui_util.h"
 
 #if defined(OS_WIN)
 #include "base/win/windows_version.h"
diff --git a/chrome/browser/web_applications/components/app_registrar.cc b/chrome/browser/web_applications/components/app_registrar.cc
index 4dfec2a..a0c2fb9 100644
--- a/chrome/browser/web_applications/components/app_registrar.cc
+++ b/chrome/browser/web_applications/components/app_registrar.cc
@@ -95,6 +95,10 @@
       profile()->GetPrefs(), app_id, install_source);
 }
 
+extensions::BookmarkAppRegistrar* AppRegistrar::AsBookmarkAppRegistrar() {
+  return nullptr;
+}
+
 base::Optional<AppId> AppRegistrar::FindAppWithUrlInScope(
     const GURL& url) const {
   const std::string url_path = url.spec();
diff --git a/chrome/browser/web_applications/components/app_registrar.h b/chrome/browser/web_applications/components/app_registrar.h
index 039c204..f7dfb7ae 100644
--- a/chrome/browser/web_applications/components/app_registrar.h
+++ b/chrome/browser/web_applications/components/app_registrar.h
@@ -19,6 +19,11 @@
 class GURL;
 class Profile;
 
+// Forward declared to support safe downcast;
+namespace extensions {
+class BookmarkAppRegistrar;
+}
+
 namespace web_app {
 
 class AppRegistrarObserver;
@@ -85,6 +90,7 @@
 
   // Safe downcast.
   virtual WebAppRegistrar* AsWebAppRegistrar() = 0;
+  virtual extensions::BookmarkAppRegistrar* AsBookmarkAppRegistrar();
 
   // Searches for the first app id in the registry for which the |url| is in
   // scope.
diff --git a/chrome/browser/web_applications/components/app_registrar_observer.h b/chrome/browser/web_applications/components/app_registrar_observer.h
index 1547cacc..ce74694 100644
--- a/chrome/browser/web_applications/components/app_registrar_observer.h
+++ b/chrome/browser/web_applications/components/app_registrar_observer.h
@@ -13,10 +13,21 @@
 class AppRegistrarObserver : public base::CheckedObserver {
  public:
   virtual void OnWebAppInstalled(const AppId& app_id) {}
+
+  // |app_id| still registered in the AppRegistrar. For bookmark apps, use
+  // BookmarkAppRegistrar::FindExtension to convert this |app_id| to Extension
+  // pointer.
   virtual void OnWebAppWillBeUninstalled(const AppId& app_id) {}
+
+  // The app backing |app_id| is already removed from the AppRegistrar.
   virtual void OnWebAppUninstalled(const AppId& app_id) {}
+
+  // For bookmark apps, use BookmarkAppRegistrar::FindExtension to convert this
+  // |app_id| to Extension pointer.
   virtual void OnWebAppProfileWillBeDeleted(const AppId& app_id) {}
+
   virtual void OnAppRegistrarShutdown() {}
+
   virtual void OnAppRegistrarDestroyed() {}
 };
 
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc b/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc
index 207d451..5f922ac 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc
+++ b/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc
@@ -36,7 +36,7 @@
 BookmarkAppRegistrar::~BookmarkAppRegistrar() = default;
 
 bool BookmarkAppRegistrar::IsInstalled(const web_app::AppId& app_id) const {
-  const Extension* extension = GetExtension(app_id);
+  const Extension* extension = GetEnabledExtension(app_id);
   return extension && extension->from_bookmark();
 }
 
@@ -73,11 +73,18 @@
   if (!extension->from_bookmark())
     return;
 
+  // OnWebAppWillBeUninstalled and OnWebAppProfileWillBeDeleted observers may
+  // find this pointer via FindExtension method.
+  DCHECK(!bookmark_app_being_uninstalled_);
+  bookmark_app_being_uninstalled_ = extension;
+
   NotifyWebAppWillBeUninstalled(extension->id());
   // If a profile is removed, notify the web app that it is uninstalled, so it
   // can cleanup any state outside the profile dir (e.g., registry settings).
   if (reason == UnloadedExtensionReason::PROFILE_SHUTDOWN)
     NotifyWebAppProfileWillBeDeleted(extension->id());
+
+  bookmark_app_being_uninstalled_ = nullptr;
 }
 
 void BookmarkAppRegistrar::OnShutdown(ExtensionRegistry* registry) {
@@ -190,14 +197,28 @@
   return nullptr;
 }
 
+BookmarkAppRegistrar* BookmarkAppRegistrar::AsBookmarkAppRegistrar() {
+  return this;
+}
+
+const Extension* BookmarkAppRegistrar::FindExtension(
+    const web_app::AppId& app_id) const {
+  if (bookmark_app_being_uninstalled_ &&
+      bookmark_app_being_uninstalled_->id() == app_id) {
+    return bookmark_app_being_uninstalled_;
+  }
+
+  return ExtensionRegistry::Get(profile())->GetInstalledExtension(app_id);
+}
+
 const Extension* BookmarkAppRegistrar::GetBookmarkApp(
     const web_app::AppId& app_id) const {
-  const Extension* extension = GetExtension(app_id);
+  const Extension* extension = GetEnabledExtension(app_id);
   DCHECK(!extension || extension->from_bookmark());
   return extension;
 }
 
-const Extension* BookmarkAppRegistrar::GetExtension(
+const Extension* BookmarkAppRegistrar::GetEnabledExtension(
     const web_app::AppId& app_id) const {
   return ExtensionRegistry::Get(profile())->enabled_extensions().GetByID(
       app_id);
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_registrar.h b/chrome/browser/web_applications/extensions/bookmark_app_registrar.h
index 537f648..009981da 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_registrar.h
+++ b/chrome/browser/web_applications/extensions/bookmark_app_registrar.h
@@ -43,6 +43,7 @@
       const web_app::AppId& app_id) const override;
   std::vector<web_app::AppId> GetAppIds() const override;
   web_app::WebAppRegistrar* AsWebAppRegistrar() override;
+  BookmarkAppRegistrar* AsBookmarkAppRegistrar() override;
 
   // ExtensionRegistryObserver:
   void OnExtensionUninstalled(content::BrowserContext* browser_context,
@@ -53,12 +54,25 @@
                            UnloadedExtensionReason reason) override;
   void OnShutdown(ExtensionRegistry* registry) override;
 
+  // Finds the extension object in ExtensionRegistry and in the being
+  // uninstalled slot.
+  //
+  // When AppRegistrarObserver::OnWebAppWillBeUninstalled(app_id) happens for
+  // bookmark apps, the bookmark app backing that app_id is already removed
+  // from ExtensionRegistry. If some abstract observer needs the extension
+  // pointer for |app_id| being uninstalled, that observer should use this
+  // getter. This is a short-term workaround which helps to unify
+  // ExtensionsRegistry and WebAppRegistrar observation.
+  const Extension* FindExtension(const web_app::AppId& app_id) const;
+
  private:
   const Extension* GetBookmarkApp(const web_app::AppId& app_id) const;
-  const Extension* GetExtension(const web_app::AppId& app_id) const;
+  const Extension* GetEnabledExtension(const web_app::AppId& app_id) const;
 
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_observer_{this};
+
+  const Extension* bookmark_app_being_uninstalled_ = nullptr;
 };
 
 }  // namespace extensions
diff --git a/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.cc b/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.cc
index 4f965fa..598940c 100644
--- a/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.cc
+++ b/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.cc
@@ -19,6 +19,7 @@
 #include "chrome/browser/ui/extensions/application_launch.h"
 #include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
 #include "chrome/browser/web_applications/components/web_app_constants.h"
+#include "chrome/browser/web_applications/test/test_system_web_app_installation.h"
 #include "chrome/browser/web_applications/test/test_web_app_provider.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/extensions/manifest_handlers/app_theme_color_info.h"
@@ -235,4 +236,106 @@
                    "  launchParams => launchParams.files[0].name)"));
 }
 
+class SystemWebAppManagerLaunchFilesBrowserTest
+    : public SystemWebAppManagerBrowserTest {
+ public:
+  SystemWebAppManagerLaunchFilesBrowserTest()
+      : SystemWebAppManagerBrowserTest(/*install_mock=*/false) {
+    maybe_installation_ =
+        TestSystemWebAppInstallation::SetUpAppThatReceivesLaunchDirectory();
+  }
+};
+
+// Launching behavior for apps that do not want to received launch directory are
+// tested in |SystemWebAppManagerBrowserTest.LaunchFilesForSystemWebApp|.
+IN_PROC_BROWSER_TEST_F(SystemWebAppManagerLaunchFilesBrowserTest,
+                       LaunchDirectoryForSystemWebApp) {
+  WaitForTestSystemAppInstall();
+  apps::AppLaunchParams params = LaunchParamsForApp(GetMockAppType());
+  params.source = apps::mojom::AppLaunchSource::kSourceChromeInternal;
+
+  base::ScopedAllowBlockingForTesting allow_blocking;
+  base::ScopedTempDir temp_directory;
+  ASSERT_TRUE(temp_directory.CreateUniqueTempDir());
+  base::FilePath temp_file_path;
+  ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_directory.GetPath(),
+                                             &temp_file_path));
+
+  const GURL& launch_url = WebAppProvider::Get(browser()->profile())
+                               ->registrar()
+                               .GetAppLaunchURL(params.app_id);
+
+  // First launch.
+  params.launch_files = {temp_file_path};
+  content::TestNavigationObserver navigation_observer(launch_url);
+  navigation_observer.StartWatchingNewWebContents();
+  content::WebContents* web_contents =
+      OpenApplication(browser()->profile(), params);
+  navigation_observer.Wait();
+
+  // Set up a Promise that resolves to launchParams, when launchQueue's consumer
+  // callback is called.
+  EXPECT_TRUE(ExecJs(web_contents,
+                     "window.launchParamsPromise = new Promise(resolve => {"
+                     "  window.resolveLaunchParamsPromise = resolve;"
+                     "});"
+                     "launchQueue.setConsumer(launchParams => {"
+                     "  window.resolveLaunchParamsPromise(launchParams);"
+                     "});"));
+
+  // Wait for launch. Set window.firstLaunchParams for inspection.
+  EXPECT_TRUE(ExecJs(web_contents,
+                     "window.launchParamsPromise.then(launchParams => {"
+                     "  window.firstLaunchParams = launchParams;"
+                     "});"));
+
+  // Check launch directory is correct.
+  EXPECT_EQ(true, EvalJs(web_contents,
+                         "window.firstLaunchParams.files[0].isDirectory"));
+  EXPECT_EQ(temp_directory.GetPath().BaseName().AsUTF8Unsafe(),
+            EvalJs(web_contents, "window.firstLaunchParams.files[0].name"));
+
+  // Check launch files are correct.
+  EXPECT_EQ(true,
+            EvalJs(web_contents, "window.firstLaunchParams.files[1].isFile"));
+  EXPECT_EQ(temp_file_path.BaseName().AsUTF8Unsafe(),
+            EvalJs(web_contents, "window.firstLaunchParams.files[1].name"));
+
+  // Reset the Promise to get second launchParams.
+  EXPECT_TRUE(ExecJs(web_contents,
+                     "window.launchParamsPromise = new Promise(resolve => {"
+                     "  window.resolveLaunchParamsPromise = resolve;"
+                     "});"));
+
+  // Second Launch.
+  base::ScopedTempDir temp_directory2;
+  ASSERT_TRUE(temp_directory2.CreateUniqueTempDir());
+  base::FilePath temp_file_path2;
+  ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_directory2.GetPath(),
+                                             &temp_file_path2));
+  params.launch_files = {temp_file_path2};
+  content::WebContents* web_contents2 =
+      OpenApplication(browser()->profile(), params);
+
+  // WebContents* should be the same because we are passing launchParams to the
+  // opened application.
+  EXPECT_EQ(web_contents, web_contents2);
+
+  // Wait for launch. Sets window.secondLaunchParams for inspection.
+  EXPECT_TRUE(ExecJs(web_contents,
+                     "window.launchParamsPromise.then(launchParams => {"
+                     "  window.secondLaunchParams = launchParams;"
+                     "});"));
+
+  // Second launch_dir and launch_files are passed to the opened application.
+  EXPECT_EQ(true, EvalJs(web_contents,
+                         "window.secondLaunchParams.files[0].isDirectory"));
+  EXPECT_EQ(temp_directory2.GetPath().BaseName().AsUTF8Unsafe(),
+            EvalJs(web_contents, "window.secondLaunchParams.files[0].name"));
+  EXPECT_EQ(true,
+            EvalJs(web_contents, "window.secondLaunchParams.files[1].isFile"));
+  EXPECT_EQ(temp_file_path2.BaseName().AsUTF8Unsafe(),
+            EvalJs(web_contents, "window.secondLaunchParams.files[1].name"));
+}
+
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.h b/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.h
index aa13a7d..da4297c 100644
--- a/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.h
+++ b/chrome/browser/web_applications/extensions/system_web_app_manager_browsertest.h
@@ -67,11 +67,13 @@
   // Invokes OpenApplication() using the test's Profile.
   content::WebContents* LaunchApp(const apps::AppLaunchParams& params);
 
+ protected:
+  std::unique_ptr<TestSystemWebAppInstallation> maybe_installation_;
+
  private:
   std::unique_ptr<KeyedService> CreateWebAppProvider(Profile* profile);
 
   base::test::ScopedFeatureList scoped_feature_list_;
-  std::unique_ptr<TestSystemWebAppInstallation> maybe_installation_;
 
   DISALLOW_COPY_AND_ASSIGN(SystemWebAppManagerBrowserTest);
 };
diff --git a/chrome/browser/web_applications/system_web_app_manager.cc b/chrome/browser/web_applications/system_web_app_manager.cc
index fd690fe..b078cff 100644
--- a/chrome/browser/web_applications/system_web_app_manager.cc
+++ b/chrome/browser/web_applications/system_web_app_manager.cc
@@ -256,6 +256,14 @@
   return it->second.single_window;
 }
 
+bool SystemWebAppManager::AppShouldReceiveLaunchDirectory(
+    SystemAppType type) const {
+  auto it = system_app_infos_.find(type);
+  if (it == system_app_infos_.end())
+    return false;
+  return it->second.include_launch_directory;
+}
+
 gfx::Size SystemWebAppManager::GetMinimumWindowSize(const AppId& app_id) const {
   auto app_type_it = app_id_to_app_type_.find(app_id);
   if (app_type_it == app_id_to_app_type_.end())
diff --git a/chrome/browser/web_applications/system_web_app_manager.h b/chrome/browser/web_applications/system_web_app_manager.h
index 2e13fab..06daab4b 100644
--- a/chrome/browser/web_applications/system_web_app_manager.h
+++ b/chrome/browser/web_applications/system_web_app_manager.h
@@ -72,6 +72,10 @@
 
   // If set, we allow only a single window for this app.
   bool single_window = true;
+
+  // If set, when the app is launched through the File Handling Web API, we will
+  // include the file's directory in window.launchQueue as the first value.
+  bool include_launch_directory = false;
 };
 
 // Installs, uninstalls, and updates System Web Apps.
@@ -129,6 +133,10 @@
   // Returns whether the given System App |type| should use a single window.
   bool IsSingleWindow(SystemAppType type) const;
 
+  // Returns whether the given System App |type| should get launch directory in
+  // launch parameter.
+  bool AppShouldReceiveLaunchDirectory(SystemAppType type) const;
+
   // Returns the minimum window size for |app_id| or an empty size if the app
   // doesn't specify a minimum.
   gfx::Size GetMinimumWindowSize(const AppId& app_id) const;
diff --git a/chrome/browser/web_applications/test/test_system_web_app_installation.cc b/chrome/browser/web_applications/test/test_system_web_app_installation.cc
index 0626f37c1..38b22c9 100644
--- a/chrome/browser/web_applications/test/test_system_web_app_installation.cc
+++ b/chrome/browser/web_applications/test/test_system_web_app_installation.cc
@@ -74,6 +74,16 @@
       SystemAppInfo("OSSettings", GURL("chrome://test-system-app/pwa.html"))));
 }
 
+// static
+std::unique_ptr<TestSystemWebAppInstallation>
+TestSystemWebAppInstallation::SetUpAppThatReceivesLaunchDirectory() {
+  SystemAppInfo media_system_app_info(
+      "Media", GURL("chrome://test-system-app/pwa.html"));
+  media_system_app_info.include_launch_directory = true;
+  return base::WrapUnique(new TestSystemWebAppInstallation(
+      SystemAppType::MEDIA, media_system_app_info));
+}
+
 std::unique_ptr<KeyedService>
 TestSystemWebAppInstallation::CreateWebAppProvider(SystemAppInfo info,
                                                    Profile* profile) {
diff --git a/chrome/browser/web_applications/test/test_system_web_app_installation.h b/chrome/browser/web_applications/test/test_system_web_app_installation.h
index 1e998cb..c0b4bed3 100644
--- a/chrome/browser/web_applications/test/test_system_web_app_installation.h
+++ b/chrome/browser/web_applications/test/test_system_web_app_installation.h
@@ -25,6 +25,8 @@
   SetUpTabbedMultiWindowApp();
   static std::unique_ptr<TestSystemWebAppInstallation>
   SetUpStandaloneSingleWindowApp();
+  static std::unique_ptr<TestSystemWebAppInstallation>
+  SetUpAppThatReceivesLaunchDirectory();
 
   ~TestSystemWebAppInstallation();
 
diff --git a/chrome/browser/web_applications/web_app_install_finalizer.cc b/chrome/browser/web_applications/web_app_install_finalizer.cc
index f3ce3de6..7a8e3f0 100644
--- a/chrome/browser/web_applications/web_app_install_finalizer.cc
+++ b/chrome/browser/web_applications/web_app_install_finalizer.cc
@@ -107,8 +107,13 @@
     for (const auto& pair : file_handler.accept) {
       WebApp::FileHandlerAccept accept_entry;
       accept_entry.mimetype = base::UTF16ToUTF8(pair.first);
-      for (const auto& file_extension : pair.second)
-        accept_entry.file_extensions.insert(base::UTF16ToUTF8(file_extension));
+      for (const auto& file_extension : pair.second) {
+        // Remove leading ".".
+        const auto utf8_file_extension = base::UTF16ToUTF8(file_extension);
+        DCHECK(base::StartsWith(utf8_file_extension, ".",
+                                base::CompareCase::SENSITIVE));
+        accept_entry.file_extensions.insert(utf8_file_extension.substr(1));
+      }
       web_app_file_handler.accept.push_back(std::move(accept_entry));
     }
 
diff --git a/chrome/browser/web_launch/web_launch_files_helper.cc b/chrome/browser/web_launch/web_launch_files_helper.cc
index 2c6c25d..68081b8 100644
--- a/chrome/browser/web_launch/web_launch_files_helper.cc
+++ b/chrome/browser/web_launch/web_launch_files_helper.cc
@@ -40,6 +40,24 @@
                          web_contents, launch_url, std::move(launch_paths)));
 }
 
+// static
+void WebLaunchFilesHelper::SetLaunchDirectoryAndLaunchPaths(
+    content::WebContents* web_contents,
+    const GURL& launch_url,
+    base::FilePath launch_dir,
+    std::vector<base::FilePath> launch_paths) {
+  if (launch_dir.empty())
+    return;
+
+  if (launch_paths.size() == 0)
+    return;
+
+  web_contents->SetUserData(UserDataKey(),
+                            std::make_unique<WebLaunchFilesHelper>(
+                                web_contents, launch_url, std::move(launch_dir),
+                                std::move(launch_paths)));
+}
+
 void WebLaunchFilesHelper::DidFinishNavigation(
     content::NavigationHandle* handle) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -50,6 +68,41 @@
   MaybeSendLaunchEntries();
 }
 
+namespace {
+
+class EntriesBuilder {
+ public:
+  EntriesBuilder(
+      std::vector<blink::mojom::NativeFileSystemEntryPtr>* entries_ref,
+      content::WebContents* web_contents,
+      const GURL& launch_url)
+      : entries_ref_(entries_ref),
+        entry_factory_(web_contents->GetMainFrame()
+                           ->GetProcess()
+                           ->GetStoragePartition()
+                           ->GetNativeFileSystemEntryFactory()),
+        context_(url::Origin::Create(launch_url),
+                 launch_url,
+                 web_contents->GetMainFrame()->GetProcess()->GetID(),
+                 web_contents->GetMainFrame()->GetRoutingID()) {}
+
+  void AddFileEntry(const base::FilePath& path) {
+    entries_ref_->push_back(
+        entry_factory_->CreateFileEntryFromPath(context_, path));
+  }
+  void AddDirectoryEntry(const base::FilePath& path) {
+    entries_ref_->push_back(
+        entry_factory_->CreateDirectoryEntryFromPath(context_, path));
+  }
+
+ private:
+  std::vector<blink::mojom::NativeFileSystemEntryPtr>* entries_ref_;
+  scoped_refptr<content::NativeFileSystemEntryFactory> entry_factory_;
+  content::NativeFileSystemEntryFactory::BindingContext context_;
+};
+
+}  // namespace
+
 WebLaunchFilesHelper::WebLaunchFilesHelper(
     content::WebContents* web_contents,
     const GURL& launch_url,
@@ -58,22 +111,34 @@
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DCHECK(launch_paths.size());
 
-  scoped_refptr<content::NativeFileSystemEntryFactory> entry_factory =
-      web_contents->GetMainFrame()
-          ->GetProcess()
-          ->GetStoragePartition()
-          ->GetNativeFileSystemEntryFactory();
-
-  content::NativeFileSystemEntryFactory::BindingContext context(
-      url::Origin::Create(launch_url), launch_url,
-      web_contents->GetMainFrame()->GetProcess()->GetID(),
-      web_contents->GetMainFrame()->GetRoutingID());
-
   launch_entries_.reserve(launch_paths.size());
-  for (const auto& path : launch_paths) {
-    launch_entries_.push_back(
-        entry_factory->CreateFileEntryFromPath(context, path));
-  }
+
+  EntriesBuilder entries_builder(&launch_entries_, web_contents, launch_url);
+  for (const auto& path : launch_paths)
+    entries_builder.AddFileEntry(path);
+
+  // Asynchronously call MaybeSendLaunchEntries, since it may destroy |this|.
+  base::PostTask(FROM_HERE, {content::BrowserThread::UI},
+                 base::BindOnce(&WebLaunchFilesHelper::MaybeSendLaunchEntries,
+                                weak_ptr_factory.GetWeakPtr()));
+}
+
+WebLaunchFilesHelper::WebLaunchFilesHelper(
+    content::WebContents* web_contents,
+    const GURL& launch_url,
+    base::FilePath launch_dir,
+    std::vector<base::FilePath> launch_paths)
+    : content::WebContentsObserver(web_contents), launch_url_(launch_url) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+  DCHECK(!launch_dir.empty());
+  DCHECK(launch_paths.size());
+
+  launch_entries_.reserve(launch_paths.size() + 1);
+
+  EntriesBuilder entries_builder(&launch_entries_, web_contents, launch_url);
+  entries_builder.AddDirectoryEntry(launch_dir);
+  for (const auto& path : launch_paths)
+    entries_builder.AddFileEntry(path);
 
   // Asynchronously call MaybeSendLaunchEntries, since it may destroy |this|.
   base::PostTask(FROM_HERE, {content::BrowserThread::UI},
diff --git a/chrome/browser/web_launch/web_launch_files_helper.h b/chrome/browser/web_launch/web_launch_files_helper.h
index fccfae3..760aa6a 100644
--- a/chrome/browser/web_launch/web_launch_files_helper.h
+++ b/chrome/browser/web_launch/web_launch_files_helper.h
@@ -44,9 +44,24 @@
                              const GURL& launch_url,
                              std::vector<base::FilePath> launch_paths);
 
+  // System Web Apps Only. |launch_dir| is prepended to |launch_entries_| and
+  // sent to the JavaScript side.
+  static void SetLaunchDirectoryAndLaunchPaths(
+      content::WebContents* web_contents,
+      const GURL& launch_url,
+      base::FilePath launch_dir,
+      std::vector<base::FilePath> launch_paths);
+
   WebLaunchFilesHelper(content::WebContents* web_contents,
                        const GURL& launch_url,
                        std::vector<base::FilePath> launch_paths);
+
+  // System Web Apps Only.
+  WebLaunchFilesHelper(content::WebContents* web_contents,
+                       const GURL& launch_url,
+                       base::FilePath launch_dir,
+                       std::vector<base::FilePath> launch_paths);
+
   ~WebLaunchFilesHelper() override;
 
   // content::WebContentsObserver:
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
index 0125d75..5121fa7 100644
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -107,7 +107,7 @@
       "//chrome/common:resources",
       "//components/autofill/core/browser:autofill_address_rewriter_resources",
       "//components/resources",
-      "//content:resources",
+      "//content:content_resources",
       "//content/browser/tracing:resources",
       "//mojo/public/js:resources",
       "//net:net_resources",
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
index 83d1b32..0ae61608 100644
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -39,7 +39,6 @@
     "ENABLE_BACKGROUND_MODE=$enable_background_mode",
     "ENABLE_BACKGROUND_CONTENTS=$enable_background_contents",
     "ENABLE_BASIC_PRINT_DIALOG=$enable_basic_print_dialog",
-    "ENABLE_CAPTIVE_PORTAL_DETECTION=$enable_captive_portal_detection",
     "ENABLE_CLICK_TO_CALL=$enable_click_to_call",
     "ENABLE_HANGOUT_SERVICES_EXTENSION=$enable_hangout_services_extension",
     "ENABLE_ONE_CLICK_SIGNIN=$enable_one_click_signin",
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index ebe3dbc..d7cefd5 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -215,6 +215,10 @@
 const base::Feature kCrostiniForceClose{"CrostiniForceClose",
                                         base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Enables support for sideloading android apps into Arc via crostini.
+const base::Feature kCrostiniArcSideload{"CrostiniArcSideload",
+                                         base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Enable support for "Plugin VMs" on Chrome OS.
 const base::Feature kPluginVm{"PluginVm", base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 3cfc15b..c68577e 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -128,6 +128,8 @@
 extern const base::Feature kCrostiniAnsibleSoftwareManagement;
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kCrostiniForceClose;
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kCrostiniArcSideload;
 COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kPluginVm;
 COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kPrintServerUi;
 COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kTerminalSystemApp;
diff --git a/chrome/common/extensions/api/autotest_private.idl b/chrome/common/extensions/api/autotest_private.idl
index a02daa8..f20151d 100644
--- a/chrome/common/extensions/api/autotest_private.idl
+++ b/chrome/common/extensions/api/autotest_private.idl
@@ -397,6 +397,7 @@
     boolean hasFocus;
     boolean onActiveDesk;
     boolean hasCapture;
+    boolean canResize;
 
     // Window frame info
     FrameMode frameMode;
diff --git a/chrome/common/features.gni b/chrome/common/features.gni
index d3939aa..c0d25ae 100644
--- a/chrome/common/features.gni
+++ b/chrome/common/features.gni
@@ -37,8 +37,6 @@
   # and have a system dialog.
   enable_basic_print_dialog = enable_basic_printing && !is_chromeos
 
-  enable_captive_portal_detection = !is_android && !is_chromecast
-
   # Enables the Click to Call feature on desktop platforms.
   enable_click_to_call = is_mac || is_win || is_desktop_linux || is_chromeos
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 9e2f58b..abe6c1b 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -16,6 +16,7 @@
 import("//chrome/common/features.gni")
 import("//chrome/test/base/js2gtest.gni")
 import("//chromeos/assistant/assistant.gni")
+import("//components/captive_portal/features.gni")
 import("//components/feature_engagement/features.gni")
 import("//components/feed/features.gni")
 import("//components/gwp_asan/buildflags/buildflags.gni")
@@ -3597,6 +3598,7 @@
     "//components/account_id",
     "//components/autofill/content/renderer:test_support",
     "//components/browser_sync:test_support",
+    "//components/captive_portal:buildflags",
     "//components/component_updater:test_support",
     "//components/content_settings/core/test:test_support",
     "//components/data_reduction_proxy/core/browser:test_support",
@@ -5432,6 +5434,7 @@
     ]
     deps = [
       "//chrome/common/profiler",
+      "//components/captive_portal:buildflags",
       "//components/metrics:test_support",
       "//components/nacl/common:buildflags",
       "//components/os_crypt:test_support",
@@ -5808,7 +5811,6 @@
       }
       if (!is_chromeos) {
         sources += [ "../browser/ui/views/global_media_controls/media_dialog_view_interactive_browsertest.cc" ]
-        deps += [ "../browser/media/router:test_support" ]
       }
       if (use_aura || is_mac) {
         deps += [ "//ui/touch_selection" ]
diff --git a/chrome/test/DEPS b/chrome/test/DEPS
index 15ebceee..4387fd8 100644
--- a/chrome/test/DEPS
+++ b/chrome/test/DEPS
@@ -10,6 +10,7 @@
   "+components/autofill/core",
   "+components/bookmarks/browser",
   "+components/bookmarks/common",
+  "+components/captive_portal",
   "+components/component_updater",
   "+components/constrained_window",
   "+components/content_settings/core/browser",
diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_process_browser_test.cc
index 19d33b3..a7f6d3f 100644
--- a/chrome/test/base/in_process_browser_test.cc
+++ b/chrome/test/base/in_process_browser_test.cc
@@ -46,7 +46,6 @@
 #include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/common/buildflags.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_paths.h"
@@ -59,6 +58,7 @@
 #include "chrome/test/base/test_launcher_utils.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/ui_test_utils.h"
+#include "components/captive_portal/buildflags.h"
 #include "components/google/core/common/google_util.h"
 #include "components/os_crypt/os_crypt_mocker.h"
 #include "content/public/browser/devtools_agent_host.h"
diff --git a/chrome/test/base/testing_browser_process.cc b/chrome/test/base/testing_browser_process.cc
index 916d1931..bdfc2ee 100644
--- a/chrome/test/base/testing_browser_process.cc
+++ b/chrome/test/base/testing_browser_process.cc
@@ -398,7 +398,9 @@
 network_time::NetworkTimeTracker*
 TestingBrowserProcess::network_time_tracker() {
   if (!network_time_tracker_) {
-    DCHECK(local_state_);
+    if (!local_state_)
+      return nullptr;
+
     network_time_tracker_.reset(new network_time::NetworkTimeTracker(
         std::unique_ptr<base::Clock>(new base::DefaultClock()),
         std::unique_ptr<base::TickClock>(new base::DefaultTickClock()),
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn
index 5630aca..2f0d080 100644
--- a/chromecast/BUILD.gn
+++ b/chromecast/BUILD.gn
@@ -481,6 +481,7 @@
     "$root_gen_dir/chromecast/bindings/bindings_resources.pak",
     "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
     "$root_gen_dir/net/net_resources.pak",
     "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
@@ -497,7 +498,8 @@
   deps = [
     "//chromecast/app:resources",
     "//chromecast/bindings:bindings_resources_grit",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//mojo/public/js:resources",
     "//net:net_resources",
diff --git a/chromeos/components/help_app_ui/help_app_guest_ui.cc b/chromeos/components/help_app_ui/help_app_guest_ui.cc
index a180b0a8..9e5381a 100644
--- a/chromeos/components/help_app_ui/help_app_guest_ui.cc
+++ b/chromeos/components/help_app_ui/help_app_guest_ui.cc
@@ -20,7 +20,7 @@
   content::WebUIDataSource* source =
       content::WebUIDataSource::Create(kChromeUIHelpAppGuestHost);
   source->AddResourcePath("app.html", IDR_HELP_APP_APP_HTML);
-  // source->AddResourcePath("app_bin.js", IDR_HELP_APP_APP_BIN_JS);
+  source->AddResourcePath("app_bin.js", IDR_HELP_APP_APP_BIN_JS);
   source->AddResourcePath("load_time_data.js", IDR_WEBUI_JS_LOAD_TIME_DATA);
 
   // Add all resources from chromeos_media_app_bundle.pak.
diff --git a/chromeos/components/help_app_ui/resources/app.html b/chromeos/components/help_app_ui/resources/app.html
index a69c1bf..1e1abc4 100644
--- a/chromeos/components/help_app_ui/resources/app.html
+++ b/chromeos/components/help_app_ui/resources/app.html
@@ -10,4 +10,4 @@
 </style>
 <script src="/load_time_data.js"></script>
 <script src="/strings.js"></script>
-<!--<script src="/app_bin.js"></script>-->
+<script src="/app_bin.js"></script>
diff --git a/chromeos/dbus/cicerone_client.cc b/chromeos/dbus/cicerone_client.cc
index f3740b4..5d4d6c7 100644
--- a/chromeos/dbus/cicerone_client.cc
+++ b/chromeos/dbus/cicerone_client.cc
@@ -444,6 +444,29 @@
                        weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
+  void ConfigureForArcSideload(
+      const vm_tools::cicerone::ConfigureForArcSideloadRequest& request,
+      DBusMethodCallback<vm_tools::cicerone::ConfigureForArcSideloadResponse>
+          callback) override {
+    dbus::MethodCall method_call(
+        vm_tools::cicerone::kVmCiceroneInterface,
+        vm_tools::cicerone::kConfigureForArcSideloadMethod);
+    dbus::MessageWriter writer(&method_call);
+
+    if (!writer.AppendProtoAsArrayOfBytes(request)) {
+      LOG(ERROR) << "Failed to encode ConfigureForArcSideloadRequest protobuf";
+      base::ThreadTaskRunnerHandle::Get()->PostTask(
+          FROM_HERE, base::BindOnce(std::move(callback), base::nullopt));
+      return;
+    }
+
+    cicerone_proxy_->CallMethod(
+        &method_call, kDefaultTimeout.InMilliseconds(),
+        base::BindOnce(&CiceroneClientImpl::OnDBusProtoResponse<
+                           vm_tools::cicerone::ConfigureForArcSideloadResponse>,
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
+  }
+
   void UpgradeContainer(
       const vm_tools::cicerone::UpgradeContainerRequest& request,
       DBusMethodCallback<vm_tools::cicerone::UpgradeContainerResponse> callback)
diff --git a/chromeos/dbus/cicerone_client.h b/chromeos/dbus/cicerone_client.h
index 3fdce4a..2e6e393 100644
--- a/chromeos/dbus/cicerone_client.h
+++ b/chromeos/dbus/cicerone_client.h
@@ -262,6 +262,13 @@
       DBusMethodCallback<vm_tools::cicerone::ApplyAnsiblePlaybookResponse>
           callback) = 0;
 
+  // Configure the container to allow sideloading Android apps into Arc.
+  // |callback| is called once configuration finishes.
+  virtual void ConfigureForArcSideload(
+      const vm_tools::cicerone::ConfigureForArcSideloadRequest& request,
+      DBusMethodCallback<vm_tools::cicerone::ConfigureForArcSideloadResponse>
+          callback) = 0;
+
   // Upgrades the container.
   // |callback| is called when the method completes.
   virtual void UpgradeContainer(
diff --git a/chromeos/dbus/fake_cicerone_client.cc b/chromeos/dbus/fake_cicerone_client.cc
index 2ba8b76f..a811897b 100644
--- a/chromeos/dbus/fake_cicerone_client.cc
+++ b/chromeos/dbus/fake_cicerone_client.cc
@@ -301,6 +301,16 @@
       base::BindOnce(std::move(callback), apply_ansible_playbook_response_));
 }
 
+void FakeCiceroneClient::ConfigureForArcSideload(
+    const vm_tools::cicerone::ConfigureForArcSideloadRequest& request,
+    DBusMethodCallback<vm_tools::cicerone::ConfigureForArcSideloadResponse>
+        callback) {
+  configure_for_arc_sideload_called_ = true;
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce(std::move(callback), enable_arc_sideload_response_));
+}
+
 void FakeCiceroneClient::UpgradeContainer(
     const vm_tools::cicerone::UpgradeContainerRequest& request,
     DBusMethodCallback<vm_tools::cicerone::UpgradeContainerResponse> callback) {
diff --git a/chromeos/dbus/fake_cicerone_client.h b/chromeos/dbus/fake_cicerone_client.h
index 2614ce0a..6af2fb12 100644
--- a/chromeos/dbus/fake_cicerone_client.h
+++ b/chromeos/dbus/fake_cicerone_client.h
@@ -106,6 +106,10 @@
       const vm_tools::cicerone::ApplyAnsiblePlaybookRequest& request,
       DBusMethodCallback<vm_tools::cicerone::ApplyAnsiblePlaybookResponse>
           callback) override;
+  void ConfigureForArcSideload(
+      const vm_tools::cicerone::ConfigureForArcSideloadRequest& request,
+      DBusMethodCallback<vm_tools::cicerone::ConfigureForArcSideloadResponse>
+          callback) override;
   void UpgradeContainer(
       const vm_tools::cicerone::UpgradeContainerRequest& request,
       DBusMethodCallback<vm_tools::cicerone::UpgradeContainerResponse> callback)
@@ -257,6 +261,10 @@
           apply_ansible_playbook_response) {
     apply_ansible_playbook_response_ = apply_ansible_playbook_response;
   }
+  void set_enable_arc_sideload_response(
+      const vm_tools::cicerone::ConfigureForArcSideloadResponse& response) {
+    enable_arc_sideload_response_ = response;
+  }
   void set_upgrade_container_response(
       vm_tools::cicerone::UpgradeContainerResponse upgrade_container_response) {
     upgrade_container_response_ = std::move(upgrade_container_response);
@@ -268,6 +276,11 @@
         std::move(cancel_upgrade_container_response);
   }
 
+  // Returns true if the method has been invoked at least once, false otherwise.
+  bool configure_for_arc_sideload_called() {
+    return configure_for_arc_sideload_called_;
+  }
+
   // Additional functions to allow tests to trigger Signals.
   void NotifyLxdContainerCreated(
       const vm_tools::cicerone::LxdContainerCreatedSignal& signal);
@@ -315,6 +328,8 @@
   std::string last_container_username_;
   bool send_container_started_signal_ = true;
 
+  bool configure_for_arc_sideload_called_ = false;
+
   vm_tools::cicerone::LxdContainerCreatedSignal_Status
       lxd_container_created_signal_status_ =
           vm_tools::cicerone::LxdContainerCreatedSignal::CREATED;
@@ -352,6 +367,8 @@
       cancel_import_lxd_container_response_;
   vm_tools::cicerone::ApplyAnsiblePlaybookResponse
       apply_ansible_playbook_response_;
+  vm_tools::cicerone::ConfigureForArcSideloadResponse
+      enable_arc_sideload_response_;
   vm_tools::cicerone::UpgradeContainerResponse upgrade_container_response_;
   vm_tools::cicerone::CancelUpgradeContainerResponse
       cancel_upgrade_container_response_;
diff --git a/chromeos/dbus/session_manager/fake_session_manager_client.cc b/chromeos/dbus/session_manager/fake_session_manager_client.cc
index bac65dc..8c068dc7 100644
--- a/chromeos/dbus/session_manager/fake_session_manager_client.cc
+++ b/chromeos/dbus/session_manager/fake_session_manager_client.cc
@@ -546,8 +546,6 @@
     policy_[GetMemoryStorageKey(descriptor)] = policy_blob;
 
     if (IsChromeDevicePolicy(descriptor)) {
-      // TODO(ljusten): For historical reasons, this code path only stores keys
-      // for device policy. Should this be extended to other policy?
       if (response.has_new_public_key()) {
         base::FilePath key_path;
         GetStubPolicyFilePath(descriptor, &key_path);
@@ -680,7 +678,14 @@
     EnableAdbSideloadCallback callback) {}
 
 void FakeSessionManagerClient::QueryAdbSideload(
-    QueryAdbSideloadCallback callback) {}
+    QueryAdbSideloadCallback callback) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce(std::move(callback),
+                     adb_sideload_enabled_ ? AdbSideloadResponseCode::SUCCESS
+                                           : AdbSideloadResponseCode::FAILED,
+                     adb_sideload_enabled_));
+}
 
 void FakeSessionManagerClient::NotifyArcInstanceStopped() {
   for (auto& observer : observers_)
diff --git a/chromeos/dbus/session_manager/fake_session_manager_client.h b/chromeos/dbus/session_manager/fake_session_manager_client.h
index bde9cb4..59fc331 100644
--- a/chromeos/dbus/session_manager/fake_session_manager_client.h
+++ b/chromeos/dbus/session_manager/fake_session_manager_client.h
@@ -258,6 +258,10 @@
     force_state_keys_missing_ = force_state_keys_missing;
   }
 
+  void set_adb_sideload_enabled(bool adb_sideload_enabled) {
+    adb_sideload_enabled_ = adb_sideload_enabled;
+  }
+
   bool session_stopped() const { return session_stopped_; }
 
   const SessionManagerClient::ActiveSessionsMap& user_sessions() const {
@@ -317,6 +321,8 @@
 
   bool container_running_ = false;
 
+  bool adb_sideload_enabled_ = false;
+
   std::string login_password_;
 
   // Contains last request passed to StartArcMiniContainer
diff --git a/chromeos/dbus/session_manager/session_manager_client.cc b/chromeos/dbus/session_manager/session_manager_client.cc
index 4ab91d7..654d0b91a 100644
--- a/chromeos/dbus/session_manager/session_manager_client.cc
+++ b/chromeos/dbus/session_manager/session_manager_client.cc
@@ -67,8 +67,8 @@
     return RetrievePolicyResponseType::SUCCESS;
   } else if (error_name == login_manager::dbus_error::kGetServiceFail ||
              error_name == login_manager::dbus_error::kSessionDoesNotExist) {
-    // TODO(crbug.com/765644, ljusten): Remove kSessionDoesNotExist case once
-    // Chrome OS has switched to kGetServiceFail.
+    // TODO(crbug.com/765644): Remove kSessionDoesNotExist case once Chrome OS
+    // has switched to kGetServiceFail.
     return RetrievePolicyResponseType::GET_SERVICE_FAIL;
   } else if (error_name == login_manager::dbus_error::kSigEncodeFail) {
     return RetrievePolicyResponseType::POLICY_ENCODE_ERROR;
diff --git a/components/captive_portal/BUILD.gn b/components/captive_portal/BUILD.gn
index 1d6bbbd..ab55e61 100644
--- a/components/captive_portal/BUILD.gn
+++ b/components/captive_portal/BUILD.gn
@@ -2,6 +2,9 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/buildflag_header.gni")
+import("//components/captive_portal/features.gni")
+
 component("captive_portal") {
   sources = [
     "captive_portal_detector.cc",
@@ -27,6 +30,11 @@
   }
 }
 
+buildflag_header("buildflags") {
+  header = "buildflags.h"
+  flags = [ "ENABLE_CAPTIVE_PORTAL_DETECTION=$enable_captive_portal_detection" ]
+}
+
 static_library("test_support") {
   testonly = true
   sources = [
diff --git a/components/captive_portal/features.gni b/components/captive_portal/features.gni
new file mode 100644
index 0000000..9b277f56
--- /dev/null
+++ b/components/captive_portal/features.gni
@@ -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.
+
+import("//build/config/compiler/compiler.gni")
+
+# Please keep features in alphabetical order.
+declare_args() {
+  enable_captive_portal_detection = !is_android && !is_chromecast && !is_ios
+}
diff --git a/components/media_message_center/media_notification_view_impl.cc b/components/media_message_center/media_notification_view_impl.cc
index d0c7abe..a88d333 100644
--- a/components/media_message_center/media_notification_view_impl.cc
+++ b/components/media_message_center/media_notification_view_impl.cc
@@ -394,10 +394,6 @@
   return header_row_;
 }
 
-base::string16 MediaNotificationViewImpl::GetSourceTitleForTesting() const {
-  return header_row_->app_name_for_testing();
-}
-
 void MediaNotificationViewImpl::UpdateActionButtonsVisibility() {
   base::flat_set<MediaSessionAction> ignored_actions = {
       GetPlayPauseIgnoredAction(GetActionFromButtonTag(*play_pause_button_))};
diff --git a/components/media_message_center/media_notification_view_impl.h b/components/media_message_center/media_notification_view_impl.h
index 18f5455..e433515 100644
--- a/components/media_message_center/media_notification_view_impl.h
+++ b/components/media_message_center/media_notification_view_impl.h
@@ -85,7 +85,6 @@
   const views::Label* artist_label_for_testing() const { return artist_label_; }
 
   views::Button* GetHeaderRowForTesting() const;
-  base::string16 GetSourceTitleForTesting() const;
 
  private:
   friend class MediaNotificationViewImplTest;
diff --git a/components/security_interstitials/content/ssl_error_navigation_throttle.cc b/components/security_interstitials/content/ssl_error_navigation_throttle.cc
index d1f031c..2dff041 100644
--- a/components/security_interstitials/content/ssl_error_navigation_throttle.cc
+++ b/components/security_interstitials/content/ssl_error_navigation_throttle.cc
@@ -16,11 +16,13 @@
 SSLErrorNavigationThrottle::SSLErrorNavigationThrottle(
     content::NavigationHandle* navigation_handle,
     std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+    network_time::NetworkTimeTracker* network_time_tracker,
     SSLErrorNavigationThrottle::HandleSSLErrorCallback
         handle_ssl_error_callback,
     IsInHostedAppCallback is_in_hosted_app_callback)
     : content::NavigationThrottle(navigation_handle),
       ssl_cert_reporter_(std::move(ssl_cert_reporter)),
+      network_time_tracker_(network_time_tracker),
       handle_ssl_error_callback_(std::move(handle_ssl_error_callback)),
       is_in_hosted_app_callback_(std::move(is_in_hosted_app_callback)) {}
 
@@ -109,7 +111,7 @@
   // navigation.
   std::move(handle_ssl_error_callback)
       .Run(web_contents, net_error, ssl_info, request_url,
-           std::move(ssl_cert_reporter),
+           std::move(ssl_cert_reporter), network_time_tracker_,
            base::BindOnce(&SSLErrorNavigationThrottle::ShowInterstitial,
                           weak_ptr_factory_.GetWeakPtr(), net_error));
 }
diff --git a/components/security_interstitials/content/ssl_error_navigation_throttle.h b/components/security_interstitials/content/ssl_error_navigation_throttle.h
index 60370ca..a8be453b 100644
--- a/components/security_interstitials/content/ssl_error_navigation_throttle.h
+++ b/components/security_interstitials/content/ssl_error_navigation_throttle.h
@@ -20,6 +20,10 @@
 class WebContents;
 }  // namespace content
 
+namespace network_time {
+class NetworkTimeTracker;
+}
+
 namespace security_interstitials {
 class SecurityInterstitialPage;
 }  // namespace security_interstitials
@@ -38,6 +42,7 @@
       const net::SSLInfo& ssl_info,
       const GURL& request_url,
       std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+      network_time::NetworkTimeTracker* network_time_tracker,
       base::OnceCallback<void(
           std::unique_ptr<security_interstitials::SecurityInterstitialPage>)>
           blocking_page_ready_callback)>
@@ -55,6 +60,7 @@
   explicit SSLErrorNavigationThrottle(
       content::NavigationHandle* handle,
       std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+      network_time::NetworkTimeTracker* network_time_tracker,
       HandleSSLErrorCallback handle_ssl_error_callback,
       IsInHostedAppCallback is_in_hosted_app_callback);
   ~SSLErrorNavigationThrottle() override;
@@ -79,6 +85,7 @@
           blocking_page);
 
   std::unique_ptr<SSLCertReporter> ssl_cert_reporter_;
+  network_time::NetworkTimeTracker* network_time_tracker_;
   HandleSSLErrorCallback handle_ssl_error_callback_;
   IsInHostedAppCallback is_in_hosted_app_callback_;
   base::WeakPtrFactory<SSLErrorNavigationThrottle> weak_ptr_factory_{this};
diff --git a/components/security_interstitials/content/ssl_error_navigation_throttle_unittest.cc b/components/security_interstitials/content/ssl_error_navigation_throttle_unittest.cc
index 0ffced24..d15d3975 100644
--- a/components/security_interstitials/content/ssl_error_navigation_throttle_unittest.cc
+++ b/components/security_interstitials/content/ssl_error_navigation_throttle_unittest.cc
@@ -92,6 +92,7 @@
     const net::SSLInfo& ssl_info,
     const GURL& request_url,
     std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+    network_time::NetworkTimeTracker* network_time_tracker,
     base::OnceCallback<
         void(std::unique_ptr<security_interstitials::SecurityInterstitialPage>)>
         blocking_page_ready_callback) {
@@ -120,6 +121,7 @@
       : SSLErrorNavigationThrottle(
             handle,
             std::make_unique<FakeSSLCertReporter>(),
+            /*network_time_tracker=*/nullptr,
             base::BindOnce(&MockHandleSSLError, async_handle_ssl_error),
             base::BindOnce(&IsInHostedApp)),
         on_cancel_deferred_navigation_(
diff --git a/content/BUILD.gn b/content/BUILD.gn
index f99e974..ec9a7a3 100644
--- a/content/BUILD.gn
+++ b/content/BUILD.gn
@@ -108,7 +108,7 @@
   }
 }
 
-grit("resources") {
+grit("content_resources") {
   source = "content_resources.grd"
 
   # The .grd contains references to generated files.
@@ -125,12 +125,28 @@
     "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
   ]
   deps = [
-    "//content/browser/process_internals:mojo_bindings_js",
     "//gpu/ipc/common:vulkan_interface_js",
     "//url/mojom:url_mojom_origin_js",
   ]
 }
 
+grit("dev_ui_content_resources") {
+  source = "dev_ui_content_resources.grd"
+
+  # The .grd contains references to generated files.
+  source_is_generated = true
+
+  outputs = [
+    "grit/dev_ui_content_resources.h",
+    "dev_ui_content_resources.pak",
+  ]
+  grit_flags = [
+    "-E",
+    "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
+  ]
+  deps = [ "//content/browser/process_internals:mojo_bindings_js" ]
+}
+
 # This target exists to "hold" the content_export header so we can do proper
 # inclusion testing of it.
 source_set("export") {
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 5f19ac7e..0caa9da 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -81,7 +81,8 @@
     "//components/viz/client",
     "//components/viz/common",
     "//components/viz/host",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/browser/background_fetch:background_fetch_proto",
     "//content/browser/background_sync:background_sync_proto",
@@ -1959,6 +1960,7 @@
     deps += [
       "//components/services/font:lib",
       "//services/service_manager/zygote",
+      "//third_party/blink/public/mojom:memory_usage_monitor_linux_mojo_bindings",
     ]
   }
 
diff --git a/content/browser/appcache/appcache_internals_ui.cc b/content/browser/appcache/appcache_internals_ui.cc
index 97065dd..5f339ae2 100644
--- a/content/browser/appcache/appcache_internals_ui.cc
+++ b/content/browser/appcache/appcache_internals_ui.cc
@@ -20,7 +20,7 @@
 #include "content/browser/appcache/appcache.h"
 #include "content/browser/appcache/appcache_response.h"
 #include "content/browser/storage_partition_impl.h"
-#include "content/grit/content_resources.h"
+#include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 2405802..612d83a 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -1688,10 +1688,6 @@
     IPC_MESSAGE_HANDLER(AccessibilityHostMsg_EventBundle, OnAccessibilityEvents)
     IPC_MESSAGE_HANDLER(AccessibilityHostMsg_LocationChanges,
                         OnAccessibilityLocationChanges)
-    IPC_MESSAGE_HANDLER(AccessibilityHostMsg_FindInPageResult,
-                        OnAccessibilityFindInPageResult)
-    IPC_MESSAGE_HANDLER(AccessibilityHostMsg_FindInPageTermination,
-                        OnAccessibilityFindInPageTermination)
     IPC_MESSAGE_HANDLER(AccessibilityHostMsg_ChildFrameHitTestResult,
                         OnAccessibilityChildFrameHitTestResult)
     IPC_MESSAGE_HANDLER(AccessibilityHostMsg_SnapshotResponse,
@@ -1708,8 +1704,6 @@
     IPC_MESSAGE_HANDLER(FrameHostMsg_ScrollRectToVisibleInParentFrame,
                         OnScrollRectToVisibleInParentFrame)
     IPC_MESSAGE_HANDLER(FrameHostMsg_FrameDidCallFocus, OnFrameDidCallFocus)
-    IPC_MESSAGE_HANDLER(FrameHostMsg_RenderFallbackContentInParentProcess,
-                        OnRenderFallbackContentInParentProcess)
     IPC_MESSAGE_HANDLER(FrameHostMsg_DownloadUrl, OnDownloadUrl)
 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
     IPC_MESSAGE_HANDLER(FrameHostMsg_ShowPopup, OnShowPopup)
@@ -2097,6 +2091,11 @@
         GetLocalRenderWidgetHost()->GetInitialVisualProperties();
   }
 
+  // TODO(https://crbug.com/1006814): Remove this.
+  if (params->previous_routing_id == MSG_ROUTING_NONE &&
+      params->parent_routing_id == MSG_ROUTING_NONE) {
+    base::debug::DumpWithoutCrashing();
+  }
   GetProcess()->GetRendererInterface()->CreateFrame(std::move(params));
 
   if (previous_routing_id != MSG_ROUTING_NONE) {
@@ -3624,6 +3623,30 @@
   delegate_->OnGoToEntryAtOffset(this, offset, has_user_gesture);
 }
 
+void RenderFrameHostImpl::HandleAccessibilityFindInPageResult(
+    blink::mojom::FindInPageResultAXParamsPtr params) {
+  ui::AXMode accessibility_mode = delegate_->GetAccessibilityMode();
+  if (accessibility_mode.has_mode(ui::AXMode::kNativeAPIs) && is_active()) {
+    BrowserAccessibilityManager* manager =
+        GetOrCreateBrowserAccessibilityManager();
+    if (manager) {
+      manager->OnFindInPageResult(params->request_id, params->match_index,
+                                  params->start_id, params->start_offset,
+                                  params->end_id, params->end_offset);
+    }
+  }
+}
+
+void RenderFrameHostImpl::HandleAccessibilityFindInPageTermination() {
+  ui::AXMode accessibility_mode = delegate_->GetAccessibilityMode();
+  if (accessibility_mode.has_mode(ui::AXMode::kNativeAPIs) && is_active()) {
+    BrowserAccessibilityManager* manager =
+        GetOrCreateBrowserAccessibilityManager();
+    if (manager)
+      manager->OnFindInPageTermination();
+  }
+}
+
 void RenderFrameHostImpl::OnForwardResourceTimingToParent(
     const ResourceTimingInfo& resource_timing) {
   // Don't forward the resource timing if this RFH is pending deletion. This can
@@ -3894,30 +3917,6 @@
   }
 }
 
-void RenderFrameHostImpl::OnAccessibilityFindInPageResult(
-    const AccessibilityHostMsg_FindInPageResultParams& params) {
-  ui::AXMode accessibility_mode = delegate_->GetAccessibilityMode();
-  if (accessibility_mode.has_mode(ui::AXMode::kNativeAPIs) && is_active()) {
-    BrowserAccessibilityManager* manager =
-        GetOrCreateBrowserAccessibilityManager();
-    if (manager) {
-      manager->OnFindInPageResult(params.request_id, params.match_index,
-                                  params.start_id, params.start_offset,
-                                  params.end_id, params.end_offset);
-    }
-  }
-}
-
-void RenderFrameHostImpl::OnAccessibilityFindInPageTermination() {
-  ui::AXMode accessibility_mode = delegate_->GetAccessibilityMode();
-  if (accessibility_mode.has_mode(ui::AXMode::kNativeAPIs) && is_active()) {
-    BrowserAccessibilityManager* manager =
-        GetOrCreateBrowserAccessibilityManager();
-    if (manager)
-      manager->OnFindInPageTermination();
-  }
-}
-
 void RenderFrameHostImpl::OnAccessibilityChildFrameHitTestResult(
     int action_request_id,
     const gfx::Point& point,
@@ -4171,7 +4170,7 @@
   delegate_->DidCallFocus();
 }
 
-void RenderFrameHostImpl::OnRenderFallbackContentInParentProcess() {
+void RenderFrameHostImpl::RenderFallbackContentInParentProcess() {
   bool is_object_type =
       frame_tree_node()->current_replication_state().frame_owner_element_type ==
       blink::FrameOwnerElementType::kObject;
@@ -4191,10 +4190,10 @@
   // frame of the owner is a proxy.
   auto* rfh = frame_tree_node()->current_frame_host();
   if (rfh->GetSiteInstance() == rfh->GetParent()->GetSiteInstance()) {
-    rfh->Send(new FrameMsg_RenderFallbackContent(rfh->GetRoutingID()));
+    rfh->GetAssociatedLocalFrame()->RenderFallbackContent();
   } else if (auto* proxy =
                  frame_tree_node()->render_manager()->GetProxyToParent()) {
-    proxy->Send(new FrameMsg_RenderFallbackContent(proxy->GetRoutingID()));
+    proxy->GetAssociatedRemoteFrame()->RenderFallbackContent();
   }
 }
 
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index be5c7b0..c99cba0 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -136,7 +136,6 @@
 
 class GURL;
 struct AccessibilityHostMsg_EventBundleParams;
-struct AccessibilityHostMsg_FindInPageResultParams;
 struct AccessibilityHostMsg_LocationChangeParams;
 struct FrameHostMsg_DownloadUrl_Params;
 struct FrameHostMsg_OpenURL_Params;
@@ -1323,6 +1322,10 @@
       const GURL& initiator_url,
       blink::mojom::NavigationBlockedReason reason) override;
   void GoToEntryAtOffset(int32_t offset, bool has_user_gesture) override;
+  void RenderFallbackContentInParentProcess() override;
+  void HandleAccessibilityFindInPageResult(
+      blink::mojom::FindInPageResultAXParamsPtr params) override;
+  void HandleAccessibilityFindInPageTermination() override;
 
  protected:
   friend class RenderFrameHostFactory;
@@ -1495,9 +1498,6 @@
       int ack_token);
   void OnAccessibilityLocationChanges(
       const std::vector<AccessibilityHostMsg_LocationChangeParams>& params);
-  void OnAccessibilityFindInPageResult(
-      const AccessibilityHostMsg_FindInPageResultParams& params);
-  void OnAccessibilityFindInPageTermination();
   void OnAccessibilityChildFrameHitTestResult(
       int action_request_id,
       const gfx::Point& point,
@@ -1521,7 +1521,6 @@
       const gfx::Rect& rect_to_scroll,
       const blink::WebScrollIntoViewParams& params);
   void OnFrameDidCallFocus();
-  void OnRenderFallbackContentInParentProcess();
   void OnDownloadUrl(const FrameHostMsg_DownloadUrl_Params& params);
   void OnSaveImageFromDataURL(const std::string& url_str);
 
diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc
index daf115a..fedd377 100644
--- a/content/browser/gpu/gpu_internals_ui.cc
+++ b/content/browser/gpu/gpu_internals_ui.cc
@@ -28,6 +28,7 @@
 #include "content/browser/gpu/gpu_data_manager_impl.h"
 #include "content/browser/gpu/gpu_process_host.h"
 #include "content/grit/content_resources.h"
+#include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/gpu_data_manager_observer.h"
diff --git a/content/browser/indexed_db/indexed_db_internals_ui.cc b/content/browser/indexed_db/indexed_db_internals_ui.cc
index 30380c6..da390c9 100644
--- a/content/browser/indexed_db/indexed_db_internals_ui.cc
+++ b/content/browser/indexed_db/indexed_db_internals_ui.cc
@@ -15,7 +15,7 @@
 #include "base/threading/platform_thread.h"
 #include "base/values.h"
 #include "content/browser/indexed_db/indexed_db_context_impl.h"
-#include "content/grit/content_resources.h"
+#include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/content/browser/net/network_errors_listing_ui.cc b/content/browser/net/network_errors_listing_ui.cc
index 9f731d8..398c9a7 100644
--- a/content/browser/net/network_errors_listing_ui.cc
+++ b/content/browser/net/network_errors_listing_ui.cc
@@ -11,7 +11,7 @@
 #include "base/json/json_writer.h"
 #include "base/memory/ref_counted_memory.h"
 #include "base/values.h"
-#include "content/grit/content_resources.h"
+#include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/url_constants.h"
 #include "net/base/net_errors.h"
diff --git a/content/browser/process_internals/process_internals_ui.cc b/content/browser/process_internals/process_internals_ui.cc
index d21cdb2a..a04f4498 100644
--- a/content/browser/process_internals/process_internals_ui.cc
+++ b/content/browser/process_internals/process_internals_ui.cc
@@ -13,7 +13,7 @@
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/browser/process_internals/process_internals.mojom.h"
 #include "content/browser/process_internals/process_internals_handler_impl.h"
-#include "content/grit/content_resources.h"
+#include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_ui.h"
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index ad9f828..21d2d4b 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -247,6 +247,7 @@
 
 #include "components/services/font/public/mojom/font_service.mojom.h"  // nogncheck
 #include "content/browser/font_service.h"  // nogncheck
+#include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom.h"  // nogncheck
 #endif
 
 #if defined(OS_MACOSX)
@@ -3478,6 +3479,12 @@
     // Send RenderProcessReady only if we already received the process handle.
     for (auto& observer : observers_)
       observer.RenderProcessReady(this);
+
+#if defined(OS_LINUX)
+    // Provide /proc/{renderer pid}/status and statm files for
+    // MemoryUsageMonitor in blink.
+    ProvideStatusFileForRenderer();
+#endif
   }
 
 #if BUILDFLAG(IPC_MESSAGE_LOG_ENABLED)
@@ -4728,6 +4735,12 @@
     // Send RenderProcessReady only if the channel is already connected.
     for (auto& observer : observers_)
       observer.RenderProcessReady(this);
+
+#if defined(OS_LINUX)
+    // Provide /proc/{renderer pid}/status and statm files for
+    // MemoryUsageMonitor in blink.
+    ProvideStatusFileForRenderer();
+#endif
   }
 
   aec_dump_manager_.set_pid(GetProcess().Pid());
@@ -4896,4 +4909,27 @@
   GetBindHostReceiverInterceptor() = std::move(callback);
 }
 
+#if defined(OS_LINUX)
+void RenderProcessHostImpl::ProvideStatusFileForRenderer() {
+  // We use ScopedAllowBlocking, because opening /proc/{pid}/status and
+  // /proc/{pid}/statm is not blocking call.
+  base::ScopedAllowBlocking allow_blocking;
+  base::FilePath proc_pid_dir =
+      base::FilePath("/proc").Append(base::NumberToString(GetProcess().Pid()));
+
+  base::File status_file(
+      proc_pid_dir.Append("status"),
+      base::File::Flags::FLAG_OPEN | base::File::Flags::FLAG_READ);
+  base::File statm_file(
+      proc_pid_dir.Append("statm"),
+      base::File::Flags::FLAG_OPEN | base::File::Flags::FLAG_READ);
+  if (!status_file.IsValid() || !statm_file.IsValid())
+    return;
+
+  mojo::Remote<blink::mojom::MemoryUsageMonitorLinux> monitor;
+  BindReceiver(monitor.BindNewPipeAndPassReceiver());
+  monitor->SetProcFiles(statm_file.Duplicate(), status_file.Duplicate());
+}
+#endif
+
 }  // namespace content
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index 5f4d1344..178ff5ce 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -914,6 +914,15 @@
   friend class IOThreadHostImpl;
   base::Optional<base::SequenceBound<IOThreadHostImpl>> io_thread_host_impl_;
 
+#if defined(OS_LINUX)
+  // Provides /proc/{renderer pid}/status and statm files for the renderer,
+  // because the files are required to calculate the renderer's private
+  // footprint on Chromium Linux. Regarding MacOS X and Windows, we have
+  // the different way to calculate renderer's private memory footprint.
+  // So this method is implemented only when OS_LINUX is defined.
+  void ProvideStatusFileForRenderer();
+#endif
+
   mojo::OutgoingInvitation mojo_invitation_;
 
   size_t keep_alive_ref_count_;
diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
index a31cf9f..0d979c6 100644
--- a/content/browser/service_worker/service_worker_container_host.cc
+++ b/content/browser/service_worker/service_worker_container_host.cc
@@ -323,7 +323,7 @@
   TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker",
                            "ServiceWorkerContainerHost::GetRegistrations",
                            trace_id);
-  context_->storage()->GetRegistrationsForOrigin(
+  context_->registry()->GetRegistrationsForOrigin(
       url_.GetOrigin(),
       base::AdaptCallbackForRepeating(base::BindOnce(
           &ServiceWorkerContainerHost::GetRegistrationsComplete,
diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc
index 2c7d80c..a966204 100644
--- a/content/browser/service_worker/service_worker_context_core.cc
+++ b/content/browser/service_worker/service_worker_context_core.cc
@@ -480,7 +480,7 @@
 void ServiceWorkerContextCore::DeleteForOrigin(const GURL& origin,
                                                StatusCallback callback) {
   DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
-  storage()->GetRegistrationsForOrigin(
+  registry()->GetRegistrationsForOrigin(
       origin,
       base::BindOnce(
           &ServiceWorkerContextCore::DidGetRegistrationsForDeleteForOrigin,
@@ -720,7 +720,7 @@
   if (!was_service_worker_registered_)
     return;
   was_service_worker_registered_ = false;
-  storage()->GetAllRegistrationsInfos(
+  registry()->GetAllRegistrationsInfos(
       base::BindOnce(&ClearAllServiceWorkersHelper::DidGetAllRegistrations,
                      helper, AsWeakPtr()));
 }
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
index 08ce3f7..d6bfdb0 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -554,7 +554,7 @@
         base::BindOnce(std::move(callback), std::vector<StorageUsageInfo>()));
     return;
   }
-  context()->storage()->GetAllRegistrationsInfos(base::BindOnce(
+  context()->registry()->GetAllRegistrationsInfos(base::BindOnce(
       &ServiceWorkerContextWrapper::DidGetAllRegistrationsForGetAllOrigins,
       this, std::move(callback), std::move(callback_runner)));
 }
@@ -1069,7 +1069,7 @@
                             std::vector<ServiceWorkerRegistrationInfo>());
     return;
   }
-  context_core_->storage()->GetAllRegistrationsInfos(std::move(callback));
+  context_core_->registry()->GetAllRegistrationsInfos(std::move(callback));
 }
 
 void ServiceWorkerContextWrapper::GetRegistrationsForOrigin(
@@ -1084,8 +1084,8 @@
             std::vector<scoped_refptr<ServiceWorkerRegistration>>()));
     return;
   }
-  context_core_->storage()->GetRegistrationsForOrigin(origin.GetURL(),
-                                                      std::move(callback));
+  context_core_->registry()->GetRegistrationsForOrigin(origin.GetURL(),
+                                                       std::move(callback));
 }
 
 void ServiceWorkerContextWrapper::GetRegistrationUserData(
diff --git a/content/browser/service_worker/service_worker_context_wrapper.h b/content/browser/service_worker/service_worker_context_wrapper.h
index e40bc6fe..6dac0afb 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.h
+++ b/content/browser/service_worker/service_worker_context_wrapper.h
@@ -66,11 +66,11 @@
       base::OnceCallback<void(blink::ServiceWorkerStatusCode)>;
   using BoolCallback = base::OnceCallback<void(bool)>;
   using FindRegistrationCallback =
-      ServiceWorkerStorage::FindRegistrationCallback;
+      ServiceWorkerRegistry::FindRegistrationCallback;
   using GetRegistrationsCallback =
-      ServiceWorkerStorage::GetRegistrationsCallback;
+      ServiceWorkerRegistry::GetRegistrationsCallback;
   using GetRegistrationsInfosCallback =
-      ServiceWorkerStorage::GetRegistrationsInfosCallback;
+      ServiceWorkerRegistry::GetRegistrationsInfosCallback;
   using GetUserDataCallback = ServiceWorkerStorage::GetUserDataCallback;
   using GetUserKeysAndDataCallback =
       ServiceWorkerStorage::GetUserKeysAndDataCallback;
diff --git a/content/browser/service_worker/service_worker_context_wrapper_unittest.cc b/content/browser/service_worker/service_worker_context_wrapper_unittest.cc
index eb2cc6c..9715a95 100644
--- a/content/browser/service_worker/service_worker_context_wrapper_unittest.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper_unittest.cc
@@ -59,6 +59,7 @@
   }
 
   ServiceWorkerContextCore* context() { return wrapper_->context(); }
+  ServiceWorkerRegistry* registry() { return context()->registry(); }
   ServiceWorkerStorage* storage() { return context()->storage(); }
 
  protected:
@@ -83,7 +84,7 @@
 
   // Store it.
   base::RunLoop loop;
-  storage()->StoreRegistration(
+  registry()->StoreRegistration(
       registration.get(), registration->waiting_version(),
       base::BindLambdaForTesting(
           [&loop](blink::ServiceWorkerStatusCode status) {
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc b/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
index 93c11a0..b932a6a 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
+++ b/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
@@ -178,7 +178,7 @@
   registration_->SetActiveVersion(version_);
   {
     base::RunLoop loop;
-    context()->storage()->StoreRegistration(
+    context()->registry()->StoreRegistration(
         registration_.get(), version_.get(),
         base::BindOnce(
             [](base::OnceClosure closure,
@@ -259,8 +259,8 @@
       ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
-  context()->storage()->StoreRegistration(registration_.get(), version_.get(),
-                                          base::DoNothing());
+  context()->registry()->StoreRegistration(registration_.get(), version_.get(),
+                                           base::DoNothing());
   base::RunLoop().RunUntilIdle();
 
   // Conduct a main resource load.
@@ -287,8 +287,8 @@
       ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
-  context()->storage()->StoreRegistration(registration_.get(), version_.get(),
-                                          base::DoNothing());
+  context()->registry()->StoreRegistration(registration_.get(), version_.get(),
+                                           base::DoNothing());
   base::RunLoop().RunUntilIdle();
 
   // Conduct a main resource load.
@@ -310,8 +310,8 @@
       ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
   version_->SetStatus(ServiceWorkerVersion::INSTALLED);
   registration_->SetWaitingVersion(version_);
-  context()->storage()->StoreRegistration(registration_.get(), version_.get(),
-                                          base::DoNothing());
+  context()->registry()->StoreRegistration(registration_.get(), version_.get(),
+                                           base::DoNothing());
   base::RunLoop().RunUntilIdle();
 
   // Conduct a main resource load.
@@ -364,8 +364,8 @@
       ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
-  context()->storage()->StoreRegistration(registration_.get(), version_.get(),
-                                          base::DoNothing());
+  context()->registry()->StoreRegistration(registration_.get(), version_.get(),
+                                           base::DoNothing());
   base::RunLoop().RunUntilIdle();
   version_ = nullptr;
   registration_ = nullptr;
@@ -391,7 +391,7 @@
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
   base::RunLoop loop;
-  context()->storage()->StoreRegistration(
+  context()->registry()->StoreRegistration(
       registration_.get(), version_.get(),
       base::BindLambdaForTesting(
           [&loop](blink::ServiceWorkerStatusCode status) { loop.Quit(); }));
@@ -430,7 +430,7 @@
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
   base::RunLoop loop;
-  context()->storage()->StoreRegistration(
+  context()->registry()->StoreRegistration(
       registration_.get(), version_.get(),
       base::BindLambdaForTesting(
           [&loop](blink::ServiceWorkerStatusCode status) { loop.Quit(); }));
@@ -469,8 +469,8 @@
       ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
-  context()->storage()->StoreRegistration(registration_.get(), version_.get(),
-                                          base::DoNothing());
+  context()->registry()->StoreRegistration(registration_.get(), version_.get(),
+                                           base::DoNothing());
   base::RunLoop().RunUntilIdle();
   version_.reset();
   registration_.reset();
@@ -490,8 +490,8 @@
       ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
   version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
   registration_->SetActiveVersion(version_);
-  context()->storage()->StoreRegistration(registration_.get(), version_.get(),
-                                          base::DoNothing());
+  context()->registry()->StoreRegistration(registration_.get(), version_.get(),
+                                           base::DoNothing());
   base::RunLoop().RunUntilIdle();
   version_.reset();
   registration_.reset();
diff --git a/content/browser/service_worker/service_worker_internals_ui.cc b/content/browser/service_worker/service_worker_internals_ui.cc
index 4bc3c8a..109e9a96 100644
--- a/content/browser/service_worker/service_worker_internals_ui.cc
+++ b/content/browser/service_worker/service_worker_internals_ui.cc
@@ -23,7 +23,7 @@
 #include "content/browser/service_worker/service_worker_context_wrapper.h"
 #include "content/browser/service_worker/service_worker_registration.h"
 #include "content/browser/service_worker/service_worker_version.h"
-#include "content/grit/content_resources.h"
+#include "content/grit/dev_ui_content_resources.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/content/browser/service_worker/service_worker_navigation_loader_unittest.cc b/content/browser/service_worker/service_worker_navigation_loader_unittest.cc
index eea8f05..c39ded4 100644
--- a/content/browser/service_worker/service_worker_navigation_loader_unittest.cc
+++ b/content/browser/service_worker/service_worker_navigation_loader_unittest.cc
@@ -362,7 +362,7 @@
     registration_->set_last_update_check(base::Time::Now());
     base::Optional<blink::ServiceWorkerStatusCode> status;
     base::RunLoop run_loop;
-    storage()->StoreRegistration(
+    registry()->StoreRegistration(
         registration_.get(), version_.get(),
         ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()));
     run_loop.Run();
@@ -378,6 +378,7 @@
             helper_.get(), client);
   }
 
+  ServiceWorkerRegistry* registry() { return helper_->context()->registry(); }
   ServiceWorkerStorage* storage() { return helper_->context()->storage(); }
 
   // Starts a request. After calling this, the request is ongoing and the
diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
index 45f2c4c..9913030 100644
--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
+++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
@@ -135,7 +135,7 @@
     // Make the registration findable via storage functions.
     base::Optional<blink::ServiceWorkerStatusCode> status;
     base::RunLoop run_loop;
-    helper_->context()->storage()->StoreRegistration(
+    helper_->context()->registry()->StoreRegistration(
         registration_.get(), version_.get(),
         ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()));
     run_loop.Run();
diff --git a/content/browser/service_worker/service_worker_register_job.cc b/content/browser/service_worker/service_worker_register_job.cc
index 706a8beb..4a08d52e 100644
--- a/content/browser/service_worker/service_worker_register_job.cc
+++ b/content/browser/service_worker/service_worker_register_job.cc
@@ -653,7 +653,7 @@
       has_fetch_handler
           ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
           : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST);
-  context_->storage()->StoreRegistration(
+  context_->registry()->StoreRegistration(
       registration(), new_version(),
       base::BindOnce(&ServiceWorkerRegisterJob::OnStoreRegistrationComplete,
                      weak_factory_.GetWeakPtr()));
@@ -746,7 +746,7 @@
       if (!registration()->newest_installed_version()) {
         registration()->NotifyRegistrationFailed();
         if (!registration()->is_deleted()) {
-          context_->storage()->DeleteRegistration(
+          context_->registry()->DeleteRegistration(
               registration(), registration()->scope().GetOrigin(),
               base::DoNothing());
           context_->registry()->NotifyDoneUninstallingRegistration(
diff --git a/content/browser/service_worker/service_worker_registration.cc b/content/browser/service_worker/service_worker_registration.cc
index 412a0a86..85a503d 100644
--- a/content/browser/service_worker/service_worker_registration.cc
+++ b/content/browser/service_worker/service_worker_registration.cc
@@ -304,7 +304,7 @@
     // already cleared.
     return;
   }
-  context_->storage()->DeleteRegistration(
+  context_->registry()->DeleteRegistration(
       this, scope().GetOrigin(),
       AdaptCallbackForRepeating(
           base::BindOnce(&ServiceWorkerRegistration::OnDeleteFinished, this)));
@@ -335,7 +335,7 @@
       waiting_version() ? waiting_version() : active_version();
   DCHECK(most_recent_version.get());
   context_->registry()->NotifyInstallingRegistration(this);
-  context_->storage()->StoreRegistration(
+  context_->registry()->StoreRegistration(
       this, most_recent_version.get(),
       base::BindOnce(&ServiceWorkerRegistration::OnRestoreFinished, this,
                      std::move(callback), most_recent_version));
@@ -543,7 +543,7 @@
 
   // Delete the registration and its state from storage.
   if (status() == Status::kIntact) {
-    context_->storage()->DeleteRegistration(
+    context_->registry()->DeleteRegistration(
         this, scope().GetOrigin(),
         base::BindOnce(&ServiceWorkerRegistration::OnDeleteFinished, protect));
   }
diff --git a/content/browser/service_worker/service_worker_registration_unittest.cc b/content/browser/service_worker/service_worker_registration_unittest.cc
index 6aa2949..5871b96 100644
--- a/content/browser/service_worker/service_worker_registration_unittest.cc
+++ b/content/browser/service_worker/service_worker_registration_unittest.cc
@@ -418,7 +418,7 @@
         EmbeddedWorkerTestHelper::CreateHttpResponseInfo());
     base::Optional<blink::ServiceWorkerStatusCode> status;
     base::RunLoop run_loop;
-    context()->storage()->StoreRegistration(
+    context()->registry()->StoreRegistration(
         registration_.get(), version_1.get(),
         ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()));
     run_loop.Run();
@@ -922,7 +922,7 @@
     bool called = false;
     blink::ServiceWorkerStatusCode status =
         blink::ServiceWorkerStatusCode::kErrorFailed;
-    storage()->StoreRegistration(
+    registry()->StoreRegistration(
         registration.get(), version.get(),
         base::BindOnce(&SaveStatusCallback, &called, &status));
     base::RunLoop().RunUntilIdle();
diff --git a/content/browser/service_worker/service_worker_registry.cc b/content/browser/service_worker/service_worker_registry.cc
index 019aaa0..55485a2 100644
--- a/content/browser/service_worker/service_worker_registry.cc
+++ b/content/browser/service_worker/service_worker_registry.cc
@@ -6,8 +6,10 @@
 
 #include "base/memory/ptr_util.h"
 #include "base/memory/weak_ptr.h"
+#include "base/stl_util.h"
 #include "base/trace_event/trace_event.h"
 #include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_info.h"
 #include "content/browser/service_worker/service_worker_registration.h"
 #include "content/browser/service_worker/service_worker_version.h"
 #include "content/common/service_worker/service_worker_utils.h"
@@ -16,6 +18,10 @@
 
 namespace {
 
+void RunSoon(const base::Location& from_here, base::OnceClosure closure) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(from_here, std::move(closure));
+}
+
 void CompleteFindNow(scoped_refptr<ServiceWorkerRegistration> registration,
                      blink::ServiceWorkerStatusCode status,
                      ServiceWorkerRegistry::FindRegistrationCallback callback) {
@@ -105,6 +111,22 @@
                      std::move(callback)));
 }
 
+void ServiceWorkerRegistry::GetRegistrationsForOrigin(
+    const GURL& origin,
+    GetRegistrationsCallback callback) {
+  storage()->GetRegistrationsForOrigin(
+      origin,
+      base::BindOnce(&ServiceWorkerRegistry::DidGetRegistrationsForOrigin,
+                     weak_factory_.GetWeakPtr(), std::move(callback), origin));
+}
+
+void ServiceWorkerRegistry::GetAllRegistrationsInfos(
+    GetRegistrationsInfosCallback callback) {
+  storage()->GetAllRegistrations(
+      base::BindOnce(&ServiceWorkerRegistry::DidGetAllRegistrations,
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
+}
+
 ServiceWorkerRegistration* ServiceWorkerRegistry::GetUninstallingRegistration(
     const GURL& scope) {
   // TODO(bashi): Should we check state of ServiceWorkerStorage?
@@ -117,6 +139,90 @@
   return nullptr;
 }
 
+void ServiceWorkerRegistry::StoreRegistration(
+    ServiceWorkerRegistration* registration,
+    ServiceWorkerVersion* version,
+    StatusCallback callback) {
+  DCHECK(registration);
+  DCHECK(version);
+
+  if (storage()->IsDisabled()) {
+    RunSoon(FROM_HERE,
+            base::BindOnce(std::move(callback),
+                           blink::ServiceWorkerStatusCode::kErrorAbort));
+    return;
+  }
+
+  DCHECK_NE(version->fetch_handler_existence(),
+            ServiceWorkerVersion::FetchHandlerExistence::UNKNOWN);
+  DCHECK_EQ(registration->status(), ServiceWorkerRegistration::Status::kIntact);
+
+  ServiceWorkerDatabase::RegistrationData data;
+  data.registration_id = registration->id();
+  data.scope = registration->scope();
+  data.script = version->script_url();
+  data.script_type = version->script_type();
+  data.update_via_cache = registration->update_via_cache();
+  data.has_fetch_handler = version->fetch_handler_existence() ==
+                           ServiceWorkerVersion::FetchHandlerExistence::EXISTS;
+  data.version_id = version->version_id();
+  data.last_update_check = registration->last_update_check();
+  data.is_active = (version == registration->active_version());
+  if (version->origin_trial_tokens())
+    data.origin_trial_tokens = *version->origin_trial_tokens();
+  data.navigation_preload_state = registration->navigation_preload_state();
+  data.script_response_time = version->GetInfo().script_response_time;
+  for (const blink::mojom::WebFeature feature : version->used_features())
+    data.used_features.insert(feature);
+  data.cross_origin_embedder_policy = version->cross_origin_embedder_policy();
+
+  ResourceList resources;
+  version->script_cache_map()->GetResources(&resources);
+
+  if (resources.empty()) {
+    RunSoon(FROM_HERE,
+            base::BindOnce(std::move(callback),
+                           blink::ServiceWorkerStatusCode::kErrorFailed));
+    return;
+  }
+
+  uint64_t resources_total_size_bytes = 0;
+  for (const auto& resource : resources) {
+    DCHECK_GE(resource.size_bytes, 0);
+    resources_total_size_bytes += resource.size_bytes;
+  }
+  data.resources_total_size_bytes = resources_total_size_bytes;
+
+  storage()->StoreRegistrationData(
+      data, resources,
+      base::BindOnce(&ServiceWorkerRegistry::DidStoreRegistration,
+                     weak_factory_.GetWeakPtr(), data, std::move(callback)));
+}
+
+void ServiceWorkerRegistry::DeleteRegistration(
+    scoped_refptr<ServiceWorkerRegistration> registration,
+    const GURL& origin,
+    StatusCallback callback) {
+  if (storage()->IsDisabled()) {
+    RunSoon(FROM_HERE,
+            base::BindOnce(std::move(callback),
+                           blink::ServiceWorkerStatusCode::kErrorAbort));
+    return;
+  }
+
+  DCHECK(!registration->is_deleted())
+      << "attempt to delete a registration twice";
+
+  storage()->DeleteRegistration(
+      registration->id(), origin,
+      base::BindOnce(&ServiceWorkerRegistry::DidDeleteRegistration,
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
+
+  DCHECK(!base::Contains(uninstalling_registrations_, registration->id()));
+  uninstalling_registrations_[registration->id()] = registration;
+  registration->SetStatus(ServiceWorkerRegistration::Status::kUninstalling);
+}
+
 void ServiceWorkerRegistry::NotifyInstallingRegistration(
     ServiceWorkerRegistration* registration) {
   DCHECK(installing_registrations_.find(registration->id()) ==
@@ -196,8 +302,7 @@
       options, data.registration_id, context_->AsWeakPtr());
   registration->set_resources_total_size_bytes(data.resources_total_size_bytes);
   registration->set_last_update_check(data.last_update_check);
-  DCHECK(uninstalling_registrations().find(data.registration_id) ==
-         uninstalling_registrations().end());
+  DCHECK(!base::Contains(uninstalling_registrations_, data.registration_id));
 
   scoped_refptr<ServiceWorkerVersion> version =
       context_->GetLiveVersion(data.version_id);
@@ -306,4 +411,160 @@
   CompleteFindNow(std::move(registration), status, std::move(callback));
 }
 
+void ServiceWorkerRegistry::DidGetRegistrationsForOrigin(
+    GetRegistrationsCallback callback,
+    const GURL& origin_filter,
+    blink::ServiceWorkerStatusCode status,
+    std::unique_ptr<RegistrationList> registration_data_list,
+    std::unique_ptr<std::vector<ResourceList>> resources_list) {
+  DCHECK(origin_filter.is_valid());
+
+  if (status != blink::ServiceWorkerStatusCode::kOk &&
+      status != blink::ServiceWorkerStatusCode::kErrorNotFound) {
+    std::move(callback).Run(
+        status, std::vector<scoped_refptr<ServiceWorkerRegistration>>());
+    return;
+  }
+
+  DCHECK(registration_data_list);
+  DCHECK(resources_list);
+
+  // Add all stored registrations.
+  std::set<int64_t> registration_ids;
+  std::vector<scoped_refptr<ServiceWorkerRegistration>> registrations;
+  size_t index = 0;
+  for (const auto& registration_data : *registration_data_list) {
+    registration_ids.insert(registration_data.registration_id);
+    registrations.push_back(GetOrCreateRegistration(
+        registration_data, resources_list->at(index++)));
+  }
+
+  // Add unstored registrations that are being installed.
+  for (const auto& registration : installing_registrations_) {
+    if (registration.second->scope().GetOrigin() != origin_filter)
+      continue;
+    if (registration_ids.insert(registration.first).second)
+      registrations.push_back(registration.second);
+  }
+
+  std::move(callback).Run(blink::ServiceWorkerStatusCode::kOk,
+                          std::move(registrations));
+}
+
+void ServiceWorkerRegistry::DidGetAllRegistrations(
+    GetRegistrationsInfosCallback callback,
+    blink::ServiceWorkerStatusCode status,
+    std::unique_ptr<RegistrationList> registration_data_list) {
+  if (status != blink::ServiceWorkerStatusCode::kOk &&
+      status != blink::ServiceWorkerStatusCode::kErrorNotFound) {
+    std::move(callback).Run(status,
+                            std::vector<ServiceWorkerRegistrationInfo>());
+    return;
+  }
+
+  DCHECK(registration_data_list);
+
+  // Add all stored registrations.
+  std::set<int64_t> pushed_registrations;
+  std::vector<ServiceWorkerRegistrationInfo> infos;
+  for (const auto& registration_data : *registration_data_list) {
+    const bool inserted =
+        pushed_registrations.insert(registration_data.registration_id).second;
+    DCHECK(inserted);
+
+    ServiceWorkerRegistration* registration =
+        context_->GetLiveRegistration(registration_data.registration_id);
+    if (registration) {
+      infos.push_back(registration->GetInfo());
+      continue;
+    }
+
+    ServiceWorkerRegistrationInfo info;
+    info.scope = registration_data.scope;
+    info.update_via_cache = registration_data.update_via_cache;
+    info.registration_id = registration_data.registration_id;
+    info.stored_version_size_bytes =
+        registration_data.resources_total_size_bytes;
+    info.navigation_preload_enabled =
+        registration_data.navigation_preload_state.enabled;
+    info.navigation_preload_header_length =
+        registration_data.navigation_preload_state.header.size();
+    if (ServiceWorkerVersion* version =
+            context_->GetLiveVersion(registration_data.version_id)) {
+      if (registration_data.is_active)
+        info.active_version = version->GetInfo();
+      else
+        info.waiting_version = version->GetInfo();
+      infos.push_back(info);
+      continue;
+    }
+
+    if (registration_data.is_active) {
+      info.active_version.status = ServiceWorkerVersion::ACTIVATED;
+      info.active_version.script_url = registration_data.script;
+      info.active_version.version_id = registration_data.version_id;
+      info.active_version.registration_id = registration_data.registration_id;
+      info.active_version.script_response_time =
+          registration_data.script_response_time;
+      info.active_version.fetch_handler_existence =
+          registration_data.has_fetch_handler
+              ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
+              : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST;
+      info.active_version.navigation_preload_state =
+          registration_data.navigation_preload_state;
+    } else {
+      info.waiting_version.status = ServiceWorkerVersion::INSTALLED;
+      info.waiting_version.script_url = registration_data.script;
+      info.waiting_version.version_id = registration_data.version_id;
+      info.waiting_version.registration_id = registration_data.registration_id;
+      info.waiting_version.script_response_time =
+          registration_data.script_response_time;
+      info.waiting_version.fetch_handler_existence =
+          registration_data.has_fetch_handler
+              ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
+              : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST;
+      info.waiting_version.navigation_preload_state =
+          registration_data.navigation_preload_state;
+    }
+    infos.push_back(info);
+  }
+
+  // Add unstored registrations that are being installed.
+  for (const auto& registration : installing_registrations_) {
+    if (pushed_registrations.insert(registration.first).second)
+      infos.push_back(registration.second->GetInfo());
+  }
+
+  std::move(callback).Run(blink::ServiceWorkerStatusCode::kOk, infos);
+}
+
+void ServiceWorkerRegistry::DidStoreRegistration(
+    const ServiceWorkerDatabase::RegistrationData& data,
+    StatusCallback callback,
+    blink::ServiceWorkerStatusCode status) {
+  if (status != blink::ServiceWorkerStatusCode::kOk) {
+    std::move(callback).Run(status);
+    return;
+  }
+
+  scoped_refptr<ServiceWorkerRegistration> registration =
+      context_->GetLiveRegistration(data.registration_id);
+  if (registration) {
+    registration->set_resources_total_size_bytes(
+        data.resources_total_size_bytes);
+  }
+  context_->NotifyRegistrationStored(data.registration_id, data.scope);
+
+  std::move(callback).Run(status);
+}
+
+void ServiceWorkerRegistry::DidDeleteRegistration(
+    StatusCallback callback,
+    blink::ServiceWorkerStatusCode status) {
+  // TODO(crbug.com/1039200): Move code from
+  // ServiceWorkerStorage::DidDeleteRegistration() which depends on
+  // ServiceWorkerContextCore.
+  std::move(callback).Run(status);
+}
+
 }  // namespace content
diff --git a/content/browser/service_worker/service_worker_registry.h b/content/browser/service_worker/service_worker_registry.h
index 100248e..808544e 100644
--- a/content/browser/service_worker/service_worker_registry.h
+++ b/content/browser/service_worker/service_worker_registry.h
@@ -40,8 +40,17 @@
 class CONTENT_EXPORT ServiceWorkerRegistry {
  public:
   using ResourceList = ServiceWorkerStorage::ResourceList;
+  using RegistrationList = ServiceWorkerStorage::RegistrationList;
   using FindRegistrationCallback =
       ServiceWorkerStorage::FindRegistrationCallback;
+  using GetRegistrationsCallback = base::OnceCallback<void(
+      blink::ServiceWorkerStatusCode status,
+      const std::vector<scoped_refptr<ServiceWorkerRegistration>>&
+          registrations)>;
+  using GetRegistrationsInfosCallback = base::OnceCallback<void(
+      blink::ServiceWorkerStatusCode status,
+      const std::vector<ServiceWorkerRegistrationInfo>& registrations)>;
+  using StatusCallback = ServiceWorkerStorage::StatusCallback;
 
   ServiceWorkerRegistry(
       const base::FilePath& user_data_directory,
@@ -71,8 +80,37 @@
   void FindRegistrationForIdOnly(int64_t registration_id,
                                  FindRegistrationCallback callback);
 
+  // Returns all stored and installing registrations for a given origin.
+  void GetRegistrationsForOrigin(const GURL& origin,
+                                 GetRegistrationsCallback callback);
+
+  // Returns info about all stored and initially installing registrations.
+  void GetAllRegistrationsInfos(GetRegistrationsInfosCallback callback);
+
   ServiceWorkerRegistration* GetUninstallingRegistration(const GURL& scope);
 
+  // Commits |registration| with the installed but not activated |version|
+  // to storage, overwriting any pre-existing registration data for the scope.
+  // A pre-existing version's script resources remain available if that version
+  // is live. ServiceWorkerStorage::PurgeResources() should be called when it's
+  // OK to delete them.
+  void StoreRegistration(ServiceWorkerRegistration* registration,
+                         ServiceWorkerVersion* version,
+                         StatusCallback callback);
+
+  // Deletes the registration data for |registration|. The live registration is
+  // still findable via GetUninstallingRegistration(), and versions are usable
+  // because their script resources have not been deleted. After calling this,
+  // the caller should later:
+  // - Call NotifyDoneUninstallingRegistration() to let registry know the
+  //   uninstalling operation is done.
+  // - If it no longer wants versions to be usable, call
+  //   ServiceWorkerStorage::PurgeResources() to delete their script resources.
+  // If these aren't called, on the next profile session the cleanup occurs.
+  void DeleteRegistration(scoped_refptr<ServiceWorkerRegistration> registration,
+                          const GURL& origin,
+                          StatusCallback callback);
+
   // Intended for use only by ServiceWorkerRegisterJob and
   // ServiceWorkerRegistration.
   void NotifyInstallingRegistration(ServiceWorkerRegistration* registration);
@@ -92,15 +130,12 @@
 
   using RegistrationRefsById =
       std::map<int64_t, scoped_refptr<ServiceWorkerRegistration>>;
-  // TODO(crbug.com/1039200): Remove these accessors. These are tentatively
+  // TODO(crbug.com/1039200): Remove this accessor. This is tentatively
   // exposed for ServiceWorkerStorage. Code that relies on these should be
   // moved into this class.
   RegistrationRefsById& installing_registrations() {
     return installing_registrations_;
   }
-  RegistrationRefsById& uninstalling_registrations() {
-    return uninstalling_registrations_;
-  }
 
  private:
   ServiceWorkerRegistration* FindInstallingRegistrationForClientUrl(
@@ -127,6 +162,23 @@
       blink::ServiceWorkerStatusCode status,
       scoped_refptr<ServiceWorkerRegistration> registration);
 
+  void DidGetRegistrationsForOrigin(
+      GetRegistrationsCallback callback,
+      const GURL& origin_filter,
+      blink::ServiceWorkerStatusCode status,
+      std::unique_ptr<RegistrationList> registration_data_list,
+      std::unique_ptr<std::vector<ResourceList>> resources_list);
+  void DidGetAllRegistrations(
+      GetRegistrationsInfosCallback callback,
+      blink::ServiceWorkerStatusCode status,
+      std::unique_ptr<RegistrationList> registration_data_list);
+
+  void DidStoreRegistration(const ServiceWorkerDatabase::RegistrationData& data,
+                            StatusCallback callback,
+                            blink::ServiceWorkerStatusCode status);
+  void DidDeleteRegistration(StatusCallback callback,
+                             blink::ServiceWorkerStatusCode status);
+
   // The ServiceWorkerContextCore object must outlive this.
   ServiceWorkerContextCore* const context_;
 
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc
index 7f20a69..e0d228e 100644
--- a/content/browser/service_worker/service_worker_storage.cc
+++ b/content/browser/service_worker/service_worker_storage.cc
@@ -297,14 +297,14 @@
 
 void ServiceWorkerStorage::GetRegistrationsForOrigin(
     const GURL& origin,
-    GetRegistrationsCallback callback) {
+    GetRegistrationsDataCallback callback) {
   switch (state_) {
     case STORAGE_STATE_DISABLED:
-      RunSoon(
-          FROM_HERE,
-          base::BindOnce(
-              std::move(callback), blink::ServiceWorkerStatusCode::kErrorAbort,
-              std::vector<scoped_refptr<ServiceWorkerRegistration>>()));
+      RunSoon(FROM_HERE,
+              base::BindOnce(std::move(callback),
+                             blink::ServiceWorkerStatusCode::kErrorAbort,
+                             /*registrations=*/nullptr,
+                             /*resource_lists=*/nullptr));
       return;
     case STORAGE_STATE_INITIALIZING:  // Fall-through.
     case STORAGE_STATE_UNINITIALIZED:
@@ -316,115 +316,69 @@
       break;
   }
 
-  RegistrationList* registrations = new RegistrationList;
-  std::vector<ResourceList>* resource_lists = new std::vector<ResourceList>;
+  auto registrations = std::make_unique<RegistrationList>();
+  auto resource_lists = std::make_unique<std::vector<ResourceList>>();
+  RegistrationList* registrations_ptr = registrations.get();
+  std::vector<ResourceList>* resource_lists_ptr = resource_lists.get();
+
   base::PostTaskAndReplyWithResult(
       database_task_runner_.get(), FROM_HERE,
       base::BindOnce(&ServiceWorkerDatabase::GetRegistrationsForOrigin,
-                     base::Unretained(database_.get()), origin, registrations,
-                     resource_lists),
+                     base::Unretained(database_.get()), origin,
+                     registrations_ptr, resource_lists_ptr),
       base::BindOnce(&ServiceWorkerStorage::DidGetRegistrationsForOrigin,
                      weak_factory_.GetWeakPtr(), std::move(callback),
-                     base::Owned(registrations), base::Owned(resource_lists),
-                     origin));
+                     std::move(registrations), std::move(resource_lists)));
 }
 
-void ServiceWorkerStorage::GetAllRegistrationsInfos(
-    GetRegistrationsInfosCallback callback) {
+void ServiceWorkerStorage::GetAllRegistrations(
+    GetAllRegistrationsCallback callback) {
   switch (state_) {
     case STORAGE_STATE_DISABLED:
       RunSoon(FROM_HERE,
               base::BindOnce(std::move(callback),
                              blink::ServiceWorkerStatusCode::kErrorAbort,
-                             std::vector<ServiceWorkerRegistrationInfo>()));
+                             /*registrations=*/nullptr));
       return;
     case STORAGE_STATE_INITIALIZING:  // Fall-through.
     case STORAGE_STATE_UNINITIALIZED:
-      LazyInitialize(
-          base::BindOnce(&ServiceWorkerStorage::GetAllRegistrationsInfos,
-                         weak_factory_.GetWeakPtr(), std::move(callback)));
+      LazyInitialize(base::BindOnce(&ServiceWorkerStorage::GetAllRegistrations,
+                                    weak_factory_.GetWeakPtr(),
+                                    std::move(callback)));
       return;
     case STORAGE_STATE_INITIALIZED:
       break;
   }
 
-  RegistrationList* registrations = new RegistrationList;
+  auto registrations = std::make_unique<RegistrationList>();
+  RegistrationList* registrations_ptr = registrations.get();
+
   base::PostTaskAndReplyWithResult(
       database_task_runner_.get(), FROM_HERE,
       base::BindOnce(&ServiceWorkerDatabase::GetAllRegistrations,
-                     base::Unretained(database_.get()), registrations),
-      base::BindOnce(&ServiceWorkerStorage::DidGetAllRegistrationsInfos,
+                     base::Unretained(database_.get()), registrations_ptr),
+      base::BindOnce(&ServiceWorkerStorage::DidGetAllRegistrations,
                      weak_factory_.GetWeakPtr(), std::move(callback),
-                     base::Owned(registrations)));
+                     std::move(registrations)));
 }
 
-void ServiceWorkerStorage::StoreRegistration(
-    ServiceWorkerRegistration* registration,
-    ServiceWorkerVersion* version,
+void ServiceWorkerStorage::StoreRegistrationData(
+    const ServiceWorkerDatabase::RegistrationData& registration_data,
+    const ResourceList& resources,
     StatusCallback callback) {
-  DCHECK(registration);
-  DCHECK(version);
-
-  DCHECK(state_ == STORAGE_STATE_INITIALIZED ||
-         state_ == STORAGE_STATE_DISABLED)
-      << state_;
-  if (IsDisabled()) {
-    RunSoon(FROM_HERE,
-            base::BindOnce(std::move(callback),
-                           blink::ServiceWorkerStatusCode::kErrorAbort));
-    return;
-  }
-
-  DCHECK_NE(version->fetch_handler_existence(),
-            ServiceWorkerVersion::FetchHandlerExistence::UNKNOWN);
-  DCHECK_EQ(registration->status(), ServiceWorkerRegistration::Status::kIntact);
-
-  ServiceWorkerDatabase::RegistrationData data;
-  data.registration_id = registration->id();
-  data.scope = registration->scope();
-  data.script = version->script_url();
-  data.script_type = version->script_type();
-  data.update_via_cache = registration->update_via_cache();
-  data.has_fetch_handler = version->fetch_handler_existence() ==
-                           ServiceWorkerVersion::FetchHandlerExistence::EXISTS;
-  data.version_id = version->version_id();
-  data.last_update_check = registration->last_update_check();
-  data.is_active = (version == registration->active_version());
-  if (version->origin_trial_tokens())
-    data.origin_trial_tokens = *version->origin_trial_tokens();
-  data.navigation_preload_state = registration->navigation_preload_state();
-  data.script_response_time = version->GetInfo().script_response_time;
-  for (const blink::mojom::WebFeature feature : version->used_features())
-    data.used_features.insert(feature);
-  data.cross_origin_embedder_policy = version->cross_origin_embedder_policy();
-
-  ResourceList resources;
-  version->script_cache_map()->GetResources(&resources);
-
-  if (resources.empty()) {
-    RunSoon(FROM_HERE,
-            base::BindOnce(std::move(callback),
-                           blink::ServiceWorkerStatusCode::kErrorFailed));
-    return;
-  }
-
-  uint64_t resources_total_size_bytes = 0;
-  for (const auto& resource : resources) {
-    DCHECK_GE(resource.size_bytes, 0);
-    resources_total_size_bytes += resource.size_bytes;
-  }
-  data.resources_total_size_bytes = resources_total_size_bytes;
+  DCHECK_EQ(state_, STORAGE_STATE_INITIALIZED);
 
   if (!has_checked_for_stale_resources_)
     DeleteStaleResources();
 
   database_task_runner_->PostTask(
       FROM_HERE,
-      base::BindOnce(&WriteRegistrationInDB, database_.get(),
-                     base::ThreadTaskRunnerHandle::Get(), data, resources,
-                     base::BindOnce(&ServiceWorkerStorage::DidStoreRegistration,
-                                    weak_factory_.GetWeakPtr(),
-                                    std::move(callback), data)));
+      base::BindOnce(
+          &WriteRegistrationInDB, database_.get(),
+          base::ThreadTaskRunnerHandle::Get(), registration_data, resources,
+          base::BindOnce(&ServiceWorkerStorage::DidStoreRegistrationData,
+                         weak_factory_.GetWeakPtr(), std::move(callback),
+                         registration_data)));
 }
 
 void ServiceWorkerStorage::UpdateToActiveState(int64_t registration_id,
@@ -518,39 +472,24 @@
       base::BindOnce(&DidUpdateNavigationPreloadState, std::move(callback)));
 }
 
-void ServiceWorkerStorage::DeleteRegistration(
-    scoped_refptr<ServiceWorkerRegistration> registration,
-    const GURL& origin,
-    StatusCallback callback) {
-  DCHECK(state_ == STORAGE_STATE_INITIALIZED ||
-         state_ == STORAGE_STATE_DISABLED)
-      << state_;
-  if (IsDisabled()) {
-    RunSoon(FROM_HERE,
-            base::BindOnce(std::move(callback),
-                           blink::ServiceWorkerStatusCode::kErrorAbort));
-    return;
-  }
+void ServiceWorkerStorage::DeleteRegistration(int64_t registration_id,
+                                              const GURL& origin,
+                                              StatusCallback callback) {
+  DCHECK_EQ(state_, STORAGE_STATE_INITIALIZED);
 
   if (!has_checked_for_stale_resources_)
     DeleteStaleResources();
 
-  DCHECK(!registration->is_deleted())
-      << "attempt to delete a registration twice";
-
   auto params = std::make_unique<DidDeleteRegistrationParams>(
-      registration->id(), origin, std::move(callback));
+      registration_id, origin, std::move(callback));
 
   database_task_runner_->PostTask(
       FROM_HERE,
       base::BindOnce(
           &DeleteRegistrationFromDB, database_.get(),
-          base::ThreadTaskRunnerHandle::Get(), registration->id(), origin,
+          base::ThreadTaskRunnerHandle::Get(), registration_id, origin,
           base::BindOnce(&ServiceWorkerStorage::DidDeleteRegistration,
                          weak_factory_.GetWeakPtr(), std::move(params))));
-
-  registry_->uninstalling_registrations()[registration->id()] = registration;
-  registration->SetStatus(ServiceWorkerRegistration::Status::kUninstalling);
 }
 
 void ServiceWorkerStorage::PerformStorageCleanup(base::OnceClosure callback) {
@@ -1060,6 +999,10 @@
     disk_cache_->Disable();
 }
 
+bool ServiceWorkerStorage::IsDisabled() const {
+  return state_ == STORAGE_STATE_DISABLED;
+}
+
 void ServiceWorkerStorage::PurgeResources(const ResourceList& resources) {
   if (!has_checked_for_stale_resources_)
     DeleteStaleResources();
@@ -1194,134 +1137,32 @@
 }
 
 void ServiceWorkerStorage::DidGetRegistrationsForOrigin(
-    GetRegistrationsCallback callback,
-    RegistrationList* registration_data_list,
-    std::vector<ResourceList>* resources_list,
-    const GURL& origin_filter,
+    GetRegistrationsDataCallback callback,
+    std::unique_ptr<RegistrationList> registration_data_list,
+    std::unique_ptr<std::vector<ResourceList>> resource_lists,
     ServiceWorkerDatabase::Status status) {
-  DCHECK(registration_data_list);
-  DCHECK(resources_list);
-  DCHECK(origin_filter.is_valid());
-
   if (status != ServiceWorkerDatabase::STATUS_OK &&
       status != ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND) {
     ScheduleDeleteAndStartOver();
-    std::move(callback).Run(
-        DatabaseStatusToStatusCode(status),
-        std::vector<scoped_refptr<ServiceWorkerRegistration>>());
-    return;
   }
-
-  // Add all stored registrations.
-  std::set<int64_t> registration_ids;
-  std::vector<scoped_refptr<ServiceWorkerRegistration>> registrations;
-  size_t index = 0;
-  for (const auto& registration_data : *registration_data_list) {
-    registration_ids.insert(registration_data.registration_id);
-    registrations.push_back(registry_->GetOrCreateRegistration(
-        registration_data, resources_list->at(index++)));
-  }
-
-  // Add unstored registrations that are being installed.
-  for (const auto& registration : registry_->installing_registrations()) {
-    if (registration.second->scope().GetOrigin() != origin_filter)
-      continue;
-    if (registration_ids.insert(registration.first).second)
-      registrations.push_back(registration.second);
-  }
-
-  std::move(callback).Run(blink::ServiceWorkerStatusCode::kOk,
-                          std::move(registrations));
+  std::move(callback).Run(DatabaseStatusToStatusCode(status),
+                          std::move(registration_data_list),
+                          std::move(resource_lists));
 }
 
-void ServiceWorkerStorage::DidGetAllRegistrationsInfos(
-    GetRegistrationsInfosCallback callback,
-    RegistrationList* registration_data_list,
+void ServiceWorkerStorage::DidGetAllRegistrations(
+    GetAllRegistrationsCallback callback,
+    std::unique_ptr<RegistrationList> registration_data_list,
     ServiceWorkerDatabase::Status status) {
-  DCHECK(registration_data_list);
   if (status != ServiceWorkerDatabase::STATUS_OK &&
       status != ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND) {
     ScheduleDeleteAndStartOver();
-    std::move(callback).Run(DatabaseStatusToStatusCode(status),
-                            std::vector<ServiceWorkerRegistrationInfo>());
-    return;
   }
-
-  // Add all stored registrations.
-  std::set<int64_t> pushed_registrations;
-  std::vector<ServiceWorkerRegistrationInfo> infos;
-  for (const auto& registration_data : *registration_data_list) {
-    const bool inserted =
-        pushed_registrations.insert(registration_data.registration_id).second;
-    DCHECK(inserted);
-
-    ServiceWorkerRegistration* registration =
-        context_->GetLiveRegistration(registration_data.registration_id);
-    if (registration) {
-      infos.push_back(registration->GetInfo());
-      continue;
-    }
-
-    ServiceWorkerRegistrationInfo info;
-    info.scope = registration_data.scope;
-    info.update_via_cache = registration_data.update_via_cache;
-    info.registration_id = registration_data.registration_id;
-    info.stored_version_size_bytes =
-        registration_data.resources_total_size_bytes;
-    info.navigation_preload_enabled =
-        registration_data.navigation_preload_state.enabled;
-    info.navigation_preload_header_length =
-        registration_data.navigation_preload_state.header.size();
-    if (ServiceWorkerVersion* version =
-            context_->GetLiveVersion(registration_data.version_id)) {
-      if (registration_data.is_active)
-        info.active_version = version->GetInfo();
-      else
-        info.waiting_version = version->GetInfo();
-      infos.push_back(info);
-      continue;
-    }
-
-    if (registration_data.is_active) {
-      info.active_version.status = ServiceWorkerVersion::ACTIVATED;
-      info.active_version.script_url = registration_data.script;
-      info.active_version.version_id = registration_data.version_id;
-      info.active_version.registration_id = registration_data.registration_id;
-      info.active_version.script_response_time =
-          registration_data.script_response_time;
-      info.active_version.fetch_handler_existence =
-          registration_data.has_fetch_handler
-              ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
-              : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST;
-      info.active_version.navigation_preload_state =
-          registration_data.navigation_preload_state;
-    } else {
-      info.waiting_version.status = ServiceWorkerVersion::INSTALLED;
-      info.waiting_version.script_url = registration_data.script;
-      info.waiting_version.version_id = registration_data.version_id;
-      info.waiting_version.registration_id = registration_data.registration_id;
-      info.waiting_version.script_response_time =
-          registration_data.script_response_time;
-      info.waiting_version.fetch_handler_existence =
-          registration_data.has_fetch_handler
-              ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
-              : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST;
-      info.waiting_version.navigation_preload_state =
-          registration_data.navigation_preload_state;
-    }
-    infos.push_back(info);
-  }
-
-  // Add unstored registrations that are being installed.
-  for (const auto& registration : registry_->installing_registrations()) {
-    if (pushed_registrations.insert(registration.first).second)
-      infos.push_back(registration.second->GetInfo());
-  }
-
-  std::move(callback).Run(blink::ServiceWorkerStatusCode::kOk, infos);
+  std::move(callback).Run(DatabaseStatusToStatusCode(status),
+                          std::move(registration_data_list));
 }
 
-void ServiceWorkerStorage::DidStoreRegistration(
+void ServiceWorkerStorage::DidStoreRegistrationData(
     StatusCallback callback,
     const ServiceWorkerDatabase::RegistrationData& new_version,
     const GURL& origin,
@@ -1335,12 +1176,6 @@
   }
   registered_origins_.insert(origin);
 
-  scoped_refptr<ServiceWorkerRegistration> registration =
-      context_->GetLiveRegistration(new_version.registration_id);
-  if (registration) {
-    registration->set_resources_total_size_bytes(
-        new_version.resources_total_size_bytes);
-  }
   if (quota_manager_proxy_) {
     // Can be nullptr in tests.
     quota_manager_proxy_->NotifyStorageModified(
@@ -1366,8 +1201,6 @@
   if (!context_->GetLiveVersion(deleted_version.version_id))
     StartPurgingResources(newly_purgeable_resources);
 
-  context_->NotifyRegistrationStored(new_version.registration_id,
-                                     new_version.scope);
   std::move(callback).Run(blink::ServiceWorkerStatusCode::kOk);
 }
 
@@ -1944,10 +1777,6 @@
   database->RewriteDB();
 }
 
-bool ServiceWorkerStorage::IsDisabled() const {
-  return state_ == STORAGE_STATE_DISABLED;
-}
-
 // TODO(nhiroki): The corruption recovery should not be scheduled if the error
 // is transient and it can get healed soon (e.g. IO error). To do that, the
 // database should not disable itself when an error occurs and the storage
diff --git a/content/browser/service_worker/service_worker_storage.h b/content/browser/service_worker/service_worker_storage.h
index 3ef57d7..1360041d6c 100644
--- a/content/browser/service_worker/service_worker_storage.h
+++ b/content/browser/service_worker/service_worker_storage.h
@@ -45,8 +45,6 @@
 class ServiceWorkerResponseMetadataWriter;
 class ServiceWorkerResponseReader;
 class ServiceWorkerResponseWriter;
-class ServiceWorkerVersion;
-struct ServiceWorkerRegistrationInfo;
 
 namespace service_worker_storage_unittest {
 class ServiceWorkerStorageTest;
@@ -69,19 +67,20 @@
 // See the toplevel description of ServiceWorkerRegistry.
 class CONTENT_EXPORT ServiceWorkerStorage {
  public:
+  using RegistrationList = std::vector<ServiceWorkerDatabase::RegistrationData>;
   using ResourceList = std::vector<ServiceWorkerDatabase::ResourceRecord>;
   using StatusCallback =
       base::OnceCallback<void(blink::ServiceWorkerStatusCode status)>;
   using FindRegistrationCallback = base::OnceCallback<void(
       blink::ServiceWorkerStatusCode status,
       scoped_refptr<ServiceWorkerRegistration> registration)>;
-  using GetRegistrationsCallback = base::OnceCallback<void(
+  using GetRegistrationsDataCallback = base::OnceCallback<void(
       blink::ServiceWorkerStatusCode status,
-      const std::vector<scoped_refptr<ServiceWorkerRegistration>>&
-          registrations)>;
-  using GetRegistrationsInfosCallback = base::OnceCallback<void(
-      blink::ServiceWorkerStatusCode status,
-      const std::vector<ServiceWorkerRegistrationInfo>& registrations)>;
+      std::unique_ptr<RegistrationList> registrations,
+      std::unique_ptr<std::vector<ResourceList>> resource_lists)>;
+  using GetAllRegistrationsCallback =
+      base::OnceCallback<void(blink::ServiceWorkerStatusCode status,
+                              std::unique_ptr<RegistrationList> registrations)>;
   using GetUserDataCallback =
       base::OnceCallback<void(const std::vector<std::string>& data,
                               blink::ServiceWorkerStatusCode status)>;
@@ -144,18 +143,16 @@
 
   // Returns all stored registrations for a given origin.
   void GetRegistrationsForOrigin(const GURL& origin,
-                                 GetRegistrationsCallback callback);
+                                 GetRegistrationsDataCallback callback);
 
-  // Returns info about all stored and initially installing registrations.
-  void GetAllRegistrationsInfos(GetRegistrationsInfosCallback callback);
+  // Returns all stored registrations.
+  void GetAllRegistrations(GetAllRegistrationsCallback callback);
 
-  // Commits |registration| with the installed but not activated |version|
-  // to storage, overwritting any pre-existing registration data for the scope.
-  // A pre-existing version's script resources remain available if that version
-  // is live. PurgeResources should be called when it's OK to delete them.
-  void StoreRegistration(ServiceWorkerRegistration* registration,
-                         ServiceWorkerVersion* version,
-                         StatusCallback callback);
+  // Stores |registration_data| and |resources| on persistent storage.
+  void StoreRegistrationData(
+      const ServiceWorkerDatabase::RegistrationData& registration_data,
+      const ResourceList& resources,
+      StatusCallback callback);
 
   // Updates the state of the registration's stored version to active.
   void UpdateToActiveState(int64_t registration_id,
@@ -180,16 +177,9 @@
                                      const std::string& value,
                                      StatusCallback callback);
 
-  // Deletes the registration data for |registration|. The live registration is
-  // still findable via GetUninstallingRegistration(), and versions are usable
-  // because their script resources have not been deleted. After calling this,
-  // the caller should later:
-  // - Call NotifyDoneUninstallingRegistration() to let storage know the
-  //   uninstalling operation is done.
-  // - If it no longer wants versions to be usable, call PurgeResources() to
-  //   delete their script resources.
-  // If these aren't called, on the next profile session the cleanup occurs.
-  void DeleteRegistration(scoped_refptr<ServiceWorkerRegistration> registration,
+  // Deletes the registration specified by |registration_id|. This should be
+  // called only from ServiceWorkerRegistry.
+  void DeleteRegistration(int64_t registration_id,
                           const GURL& origin,
                           StatusCallback callback);
 
@@ -282,6 +272,7 @@
   int64_t NewResourceId();
 
   void Disable();
+  bool IsDisabled() const;
 
   // Schedules deleting |resources| from the disk cache and removing their keys
   // as purgeable resources from the service worker database. It's OK to call
@@ -340,7 +331,6 @@
     kDelete
   };
 
-  using RegistrationList = std::vector<ServiceWorkerDatabase::RegistrationData>;
   using InitializeCallback =
       base::OnceCallback<void(std::unique_ptr<InitialData> data,
                               ServiceWorkerDatabase::Status status)>;
@@ -389,15 +379,16 @@
                            const ServiceWorkerDatabase::RegistrationData& data,
                            const ResourceList& resources,
                            ServiceWorkerDatabase::Status status);
-  void DidGetRegistrationsForOrigin(GetRegistrationsCallback callback,
-                                    RegistrationList* registration_data_list,
-                                    std::vector<ResourceList>* resources_list,
-                                    const GURL& origin_filter,
-                                    ServiceWorkerDatabase::Status status);
-  void DidGetAllRegistrationsInfos(GetRegistrationsInfosCallback callback,
-                                   RegistrationList* registration_data_list,
-                                   ServiceWorkerDatabase::Status status);
-  void DidStoreRegistration(
+  void DidGetRegistrationsForOrigin(
+      GetRegistrationsDataCallback callback,
+      std::unique_ptr<RegistrationList> registrations,
+      std::unique_ptr<std::vector<ResourceList>> resource_lists,
+      ServiceWorkerDatabase::Status status);
+  void DidGetAllRegistrations(
+      GetAllRegistrationsCallback callback,
+      std::unique_ptr<RegistrationList> registration_data_list,
+      ServiceWorkerDatabase::Status status);
+  void DidStoreRegistrationData(
       StatusCallback callback,
       const ServiceWorkerDatabase::RegistrationData& new_version,
       const GURL& origin,
@@ -531,7 +522,6 @@
       const std::set<GURL>& origins);
   static void PerformStorageCleanupInDB(ServiceWorkerDatabase* database);
 
-  bool IsDisabled() const;
   void ScheduleDeleteAndStartOver();
 
   // Posted by the underlying cache implementation after it finishes making
diff --git a/content/browser/service_worker/service_worker_storage_unittest.cc b/content/browser/service_worker/service_worker_storage_unittest.cc
index 11a126ff..f93cf08 100644
--- a/content/browser/service_worker/service_worker_storage_unittest.cc
+++ b/content/browser/service_worker/service_worker_storage_unittest.cc
@@ -290,7 +290,7 @@
       scoped_refptr<ServiceWorkerVersion> version) {
     base::Optional<blink::ServiceWorkerStatusCode> result;
     base::RunLoop loop;
-    storage()->StoreRegistration(
+    registry()->StoreRegistration(
         registration.get(), version.get(),
         base::BindOnce(&StatusCallback, loop.QuitClosure(), &result));
     EXPECT_FALSE(result.has_value());  // always async
@@ -303,7 +303,7 @@
       const GURL& origin) {
     base::Optional<blink::ServiceWorkerStatusCode> result;
     base::RunLoop loop;
-    storage()->DeleteRegistration(
+    registry()->DeleteRegistration(
         registration, origin,
         base::BindLambdaForTesting([&](blink::ServiceWorkerStatusCode status) {
           result = status;
@@ -318,7 +318,7 @@
       std::vector<ServiceWorkerRegistrationInfo>* registrations) {
     base::Optional<blink::ServiceWorkerStatusCode> result;
     base::RunLoop loop;
-    storage()->GetAllRegistrationsInfos(base::BindLambdaForTesting(
+    registry()->GetAllRegistrationsInfos(base::BindLambdaForTesting(
         [&](blink::ServiceWorkerStatusCode status,
             const std::vector<ServiceWorkerRegistrationInfo>& infos) {
           result = status;
@@ -335,7 +335,7 @@
       std::vector<scoped_refptr<ServiceWorkerRegistration>>* registrations) {
     base::Optional<blink::ServiceWorkerStatusCode> result;
     base::RunLoop loop;
-    storage()->GetRegistrationsForOrigin(
+    registry()->GetRegistrationsForOrigin(
         origin,
         base::BindLambdaForTesting(
             [&](blink::ServiceWorkerStatusCode status,
diff --git a/content/browser/service_worker/service_worker_version_browsertest.cc b/content/browser/service_worker/service_worker_version_browsertest.cc
index 69b62f3c..a0a3183 100644
--- a/content/browser/service_worker/service_worker_version_browsertest.cc
+++ b/content/browser/service_worker/service_worker_version_browsertest.cc
@@ -642,7 +642,7 @@
         BrowserThread::CurrentlyOn(ServiceWorkerContext::GetCoreThreadId()));
     ServiceWorkerVersion* version =
         wrapper()->context()->GetLiveVersion(version_id);
-    wrapper()->context()->storage()->StoreRegistration(
+    wrapper()->context()->registry()->StoreRegistration(
         registration_.get(), version,
         CreateReceiver(BrowserThread::UI, std::move(done), result));
   }
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc
index 4c3e4bd9..12a761a 100644
--- a/content/browser/service_worker/service_worker_version_unittest.cc
+++ b/content/browser/service_worker/service_worker_version_unittest.cc
@@ -115,7 +115,7 @@
     // Make the registration findable via storage functions.
     base::Optional<blink::ServiceWorkerStatusCode> status;
     base::RunLoop run_loop;
-    helper_->context()->storage()->StoreRegistration(
+    helper_->context()->registry()->StoreRegistration(
         registration_.get(), version_.get(),
         ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()));
     run_loop.Run();
@@ -345,7 +345,7 @@
   // Delete the registration.
   base::Optional<blink::ServiceWorkerStatusCode> status;
   base::RunLoop run_loop;
-  helper_->context()->storage()->DeleteRegistration(
+  helper_->context()->registry()->DeleteRegistration(
       registration_, registration_->scope().GetOrigin(),
       ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()));
   run_loop.Run();
diff --git a/content/browser/worker_host/shared_worker_service_impl.cc b/content/browser/worker_host/shared_worker_service_impl.cc
index 995430e1..36c0259 100644
--- a/content/browser/worker_host/shared_worker_service_impl.cc
+++ b/content/browser/worker_host/shared_worker_service_impl.cc
@@ -281,12 +281,15 @@
   auto* service_worker_handle_raw = service_worker_handle.get();
   host->SetServiceWorkerHandle(std::move(service_worker_handle));
 
-  // Fetch classic shared worker script with "same-origin" credentials mode.
+  // Set the credentials mode for worker script fetch based on the script type
+  // For classic worker scripts, always use "same-origin" credentials mode.
   // https://html.spec.whatwg.org/C/#fetch-a-classic-worker-script
-  //
-  // TODO(crbug.com/824646, crbug.com/907749): The document should provide the
-  // credentials mode specified by WorkerOptions for module script.
-  const auto credentials_mode = network::mojom::CredentialsMode::kSameOrigin;
+  // For module worker script, use the credentials mode on WorkerOptions.
+  // https://html.spec.whatwg.org/C/#fetch-a-module-worker-script-tree
+  const auto credentials_mode =
+      instance.script_type() == blink::mojom::ScriptType::kClassic
+          ? network::mojom::CredentialsMode::kSameOrigin
+          : instance.credentials_mode();
 
   RenderFrameHostImpl* creator_render_frame_host =
       RenderFrameHostImpl::FromID(creator_render_frame_host_id);
diff --git a/content/browser/worker_network_isolation_key_browsertest.cc b/content/browser/worker_network_isolation_key_browsertest.cc
index a6535e5..e5dd49d5 100644
--- a/content/browser/worker_network_isolation_key_browsertest.cc
+++ b/content/browser/worker_network_isolation_key_browsertest.cc
@@ -14,6 +14,7 @@
 #include "content/public/test/url_loader_interceptor.h"
 #include "content/shell/browser/shell.h"
 #include "net/base/features.h"
+#include "net/dns/mock_host_resolver.h"
 #include "services/network/public/cpp/features.h"
 
 namespace content {
@@ -39,9 +40,17 @@
 class WorkerNetworkIsolationKeyBrowserTest : public ContentBrowserTest {
  public:
   void SetUpOnMainThread() override {
-    ASSERT_TRUE(embedded_test_server()->Start());
+    host_resolver()->AddRule("*", "127.0.0.1");
+    https_server_ = std::make_unique<net::EmbeddedTestServer>(
+        net::EmbeddedTestServer::TYPE_HTTPS);
+    https_server_->SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES);
+    https_server_->AddDefaultHandlers(GetTestDataFilePath());
+    content::SetupCrossSiteRedirector(https_server_.get());
+    ASSERT_TRUE(https_server_->Start());
   }
 
+  net::EmbeddedTestServer* https_server() { return https_server_.get(); }
+
   // Register a service/shared worker |main_script_file| in the scope of
   // |subframe_rfh|'s origin.
   void RegisterWorker(RenderFrameHost* subframe_rfh,
@@ -139,6 +148,7 @@
 
   size_t subframe_id_ = 0;
   base::test::ScopedFeatureList feature_list_;
+  std::unique_ptr<net::EmbeddedTestServer> https_server_;
 };
 
 class WorkerImportScriptsAndFetchRequestNetworkIsolationKeyBrowserTest
@@ -158,14 +168,14 @@
 };
 
 // Test that network isolation key is filled in correctly for service/shared
-// workers. The test navigates to "a.com" and creates two cross-origin iframes
+// workers. The test navigates to "a.test" and creates two cross-origin iframes
 // that each start a worker. The frames/workers may have the same origin, so
-// worker1 is on "b.com" and worker2 is on either "b.com" or "c.com". The test
-// checks the cache status of importScripts() and a fetch() request from the
-// workers to another origin "d.com". When the workers had the same origin (the
-// same network isolation key), we expect the second importScripts() and fetch()
-// request to exist in the cache. When the origins are different, we expect the
-// second requests to not exist in the cache.
+// worker1 is on "b.test" and worker2 is on either "b.test" or "c.test". The
+// test checks the cache status of importScripts() and a fetch() request from
+// the workers to another origin "d.test". When the workers had the same origin
+// (the same network isolation key), we expect the second importScripts() and
+// fetch() request to exist in the cache. When the origins are different, we
+// expect the second requests to not exist in the cache.
 IN_PROC_BROWSER_TEST_P(
     WorkerImportScriptsAndFetchRequestNetworkIsolationKeyBrowserTest,
     ImportScriptsAndFetchRequest) {
@@ -177,23 +187,9 @@
   if (worker_type == WorkerType::kSharedWorker && !SupportsSharedWorker())
     return;
 
-  net::EmbeddedTestServer cross_origin_server_1;
-  cross_origin_server_1.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(cross_origin_server_1.Start());
-
-  net::EmbeddedTestServer cross_origin_server_tmp;
-  cross_origin_server_tmp.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(cross_origin_server_tmp.Start());
-
-  auto& cross_origin_server_2 = test_same_network_isolation_key
-                                    ? cross_origin_server_1
-                                    : cross_origin_server_tmp;
-
-  net::EmbeddedTestServer resource_request_server;
-  resource_request_server.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(resource_request_server.Start());
-  GURL import_script_url = resource_request_server.GetURL("/workers/empty.js");
-  GURL fetch_url = resource_request_server.GetURL("/workers/empty.html");
+  GURL import_script_url =
+      https_server()->GetURL("d.test", "/workers/empty.js");
+  GURL fetch_url = https_server()->GetURL("d.test", "/workers/empty.html");
 
   std::map<GURL, size_t> request_completed_count;
 
@@ -224,16 +220,17 @@
       {});
 
   NavigateToURLBlockUntilNavigationsComplete(
-      shell(), embedded_test_server()->GetURL("/workers/frame_factory.html"),
+      shell(), https_server()->GetURL("a.test", "/workers/frame_factory.html"),
       1);
   RenderFrameHost* subframe_rfh_1 = CreateSubframe(
-      cross_origin_server_1.GetURL("/workers/service_worker_setup.html"));
+      https_server()->GetURL("b.test", "/workers/service_worker_setup.html"));
   RegisterWorkerThatDoesImportScriptsAndFetch(subframe_rfh_1, worker_type,
                                               "worker_with_import_and_fetch.js",
                                               import_script_url, fetch_url);
 
-  RenderFrameHost* subframe_rfh_2 = CreateSubframe(
-      cross_origin_server_2.GetURL("/workers/service_worker_setup.html"));
+  RenderFrameHost* subframe_rfh_2 = CreateSubframe(https_server()->GetURL(
+      test_same_network_isolation_key ? "b.test" : "c.test",
+      "/workers/service_worker_setup.html"));
   RegisterWorkerThatDoesImportScriptsAndFetch(
       subframe_rfh_2, worker_type, "worker_with_import_and_fetch_2.js",
       import_script_url, fetch_url);
@@ -262,14 +259,14 @@
 };
 
 // Test that network isolation key is filled in correctly for service worker's
-// main script request. The test navigates to "a.com" and creates an iframe
-// having origin "c.com" that registers |worker1|. The test then navigates to
-// "b.com" and creates an iframe also having origin "c.com". We now want to test
-// a second register request for |worker1| but just calling register() would be
-// a no-op since |worker1| is already the current worker. So we register a new
-// |worker2| and then |worker1| again.
+// main script request. The test navigates to "a.test" and creates an iframe
+// having origin "c.test" that registers |worker1|. The test then navigates to
+// "b.test" and creates an iframe also having origin "c.test". We now want to
+// test a second register request for |worker1| but just calling register()
+// would be a no-op since |worker1| is already the current worker. So we
+// register a new |worker2| and then |worker1| again.
 //
-// Note that the second navigation to "c.com" also triggers an update check for
+// Note that the second navigation to "c.test" also triggers an update check for
 // |worker1|. We expect both the second register request for |worker1| and this
 // update request to exist in the cache.
 //
@@ -279,18 +276,10 @@
 IN_PROC_BROWSER_TEST_P(
     ServiceWorkerMainScriptRequestNetworkIsolationKeyBrowserTest,
     ServiceWorkerMainScriptRequest) {
-  net::EmbeddedTestServer subframe_server;
-  subframe_server.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(subframe_server.Start());
-
-  net::EmbeddedTestServer new_tab_server;
-  new_tab_server.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(new_tab_server.Start());
-
   size_t num_completed = 0;
   std::string main_script_file = "empty.js";
   GURL main_script_request_url =
-      subframe_server.GetURL("/workers/" + main_script_file);
+      https_server()->GetURL("c.test", "/workers/" + main_script_file);
 
   base::RunLoop cache_status_waiter;
   URLLoaderInterceptor interceptor(
@@ -315,21 +304,22 @@
           }),
       {});
 
-  // Navigate to "a.com" and create the iframe "c.com", which registers
+  // Navigate to "a.test" and create the iframe "c.test", which registers
   // |worker1|.
   NavigateToURLBlockUntilNavigationsComplete(
-      shell(), embedded_test_server()->GetURL("/workers/frame_factory.html"),
+      shell(), https_server()->GetURL("a.test", "/workers/frame_factory.html"),
       1);
   RenderFrameHost* subframe_rfh_1 = CreateSubframe(
-      subframe_server.GetURL("/workers/service_worker_setup.html"));
+      https_server()->GetURL("c.test", "/workers/service_worker_setup.html"));
   RegisterWorker(subframe_rfh_1, WorkerType::kServiceWorker, "empty.js");
 
-  // Navigate to "b.com" and create the another iframe on "c.com", which
+  // Navigate to "b.test" and create the another iframe on "c.test", which
   // registers |worker2| and then |worker1| again.
   NavigateToURLBlockUntilNavigationsComplete(
-      shell(), new_tab_server.GetURL("/workers/frame_factory.html"), 1);
+      shell(), https_server()->GetURL("b.test", "/workers/frame_factory.html"),
+      1);
   RenderFrameHost* subframe_rfh_2 = CreateSubframe(
-      subframe_server.GetURL("/workers/service_worker_setup.html"));
+      https_server()->GetURL("c.test", "/workers/service_worker_setup.html"));
   RegisterWorker(subframe_rfh_2, WorkerType::kServiceWorker, "empty2.js");
   RegisterWorker(subframe_rfh_2, WorkerType::kServiceWorker, "empty.js");
 
@@ -345,9 +335,9 @@
     ServiceWorkerMainScriptRequestNetworkIsolationKeyBrowserTest;
 
 // Test that network isolation key is filled in correctly for shared worker's
-// main script request. The test navigates to "a.com" and creates an iframe
-// having origin "c.com" that creates |worker1|. The test then navigates to
-// "b.com" and creates an iframe also having origin "c.com" that creates
+// main script request. The test navigates to "a.test" and creates an iframe
+// having origin "c.test" that creates |worker1|. The test then navigates to
+// "b.test" and creates an iframe also having origin "c.test" that creates
 // |worker1| again.
 //
 // We expect the second creation request for |worker1| to exist in the cache.
@@ -360,18 +350,10 @@
   if (!SupportsSharedWorker())
     return;
 
-  net::EmbeddedTestServer subframe_server;
-  subframe_server.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(subframe_server.Start());
-
-  net::EmbeddedTestServer new_tab_server;
-  new_tab_server.ServeFilesFromSourceDirectory(GetTestDataFilePath());
-  ASSERT_TRUE(new_tab_server.Start());
-
   size_t num_completed = 0;
   std::string main_script_file = "empty.js";
   GURL main_script_request_url =
-      subframe_server.GetURL("/workers/" + main_script_file);
+      https_server()->GetURL("c.test", "/workers/" + main_script_file);
 
   base::RunLoop cache_status_waiter;
   URLLoaderInterceptor interceptor(
@@ -394,20 +376,22 @@
           }),
       {});
 
-  // Navigate to "a.com" and create the iframe "c.com", which creates |worker1|.
+  // Navigate to "a.test" and create the iframe "c.test", which creates
+  // |worker1|.
   NavigateToURLBlockUntilNavigationsComplete(
-      shell(), embedded_test_server()->GetURL("/workers/frame_factory.html"),
+      shell(), https_server()->GetURL("a.test", "/workers/frame_factory.html"),
       1);
   RenderFrameHost* subframe_rfh_1 = CreateSubframe(
-      subframe_server.GetURL("/workers/service_worker_setup.html"));
+      https_server()->GetURL("c.test", "/workers/service_worker_setup.html"));
   RegisterWorker(subframe_rfh_1, WorkerType::kSharedWorker, "empty.js");
 
-  // Navigate to "b.com" and create the another iframe on "c.com", which creates
-  // |worker1| again.
+  // Navigate to "b.test" and create the another iframe on "c.test", which
+  // creates |worker1| again.
   NavigateToURLBlockUntilNavigationsComplete(
-      shell(), new_tab_server.GetURL("/workers/frame_factory.html"), 1);
+      shell(), https_server()->GetURL("b.test", "/workers/frame_factory.html"),
+      1);
   RenderFrameHost* subframe_rfh_2 = CreateSubframe(
-      subframe_server.GetURL("/workers/service_worker_setup.html"));
+      https_server()->GetURL("c.test", "/workers/service_worker_setup.html"));
   RegisterWorker(subframe_rfh_2, WorkerType::kSharedWorker, "empty.js");
 
   cache_status_waiter.Run();
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index f0e47a6..008d63a 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -261,7 +261,8 @@
     "//components/services/filesystem/public/mojom",
     "//components/tracing",
     "//components/tracing:startup_tracing",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/common/fetch:fetch_api_request_proto",
     "//content/public/common:interfaces",
diff --git a/content/common/accessibility_messages.h b/content/common/accessibility_messages.h
index d222665..ae8c361 100644
--- a/content/common/accessibility_messages.h
+++ b/content/common/accessibility_messages.h
@@ -122,26 +122,6 @@
   IPC_STRUCT_MEMBER(ui::AXRelativeBounds, new_location)
 IPC_STRUCT_END()
 
-IPC_STRUCT_BEGIN(AccessibilityHostMsg_FindInPageResultParams)
-  // The find in page request id.
-  IPC_STRUCT_MEMBER(int, request_id)
-
-  // The index of the result match.
-  IPC_STRUCT_MEMBER(int, match_index)
-
-  // The id of the accessibility object for the start of the match range.
-  IPC_STRUCT_MEMBER(int, start_id)
-
-  // The character offset into the text of the start object.
-  IPC_STRUCT_MEMBER(int, start_offset)
-
-  // The id of the accessibility object for the end of the match range.
-  IPC_STRUCT_MEMBER(int, end_id)
-
-  // The character offset into the text of the end object.
-  IPC_STRUCT_MEMBER(int, end_offset)
-IPC_STRUCT_END()
-
 // Messages sent from the browser to the renderer.
 
 // Relay a request from assistive technology to perform an action,
@@ -195,15 +175,6 @@
     AccessibilityHostMsg_LocationChanges,
     std::vector<AccessibilityHostMsg_LocationChangeParams>)
 
-// Sent to update the browser of Find In Page results.
-IPC_MESSAGE_ROUTED1(
-    AccessibilityHostMsg_FindInPageResult,
-    AccessibilityHostMsg_FindInPageResultParams)
-
-// Sent when a Find In Page operation is finished and all highlighted results
-// are cleared.
-IPC_MESSAGE_ROUTED0(AccessibilityHostMsg_FindInPageTermination)
-
 // Sent in response to PerformAction with parameter kHitTest.
 IPC_MESSAGE_ROUTED5(AccessibilityHostMsg_ChildFrameHitTestResult,
                     int /* action request id of initial caller */,
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h
index ab8e42a..e120990 100644
--- a/content/common/frame_messages.h
+++ b/content/common/frame_messages.h
@@ -811,11 +811,6 @@
                     gfx::PointF /* location */,
                     blink::MediaPlayerAction)
 
-// Sent to the proxy or frame in parent frame's process to ask for rendering
-// fallback contents. This only happens for frame owners which render their own
-// fallback contents (i.e., <object>).
-IPC_MESSAGE_ROUTED0(FrameMsg_RenderFallbackContent)
-
 // Tell the renderer to add a property to the WebUI binding object.  This
 // only works if we allowed WebUI bindings.
 IPC_MESSAGE_ROUTED2(FrameMsg_SetWebUIProperty,
@@ -1234,10 +1229,6 @@
                     gfx::Rect /* rect area of the frame content */,
                     int /* rendered document cookie */)
 
-// Asks the frame host to notify the owner element in parent process that it
-// should render fallback content.
-IPC_MESSAGE_ROUTED0(FrameHostMsg_RenderFallbackContentInParentProcess)
-
 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
 
 // Message to show/hide a popup menu using native controls.
diff --git a/content/content_resources.grd b/content/content_resources.grd
index d3fe02c..79eb1e5 100644
--- a/content/content_resources.grd
+++ b/content/content_resources.grd
@@ -1,5 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
+<!--
+This file specifies resources for user-facing features under /content. Resources
+for developer-facing chrome:// pages should be in dev_ui_content_resources.grd.
+Other resources that belong in this file:
+* Aliased resources (see shared_resources_data_source.cc).
+* (Optional) Resources for non-Android DevUI pages.
+-->
 <grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
   <outputs>
     <output filename="grit/content_resources.h" type="rc_header">
@@ -14,32 +20,14 @@
   <translations />
   <release seq="1">
     <includes>
-      <include name="IDR_APPCACHE_INTERNALS_HTML" file="browser/resources/appcache/appcache_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_APPCACHE_INTERNALS_JS" file="browser/resources/appcache/appcache_internals.js" flattenhtml="false" compress="gzip" type="BINDATA" />
-      <include name="IDR_APPCACHE_INTERNALS_CSS" file="browser/resources/appcache/appcache_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
       <include name="IDR_DEVTOOLS_PINCH_CURSOR_ICON" file="browser/resources/devtools/devtools_pinch_cursor.png" type="BINDATA" />
       <include name="IDR_DEVTOOLS_PINCH_CURSOR_ICON_2X" file="browser/resources/devtools/devtools_pinch_cursor_2x.png" type="BINDATA" />
       <include name="IDR_DEVTOOLS_TOUCH_CURSOR_ICON" file="browser/resources/devtools/devtools_touch_cursor.png" type="BINDATA" />
       <include name="IDR_DEVTOOLS_TOUCH_CURSOR_ICON_2X" file="browser/resources/devtools/devtools_touch_cursor_2x.png" type="BINDATA" />
-      <include name="IDR_GPU_INTERNALS_HTML" file="browser/resources/gpu/gpu_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_GPU_INTERNALS_JS" file="browser/resources/gpu/gpu_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
       <include name="IDR_HISTOGRAMS_INTERNALS_HTML" file="browser/resources/histograms/histograms_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
       <include name="IDR_HISTOGRAMS_INTERNALS_JS" file="browser/resources/histograms/histograms_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_INDEXED_DB_INTERNALS_HTML" file="browser/resources/indexed_db/indexeddb_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_INDEXED_DB_INTERNALS_JS" file="browser/resources/indexed_db/indexeddb_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_INDEXED_DB_INTERNALS_CSS" file="browser/resources/indexed_db/indexeddb_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_NETWORK_ERROR_LISTING_HTML" file="browser/resources/net/network_errors_listing.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_NETWORK_ERROR_LISTING_JS" file="browser/resources/net/network_errors_listing.js" flattenhtml="true" type="BINDATA" compress="gzip" />
-      <include name="IDR_NETWORK_ERROR_LISTING_CSS" file="browser/resources/net/network_errors_listing.css" flattenhtml="true" type="BINDATA" compress="gzip" />
       <include name="IDR_ORIGIN_MOJO_HTML" file="${root_gen_dir}/url/mojom/origin.mojom.html" use_base_dir="false" type="BINDATA" compress="gzip" />
       <include name="IDR_ORIGIN_MOJO_JS" file="${root_gen_dir}/url/mojom/origin.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
-      <include name="IDR_PROCESS_INTERNALS_HTML" file="browser/resources/process/process_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_PROCESS_INTERNALS_MOJO_JS" file="${root_gen_dir}/content/browser/process_internals/process_internals.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
-      <include name="IDR_PROCESS_INTERNALS_CSS" file="browser/resources/process/process_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_PROCESS_INTERNALS_JS" file="browser/resources/process/process_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_SERVICE_WORKER_INTERNALS_HTML" file="browser/resources/service_worker/serviceworker_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_SERVICE_WORKER_INTERNALS_JS" file="browser/resources/service_worker/serviceworker_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_SERVICE_WORKER_INTERNALS_CSS" file="browser/resources/service_worker/serviceworker_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
       <include name="IDR_UNGUESSABLE_TOKEN_MOJO_HTML" file="${root_gen_dir}/mojo/public/mojom/base/unguessable_token.mojom.html" use_base_dir="false" type="BINDATA" compress="gzip" />
       <include name="IDR_UNGUESSABLE_TOKEN_MOJO_JS" file="${root_gen_dir}/mojo/public/mojom/base/unguessable_token.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
       <include name="IDR_URL_MOJO_HTML" file="${root_gen_dir}/url/mojom/url.mojom.html" use_base_dir="false" type="BINDATA" compress="gzip" />
diff --git a/content/dev_ui_content_resources.grd b/content/dev_ui_content_resources.grd
new file mode 100644
index 0000000..b43d167
--- /dev/null
+++ b/content/dev_ui_content_resources.grd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file specifies resources for developer-facing chrome:// pages (DevUI pages)
+under /content. This is needed by the Developer WebUI Dynamic Feature Module
+(DevUI DFM) for Android Chrome. See content_resources.grd for more examples of
+files that belong there instead.
+-->
+<grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
+  <outputs>
+    <output filename="grit/dev_ui_content_resources.h" type="rc_header">
+      <emit emit_type='prepend'></emit>
+    </output>
+    <output filename="dev_ui_content_resources.pak" type="data_package" />
+  </outputs>
+  <translations />
+  <release seq="1">
+    <includes>
+      <include name="IDR_APPCACHE_INTERNALS_HTML" file="browser/resources/appcache/appcache_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_APPCACHE_INTERNALS_JS" file="browser/resources/appcache/appcache_internals.js" flattenhtml="false" compress="gzip" type="BINDATA" />
+      <include name="IDR_APPCACHE_INTERNALS_CSS" file="browser/resources/appcache/appcache_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_GPU_INTERNALS_HTML" file="browser/resources/gpu/gpu_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_GPU_INTERNALS_JS" file="browser/resources/gpu/gpu_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_INDEXED_DB_INTERNALS_HTML" file="browser/resources/indexed_db/indexeddb_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_INDEXED_DB_INTERNALS_JS" file="browser/resources/indexed_db/indexeddb_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_INDEXED_DB_INTERNALS_CSS" file="browser/resources/indexed_db/indexeddb_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_NETWORK_ERROR_LISTING_HTML" file="browser/resources/net/network_errors_listing.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_NETWORK_ERROR_LISTING_JS" file="browser/resources/net/network_errors_listing.js" flattenhtml="true" type="BINDATA" compress="gzip" />
+      <include name="IDR_NETWORK_ERROR_LISTING_CSS" file="browser/resources/net/network_errors_listing.css" flattenhtml="true" type="BINDATA" compress="gzip" />
+      <include name="IDR_PROCESS_INTERNALS_HTML" file="browser/resources/process/process_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_PROCESS_INTERNALS_MOJO_JS" file="${root_gen_dir}/content/browser/process_internals/process_internals.mojom-lite.js" use_base_dir="false" type="BINDATA" compress="gzip" />
+      <include name="IDR_PROCESS_INTERNALS_CSS" file="browser/resources/process/process_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_PROCESS_INTERNALS_JS" file="browser/resources/process/process_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_SERVICE_WORKER_INTERNALS_HTML" file="browser/resources/service_worker/serviceworker_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_SERVICE_WORKER_INTERNALS_JS" file="browser/resources/service_worker/serviceworker_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
+      <include name="IDR_SERVICE_WORKER_INTERNALS_CSS" file="browser/resources/service_worker/serviceworker_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
+    </includes>
+  </release>
+</grit>
diff --git a/content/public/test/fake_local_frame.cc b/content/public/test/fake_local_frame.cc
index cfe7046..ab3d312 100644
--- a/content/public/test/fake_local_frame.cc
+++ b/content/public/test/fake_local_frame.cc
@@ -50,6 +50,8 @@
 void FakeLocalFrame::ReportBlinkFeatureUsage(
     const std::vector<blink::mojom::WebFeature>&) {}
 
+void FakeLocalFrame::RenderFallbackContent() {}
+
 void FakeLocalFrame::BindFrameHostReceiver(
     mojo::ScopedInterfaceEndpointHandle handle) {
   receiver_.Bind(mojo::PendingAssociatedReceiver<blink::mojom::LocalFrame>(
diff --git a/content/public/test/fake_local_frame.h b/content/public/test/fake_local_frame.h
index 89c56fda..0681816 100644
--- a/content/public/test/fake_local_frame.h
+++ b/content/public/test/fake_local_frame.h
@@ -46,6 +46,7 @@
   void SaveImageAt(const gfx::Point& window_point) override;
   void ReportBlinkFeatureUsage(
       const std::vector<blink::mojom::WebFeature>&) override;
+  void RenderFallbackContent() override;
 
  private:
   void BindFrameHostReceiver(mojo::ScopedInterfaceEndpointHandle handle);
diff --git a/content/public/test/fake_remote_frame.cc b/content/public/test/fake_remote_frame.cc
index 481e04f..db316ed 100644
--- a/content/public/test/fake_remote_frame.cc
+++ b/content/public/test/fake_remote_frame.cc
@@ -53,6 +53,8 @@
 
 void FakeRemoteFrame::SetPageFocus(bool is_focused) {}
 
+void FakeRemoteFrame::RenderFallbackContent() {}
+
 void FakeRemoteFrame::FakeRemoteFrame::BindFrameHostReceiver(
     mojo::ScopedInterfaceEndpointHandle handle) {
   receiver_.Bind(mojo::PendingAssociatedReceiver<blink::mojom::RemoteFrame>(
diff --git a/content/public/test/fake_remote_frame.h b/content/public/test/fake_remote_frame.h
index 008ece5..c358c1e 100644
--- a/content/public/test/fake_remote_frame.h
+++ b/content/public/test/fake_remote_frame.h
@@ -56,6 +56,7 @@
   void SetEmbeddingToken(
       const base::UnguessableToken& embedding_token) override;
   void SetPageFocus(bool is_focused) override;
+  void RenderFallbackContent() override;
 
  private:
   void BindFrameHostReceiver(mojo::ScopedInterfaceEndpointHandle handle);
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
index 2da9a7d..8a437a8a 100644
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -343,7 +343,8 @@
     "//components/url_formatter",
     "//components/viz/client",
     "//components/viz/common",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/child",
     "//content/common",
     "//content/common:buildflags",
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc
index 586c311..cf7679c 100644
--- a/content/renderer/accessibility/render_accessibility_impl.cc
+++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -332,27 +332,6 @@
   ScheduleSendAccessibilityEventsIfNeeded();
 }
 
-void RenderAccessibilityImpl::HandleAccessibilityFindInPageResult(
-    int identifier,
-    int match_index,
-    const WebAXObject& start_object,
-    int start_offset,
-    const WebAXObject& end_object,
-    int end_offset) {
-  AccessibilityHostMsg_FindInPageResultParams params;
-  params.request_id = identifier;
-  params.match_index = match_index;
-  params.start_id = start_object.AxID();
-  params.start_offset = start_offset;
-  params.end_id = end_object.AxID();
-  params.end_offset = end_offset;
-  Send(new AccessibilityHostMsg_FindInPageResult(routing_id(), params));
-}
-
-void RenderAccessibilityImpl::HandleAccessibilityFindInPageTermination() {
-  Send(new AccessibilityHostMsg_FindInPageTermination(routing_id()));
-}
-
 void RenderAccessibilityImpl::HandleAXEvent(const WebAXObject& obj,
                                             ax::mojom::Event event,
                                             ax::mojom::EventFrom event_from,
diff --git a/content/renderer/accessibility/render_accessibility_impl.h b/content/renderer/accessibility/render_accessibility_impl.h
index 478c0f8..66dbe6b3 100644
--- a/content/renderer/accessibility/render_accessibility_impl.h
+++ b/content/renderer/accessibility/render_accessibility_impl.h
@@ -125,19 +125,6 @@
                                    ax::mojom::EventFrom event_from);
   void MarkWebAXObjectDirty(const blink::WebAXObject& obj, bool subtree);
 
-  // Called when a new find in page result is highlighted.
-  void HandleAccessibilityFindInPageResult(
-      int identifier,
-      int match_index,
-      const blink::WebAXObject& start_object,
-      int start_offset,
-      const blink::WebAXObject& end_object,
-      int end_offset);
-
-  // Called when a find in page result is terminated and all results are
-  // cleared.
-  void HandleAccessibilityFindInPageTermination();
-
   void HandleAXEvent(
       const blink::WebAXObject& obj,
       ax::mojom::Event event,
diff --git a/content/renderer/loader/web_url_request_util.cc b/content/renderer/loader/web_url_request_util.cc
index 5765848..36f8b7b 100644
--- a/content/renderer/loader/web_url_request_util.cc
+++ b/content/renderer/loader/web_url_request_util.cc
@@ -26,7 +26,6 @@
 #include "third_party/blink/public/mojom/blob/blob_registry.mojom.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h"
 #include "third_party/blink/public/platform/file_path_conversion.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/web_data.h"
 #include "third_party/blink/public/platform/web_http_body.h"
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index a5b4166..05b69d5 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -175,7 +175,6 @@
 #include "third_party/blink/public/mojom/permissions/permission.mojom.h"
 #include "third_party/blink/public/mojom/referrer.mojom.h"
 #include "third_party/blink/public/platform/file_path_conversion.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/modules/service_worker/web_service_worker_network_provider.h"
 #include "third_party/blink/public/platform/url_conversion.h"
 #include "third_party/blink/public/platform/web_data.h"
@@ -1474,6 +1473,9 @@
     // which would allow removing this branch altogether.  See
     // https://crbug.com/756790.
 
+    // In https://crbug.com/1006814 we are seeing FromRoutingID return
+    // nullptr. This helps determine why.
+    CHECK_NE(parent_routing_id, MSG_ROUTING_NONE);
     RenderFrameProxy* parent_proxy =
         RenderFrameProxy::FromRoutingID(parent_routing_id);
     // If the browser is sending a valid parent routing id, it should already
@@ -1539,9 +1541,9 @@
     DCHECK_EQ(proxy_is_main_frame, !web_frame->Parent());
   }
 
-  DCHECK(render_view);
-  DCHECK(render_frame);
-  DCHECK(web_frame);
+  CHECK(render_view);
+  CHECK(render_frame);
+  CHECK(web_frame);
 
   const bool is_main_frame = !web_frame->Parent();
 
@@ -2211,7 +2213,6 @@
     IPC_MESSAGE_HANDLER(FrameMsg_SetOverlayRoutingToken,
                         OnSetOverlayRoutingToken)
     IPC_MESSAGE_HANDLER(FrameMsg_MediaPlayerActionAt, OnMediaPlayerActionAt)
-    IPC_MESSAGE_HANDLER(FrameMsg_RenderFallbackContent, OnRenderFallbackContent)
 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
 #if defined(OS_MACOSX)
     IPC_MESSAGE_HANDLER(FrameMsg_SelectPopupMenuItem, OnSelectPopupMenuItem)
@@ -4804,10 +4805,6 @@
   return devtools_frame_token_;
 }
 
-void RenderFrameImpl::RenderFallbackContentInParentProcess() {
-  Send(new FrameHostMsg_RenderFallbackContentInParentProcess(routing_id_));
-}
-
 void RenderFrameImpl::AbortClientNavigation() {
   browser_side_navigation_pending_ = false;
   sync_navigation_callback_.Cancel();
@@ -5256,25 +5253,6 @@
     render_accessibility_->MarkWebAXObjectDirty(obj, subtree);
 }
 
-void RenderFrameImpl::HandleAccessibilityFindInPageResult(
-    int identifier,
-    int match_index,
-    const blink::WebNode& start_node,
-    int start_offset,
-    const blink::WebNode& end_node,
-    int end_offset) {
-  if (render_accessibility_) {
-    render_accessibility_->HandleAccessibilityFindInPageResult(
-        identifier, match_index, blink::WebAXObject::FromWebNode(start_node),
-        start_offset, blink::WebAXObject::FromWebNode(end_node), end_offset);
-  }
-}
-
-void RenderFrameImpl::HandleAccessibilityFindInPageTermination() {
-  if (render_accessibility_)
-    render_accessibility_->HandleAccessibilityFindInPageTermination();
-}
-
 void RenderFrameImpl::DidSerializeDataForFrame(
     const WebVector<char>& data,
     WebFrameSerializerClient::FrameSerializationStatus status) {
@@ -6242,10 +6220,6 @@
       WebPoint(viewport_position.x, viewport_position.y), action);
 }
 
-void RenderFrameImpl::OnRenderFallbackContent() const {
-  frame_->RenderFallbackContent();
-}
-
 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
 #if defined(OS_MACOSX)
 void RenderFrameImpl::OnSelectPopupMenuItem(int selected_index) {
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index db9292b..263784c6 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -739,7 +739,6 @@
       const blink::WebResourceTimingInfo& info) override;
   void DispatchLoad() override;
   base::UnguessableToken GetDevToolsFrameToken() override;
-  void RenderFallbackContentInParentProcess() override;
   void AbortClientNavigation() override;
   void DidChangeSelection(bool is_empty_selection) override;
   bool HandleCurrentKeyboardEvent() override;
@@ -788,13 +787,6 @@
                               ax::mojom::EventFrom event_from) override;
   void MarkWebAXObjectDirty(const blink::WebAXObject& obj,
                             bool subtree) override;
-  void HandleAccessibilityFindInPageResult(int identifier,
-                                           int match_index,
-                                           const blink::WebNode& start_node,
-                                           int start_offset,
-                                           const blink::WebNode& end_node,
-                                           int end_offset) override;
-  void HandleAccessibilityFindInPageTermination() override;
   void CheckIfAudioSinkExistsAndIsAuthorized(
       const blink::WebString& sink_id,
       blink::WebSetSinkIdCompleteCallback callback) override;
@@ -1098,7 +1090,6 @@
   void OnSetOverlayRoutingToken(const base::UnguessableToken& token);
   void OnMediaPlayerActionAt(const gfx::PointF&,
                              const blink::MediaPlayerAction&);
-  void OnRenderFallbackContent() const;
 
 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
 #if defined(OS_MACOSX)
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc
index 5ad62b2a..19ae6123 100644
--- a/content/renderer/render_frame_proxy.cc
+++ b/content/renderer/render_frame_proxy.cc
@@ -435,7 +435,6 @@
     IPC_MESSAGE_HANDLER(FrameMsg_TransferUserActivationFrom,
                         OnTransferUserActivationFrom)
     IPC_MESSAGE_HANDLER(FrameMsg_ScrollRectToVisible, OnScrollRectToVisible)
-    IPC_MESSAGE_HANDLER(FrameMsg_RenderFallbackContent, OnRenderFallbackContent)
     IPC_MESSAGE_HANDLER(UnfreezableFrameMsg_DeleteProxy, OnDeleteProxy)
     IPC_MESSAGE_UNHANDLED(handled = false)
   IPC_END_MESSAGE_MAP()
@@ -641,10 +640,6 @@
           .ToString());
 }
 
-void RenderFrameProxy::OnRenderFallbackContent() const {
-  web_frame_->RenderFallbackContent();
-}
-
 void RenderFrameProxy::FrameDetached(DetachType type) {
   if (type == DetachType::kRemove) {
     // Let the browser process know this subframe is removed, so that it is
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h
index f43ea3e0..b34f5f27 100644
--- a/content/renderer/render_frame_proxy.h
+++ b/content/renderer/render_frame_proxy.h
@@ -247,7 +247,6 @@
   void OnDidUpdateVisualProperties(const cc::RenderFrameMetadata& metadata);
   void OnEnableAutoResize(const gfx::Size& min_size, const gfx::Size& max_size);
   void OnDisableAutoResize();
-  void OnRenderFallbackContent() const;
 
   // ChildFrameCompositor:
   cc::Layer* GetLayer() override;
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
index b3a891b9..58c1b0e 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -79,7 +79,6 @@
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom.h"
 #include "third_party/blink/public/platform/blame_context.h"
 #include "third_party/blink/public/platform/file_path_conversion.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h"
 #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h"
 #include "third_party/blink/public/platform/url_conversion.h"
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
index d0eee33..1b345b7 100644
--- a/content/shell/BUILD.gn
+++ b/content/shell/BUILD.gn
@@ -289,7 +289,8 @@
     "//components/plugins/renderer",
     "//components/url_formatter",
     "//components/web_cache/renderer",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/gpu",
     "//content/public/common",
@@ -522,6 +523,7 @@
     "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
     "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/content/shell/shell_resources.pak",
     "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
     "$root_gen_dir/net/net_resources.pak",
@@ -536,7 +538,8 @@
 
   deps = [
     ":resources",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/browser/resources/media:media_internals_resources",
     "//content/browser/tracing:resources",
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 4ef9dc3..d4deef7 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1064,6 +1064,11 @@
     "//build/config/compiler:no_size_t_to_int_warning",
   ]
 
+  public_deps = [
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
+  ]
+
   deps = [
     ":browsertest_support",
     ":content_test_mojo_bindings",
@@ -1085,7 +1090,6 @@
     "//components/url_formatter:url_formatter",
     "//components/viz/host",
     "//components/viz/test:test_support",
-    "//content:resources",
     "//content/app:both_for_content_tests",
     "//content/browser:for_content_tests",
     "//content/browser/background_sync:background_sync_proto",
@@ -1914,6 +1918,11 @@
 
   configs += [ "//build/config:precompiled_headers" ]
 
+  public_deps = [
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
+  ]
+
   deps = [
     ":content_test_mojo_bindings",
     ":run_all_unittests",
@@ -1943,7 +1952,6 @@
     "//components/viz/host",
     "//components/viz/service",
     "//components/viz/test:test_support",
-    "//content:resources",
     "//content/app:both_for_content_tests",
     "//content/browser:for_content_tests",
     "//content/browser/background_fetch:background_fetch_proto",
diff --git a/extensions/BUILD.gn b/extensions/BUILD.gn
index e9c9409..d7fb5f91 100644
--- a/extensions/BUILD.gn
+++ b/extensions/BUILD.gn
@@ -162,9 +162,7 @@
     "//third_party/cld_3/src/src:cld_3",
   ]
 
-  public_deps = [
-    "//content/public/browser",
-  ]
+  public_deps = [ "//content/public/browser" ]
 }
 
 repack("shell_and_test_pak") {
@@ -173,6 +171,7 @@
   sources = [
     "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/content/shell/shell_resources.pak",
     "$root_gen_dir/extensions/extensions_browser_resources_100_percent.pak",
     "$root_gen_dir/extensions/extensions_renderer_resources.pak",
@@ -192,7 +191,8 @@
 
   deps = [
     ":extensions_resources",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/browser/devtools:devtools_resources",
     "//content/shell:resources",
     "//extensions/shell:resources",
@@ -237,9 +237,7 @@
     "//ui/gl:test_support",
   ]
 
-  data_deps = [
-    "//third_party/mesa_headers",
-  ]
+  data_deps = [ "//third_party/mesa_headers" ]
 }
 
 test("extensions_browsertests") {
@@ -256,9 +254,7 @@
     "//extensions/shell:browser_tests",
   ]
 
-  data_deps = [
-    "//third_party/mesa_headers",
-  ]
+  data_deps = [ "//third_party/mesa_headers" ]
 }
 
 # TODO(rockot) bug 505926: These should be moved to extensions_browsertests but have
diff --git a/extensions/renderer/BUILD.gn b/extensions/renderer/BUILD.gn
index 7ef7c13..5315f627 100644
--- a/extensions/renderer/BUILD.gn
+++ b/extensions/renderer/BUILD.gn
@@ -253,7 +253,8 @@
     "//components/guest_view/common",
     "//components/guest_view/renderer",
     "//components/version_info",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/public/renderer",
     "//extensions:extensions_resources",
     "//extensions/common",
diff --git a/fuchsia/engine/BUILD.gn b/fuchsia/engine/BUILD.gn
index b68aa4a..26a93bd5 100644
--- a/fuchsia/engine/BUILD.gn
+++ b/fuchsia/engine/BUILD.gn
@@ -33,6 +33,7 @@
     "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
     "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
     "$root_gen_dir/net/net_resources.pak",
     "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
@@ -47,7 +48,8 @@
   deps = [
     "//components/resources:components_resources",
     "//components/strings",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/browser/tracing:resources",
     "//gpu/command_buffer/service",
diff --git a/headless/BUILD.gn b/headless/BUILD.gn
index f733546..12de06f 100644
--- a/headless/BUILD.gn
+++ b/headless/BUILD.gn
@@ -34,6 +34,7 @@
     "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
     "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/headless/headless_lib_resources.pak",
     "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
     "$root_gen_dir/net/net_resources.pak",
@@ -56,7 +57,8 @@
     ":resources",
     "//components/resources:components_resources",
     "//components/strings",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/browser/devtools:resources",
     "//content/browser/tracing:resources",
diff --git a/infra/config/buckets/goma.star b/infra/config/buckets/goma.star
index a08bf55..59e40d9 100644
--- a/infra/config/buckets/goma.star
+++ b/infra/config/buckets/goma.star
@@ -1,4 +1,4 @@
-load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os', 'os_category')
+load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os')
 
 luci.bucket(
     name = 'goma',
@@ -35,12 +35,6 @@
 defaults.swarming_tags.set(['vpython:native-python-wrapper'])
 
 
-def compute_goma_enable_ats(goma_backend, os):
-  if goma_backend == None:
-    return False
-  return os.category in (os_category.LINUX, os_category.WINDOWS)
-
-
 # Builders appear after the function used to define them, with all builders
 # defined using the same function ordered lexicographically by name
 # Builder functions are defined in lexicographic order by name ignoring the
@@ -172,7 +166,6 @@
       name = name,
       execution_timeout = 10 * time.hour,
       goma_backend = goma_backend,
-      goma_enable_ats = compute_goma_enable_ats(goma_backend, os),
       mastername = 'chromium.fyi',
       os = os,
       **kwargs
@@ -191,6 +184,7 @@
 
 fyi_goma_rbe_canary_builder(
     name = 'android-archive-dbg-goma-rbe-ats-canary',
+    goma_enable_ats = True,
 )
 
 fyi_goma_rbe_canary_builder(
@@ -199,6 +193,7 @@
 
 fyi_goma_rbe_canary_builder(
     name = 'chromeos-amd64-generic-rel-goma-rbe-canary',
+    goma_enable_ats = True,
 )
 
 fyi_goma_rbe_canary_builder(
@@ -216,6 +211,7 @@
 
 fyi_goma_rbe_canary_builder(
     name = 'linux-archive-rel-goma-rbe-ats-canary',
+    goma_enable_ats = True,
 )
 
 fyi_goma_rbe_canary_builder(
@@ -348,7 +344,6 @@
       name = name,
       execution_timeout = 10 * time.hour,
       goma_backend = goma_backend,
-      goma_enable_ats = compute_goma_enable_ats(goma_backend, os),
       mastername = 'chromium.fyi',
       os = os,
       **kwargs
@@ -368,17 +363,20 @@
 fyi_goma_rbe_latest_client_builder(
     name = 'Win Builder (dbg) Goma RBE Latest Client',
     goma_backend = goma.backend.RBE_STAGING,
+    goma_enable_ats = True,
     os = os.WINDOWS_DEFAULT,
 )
 
 fyi_goma_rbe_latest_client_builder(
     name = 'Win Builder Goma RBE Latest Client',
     goma_backend = goma.backend.RBE_STAGING,
+    goma_enable_ats = True,
     os = os.WINDOWS_DEFAULT,
 )
 
 fyi_goma_rbe_latest_client_builder(
     name = 'android-archive-dbg-goma-rbe-ats-latest',
+    goma_enable_ats = True,
 )
 
 fyi_goma_rbe_latest_client_builder(
@@ -387,6 +385,7 @@
 
 fyi_goma_rbe_latest_client_builder(
     name = 'chromeos-amd64-generic-rel-goma-rbe-latest',
+    goma_enable_ats = True,
 )
 
 fyi_goma_rbe_latest_client_builder(
@@ -404,6 +403,7 @@
 
 fyi_goma_rbe_latest_client_builder(
     name = 'linux-archive-rel-goma-rbe-ats-latest',
+    goma_enable_ats = True,
 )
 
 fyi_goma_rbe_latest_client_builder(
@@ -418,18 +418,10 @@
 )
 
 
-def goma_builder(
-    *,
-    name,
-    builderless=False,
-    goma_backend=None,
-    os=os.LINUX_DEFAULT,
-    **kwargs):
+def goma_builder(*, name, builderless=False, os=os.LINUX_DEFAULT, **kwargs):
   return builder(
       name = name,
       builderless = builderless,
-      goma_backend = goma_backend,
-      goma_enable_ats = compute_goma_enable_ats(goma_backend, os),
       mastername = 'chromium.goma',
       os = os,
       **kwargs
@@ -468,6 +460,7 @@
 goma_builder(
     name = 'Chromium Android ARM 32-bit Goma RBE ToT (ATS)',
     goma_backend = goma.backend.RBE_TOT,
+    goma_enable_ats = True,
 )
 
 goma_builder(
@@ -522,24 +515,28 @@
 goma_builder(
     name = 'Chromium Linux Goma RBE ToT (ATS)',
     goma_backend = goma.backend.RBE_TOT,
+    goma_enable_ats = True,
 )
 
 goma_builder(
     name = 'chromeos-amd64-generic-rel (Goma RBE FYI)',
     builderless = True,
     goma_backend = goma.backend.RBE_PROD,
+    goma_enable_ats = True,
 )
 
 goma_builder(
     name = 'fuchsia-fyi-arm64-rel (Goma RBE FYI)',
     builderless = True,
     goma_backend = goma.backend.RBE_PROD,
+    goma_enable_ats = True,
 )
 
 goma_builder(
     name = 'fuchsia-fyi-x64-rel (Goma RBE FYI)',
     builderless = True,
     goma_backend = goma.backend.RBE_PROD,
+    goma_enable_ats = True,
 )
 
 
@@ -582,10 +579,11 @@
 )
 
 
-def goma_windows_builder(*, name, cores=32, **kwargs):
+def goma_windows_builder(*, name, goma_enable_ats=True, cores=32, **kwargs):
   return goma_builder(
       name = name,
       cores = cores,
+      goma_enable_ats = goma_enable_ats,
       os = os.WINDOWS_DEFAULT,
       **kwargs
   )
@@ -628,4 +626,5 @@
 goma_windows_builder(
     name = 'CrWinGomaStaging',
     cores = 8,
+    goma_enable_ats = False,
 )
diff --git a/media/capture/video/chromeos/request_manager.cc b/media/capture/video/chromeos/request_manager.cc
index db8edc06..4908f3d 100644
--- a/media/capture/video/chromeos/request_manager.cc
+++ b/media/capture/video/chromeos/request_manager.cc
@@ -334,7 +334,11 @@
     ++preview_buffers_queued_;
   }
 
-  UpdateCaptureSettings(&capture_request->settings);
+  // Currently only 3A related settings will be applied, which means we don't
+  // need to apply for reprocess request.
+  if (!is_reprocess_request) {
+    UpdateCaptureSettings(&capture_request->settings);
+  }
   capture_interface_->ProcessCaptureRequest(
       std::move(capture_request),
       base::BindOnce(&RequestManager::OnProcessedCaptureRequest, GetWeakPtr()));
@@ -371,7 +375,7 @@
 
   stream_types->insert(kYUVReprocessStreams);
   // Prepare metadata by adding extra metadata.
-  *settings = repeating_request_settings_.Clone();
+  *settings = reprocess_job_info->metadata.Clone();
   SetSensorTimestamp(settings, reprocess_job_info->shutter_timestamp);
   SetJpegOrientation(settings);
   for (auto& metadata : task.extra_metadata) {
@@ -791,7 +795,7 @@
       DCHECK_GT(pending_result.shutter_timestamp, 0UL);
       ReprocessJobInfo reprocess_job_info(
           std::move(frame_number_reprocess_tasks_map_[frame_number]),
-          pending_result.shutter_timestamp);
+          std::move(pending_result.metadata), pending_result.shutter_timestamp);
       buffer_id_reprocess_job_info_map_.emplace(buffer_ipc_id,
                                                 std::move(reprocess_job_info));
       frame_number_reprocess_tasks_map_.erase(frame_number);
@@ -940,12 +944,17 @@
 
 RequestManager::CaptureResult::~CaptureResult() = default;
 
-RequestManager::ReprocessJobInfo::ReprocessJobInfo(ReprocessTaskQueue queue,
-                                                   uint64_t timestamp)
-    : task_queue(std::move(queue)), shutter_timestamp(timestamp) {}
+RequestManager::ReprocessJobInfo::ReprocessJobInfo(
+    ReprocessTaskQueue queue,
+    cros::mojom::CameraMetadataPtr metadata,
+    uint64_t timestamp)
+    : task_queue(std::move(queue)),
+      metadata(std::move(metadata)),
+      shutter_timestamp(timestamp) {}
 
 RequestManager::ReprocessJobInfo::ReprocessJobInfo(ReprocessJobInfo&& info)
     : task_queue(std::move(info.task_queue)),
+      metadata(std::move(info.metadata)),
       shutter_timestamp(info.shutter_timestamp) {}
 
 RequestManager::ReprocessJobInfo::~ReprocessJobInfo() = default;
diff --git a/media/capture/video/chromeos/request_manager.h b/media/capture/video/chromeos/request_manager.h
index 6efa94a..4d3afac 100644
--- a/media/capture/video/chromeos/request_manager.h
+++ b/media/capture/video/chromeos/request_manager.h
@@ -205,11 +205,14 @@
   // ReprocessJobInfo holds the queued reprocess tasks and associated metadata
   // for a given YUVInput buffer.
   struct ReprocessJobInfo {
-    ReprocessJobInfo(ReprocessTaskQueue queue, uint64_t timestamp);
+    ReprocessJobInfo(ReprocessTaskQueue queue,
+                     cros::mojom::CameraMetadataPtr metadata,
+                     uint64_t timestamp);
     ReprocessJobInfo(ReprocessJobInfo&& info);
     ~ReprocessJobInfo();
 
     ReprocessTaskQueue task_queue;
+    cros::mojom::CameraMetadataPtr metadata;
     uint64_t shutter_timestamp;
   };
 
diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc
index bf37b582..1585ee5 100644
--- a/media/gpu/v4l2/v4l2_device.cc
+++ b/media/gpu/v4l2/v4l2_device.cc
@@ -49,6 +49,15 @@
 
 }  // namespace
 
+V4L2ExtCtrl::V4L2ExtCtrl(uint32_t id) {
+  memset(&ctrl, 0, sizeof(ctrl));
+  ctrl.id = id;
+}
+
+V4L2ExtCtrl::V4L2ExtCtrl(uint32_t id, int32_t val) : V4L2ExtCtrl(id) {
+  ctrl.value = val;
+}
+
 // Class used to store the state of a buffer that should persist between
 // reference creations. This includes:
 // * Result of initial VIDIOC_QUERYBUF ioctl,
@@ -1954,6 +1963,20 @@
   return Ioctl(VIDIOC_QUERYCTRL, &query_ctrl) == 0;
 }
 
+bool V4L2Device::SetExtCtrls(uint32_t ctrl_class,
+                             std::vector<V4L2ExtCtrl> ctrls) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(client_sequence_checker_);
+
+  if (ctrls.empty())
+    return true;
+
+  struct v4l2_ext_controls ext_ctrls {};
+  ext_ctrls.ctrl_class = ctrl_class;
+  ext_ctrls.count = ctrls.size();
+  ext_ctrls.controls = &ctrls[0].ctrl;
+  return Ioctl(VIDIOC_S_EXT_CTRLS, &ext_ctrls) == 0;
+}
+
 class V4L2Request {
  public:
   // Apply the passed controls to the request.
diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h
index 5dedd0a..2e3c5d9 100644
--- a/media/gpu/v4l2/v4l2_device.h
+++ b/media/gpu/v4l2/v4l2_device.h
@@ -65,6 +65,13 @@
 class V4L2DecodeSurface;
 class V4L2RequestRef;
 
+// Wrapper for the 'v4l2_ext_control' structure.
+struct V4L2ExtCtrl {
+  V4L2ExtCtrl(uint32_t id);
+  V4L2ExtCtrl(uint32_t id, int32_t val);
+  struct v4l2_ext_control ctrl;
+};
+
 // A unique reference to a buffer for clients to prepare and submit.
 //
 // Clients can prepare a buffer for queuing using the methods of this class, and
@@ -692,6 +699,9 @@
 
   // Check whether the V4L2 control with specified |ctrl_id| is supported.
   bool IsCtrlExposed(uint32_t ctrl_id);
+  // Set the specified list of |ctrls| for the specified |ctrl_class|, returns
+  // whether the operation succeeded.
+  bool SetExtCtrls(uint32_t ctrl_class, std::vector<V4L2ExtCtrl> ctrls);
 
  protected:
   friend class base::RefCountedThreadSafe<V4L2Device>;
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
index 84fa266..21c01c5 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
@@ -424,7 +424,7 @@
   while (!decoder_input_queue_.empty())
     decoder_input_queue_.pop_front();
 
-  // Stop streaming and the device_poll_thread_.
+  // Stop streaming and the V4L2 device poller.
   StopDevicePoll();
 
   DestroyInputBuffers();
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h
index 5b0c50ec..fe823f5 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h
+++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h
@@ -289,7 +289,7 @@
   // using VIDIOC_DQEVENT, but this should never happen for the slice API.
   void ServiceDeviceTask(bool event);
 
-  // Attempt to start/stop device_poll_thread_.
+  // Attempt to start/stop the V4L2 device poller.
   bool StartDevicePoll();
   bool StopDevicePoll();
   void OnPollError();
diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
index 4ff09b1..953ed2a4 100644
--- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
@@ -912,8 +912,8 @@
 
   // STREAMON in CAPTURE queue first and then OUTPUT queue.
   // This is a workaround of a tegra driver bug that STREAMON in CAPTURE queue
-  // will never return (i.e. blocks |encoder_thread_| forever) if the STREAMON
-  // in CAPTURE queue is called after STREAMON in OUTPUT queue.
+  // will never return (i.e. blocks |encoder_task_runner_| forever) if the
+  // STREAMON in CAPTURE queue is called after STREAMON in OUTPUT queue.
   // Once nyan_kitty, which uses tegra driver, reaches EOL, crrev.com/c/1753982
   // should be reverted.
   if (do_streamon) {
@@ -1048,11 +1048,9 @@
   // Enqueue an input (VIDEO_OUTPUT) buffer.
   InputFrameInfo frame_info = encoder_input_queue_.front();
   if (frame_info.force_keyframe) {
-    std::vector<struct v4l2_ext_control> ctrls;
-    struct v4l2_ext_control ctrl{};
-    ctrl.id = V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME;
-    ctrls.push_back(ctrl);
-    if (!SetExtCtrls(ctrls)) {
+    if (!device_->SetExtCtrls(
+            V4L2_CTRL_CLASS_MPEG,
+            {V4L2ExtCtrl(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME)})) {
       VLOGF(1) << "Failed requesting keyframe";
       NOTIFY_ERROR(kPlatformFailureError);
       return false;
@@ -1241,7 +1239,7 @@
     return;
   }
 
-  // Called on encoder_task_runner_.
+  // Called on |encoder_task_runner_|.
   child_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&Client::NotifyError, client_, error));
 }
@@ -1275,12 +1273,9 @@
   DCHECK_GT(bitrate, 0u);
   DCHECK_GT(framerate, 0u);
 
-  std::vector<struct v4l2_ext_control> ctrls;
-  struct v4l2_ext_control ctrl{};
-  ctrl.id = V4L2_CID_MPEG_VIDEO_BITRATE;
-  ctrl.value = bitrate;
-  ctrls.push_back(ctrl);
-  if (!SetExtCtrls(ctrls)) {
+  if (!device_->SetExtCtrls(
+          V4L2_CTRL_CLASS_MPEG,
+          {V4L2ExtCtrl(V4L2_CID_MPEG_VIDEO_BITRATE, bitrate)})) {
     VLOGF(1) << "Failed changing bitrate";
     NOTIFY_ERROR(kPlatformFailureError);
     return;
@@ -1304,20 +1299,15 @@
   DCHECK(!visible_size_.IsEmpty());
   output_buffer_byte_size_ = GetEncodeBitstreamBufferSize(visible_size_);
 
-  struct v4l2_format format{};
-  format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-  format.fmt.pix_mp.width = visible_size_.width();
-  format.fmt.pix_mp.height = visible_size_.height();
-  format.fmt.pix_mp.pixelformat = output_format_fourcc_;
-  format.fmt.pix_mp.plane_fmt[0].sizeimage =
-      base::checked_cast<__u32>(output_buffer_byte_size_);
-  format.fmt.pix_mp.num_planes = 1;
-  IOCTL_OR_ERROR_RETURN_FALSE(VIDIOC_S_FMT, &format);
-  DCHECK_EQ(format.fmt.pix_mp.pixelformat, output_format_fourcc_);
+  base::Optional<struct v4l2_format> format = output_queue_->SetFormat(
+      output_format_fourcc_, visible_size_, output_buffer_byte_size_);
+  if (!format) {
+    return false;
+  }
 
   // Device might have adjusted the required output size.
   size_t adjusted_output_buffer_size =
-      base::checked_cast<size_t>(format.fmt.pix_mp.plane_fmt[0].sizeimage);
+      base::checked_cast<size_t>(format->fmt.pix_mp.plane_fmt[0].sizeimage);
   output_buffer_byte_size_ = adjusted_output_buffer_size;
 
   return true;
@@ -1348,45 +1338,38 @@
   }
 
   for (const auto pix_fmt : pix_fmt_candidates) {
-    size_t planes_count = V4L2Device::GetNumPlanesOfV4L2PixFmt(pix_fmt);
-    DCHECK_GT(planes_count, 0u);
-    DCHECK_LE(planes_count, static_cast<size_t>(VIDEO_MAX_PLANES));
     DVLOGF(3) << "Trying S_FMT with " << FourccToString(pix_fmt);
 
-    struct v4l2_format format{};
-    format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-    format.fmt.pix_mp.width = size.width();
-    format.fmt.pix_mp.height = size.height();
-    format.fmt.pix_mp.pixelformat = pix_fmt;
-    format.fmt.pix_mp.num_planes = planes_count;
-    if (device_->Ioctl(VIDIOC_S_FMT, &format) == 0 &&
-        format.fmt.pix_mp.pixelformat == pix_fmt) {
-      DVLOGF(3) << "Success: S_FMT with " << FourccToString(pix_fmt);
-      device_input_layout_ = V4L2Device::V4L2FormatToVideoFrameLayout(format);
-      if (!device_input_layout_) {
-        VLOGF(1) << "Invalid device_input_layout_";
-        return false;
-      }
-      DVLOG(3) << "Negotiated device_input_layout_: " << *device_input_layout_;
-      if (!gfx::Rect(device_input_layout_->coded_size())
-               .Contains(gfx::Rect(size))) {
-        VLOGF(1) << "Input size " << size.ToString()
-                 << " exceeds encoder capability. Size encoder can handle: "
-                 << device_input_layout_->coded_size().ToString();
-        return false;
-      }
-      if (native_input_mode_) {
-        input_allocated_size_ =
-            gfx::Size(device_input_layout_->planes()[0].stride,
-                      device_input_layout_->coded_size().height());
-      } else {
-        // TODO(crbug.com/914700): Remove this once
-        // Client::RequireBitstreamBuffers uses input's VideoFrameLayout to
-        // allocate input buffer.
-        input_allocated_size_ = V4L2Device::AllocatedSizeFromV4L2Format(format);
-      }
-      return true;
+    base::Optional<struct v4l2_format> format =
+        input_queue_->SetFormat(pix_fmt, size, 0);
+    if (!format)
+      continue;
+
+    DVLOGF(3) << "Success: S_FMT with " << FourccToString(pix_fmt);
+    device_input_layout_ = V4L2Device::V4L2FormatToVideoFrameLayout(*format);
+    if (!device_input_layout_) {
+      VLOGF(1) << "Invalid device_input_layout_";
+      return false;
     }
+    DVLOG(3) << "Negotiated device_input_layout_: " << *device_input_layout_;
+    if (!gfx::Rect(device_input_layout_->coded_size())
+             .Contains(gfx::Rect(size))) {
+      VLOGF(1) << "Input size " << size.ToString()
+               << " exceeds encoder capability. Size encoder can handle: "
+               << device_input_layout_->coded_size().ToString();
+      return false;
+    }
+    if (native_input_mode_) {
+      input_allocated_size_ =
+          gfx::Size(device_input_layout_->planes()[0].stride,
+                    device_input_layout_->coded_size().height());
+    } else {
+      // TODO(crbug.com/914700): Remove this once
+      // Client::RequireBitstreamBuffers uses input's VideoFrameLayout to
+      // allocate input buffer.
+      input_allocated_size_ = V4L2Device::AllocatedSizeFromV4L2Format(*format);
+    }
+    return true;
   }
   return false;
 }
@@ -1437,34 +1420,18 @@
   return true;
 }
 
-bool V4L2VideoEncodeAccelerator::SetExtCtrls(
-    std::vector<struct v4l2_ext_control> ctrls) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(encoder_sequence_checker_);
-
-  struct v4l2_ext_controls ext_ctrls{};
-  ext_ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
-  ext_ctrls.count = ctrls.size();
-  ext_ctrls.controls = &ctrls[0];
-  return device_->Ioctl(VIDIOC_S_EXT_CTRLS, &ext_ctrls) == 0;
-}
-
 bool V4L2VideoEncodeAccelerator::InitControls(const Config& config) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(encoder_sequence_checker_);
 
-  std::vector<struct v4l2_ext_control> ctrls;
-  struct v4l2_ext_control ctrl{};
-
   // Enable frame-level bitrate control. This is the only mandatory control.
-  ctrl.id = V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE;
-  ctrl.value = 1;
-  ctrls.push_back(ctrl);
-  if (!SetExtCtrls(ctrls)) {
+  if (!device_->SetExtCtrls(
+          V4L2_CTRL_CLASS_MPEG,
+          {V4L2ExtCtrl(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE, 1)})) {
     VLOGF(1) << "Failed enabling bitrate control";
     NOTIFY_ERROR(kPlatformFailureError);
     return false;
   }
 
-  ctrls.clear();
   if (output_format_fourcc_ == V4L2_PIX_FMT_H264) {
 #ifndef V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR
 #define V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR (V4L2_CID_MPEG_BASE + 388)
@@ -1472,15 +1439,12 @@
     // Request to inject SPS and PPS before each IDR, if the device supports
     // that feature. Otherwise we'll have to cache and inject ourselves.
     if (device_->IsCtrlExposed(V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR)) {
-      memset(&ctrl, 0, sizeof(ctrl));
-      ctrl.id = V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR;
-      ctrl.value = 1;
-      ctrls.push_back(ctrl);
-      if (!SetExtCtrls(ctrls)) {
+      if (!device_->SetExtCtrls(
+              V4L2_CTRL_CLASS_MPEG,
+              {V4L2ExtCtrl(V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR, 1)})) {
         NOTIFY_ERROR(kPlatformFailureError);
         return false;
       }
-      ctrls.clear();
       inject_sps_and_pps_ = false;
       DVLOGF(2) << "Device supports injecting SPS+PPS before each IDR";
     } else {
@@ -1488,18 +1452,13 @@
       DVLOGF(2) << "Will inject SPS+PPS before each IDR, unsupported by device";
     }
 
-    // Optional controls.
-    // No B-frames, for lowest decoding latency.
-    memset(&ctrl, 0, sizeof(ctrl));
-    ctrl.id = V4L2_CID_MPEG_VIDEO_B_FRAMES;
-    ctrl.value = 0;
-    ctrls.push_back(ctrl);
+    // Optional H264 controls.
+    std::vector<V4L2ExtCtrl> h264_ctrls;
 
+    // No B-frames, for lowest decoding latency.
+    h264_ctrls.emplace_back(V4L2_CID_MPEG_VIDEO_B_FRAMES, 0);
     // Quantization parameter maximum value (for variable bitrate control).
-    memset(&ctrl, 0, sizeof(ctrl));
-    ctrl.id = V4L2_CID_MPEG_VIDEO_H264_MAX_QP;
-    ctrl.value = 51;
-    ctrls.push_back(ctrl);
+    h264_ctrls.emplace_back(V4L2_CID_MPEG_VIDEO_H264_MAX_QP, 51);
 
     // Set H.264 profile.
     int32_t profile_value =
@@ -1508,10 +1467,7 @@
       NOTIFY_ERROR(kInvalidArgumentError);
       return false;
     }
-    memset(&ctrl, 0, sizeof(ctrl));
-    ctrl.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE;
-    ctrl.value = profile_value;
-    ctrls.push_back(ctrl);
+    h264_ctrls.emplace_back(V4L2_CID_MPEG_VIDEO_H264_PROFILE, profile_value);
 
     // Set H.264 output level from config. Use Level 4.0 as fallback default.
     uint8_t h264_level =
@@ -1550,51 +1506,23 @@
     }
 
     int32_t level_value = V4L2Device::H264LevelIdcToV4L2H264Level(h264_level);
-    memset(&ctrl, 0, sizeof(ctrl));
-    ctrl.id = V4L2_CID_MPEG_VIDEO_H264_LEVEL;
-    ctrl.value = level_value;
-    ctrls.push_back(ctrl);
+    h264_ctrls.emplace_back(V4L2_CID_MPEG_VIDEO_H264_LEVEL, level_value);
 
     // Ask not to put SPS and PPS into separate bitstream buffers.
-    memset(&ctrl, 0, sizeof(ctrl));
-    ctrl.id = V4L2_CID_MPEG_VIDEO_HEADER_MODE;
-    ctrl.value = V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME;
-    ctrls.push_back(ctrl);
+    h264_ctrls.emplace_back(V4L2_CID_MPEG_VIDEO_HEADER_MODE,
+                            V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME);
+
+    // Ignore return value as these controls are optional.
+    device_->SetExtCtrls(V4L2_CTRL_CLASS_MPEG, std::move(h264_ctrls));
   }
 
-  // Enable macroblock-level bitrate control.
-  memset(&ctrl, 0, sizeof(ctrl));
-  ctrl.id = V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE;
-  ctrl.value = 1;
-  ctrls.push_back(ctrl);
-
-  // Set GOP length, or default 0 to disable periodic key frames.
-  memset(&ctrl, 0, sizeof(ctrl));
-  ctrl.id = V4L2_CID_MPEG_VIDEO_GOP_SIZE;
-  ctrl.value = config.gop_length.value_or(0);
-  ctrls.push_back(ctrl);
-
-  // Ignore return value as these controls are optional.
-  SetExtCtrls(ctrls);
-
-  // Optional Exynos specific controls.
-  ctrls.clear();
-  // Enable "tight" bitrate mode. For this to work properly, frame- and mb-level
-  // bitrate controls have to be enabled as well.
-  memset(&ctrl, 0, sizeof(ctrl));
-  ctrl.id = V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF;
-  ctrl.value = 1;
-  ctrls.push_back(ctrl);
-
-  // Force bitrate control to average over a GOP (for tight bitrate
-  // tolerance).
-  memset(&ctrl, 0, sizeof(ctrl));
-  ctrl.id = V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT;
-  ctrl.value = 1;
-  ctrls.push_back(ctrl);
-
-  // Ignore return value as these controls are optional.
-  SetExtCtrls(ctrls);
+  // Optional controls:
+  // - Enable macroblock-level bitrate control.
+  // - Set GOP length, or default 0 to disable periodic key frames.
+  device_->SetExtCtrls(V4L2_CTRL_CLASS_MPEG,
+                       {V4L2ExtCtrl(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, 1),
+                        V4L2ExtCtrl(V4L2_CID_MPEG_VIDEO_GOP_SIZE,
+                                    config.gop_length.value_or(0))});
 
   return true;
 }
diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.h b/media/gpu/v4l2/v4l2_video_encode_accelerator.h
index daf100a..b993be1 100644
--- a/media/gpu/v4l2/v4l2_video_encode_accelerator.h
+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.h
@@ -176,9 +176,7 @@
   void SetErrorState(Error error);
 
   //
-  // Other utility functions.  Called on encoder_thread_, unless
-  // encoder_thread_ is not yet started, in which case the child thread can call
-  // these (e.g. in Initialize() or Destroy()).
+  // Other utility functions.  Called on the |encoder_task_runner_|.
   //
 
   // Create image processor that will process input_layout to output_layout. The
@@ -194,7 +192,7 @@
   void RequestEncodingParametersChangeTask(uint32_t bitrate,
                                            uint32_t framerate);
 
-  // Do several initializations (e.g. set up format) on |encoder_thread_|.
+  // Do several initializations (e.g. set up format) on |encoder_task_runner_|.
   void InitializeTask(const Config& config,
                       bool* result,
                       base::WaitableEvent* done);
@@ -228,9 +226,6 @@
   void DestroyInputBuffers();
   void DestroyOutputBuffers();
 
-  // Set controls in |ctrls| and return true if successful.
-  bool SetExtCtrls(std::vector<struct v4l2_ext_control> ctrls);
-
   // Allocates |count| video frames with |visible_size| for image processor's
   // output buffers. Returns false if there's something wrong.
   bool AllocateImageProcessorOutputBuffers(size_t count,
@@ -270,14 +265,7 @@
   size_t output_buffer_byte_size_;
   uint32_t output_format_fourcc_;
 
-  //
-  // Encoder state, owned and operated by encoder_thread_.
-  // Before encoder_thread_ has started, the encoder state is managed by
-  // the child (main) thread.  After encoder_thread_ has started, the encoder
-  // thread should be the only one managing these.
-  //
-
-  // Encoder state.
+  // Encoder state, owned and operated by |encoder_task_runner_|.
   State encoder_state_;
 
   // For H264, for resilience, we prepend each IDR with SPS and PPS. Some
diff --git a/media/gpu/v4l2/v4l2_vp9_accelerator.cc b/media/gpu/v4l2/v4l2_vp9_accelerator.cc
index c1999e8..57999a4 100644
--- a/media/gpu/v4l2/v4l2_vp9_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_vp9_accelerator.cc
@@ -184,11 +184,8 @@
     : surface_handler_(surface_handler), device_(device) {
   DCHECK(surface_handler_);
 
-  struct v4l2_queryctrl query_ctrl;
-  memset(&query_ctrl, 0, sizeof(query_ctrl));
-  query_ctrl.id = V4L2_CID_MPEG_VIDEO_VP9_ENTROPY;
   device_needs_frame_context_ =
-      (device_->Ioctl(VIDIOC_QUERYCTRL, &query_ctrl) == 0);
+      device_->IsCtrlExposed(V4L2_CID_MPEG_VIDEO_VP9_ENTROPY);
 
   DVLOG_IF(1, device_needs_frame_context_)
       << "Device requires frame context parsing";
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.cc b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
index b06648e..2b3ce01 100644
--- a/media/gpu/windows/dxva_video_decode_accelerator_win.cc
+++ b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
@@ -575,6 +575,7 @@
       config.profile == H264PROFILE_HIGH10PROFILE) {
     // Input file has more than 8 bits per channel.
     use_fp16_ = true;
+    decoder_output_p010_or_p016_ = true;
   }
 
   // Unfortunately, the profile is currently unreliable for
@@ -2986,7 +2987,10 @@
 DXVAVideoDecodeAccelerator::GetPictureBufferMechanism() const {
   if (use_fp16_)
     return PictureBufferMechanism::COPY_TO_RGB;
-  if (support_share_nv12_textures_)
+  // In Intel platform, VideoProcessor cannot convert P010/P016 into FP16.
+  // It works fine dealing P010/P016 with BIND mode.
+  if (support_share_nv12_textures_ ||
+      (decoder_output_p010_or_p016_ && !use_fp16_))
     return PictureBufferMechanism::BIND;
   if (support_delayed_copy_nv12_textures_ && support_copy_nv12_textures_)
     return PictureBufferMechanism::DELAYED_COPY_TO_NV12;
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.h b/media/gpu/windows/dxva_video_decode_accelerator_win.h
index af9da6e..e12ba922 100644
--- a/media/gpu/windows/dxva_video_decode_accelerator_win.h
+++ b/media/gpu/windows/dxva_video_decode_accelerator_win.h
@@ -559,6 +559,9 @@
   // Copy video to FP16 scRGB textures.
   bool use_fp16_ = false;
 
+  // True if decoder's output is P010/P016.
+  bool decoder_output_p010_or_p016_ = false;
+
   // When converting YUV to RGB, make sure we tell the blitter about the input
   // color space so that it can convert it correctly.
   bool use_color_info_ = true;
diff --git a/services/tracing/public/cpp/BUILD.gn b/services/tracing/public/cpp/BUILD.gn
index e7392b7..37aa9b7 100644
--- a/services/tracing/public/cpp/BUILD.gn
+++ b/services/tracing/public/cpp/BUILD.gn
@@ -29,6 +29,7 @@
       "base_agent.h",
       "perfetto/dummy_producer.cc",
       "perfetto/dummy_producer.h",
+      "perfetto/event_context.h",
       "perfetto/interning_index.h",
       "perfetto/java_heap_profiler/hprof_buffer_android.cc",
       "perfetto/java_heap_profiler/hprof_buffer_android.h",
diff --git a/services/tracing/public/cpp/perfetto/event_context.h b/services/tracing/public/cpp/perfetto/event_context.h
new file mode 100644
index 0000000..58077bc
--- /dev/null
+++ b/services/tracing/public/cpp/perfetto/event_context.h
@@ -0,0 +1,29 @@
+// 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 SERVICES_TRACING_PUBLIC_CPP_PERFETTO_EVENT_CONTEXT_H_
+#define SERVICES_TRACING_PUBLIC_CPP_PERFETTO_EVENT_CONTEXT_H_
+
+#include "third_party/perfetto/protos/perfetto/trace/trace_packet.pbzero.h"
+
+namespace perfetto {
+
+// An EventContext allows use of the TRACE_EVENT_BEGIN/TRACE_EVENT_END
+// functions to access the protozero TrackEvent to fill in typed arguments.
+//
+// TODO(nuskos): Switch chrome over to the perfetto client library's
+// EventContext.
+class EventContext {
+ public:
+  EventContext(protos::pbzero::TrackEvent* event) : event_(event) {}
+
+  protos::pbzero::TrackEvent* event() const { return event_; }
+
+ private:
+  protos::pbzero::TrackEvent* event_;
+};
+
+}  // namespace perfetto
+
+#endif  // SERVICES_TRACING_PUBLIC_CPP_PERFETTO_EVENT_CONTEXT_H_
diff --git a/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.h b/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.h
index 1f095059..d876d3a 100644
--- a/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.h
+++ b/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.h
@@ -16,11 +16,11 @@
 #include "base/threading/thread_id_name_manager.h"
 #include "base/time/time.h"
 #include "base/trace_event/thread_instruction_count.h"
+#include "services/tracing/public/cpp/perfetto/event_context.h"
 #include "services/tracing/public/cpp/perfetto/interning_index.h"
 #include "third_party/perfetto/include/perfetto/ext/tracing/core/startup_trace_writer.h"
 #include "third_party/perfetto/include/perfetto/ext/tracing/core/trace_writer.h"
 #include "third_party/perfetto/include/perfetto/protozero/message_handle.h"
-#include "third_party/perfetto/include/perfetto/tracing/event_context.h"
 #include "third_party/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.h"
 #include "third_party/perfetto/protos/perfetto/trace/track_event/track_event.pbzero.h"
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index bfd7795..069f2ce 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -497,3 +497,19 @@
   # Don't scramble message IDs so they are redistributable to external tests.
   scramble_message_ids = false
 }
+
+mojom("memory_usage_monitor_linux_mojo_bindings") {
+  visibility = [
+    "//content/browser:browser",
+    "//third_party/blink/renderer/controller:controller",
+  ]
+  visibility_blink = [ "//third_party/blink/renderer/controller:controller" ]
+
+  sources = [ "memory_usage_monitor_linux.mojom" ]
+
+  public_deps = [ "//mojo/public/mojom/base" ]
+
+  export_class_attribute_blink = "PLATFORM_EXPORT"
+  export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
+  export_header_blink = "third_party/blink/renderer/platform/platform_export.h"
+}
diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blink/public/mojom/frame/frame.mojom
index 9c43269..8655fb8 100644
--- a/third_party/blink/public/mojom/frame/frame.mojom
+++ b/third_party/blink/public/mojom/frame/frame.mojom
@@ -22,6 +22,26 @@
 import "url/mojom/origin.mojom";
 import "url/mojom/url.mojom";
 
+struct FindInPageResultAXParams {
+  // The find in page request id.
+  int32 request_id;
+
+  // The index of the result match.
+  int32 match_index;
+
+  // The id of the accessibility object for the start of the match range.
+  int32 start_id;
+
+  // The character offset into the text of the start object.
+  int32 start_offset;
+
+  // The id of the accessibility object for the end of the match range.
+  int32 end_id;
+
+  // The character offset into the text of the end object.
+  int32 end_offset;
+};
+
 // Implemented in Browser, this interface defines frame-specific methods that
 // will be invoked from the render process (e.g. content::RenderFrameHostImpl).
 //
@@ -31,7 +51,6 @@
 // Onion Soup project advances, which can potentially lead to the removal of
 // content/common/frame.mojom if enough code is moved to Blink.
 interface LocalFrameHost {
-
   // Request to the browser that the frame wishes to enter fullscreen mode.
   EnterFullscreen(FullscreenOptions options);
 
@@ -144,6 +163,17 @@
   // history). |has_user_gesture| tells whether or not this is the consequence
   // of a user action.
   GoToEntryAtOffset(int32 offset, bool has_user_gesture);
+
+  // Asks the frame host to notify the owner element in parent process that it
+  // should render fallback content.
+  RenderFallbackContentInParentProcess();
+
+  // Provides accessibility information about a find in page result.
+  HandleAccessibilityFindInPageResult(FindInPageResultAXParams params);
+
+  // Provides accessibility information about the termination of a find
+  // in page operation.
+  HandleAccessibilityFindInPageTermination();
 };
 
 // Implemented in Blink, this interface defines frame-specific methods that will
@@ -208,6 +238,11 @@
   // Blink features used, performed or encountered by the browser during the
   // current page load happening on the frame.
   ReportBlinkFeatureUsage(array<blink.mojom.WebFeature> features);
+
+  // Sent to this frame in parent frame's process to ask for rendering fallback
+  // contents. This only happens for frame owners which render their own
+  // fallback contents (i.e., <object>).
+  RenderFallbackContent();
 };
 
 // Implemented in Browser, this interface defines frame-specific methods that
@@ -314,4 +349,9 @@
 
   // Sets page-level focus and notifies FocusController.
   SetPageFocus(bool is_focused);
+
+  // Sent to the remote frame in parent frame's process to ask for rendering fallback
+  // contents. This only happens for frame owners which render their own
+  // fallback contents (i.e., <object>).
+  RenderFallbackContent();
 };
diff --git a/third_party/blink/public/mojom/memory_usage_monitor_linux.mojom b/third_party/blink/public/mojom/memory_usage_monitor_linux.mojom
new file mode 100644
index 0000000..4859cea
--- /dev/null
+++ b/third_party/blink/public/mojom/memory_usage_monitor_linux.mojom
@@ -0,0 +1,15 @@
+// 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.
+
+module blink.mojom;
+
+import "mojo/public/mojom/base/file.mojom";
+
+// The interface to provide status and statm files to the renderer's memory
+// usage monitor. The interface is required only for Linux.
+interface MemoryUsageMonitorLinux {
+  // The sandbox prevents the renderer from open()-ing any file, meaning
+  // the file descriptors have to be provided by the browser process.
+  SetProcFiles(mojo_base.mojom.File statm_file, mojo_base.mojom.File status_file);
+};
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
index 32820b1c..a579c91c 100644
--- a/third_party/blink/public/web/web_local_frame_client.h
+++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -480,11 +480,6 @@
     return base::UnguessableToken::Create();
   }
 
-  // When a same-site load fails and the original frame in parent process is
-  // owned by an <object> element, this call notifies the owner element that it
-  // should render fallback content of its own.
-  virtual void RenderFallbackContentInParentProcess() {}
-
   // PlzNavigate
   // Called to abort a navigation that is being handled by the browser process.
   virtual void AbortClientNavigation() {}
@@ -701,18 +696,6 @@
   // dirty.
   virtual void MarkWebAXObjectDirty(const WebAXObject&, bool subtree) {}
 
-  // Provides accessibility information about a find in page result.
-  virtual void HandleAccessibilityFindInPageResult(int identifier,
-                                                   int match_index,
-                                                   const WebNode& start_node,
-                                                   int start_offset,
-                                                   const WebNode& end_node,
-                                                   int end_offset) {}
-
-  // Provides accessibility information about the termination of a find
-  // in page operation.
-  virtual void HandleAccessibilityFindInPageTermination() {}
-
   // Audio Output Devices API --------------------------------------------
 
   // Checks that the given audio sink exists and is authorized. The result is
diff --git a/third_party/blink/public/web/web_navigation_control.h b/third_party/blink/public/web/web_navigation_control.h
index a659c4d0..34ab10f5 100644
--- a/third_party/blink/public/web/web_navigation_control.h
+++ b/third_party/blink/public/web/web_navigation_control.h
@@ -70,11 +70,6 @@
   virtual FallbackContentResult MaybeRenderFallbackContent(
       const WebURLError&) const = 0;
 
-  // When load failure is in a cross-process frame this notifies the frame here
-  // that its owner should render fallback content if any. Only called on owners
-  // that render their own content (i.e., <object>).
-  virtual void RenderFallbackContent() const = 0;
-
   // Override the normal rules for whether a load has successfully committed
   // in this frame. Used to propagate state when this frame has navigated
   // cross process.
diff --git a/third_party/blink/public/web/web_remote_frame.h b/third_party/blink/public/web/web_remote_frame.h
index e0b5cd3..65b7750 100644
--- a/third_party/blink/public/web/web_remote_frame.h
+++ b/third_party/blink/public/web/web_remote_frame.h
@@ -156,12 +156,6 @@
 
   virtual WebRect GetCompositingRect() = 0;
 
-  // When a cross-process navigation or loading fails, the browser notifies the
-  // parent process to render its own fallback content if any. This only occurs
-  // if the owner element is capable of rendering its own fallback (e.g.,
-  // <object>).
-  virtual void RenderFallbackContent() const = 0;
-
  protected:
   explicit WebRemoteFrame(WebTreeScopeType scope) : WebFrame(scope) {}
 
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 b4e19de..4403a4ed 100644
--- a/third_party/blink/renderer/bindings/core/v8/idl_types.h
+++ b/third_party/blink/renderer/bindings/core/v8/idl_types.h
@@ -29,36 +29,76 @@
 // Boolean
 struct IDLBoolean final : public IDLBaseHelper<bool> {};
 
+// Integer types
+
+namespace bindings {
+
+enum class IDLIntegerConvMode {
+  kDefault,
+  kClamp,
+  kEnforceRange,
+};
+
+}  // namespace bindings
+
+template <typename T,
+          bindings::IDLIntegerConvMode mode =
+              bindings::IDLIntegerConvMode::kDefault>
+struct IDLIntegerTypeBase final : public IDLBaseHelper<T> {};
+
 // Integers
-struct IDLByte final : public IDLBaseHelper<int8_t> {};
-struct IDLOctet final : public IDLBaseHelper<uint8_t> {};
-struct IDLShort final : public IDLBaseHelper<int16_t> {};
-struct IDLUnsignedShort final : public IDLBaseHelper<uint16_t> {};
-struct IDLLong final : public IDLBaseHelper<int32_t> {};
-struct IDLUnsignedLong final : public IDLBaseHelper<uint32_t> {};
-struct IDLLongLong final : public IDLBaseHelper<int64_t> {};
-struct IDLUnsignedLongLong final : public IDLBaseHelper<uint64_t> {};
+using IDLByte = IDLIntegerTypeBase<int8_t>;
+using IDLOctet = IDLIntegerTypeBase<uint8_t>;
+using IDLShort = IDLIntegerTypeBase<int16_t>;
+using IDLUnsignedShort = IDLIntegerTypeBase<uint16_t>;
+using IDLLong = IDLIntegerTypeBase<int32_t>;
+using IDLUnsignedLong = IDLIntegerTypeBase<uint32_t>;
+using IDLLongLong = IDLIntegerTypeBase<int64_t>;
+using IDLUnsignedLongLong = IDLIntegerTypeBase<uint64_t>;
 
 // [Clamp] Integers
-struct IDLByteClamp final : public IDLBaseHelper<int8_t> {};
-struct IDLOctetClamp final : public IDLBaseHelper<uint8_t> {};
-struct IDLShortClamp final : public IDLBaseHelper<int16_t> {};
-struct IDLUnsignedShortClamp final : public IDLBaseHelper<uint16_t> {};
-struct IDLLongClamp final : public IDLBaseHelper<int32_t> {};
-struct IDLUnsignedLongClamp final : public IDLBaseHelper<uint32_t> {};
-struct IDLLongLongClamp final : public IDLBaseHelper<int64_t> {};
-struct IDLUnsignedLongLongClamp final : public IDLBaseHelper<uint64_t> {};
+using IDLByteClamp =
+    IDLIntegerTypeBase<int8_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLOctetClamp =
+    IDLIntegerTypeBase<uint8_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLShortClamp =
+    IDLIntegerTypeBase<int16_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLUnsignedShortClamp =
+    IDLIntegerTypeBase<uint16_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLLongClamp =
+    IDLIntegerTypeBase<int32_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLUnsignedLongClamp =
+    IDLIntegerTypeBase<uint32_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLLongLongClamp =
+    IDLIntegerTypeBase<int64_t, bindings::IDLIntegerConvMode::kClamp>;
+using IDLUnsignedLongLongClamp =
+    IDLIntegerTypeBase<uint64_t, bindings::IDLIntegerConvMode::kClamp>;
 
 // [EnforceRange] Integers
-struct IDLByteEnforceRange final : public IDLBaseHelper<int8_t> {};
-struct IDLOctetEnforceRange final : public IDLBaseHelper<uint8_t> {};
-struct IDLShortEnforceRange final : public IDLBaseHelper<int16_t> {};
-struct IDLUnsignedShortEnforceRange final : public IDLBaseHelper<uint16_t> {};
-struct IDLLongEnforceRange final : public IDLBaseHelper<int32_t> {};
-struct IDLUnsignedLongEnforceRange final : public IDLBaseHelper<uint32_t> {};
-struct IDLLongLongEnforceRange final : public IDLBaseHelper<int64_t> {};
-struct IDLUnsignedLongLongEnforceRange final : public IDLBaseHelper<uint64_t> {
-};
+using IDLByteEnforceRange =
+    IDLIntegerTypeBase<int8_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLOctetEnforceRange =
+    IDLIntegerTypeBase<uint8_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLShortEnforceRange =
+    IDLIntegerTypeBase<int16_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLUnsignedShortEnforceRange =
+    IDLIntegerTypeBase<uint16_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLLongEnforceRange =
+    IDLIntegerTypeBase<int32_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLUnsignedLongEnforceRange =
+    IDLIntegerTypeBase<uint32_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLLongLongEnforceRange =
+    IDLIntegerTypeBase<int64_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+using IDLUnsignedLongLongEnforceRange =
+    IDLIntegerTypeBase<uint64_t, bindings::IDLIntegerConvMode::kEnforceRange>;
+
+// Float
+struct IDLFloat final : public IDLBaseHelper<float> {};
+struct IDLUnrestrictedFloat final : public IDLBaseHelper<float> {};
+
+// Double
+struct IDLDouble final : public IDLBaseHelper<double> {};
+struct IDLUnrestrictedDouble final : public IDLBaseHelper<double> {};
 
 // Strings
 // The "Base" classes are always templatized and require users to specify how JS
@@ -104,16 +144,12 @@
 struct IDLByteStringBaseV2 final : public IDLBaseHelper<String> {};
 using IDLByteStringV2 =
     IDLByteStringBaseV2<bindings::IDLStringConvMode::kDefault>;
-using IDLByteStringOrNullV2 =
-    IDLByteStringBaseV2<bindings::IDLStringConvMode::kNullable>;
 
 // DOMString
 template <bindings::IDLStringConvMode mode>
 struct IDLStringBaseV2 final : public IDLBaseHelper<String> {};
 using IDLStringV2 = IDLStringBaseV2<bindings::IDLStringConvMode::kDefault>;
-using IDLStringOrNullV2 =
-    IDLStringBaseV2<bindings::IDLStringConvMode::kNullable>;
-using IDLStringTreatNullAsEmptyStringV2 =
+using IDLStringTreatNullAsV2 =
     IDLStringBaseV2<bindings::IDLStringConvMode::kTreatNullAsEmptyString>;
 
 // USVString
@@ -121,20 +157,6 @@
 struct IDLUSVStringBaseV2 final : public IDLBaseHelper<String> {};
 using IDLUSVStringV2 =
     IDLUSVStringBaseV2<bindings::IDLStringConvMode::kDefault>;
-using IDLUSVStringOrNullV2 =
-    IDLUSVStringBaseV2<bindings::IDLStringConvMode::kNullable>;
-
-// Double
-struct IDLDouble final : public IDLBaseHelper<double> {};
-struct IDLUnrestrictedDouble final : public IDLBaseHelper<double> {};
-
-// Float
-struct IDLFloat final : public IDLBaseHelper<float> {};
-struct IDLUnrestrictedFloat final : public IDLBaseHelper<float> {};
-
-// Nullable Date
-struct IDLDateOrNull final : public IDLBaseHelper<base::Optional<base::Time>> {
-};
 
 // object
 struct IDLObject final : public IDLBaseHelper<ScriptValue> {};
@@ -145,7 +167,8 @@
 // Sequence
 template <typename T>
 struct IDLSequence final : public IDLBase {
-  using ImplType = VectorOf<typename NativeValueTraits<T>::ImplType>;
+  using ImplType =
+      VectorOf<std::remove_pointer_t<typename NativeValueTraits<T>::ImplType>>;
 };
 
 // Frozen array types
@@ -155,34 +178,34 @@
 // Record
 template <typename Key, typename Value>
 struct IDLRecord final : public IDLBase {
-  static_assert(std::is_same<Key, IDLByteString>::value ||
-                    std::is_same<Key, IDLString>::value ||
-                    std::is_same<Key, IDLUSVString>::value,
+  static_assert(std::is_same<typename Key::ImplType, String>::value,
                 "IDLRecord keys must be of a WebIDL string type");
+  static_assert(
+      std::is_same<typename NativeValueTraits<Key>::ImplType, String>::value,
+      "IDLRecord keys must be of a WebIDL string type");
 
-  using ImplType =
-      VectorOfPairs<String, typename NativeValueTraits<Value>::ImplType>;
+  using ImplType = VectorOfPairs<
+      String,
+      std::remove_pointer_t<typename NativeValueTraits<Value>::ImplType>>;
 };
 
 // Nullable
-template <typename InnerType, typename SFINAEHelper = void>
-struct IDLNullable final : public IDLBase {
-  using ImplType =
-      base::Optional<typename NativeValueTraits<InnerType>::ImplType>;
-};
 template <typename InnerType>
-struct IDLNullable<
-    InnerType,
-    base::void_t<decltype(NativeValueTraits<InnerType>::NullValue)>>
-    final : public IDLBase {
-  using ImplType = typename NativeValueTraits<InnerType>::ImplType;
+struct IDLNullable final : public IDLBase {
+  using ImplType = std::conditional_t<
+      NativeValueTraits<InnerType>::has_null_value,
+      typename NativeValueTraits<InnerType>::ImplType,
+      base::Optional<typename NativeValueTraits<InnerType>::ImplType>>;
 };
 
+// Date
+struct IDLDate final : public IDLBaseHelper<base::Time> {};
+
 // EventHandler types
-struct IDLEventHandler final : public IDLBaseHelper<EventListener> {};
+struct IDLEventHandler final : public IDLBaseHelper<EventListener*> {};
 struct IDLOnBeforeUnloadEventHandler final
-    : public IDLBaseHelper<EventListener> {};
-struct IDLOnErrorEventHandler final : public IDLBaseHelper<EventListener> {};
+    : public IDLBaseHelper<EventListener*> {};
+struct IDLOnErrorEventHandler final : public IDLBaseHelper<EventListener*> {};
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/bindings/core/v8/idl_types_test.cc b/third_party/blink/renderer/bindings/core/v8/idl_types_test.cc
index f898976..dcd7e9df 100644
--- a/third_party/blink/renderer/bindings/core/v8/idl_types_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/idl_types_test.cc
@@ -146,7 +146,7 @@
 static_assert(std::is_same<IDLNullable<IDLDouble>::ImplType,
                            base::Optional<double>>::value,
               "double? corresponds to base::Optional<double>");
-static_assert(std::is_same<IDLNullable<Element>::ImplType, Element>::value,
+static_assert(std::is_same<IDLNullable<Element>::ImplType, Element*>::value,
               "Element? doesn't require a base::Optional<> wrapper");
 static_assert(std::is_same<IDLNullable<IDLString>::ImplType, String>::value,
               "DOMString? doesn't require a base::Optional<> wrapper");
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
index b0d747e04..51b8fc1 100644
--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
@@ -43,6 +43,28 @@
 //   NativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
 // };
 
+namespace bindings {
+
+template <typename T, typename = void>
+struct NativeValueTraitsHasIsNull : std::false_type {};
+
+template <typename T>
+struct NativeValueTraitsHasIsNull<
+    T,
+    base::void_t<decltype(std::declval<T>().IsNull())>> : std::true_type {};
+
+template <typename T>
+struct NativeValueTraitsHasNullValue {
+  // true if |T| supports IDL null value.
+  static constexpr bool value =
+      // ScriptValue, String, and union types have IsNull member function.
+      bindings::NativeValueTraitsHasIsNull<T>::value ||
+      // Pointer types have nullptr as IDL null value.
+      std::is_pointer<T>::value;
+};
+
+}  // namespace bindings
+
 // NativeValueTraitsBase is supposed to be inherited by NativeValueTraits
 // classes. They serve as a way to hold the ImplType typedef without requiring
 // all NativeValueTraits specializations to declare it.
@@ -62,11 +84,15 @@
 
   using ImplType = T;
 
+  static constexpr bool has_null_value =
+      bindings::NativeValueTraitsHasNullValue<ImplType>::value;
+
   static decltype(auto) ArgumentValue(v8::Isolate* isolate,
                                       int argument_index,
                                       v8::Local<v8::Value> value,
                                       ExceptionState& exception_state) {
-    return NativeValueTraits<T>::NativeValue(isolate, value, exception_state);
+    return NativeValueTraits<std::remove_pointer_t<T>>::NativeValue(
+        isolate, value, exception_state);
   }
 };
 
@@ -78,11 +104,15 @@
 
   using ImplType = typename T::ImplType;
 
+  static constexpr bool has_null_value =
+      bindings::NativeValueTraitsHasNullValue<ImplType>::value;
+
   static decltype(auto) ArgumentValue(v8::Isolate* isolate,
                                       int argument_index,
                                       v8::Local<v8::Value> value,
                                       ExceptionState& exception_state) {
-    return NativeValueTraits<T>::NativeValue(isolate, value, exception_state);
+    return NativeValueTraits<std::remove_pointer_t<T>>::NativeValue(
+        isolate, value, exception_state);
   }
 };
 
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.cc b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.cc
index 265a1fd..c4434a1 100644
--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.cc
+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.cc
@@ -25,17 +25,27 @@
 
 namespace bindings {
 
+static_assert(static_cast<IntegerConversionConfiguration>(
+                  IDLIntegerConvMode::kDefault) == kNormalConversion,
+              "IDLIntegerConvMode::kDefault == kNormalConversion");
+static_assert(static_cast<IntegerConversionConfiguration>(
+                  IDLIntegerConvMode::kClamp) == kClamp,
+              "IDLIntegerConvMode::kClamp == kClamp");
+static_assert(static_cast<IntegerConversionConfiguration>(
+                  IDLIntegerConvMode::kEnforceRange) == kEnforceRange,
+              "IDLIntegerConvMode::kEnforceRange == kEnforceRange");
+
 ScriptWrappable* NativeValueTraitsInterfaceNativeValue(
     v8::Isolate* isolate,
     const WrapperTypeInfo* wrapper_type_info,
     v8::Local<v8::Value> value,
     ExceptionState& exception_state) {
-  if (!V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value)) {
-    exception_state.ThrowTypeError(ExceptionMessages::FailedToConvertJSValue(
-        wrapper_type_info->interface_name));
-    return nullptr;
-  }
-  return ToScriptWrappable(value.As<v8::Object>());
+  if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value))
+    return ToScriptWrappable(value.As<v8::Object>());
+
+  exception_state.ThrowTypeError(ExceptionMessages::FailedToConvertJSValue(
+      wrapper_type_info->interface_name));
+  return nullptr;
 }
 
 ScriptWrappable* NativeValueTraitsInterfaceArgumentValue(
@@ -44,12 +54,45 @@
     int argument_index,
     v8::Local<v8::Value> value,
     ExceptionState& exception_state) {
-  if (!V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value)) {
-    exception_state.ThrowTypeError(ExceptionMessages::ArgumentNotOfType(
-        argument_index, wrapper_type_info->interface_name));
+  if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value))
+    return ToScriptWrappable(value.As<v8::Object>());
+
+  exception_state.ThrowTypeError(ExceptionMessages::ArgumentNotOfType(
+      argument_index, wrapper_type_info->interface_name));
+  return nullptr;
+}
+
+ScriptWrappable* NativeValueTraitsInterfaceOrNullNativeValue(
+    v8::Isolate* isolate,
+    const WrapperTypeInfo* wrapper_type_info,
+    v8::Local<v8::Value> value,
+    ExceptionState& exception_state) {
+  if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value))
+    return ToScriptWrappable(value.As<v8::Object>());
+
+  if (value->IsNullOrUndefined())
     return nullptr;
-  }
-  return ToScriptWrappable(value.As<v8::Object>());
+
+  exception_state.ThrowTypeError(ExceptionMessages::FailedToConvertJSValue(
+      wrapper_type_info->interface_name));
+  return nullptr;
+}
+
+ScriptWrappable* NativeValueTraitsInterfaceOrNullArgumentValue(
+    v8::Isolate* isolate,
+    const WrapperTypeInfo* wrapper_type_info,
+    int argument_index,
+    v8::Local<v8::Value> value,
+    ExceptionState& exception_state) {
+  if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value))
+    return ToScriptWrappable(value.As<v8::Object>());
+
+  if (value->IsNullOrUndefined())
+    return nullptr;
+
+  exception_state.ThrowTypeError(ExceptionMessages::ArgumentNotOfType(
+      argument_index, wrapper_type_info->interface_name));
+  return nullptr;
 }
 
 }  // namespace bindings
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 fe0a76f..022e5f5c 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
@@ -41,6 +41,19 @@
     v8::Local<v8::Value> value,
     ExceptionState& exception_state);
 
+CORE_EXPORT ScriptWrappable* NativeValueTraitsInterfaceOrNullNativeValue(
+    v8::Isolate* isolate,
+    const WrapperTypeInfo* wrapper_type_info,
+    v8::Local<v8::Value> value,
+    ExceptionState& exception_state);
+
+CORE_EXPORT ScriptWrappable* NativeValueTraitsInterfaceOrNullArgumentValue(
+    v8::Isolate* isolate,
+    const WrapperTypeInfo* wrapper_type_info,
+    int argument_index,
+    v8::Local<v8::Value> value,
+    ExceptionState& exception_state);
+
 }  // namespace bindings
 
 // Boolean
@@ -54,258 +67,79 @@
   }
 };
 
-// Integers
+// Integer types
+#define DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(T, Func)             \
+  template <bindings::IDLIntegerConvMode mode>                       \
+  struct NativeValueTraits<IDLIntegerTypeBase<T, mode>>              \
+      : public NativeValueTraitsBase<IDLIntegerTypeBase<T, mode>> {  \
+    static T NativeValue(v8::Isolate* isolate,                       \
+                         v8::Local<v8::Value> value,                 \
+                         ExceptionState& exception_state) {          \
+      return Func(isolate, value,                                    \
+                  static_cast<IntegerConversionConfiguration>(mode), \
+                  exception_state);                                  \
+    }                                                                \
+  }
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(int8_t, ToInt8);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(uint8_t, ToUInt8);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(int16_t, ToInt16);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(uint16_t, ToUInt16);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(int32_t, ToInt32);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(uint32_t, ToUInt32);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(int64_t, ToInt64);
+DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE(uint64_t, ToUInt64);
+#undef DEFINE_NATIVE_VALUE_TRAITS_INTEGER_TYPE
+
+// Floats and doubles
 template <>
-struct CORE_EXPORT NativeValueTraits<IDLByte>
-    : public NativeValueTraitsBase<IDLByte> {
-  static int8_t NativeValue(v8::Isolate* isolate,
+struct CORE_EXPORT NativeValueTraits<IDLDouble>
+    : public NativeValueTraitsBase<IDLDouble> {
+  static double NativeValue(v8::Isolate* isolate,
                             v8::Local<v8::Value> value,
                             ExceptionState& exception_state) {
-    return ToInt8(isolate, value, kNormalConversion, exception_state);
+    return ToRestrictedDouble(isolate, value, exception_state);
   }
 };
 
 template <>
-struct CORE_EXPORT NativeValueTraits<IDLOctet>
-    : public NativeValueTraitsBase<IDLOctet> {
-  static uint8_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToUInt8(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLShort>
-    : public NativeValueTraitsBase<IDLShort> {
-  static int16_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt16(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedShort>
-    : public NativeValueTraitsBase<IDLUnsignedShort> {
-  static uint16_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt16(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLLong>
-    : public NativeValueTraitsBase<IDLLong> {
-  static int32_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt32(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedLong>
-    : public NativeValueTraitsBase<IDLUnsignedLong> {
-  static uint32_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt32(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLLongLong>
-    : public NativeValueTraitsBase<IDLLongLong> {
-  static int64_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt64(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedLongLong>
-    : public NativeValueTraitsBase<IDLUnsignedLongLong> {
-  static uint64_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt64(isolate, value, kNormalConversion, exception_state);
-  }
-};
-
-// [Clamp] Integers
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLByteClamp>
-    : public NativeValueTraitsBase<IDLByte> {
-  static int8_t NativeValue(v8::Isolate* isolate,
+struct CORE_EXPORT NativeValueTraits<IDLUnrestrictedDouble>
+    : public NativeValueTraitsBase<IDLUnrestrictedDouble> {
+  static double NativeValue(v8::Isolate* isolate,
                             v8::Local<v8::Value> value,
                             ExceptionState& exception_state) {
-    return ToInt8(isolate, value, kClamp, exception_state);
+    return ToDouble(isolate, value, exception_state);
   }
 };
 
 template <>
-struct CORE_EXPORT NativeValueTraits<IDLOctetClamp>
-    : public NativeValueTraitsBase<IDLOctet> {
-  static uint8_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToUInt8(isolate, value, kClamp, exception_state);
+struct CORE_EXPORT NativeValueTraits<IDLFloat>
+    : public NativeValueTraitsBase<IDLFloat> {
+  static float NativeValue(v8::Isolate* isolate,
+                           v8::Local<v8::Value> value,
+                           ExceptionState& exception_state) {
+    return ToRestrictedFloat(isolate, value, exception_state);
   }
 };
 
 template <>
-struct CORE_EXPORT NativeValueTraits<IDLShortClamp>
-    : public NativeValueTraitsBase<IDLShort> {
-  static int16_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt16(isolate, value, kClamp, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedShortClamp>
-    : public NativeValueTraitsBase<IDLUnsignedShort> {
-  static uint16_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt16(isolate, value, kClamp, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLLongClamp>
-    : public NativeValueTraitsBase<IDLLong> {
-  static int32_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt32(isolate, value, kClamp, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedLongClamp>
-    : public NativeValueTraitsBase<IDLUnsignedLong> {
-  static uint32_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt32(isolate, value, kClamp, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLLongLongClamp>
-    : public NativeValueTraitsBase<IDLLongLong> {
-  static int64_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt64(isolate, value, kClamp, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedLongLongClamp>
-    : public NativeValueTraitsBase<IDLUnsignedLongLong> {
-  static uint64_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt64(isolate, value, kClamp, exception_state);
-  }
-};
-
-// [EnforceRange] Integers
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLByteEnforceRange>
-    : public NativeValueTraitsBase<IDLByte> {
-  static int8_t NativeValue(v8::Isolate* isolate,
-                            v8::Local<v8::Value> value,
-                            ExceptionState& exception_state) {
-    return ToInt8(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLOctetEnforceRange>
-    : public NativeValueTraitsBase<IDLOctet> {
-  static uint8_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToUInt8(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLShortEnforceRange>
-    : public NativeValueTraitsBase<IDLShort> {
-  static int16_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt16(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedShortEnforceRange>
-    : public NativeValueTraitsBase<IDLUnsignedShort> {
-  static uint16_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt16(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLLongEnforceRange>
-    : public NativeValueTraitsBase<IDLLong> {
-  static int32_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt32(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedLongEnforceRange>
-    : public NativeValueTraitsBase<IDLUnsignedLong> {
-  static uint32_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt32(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLLongLongEnforceRange>
-    : public NativeValueTraitsBase<IDLLongLong> {
-  static int64_t NativeValue(v8::Isolate* isolate,
-                             v8::Local<v8::Value> value,
-                             ExceptionState& exception_state) {
-    return ToInt64(isolate, value, kEnforceRange, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnsignedLongLongEnforceRange>
-    : public NativeValueTraitsBase<IDLUnsignedLongLong> {
-  static uint64_t NativeValue(v8::Isolate* isolate,
-                              v8::Local<v8::Value> value,
-                              ExceptionState& exception_state) {
-    return ToUInt64(isolate, value, kEnforceRange, exception_state);
+struct CORE_EXPORT NativeValueTraits<IDLUnrestrictedFloat>
+    : public NativeValueTraitsBase<IDLUnrestrictedFloat> {
+  static float NativeValue(v8::Isolate* isolate,
+                           v8::Local<v8::Value> value,
+                           ExceptionState& exception_state) {
+    return ToFloat(isolate, value, exception_state);
   }
 };
 
 // Strings
-template <V8StringResourceMode Mode>
-struct NativeValueTraits<IDLByteStringBase<Mode>>
-    : public NativeValueTraitsBase<IDLByteStringBase<Mode>> {
+template <V8StringResourceMode mode>
+struct NativeValueTraits<IDLByteStringBase<mode>>
+    : public NativeValueTraitsBase<IDLByteStringBase<mode>> {
   // http://heycam.github.io/webidl/#es-ByteString
   static String NativeValue(v8::Isolate* isolate,
                             v8::Local<v8::Value> value,
                             ExceptionState& exception_state) {
-    V8StringResource<Mode> string_resource(value);
+    V8StringResource<mode> string_resource(value);
     // 1. Let x be ToString(v)
     if (!string_resource.Prepare(isolate, exception_state))
       return String();
@@ -324,43 +158,37 @@
     //    the above, so this is the identity operation.
     return x;
   }
-
-  static String NullValue() { return String(); }
 };
 
-template <V8StringResourceMode Mode>
-struct NativeValueTraits<IDLStringBase<Mode>>
-    : public NativeValueTraitsBase<IDLStringBase<Mode>> {
+template <V8StringResourceMode mode>
+struct NativeValueTraits<IDLStringBase<mode>>
+    : public NativeValueTraitsBase<IDLStringBase<mode>> {
   // https://heycam.github.io/webidl/#es-DOMString
   static String NativeValue(v8::Isolate* isolate,
                             v8::Local<v8::Value> value,
                             ExceptionState& exception_state) {
-    V8StringResource<Mode> string(value);
+    V8StringResource<mode> string(value);
     if (!string.Prepare(isolate, exception_state))
       return String();
     return string;
   }
-
-  static String NullValue() { return String(); }
 };
 
-template <V8StringResourceMode Mode>
-struct NativeValueTraits<IDLUSVStringBase<Mode>>
-    : public NativeValueTraitsBase<IDLUSVStringBase<Mode>> {
+template <V8StringResourceMode mode>
+struct NativeValueTraits<IDLUSVStringBase<mode>>
+    : public NativeValueTraitsBase<IDLUSVStringBase<mode>> {
   // http://heycam.github.io/webidl/#es-USVString
   static String NativeValue(v8::Isolate* isolate,
                             v8::Local<v8::Value> value,
                             ExceptionState& exception_state) {
     // 1. Let string be the result of converting V to a DOMString.
-    V8StringResource<Mode> string(value);
+    V8StringResource<mode> string(value);
     if (!string.Prepare(isolate, exception_state))
       return String();
     // 2. Return an IDL USVString value that is the result of converting string
     //    to a sequence of Unicode scalar values.
     return ReplaceUnmatchedSurrogates(string);
   }
-
-  static String NullValue() { return String(); }
 };
 
 // Strings for the new bindings generator
@@ -444,9 +272,17 @@
     }
     return bindings::NativeValueTraitsStringAdapter(v8_string);
   }
+};
 
-  static bindings::NativeValueTraitsStringAdapter NullValue() {
-    return bindings::NativeValueTraitsStringAdapter();
+template <>
+struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLByteStringV2>>
+    : public NativeValueTraitsBase<IDLNullable<IDLByteStringV2>> {
+  static decltype(auto) NativeValue(v8::Isolate* isolate,
+                                    v8::Local<v8::Value> value,
+                                    ExceptionState& exception_state) {
+    return NativeValueTraits<IDLByteStringBaseV2<
+        bindings::IDLStringConvMode::kNullable>>::NativeValue(isolate, value,
+                                                              exception_state);
   }
 };
 
@@ -482,9 +318,17 @@
     }
     return bindings::NativeValueTraitsStringAdapter(v8_string);
   }
+};
 
-  static bindings::NativeValueTraitsStringAdapter NullValue() {
-    return bindings::NativeValueTraitsStringAdapter();
+template <>
+struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLStringV2>>
+    : public NativeValueTraitsBase<IDLNullable<IDLStringV2>> {
+  static decltype(auto) NativeValue(v8::Isolate* isolate,
+                                    v8::Local<v8::Value> value,
+                                    ExceptionState& exception_state) {
+    return NativeValueTraits<IDLStringBaseV2<
+        bindings::IDLStringConvMode::kNullable>>::NativeValue(isolate, value,
+                                                              exception_state);
   }
 };
 
@@ -502,58 +346,27 @@
 
     return ReplaceUnmatchedSurrogates(string);
   }
-
-  static String NullValue() { return String(); }
-};
-
-// Floats and doubles
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLDouble>
-    : public NativeValueTraitsBase<IDLDouble> {
-  static double NativeValue(v8::Isolate* isolate,
-                            v8::Local<v8::Value> value,
-                            ExceptionState& exception_state) {
-    return ToRestrictedDouble(isolate, value, exception_state);
-  }
 };
 
 template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnrestrictedDouble>
-    : public NativeValueTraitsBase<IDLUnrestrictedDouble> {
-  static double NativeValue(v8::Isolate* isolate,
-                            v8::Local<v8::Value> value,
-                            ExceptionState& exception_state) {
-    return ToDouble(isolate, value, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLFloat>
-    : public NativeValueTraitsBase<IDLFloat> {
-  static float NativeValue(v8::Isolate* isolate,
-                           v8::Local<v8::Value> value,
-                           ExceptionState& exception_state) {
-    return ToRestrictedFloat(isolate, value, exception_state);
-  }
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLUnrestrictedFloat>
-    : public NativeValueTraitsBase<IDLUnrestrictedFloat> {
-  static float NativeValue(v8::Isolate* isolate,
-                           v8::Local<v8::Value> value,
-                           ExceptionState& exception_state) {
-    return ToFloat(isolate, value, exception_state);
+struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLUSVStringV2>>
+    : public NativeValueTraitsBase<IDLNullable<IDLUSVStringV2>> {
+  static decltype(auto) NativeValue(v8::Isolate* isolate,
+                                    v8::Local<v8::Value> value,
+                                    ExceptionState& exception_state) {
+    return NativeValueTraits<IDLUSVStringBaseV2<
+        bindings::IDLStringConvMode::kNullable>>::NativeValue(isolate, value,
+                                                              exception_state);
   }
 };
 
 // Buffer source types
-#define DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE(T)                      \
-  template <>                                                                 \
-  struct CORE_EXPORT NativeValueTraits<T> : public NativeValueTraitsBase<T> { \
-    static T* NativeValue(v8::Isolate* isolate,                               \
-                          v8::Local<v8::Value> value,                         \
-                          ExceptionState& exception_state);                   \
+#define DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE(T)                       \
+  template <>                                                                  \
+  struct CORE_EXPORT NativeValueTraits<T> : public NativeValueTraitsBase<T*> { \
+    static T* NativeValue(v8::Isolate* isolate,                                \
+                          v8::Local<v8::Value> value,                          \
+                          ExceptionState& exception_state);                    \
   }
 DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE(DOMArrayBuffer);
 DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE(DOMArrayBufferView);
@@ -571,18 +384,6 @@
 DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE(DOMDataView);
 #undef DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE
 
-// Nullable Date
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLDateOrNull>
-    : public NativeValueTraitsBase<IDLDateOrNull> {
-  static base::Optional<base::Time> NativeValue(
-      v8::Isolate* isolate,
-      v8::Local<v8::Value> value,
-      ExceptionState& exception_state) {
-    return ToCoreNullableDate(isolate, value, exception_state);
-  }
-};
-
 // object
 template <>
 struct CORE_EXPORT NativeValueTraits<IDLObject>
@@ -607,8 +408,35 @@
         ExceptionMessages::ArgumentNotOfType(argument_index, "object"));
     return ScriptValue();
   }
+};
 
-  static ScriptValue NullValue() { return ScriptValue(); }
+template <>
+struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLObject>>
+    : public NativeValueTraitsBase<IDLNullable<IDLObject>> {
+  static ScriptValue NativeValue(v8::Isolate* isolate,
+                                 v8::Local<v8::Value> value,
+                                 ExceptionState& exception_state) {
+    if (value->IsObject())
+      return ScriptValue(isolate, value);
+    if (value->IsNullOrUndefined())
+      return ScriptValue();
+    exception_state.ThrowTypeError(
+        ExceptionMessages::FailedToConvertJSValue("object"));
+    return ScriptValue();
+  }
+
+  static ScriptValue ArgumentValue(v8::Isolate* isolate,
+                                   int argument_index,
+                                   v8::Local<v8::Value> value,
+                                   ExceptionState& exception_state) {
+    if (value->IsObject())
+      return ScriptValue(isolate, value);
+    if (value->IsNullOrUndefined())
+      return ScriptValue();
+    exception_state.ThrowTypeError(
+        ExceptionMessages::ArgumentNotOfType(argument_index, "object"));
+    return ScriptValue();
+  }
 };
 
 // Promises
@@ -622,6 +450,9 @@
                                value);
   }
 };
+// IDLNullable<IDLPromise> must not be used.
+template <>
+struct NativeValueTraits<IDLNullable<IDLPromise>>;
 
 // Sequences
 template <typename T>
@@ -880,7 +711,7 @@
 struct NativeValueTraits<
     T,
     typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
-    : public NativeValueTraitsBase<T> {
+    : public NativeValueTraitsBase<T*> {
   static T* NativeValue(v8::Isolate* isolate,
                         v8::Local<v8::Value> value,
                         ExceptionState& exception_state) {
@@ -893,8 +724,6 @@
         << "is not yet implemented.";
     return nullptr;
   }
-
-  static constexpr T* NullValue() { return nullptr; }
 };
 
 // Dictionary
@@ -903,14 +732,12 @@
     T,
     typename std::enable_if_t<
         std::is_base_of<bindings::DictionaryBase, T>::value>>
-    : public NativeValueTraitsBase<T> {
+    : public NativeValueTraitsBase<T*> {
   static T* NativeValue(v8::Isolate* isolate,
                         v8::Local<v8::Value> value,
                         ExceptionState& exception_state) {
     return T::Create(isolate, value, exception_state);
   }
-
-  static constexpr T* NullValue() { return nullptr; }
 };
 
 // Interface
@@ -918,7 +745,7 @@
 struct NativeValueTraits<
     T,
     typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
-    : public NativeValueTraitsBase<T> {
+    : public NativeValueTraitsBase<T*> {
   static T* NativeValue(v8::Isolate* isolate,
                         v8::Local<v8::Value> value,
                         ExceptionState& exception_state) {
@@ -936,16 +763,37 @@
                exception_state)
         ->template ToImpl<T>();
   }
+};
 
-  static constexpr T* NullValue() { return nullptr; }
+template <typename T>
+struct NativeValueTraits<
+    IDLNullable<T>,
+    typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
+    : public NativeValueTraitsBase<IDLNullable<T>> {
+  static T* NativeValue(v8::Isolate* isolate,
+                        v8::Local<v8::Value> value,
+                        ExceptionState& exception_state) {
+    return bindings::NativeValueTraitsInterfaceOrNullNativeValue(
+               isolate, T::GetStaticWrapperTypeInfo(), value, exception_state)
+        ->template ToImpl<T>();
+  }
+
+  static T* ArgumentValue(v8::Isolate* isolate,
+                          int argument_index,
+                          v8::Local<v8::Value> value,
+                          ExceptionState& exception_state) {
+    return bindings::NativeValueTraitsInterfaceOrNullArgumentValue(
+               isolate, T::GetStaticWrapperTypeInfo(), argument_index, value,
+               exception_state)
+        ->template ToImpl<T>();
+  }
 };
 
 // Nullable
-//
-// Types without a built-in notion of nullability are mapped to
-// base::Optional<T>.
 template <typename InnerType>
-struct NativeValueTraits<IDLNullable<InnerType>>
+struct NativeValueTraits<
+    IDLNullable<InnerType>,
+    typename std::enable_if_t<!NativeValueTraits<InnerType>::has_null_value>>
     : public NativeValueTraitsBase<IDLNullable<InnerType>> {
   // https://heycam.github.io/webidl/#es-nullable-type
   using ImplType =
@@ -960,14 +808,16 @@
                                                      exception_state);
   }
 };
+// IDLNullable<IDLNullable<T>> must not be used.
+template <typename T>
+struct NativeValueTraits<IDLNullable<IDLNullable<T>>>;
+
+// IDLNullable<union types generated by the old bindings generator>
 template <typename InnerType>
 struct NativeValueTraits<
     IDLNullable<InnerType>,
     base::void_t<decltype(NativeValueTraits<InnerType>::NullValue)>>
     : public NativeValueTraitsBase<IDLNullable<InnerType>> {
-  // https://heycam.github.io/webidl/#es-nullable-type
-  using ImplType = typename NativeValueTraits<InnerType>::ImplType;
-
   static decltype(auto) NativeValue(v8::Isolate* isolate,
                                     v8::Local<v8::Value> value,
                                     ExceptionState& exception_state) {
@@ -977,9 +827,28 @@
                                                      exception_state);
   }
 };
-// IDLNullable<IDLNullable<T>> must not be used.
-template <typename T>
-struct NativeValueTraits<IDLNullable<IDLNullable<T>>>;
+
+// Date
+template <>
+struct CORE_EXPORT NativeValueTraits<IDLDate>
+    : public NativeValueTraitsBase<IDLDate> {
+  // IDLDate must be always used as IDLNullable<IDLDate>.
+  static base::Optional<base::Time> NativeValue(
+      v8::Isolate* isolate,
+      v8::Local<v8::Value> value,
+      ExceptionState& exception_state) = delete;
+};
+
+template <>
+struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLDate>>
+    : public NativeValueTraitsBase<IDLNullable<IDLDate>> {
+  static base::Optional<base::Time> NativeValue(
+      v8::Isolate* isolate,
+      v8::Local<v8::Value> value,
+      ExceptionState& exception_state) {
+    return ToCoreNullableDate(isolate, value, exception_state);
+  }
+};
 
 // EventHandler
 template <>
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_test.cc b/third_party/blink/renderer/bindings/core/v8/native_value_traits_test.cc
index 9ec7fc0..4f50455 100644
--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h"
 
 #include <type_traits>
+
 #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h"
 
 // No gtest tests; only static_assert checks.
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
index 230f57e..f3b089c 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
@@ -199,8 +199,8 @@
 // Conversion flags, used in toIntXX/toUIntXX.
 enum IntegerConversionConfiguration {
   kNormalConversion,
+  kClamp,
   kEnforceRange,
-  kClamp
 };
 
 // Convert a value to a boolean.
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 c39edfa..dde18f5 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
@@ -63,6 +63,7 @@
                      const_ref_fmt="{}",
                      value_fmt="{}",
                      has_null_value=False):
+            self.typename = typename
             self.member_t = member_fmt.format(typename)
             self.ref_t = ref_fmt.format(typename)
             self.const_ref_t = const_ref_fmt.format(typename)
@@ -133,7 +134,7 @@
             or real_type.is_variadic):
         element_type = blink_type_info(real_type.element_type)
         return TypeInfo(
-            "VectorOf<{}>".format(element_type.value_t),
+            "VectorOf<{}>".format(element_type.typename),
             ref_fmt="{}&",
             const_ref_fmt="const {}&")
 
@@ -141,8 +142,8 @@
         key_type = blink_type_info(real_type.key_type)
         value_type = blink_type_info(real_type.value_type)
         return TypeInfo(
-            "VectorOfPairs<{}, {}>".format(key_type.value_t,
-                                           value_type.value_t),
+            "VectorOfPairs<{}, {}>".format(key_type.typename,
+                                           value_type.typename),
             ref_fmt="{}&",
             const_ref_fmt="const {}&")
 
@@ -181,13 +182,12 @@
             return "IDL{}".format(idl_type.identifier)
 
     real_type = idl_type.unwrap(typedef=True)
-    non_null_real_type = real_type.unwrap(nullable=True)
 
     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 non_null_real_type.is_string:
+    if real_type.is_string:
         return "IDL{}V2".format(real_type.type_name)
 
     if real_type.is_buffer_source_type:
@@ -199,8 +199,8 @@
     if real_type.is_void:
         assert False, "Blink does not support/accept IDL void type."
 
-    if non_null_real_type.type_definition_object:
-        return blink_class_name(non_null_real_type.type_definition_object)
+    if real_type.type_definition_object:
+        return blink_class_name(real_type.type_definition_object)
 
     if real_type.is_sequence:
         return "IDLSequence<{}>".format(
@@ -366,12 +366,12 @@
         nodes = []
         type_info = blink_type_info(idl_type)
         default_expr = make_default_value_expr(idl_type, default_value)
-        if default_expr.initializer is None:
-            nodes.append(F("{} ${{{}}};", type_info.value_t, blink_var_name))
-        elif default_expr.is_initializer_lightweight:
+        if default_expr.is_initializer_lightweight:
             nodes.append(
                 F("{} ${{{}}} = {};", type_info.value_t, blink_var_name,
                   default_expr.initializer))
+        else:
+            nodes.append(F("{} ${{{}}};", type_info.value_t, blink_var_name))
         assignment = [
             F("${{{}}} = {};", blink_var_name, blink_value_expr),
             CxxUnlikelyIfNode(
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
index d1b2de27..915dc71 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
@@ -103,62 +103,6 @@
     ])
 
 
-def traverse_idl_types(idl_definition, callback):
-    """
-    Traverses in the given |idl_definition| to find all the web_idl.IdlType used
-    in the IDL definition.  Invokes |callback| with each web_idl.IdlType.
-    """
-    assert callable(callback)
-
-    def get(obj, attr):
-        try:
-            return getattr(obj, attr)
-        except:
-            return ()
-
-    xs = (get(idl_definition, "attributes") + get(idl_definition, "constants")
-          + get(idl_definition, "own_members") + (idl_definition, ))
-    for x in xs:
-        idl_type = get(x, "idl_type")
-        if idl_type:
-            callback(idl_type)
-
-    xs = (get(idl_definition, "constructors") + get(idl_definition,
-                                                    "operations"))
-    for x in xs:
-        for argument in x.arguments:
-            callback(argument.idl_type)
-        if x.return_type is not None:
-            callback(x.return_type)
-
-    xs = get(idl_definition, "flattened_member_types")
-    for x in xs:
-        callback(x)
-
-
-def collect_include_headers(idl_definition):
-    """
-    Returns a list of include headers that are required by generated bindings of
-    |idl_definition|.
-    """
-    type_def_objs = set()
-
-    def collect_type_def_obj(idl_type):
-        type_def_obj = idl_type.unwrap().type_definition_object
-        if type_def_obj is not None:
-            type_def_objs.add(type_def_obj)
-
-    traverse_idl_types(idl_definition, collect_type_def_obj)
-
-    header_paths = set(idl_definition.code_generator_info.blink_headers or [])
-    for type_def_obj in type_def_objs:
-        if isinstance(type_def_obj, web_idl.Enumeration):
-            continue
-        header_paths.add(PathManager(type_def_obj).api_path(ext="h"))
-
-    return header_paths
-
-
 def collect_include_headers_of_idl_types(idl_types):
     """
     Returns a set of header paths that are required by |idl_types|.
@@ -197,8 +141,8 @@
             header_paths.add("third_party/blink/renderer/"
                              "bindings/core/v8/script_promise.h")
         elif idl_type.is_union:
-            type_def_obj = idl_type.union_definition_object
-            header_paths.add(PathManager(type_def_obj).api_path(ext="h"))
+            union_def_obj = idl_type.union_definition_object
+            header_paths.add(PathManager(union_def_obj).api_path(ext="h"))
         elif idl_type.is_nullable:
             if not blink_type_info(idl_type.inner_type).has_null_value:
                 header_paths.add("base/optional.h")
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
index 96c17893..2569666d 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
@@ -35,7 +35,6 @@
 from .codegen_expr import expr_from_exposure
 from .codegen_expr import expr_or
 from .codegen_format import format_template as _format
-from .codegen_utils import collect_include_headers
 from .codegen_utils import component_export
 from .codegen_utils import component_export_header
 from .codegen_utils import enclose_with_header_guard
@@ -716,6 +715,8 @@
         CodeGenAccumulator.require_include_headers([
             "third_party/blink/renderer/"
             "platform/bindings/v8_dom_activity_logger.h",
+            "third_party/blink/renderer/"
+            "platform/bindings/v8_per_context_data.h",
         ]))
     return node
 
@@ -1252,7 +1253,8 @@
 
     if return_type.is_frozen_array:
         return T("bindings::V8SetReturnValue(${info}, FreezeV8Object(ToV8("
-                 "${return_value}, ${creation_context_object}, ${isolate})));")
+                 "${return_value}, ${creation_context_object}, ${isolate}), "
+                 "${isolate}));")
 
     if return_type.is_promise:
         return T("bindings::V8SetReturnValue"
@@ -2697,6 +2699,39 @@
 # ----------------------------------------------------------------------------
 
 
+def _collect_include_headers(interface):
+    headers = set(interface.code_generator_info.blink_headers)
+
+    def collect_from_idl_type(idl_type):
+        idl_type = idl_type.unwrap()
+        if idl_type.is_enumeration:
+            return
+        type_def_obj = idl_type.type_definition_object
+        if type_def_obj is not None:
+            headers.add(PathManager(type_def_obj).api_path(ext="h"))
+            return
+        union_def_obj = idl_type.union_definition_object
+        if union_def_obj is not None:
+            headers.add(PathManager(union_def_obj).api_path(ext="h"))
+            return
+
+    for attribute in interface.attributes:
+        collect_from_idl_type(attribute.idl_type)
+    for constructor in interface.constructors:
+        for argument in constructor.arguments:
+            collect_from_idl_type(argument.idl_type)
+    for operation in interface.operations:
+        collect_from_idl_type(operation.return_type)
+        for argument in operation.arguments:
+            collect_from_idl_type(argument.idl_type)
+
+    path_manager = PathManager(interface)
+    headers.discard(path_manager.api_path(ext="h"))
+    headers.discard(path_manager.impl_path(ext="h"))
+
+    return headers
+
+
 def generate_interface(interface):
     path_manager = PathManager(interface)
     api_component = path_manager.api_component
@@ -3016,7 +3051,7 @@
         "third_party/blink/renderer/platform/bindings/v8_binding.h",
     ])
     impl_source_node.accumulator.add_include_headers(
-        collect_include_headers(interface))
+        _collect_include_headers(interface))
 
     # Assemble the parts.
     api_header_blink_ns.body.append(api_class_def)
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py b/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py
index dc5e1ca..d1ca155 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py
@@ -104,6 +104,11 @@
         self._impl_dir = self._component_reldirs[self._impl_component]
         self._v8_bind_basename = name_style.file("v8",
                                                  idl_definition.identifier)
+        # TODO(peria, yukishiino): Add "v8" prefix to union's files.  Trying to
+        # produce the same filepaths with the old bindings generator for the
+        # time being.
+        if isinstance(idl_definition, web_idl.Union):
+            self._v8_bind_basename = name_style.file(idl_definition.identifier)
 
     @property
     def is_cross_components(self):
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
index 8b437cd..4921882 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
@@ -13,7 +13,6 @@
 from .code_node_cxx import CxxNamespaceNode
 from .codegen_accumulator import CodeGenAccumulator
 from .codegen_context import CodeGenContext
-from .codegen_utils import collect_include_headers
 from .codegen_utils import component_export
 from .codegen_utils import enclose_with_header_guard
 from .codegen_utils import enclose_with_namespace
@@ -59,7 +58,6 @@
     header_node = ListNode(tail="\n")
     header_node.set_accumulator(CodeGenAccumulator())
     header_node.set_renderer(MakoRenderer())
-    header_node.accumulator.add_include_headers(collect_include_headers(union))
 
     header_blink_ns = CxxNamespaceNode(name_style.namespace("blink"))
 
diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py b/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py
index bc9c736..3cccd07 100644
--- a/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py
+++ b/third_party/blink/renderer/bindings/scripts/web_idl/idl_type.py
@@ -1144,6 +1144,10 @@
 
     @property
     def flattened_member_types(self):
+        return set(self.flattened_member_types_in_original_order)
+
+    @property
+    def flattened_member_types_in_original_order(self):
         def flatten(idl_type):
             if idl_type.is_union:
                 return functools.reduce(
@@ -1156,7 +1160,7 @@
             else:
                 return [idl_type]
 
-        return set(flatten(self))
+        return flatten(self)
 
     @property
     def union_definition_object(self):
diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/migration_adapter.idl b/third_party/blink/renderer/bindings/scripts/web_idl/migration_adapter.idl
index 38eacc2..2dc237be 100644
--- a/third_party/blink/renderer/bindings/scripts/web_idl/migration_adapter.idl
+++ b/third_party/blink/renderer/bindings/scripts/web_idl/migration_adapter.idl
@@ -10,7 +10,7 @@
 
 typedef object SerializedScriptValue;
 
-typedef object? Dictionary;
+dictionary Dictionary {};
 
 typedef EventHandlerNonNull? EventHandler;
 
diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/union.py b/third_party/blink/renderer/bindings/scripts/web_idl/union.py
index ab587da..4254d06 100644
--- a/third_party/blink/renderer/bindings/scripts/web_idl/union.py
+++ b/third_party/blink/renderer/bindings/scripts/web_idl/union.py
@@ -80,8 +80,16 @@
         for idl_type in flattened_members:
             idl_type.apply_to_all_composing_elements(collect_components)
 
-        type_names = sorted(
-            [idl_type.type_name for idl_type in flattened_members])
+        # TODO(peria, yukishiino): Produce unique union names.  Trying to
+        # produce the names compatible to the old bindings generator for the
+        # time being.
+        #
+        # type_names = sorted(
+        #     [idl_type.type_name for idl_type in flattened_members])
+        type_names = [
+            idl_type.type_name for idl_type in union_types[0].
+            flattened_member_types_in_original_order
+        ]
         if does_include_nullable_type:
             type_names.append('Null')
         identifier = Identifier('Or'.join(type_names))
diff --git a/third_party/blink/renderer/controller/BUILD.gn b/third_party/blink/renderer/controller/BUILD.gn
index d63d26a..73040f4 100644
--- a/third_party/blink/renderer/controller/BUILD.gn
+++ b/third_party/blink/renderer/controller/BUILD.gn
@@ -45,20 +45,33 @@
     "memory_usage_monitor.h",
   ]
 
+  if (is_linux) {
+    sources += [
+      "memory_usage_monitor_posix.cc",
+      "memory_usage_monitor_posix.h",
+    ]
+    deps += [ "//third_party/blink/public/mojom:memory_usage_monitor_linux_mojo_bindings_blink" ]
+  }
   if (is_android) {
     sources += [
       "crash_memory_metrics_reporter_impl.cc",
       "crash_memory_metrics_reporter_impl.h",
       "highest_pmf_reporter.cc",
       "highest_pmf_reporter.h",
-      "memory_usage_monitor_android.cc",
-      "memory_usage_monitor_android.h",
+      "memory_usage_monitor_posix.cc",
+      "memory_usage_monitor_posix.h",
       "oom_intervention_impl.cc",
       "oom_intervention_impl.h",
       "user_level_memory_pressure_signal_generator.cc",
       "user_level_memory_pressure_signal_generator.h",
     ]
   }
+  if (is_win) {
+    sources += [
+      "memory_usage_monitor_win.cc",
+      "memory_usage_monitor_win.h",
+    ]
+  }
   if (is_mac) {
     libs = [
       "AppKit.framework",
@@ -84,11 +97,15 @@
   visibility = []  # Allow re-assignment of list.
   visibility = [ "*" ]
   testonly = true
-  deps = [ ":blink_unittests" ]
+  deps = [
+    ":blink_unittests",
+  ]
 }
 
 test("blink_unittests") {
-  deps = [ ":blink_unittests_sources" ]
+  deps = [
+    ":blink_unittests_sources",
+  ]
 
   data_deps = [
     ":blink_unittests_data",
@@ -110,7 +127,9 @@
 }
 
 test("blink_perf_tests") {
-  deps = [ ":blink_perf_tests_sources" ]
+  deps = [
+    ":blink_perf_tests_sources",
+  ]
 }
 
 jumbo_source_set("blink_perf_tests_sources") {
@@ -118,7 +137,9 @@
   visibility = [ "*" ]
   testonly = true
 
-  sources = [ "tests/run_all_tests.cc" ]
+  sources = [
+    "tests/run_all_tests.cc",
+  ]
 
   deps = [
     ":controller",
@@ -139,12 +160,17 @@
   visibility = [ "*" ]
   testonly = true
 
-  sources = [ "tests/run_all_tests.cc" ]
+  sources = [
+    "tests/run_all_tests.cc",
+  ]
   sources += bindings_unittest_files
+  if (is_linux) {
+    sources += [ "memory_usage_monitor_posix_test.cc" ]
+  }
   if (is_android) {
     sources += [
       "highest_pmf_reporter_test.cc",
-      "memory_usage_monitor_android_test.cc",
+      "memory_usage_monitor_posix_test.cc",
       "memory_usage_monitor_test.cc",
       "oom_intervention_impl_test.cc",
       "user_level_memory_pressure_signal_generator_test.cc",
diff --git a/third_party/blink/renderer/controller/blink_initializer.cc b/third_party/blink/renderer/controller/blink_initializer.cc
index e9d7093..29bf2e5 100644
--- a/third_party/blink/renderer/controller/blink_initializer.cc
+++ b/third_party/blink/renderer/controller/blink_initializer.cc
@@ -67,6 +67,10 @@
 #include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h"
 #endif
 
+#if defined(OS_LINUX)
+#include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h"
+#endif
+
 namespace blink {
 
 namespace {
@@ -180,6 +184,11 @@
                   &CrashMemoryMetricsReporterImpl::Bind)),
               main_thread->GetTaskRunner());
 #endif
+#if defined(OS_LINUX)
+  binders.Add(ConvertToBaseRepeatingCallback(
+                  CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
+              main_thread->GetTaskRunner());
+#endif
 
   binders.Add(ConvertToBaseRepeatingCallback(
                   CrossThreadBindRepeating(&BlinkLeakDetector::Create)),
diff --git a/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc b/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc
index 61211b4..1c39a7c 100644
--- a/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc
+++ b/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc
@@ -10,7 +10,6 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/process/memory.h"
 #include "third_party/blink/public/platform/platform.h"
-#include "third_party/blink/renderer/controller/memory_usage_monitor_android.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_android.h b/third_party/blink/renderer/controller/memory_usage_monitor_android.h
deleted file mode 100644
index 417577f7..0000000
--- a/third_party/blink/renderer/controller/memory_usage_monitor_android.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// 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_CONTROLLER_MEMORY_USAGE_MONITOR_ANDROID_H_
-#define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_ANDROID_H_
-
-#include "base/files/file.h"
-#include "base/files/scoped_file.h"
-#include "third_party/blink/renderer/controller/controller_export.h"
-#include "third_party/blink/renderer/controller/memory_usage_monitor.h"
-
-namespace blink {
-
-class CONTROLLER_EXPORT MemoryUsageMonitorAndroid : public MemoryUsageMonitor {
- public:
-  MemoryUsageMonitorAndroid() = default;
-
-  void ReplaceFileDescriptorsForTesting(base::File statm_file,
-                                        base::File status_file);
-
- private:
-  friend class CrashMemoryMetricsReporterImpl;
-  void ResetFileDescriptors();
-  void GetProcessMemoryUsage(MemoryUsage&) override;
-  static bool CalculateProcessMemoryFootprint(int statm_fd,
-                                              int status_fd,
-                                              uint64_t* private_footprint,
-                                              uint64_t* swap_footprint,
-                                              uint64_t* vm_size,
-                                              uint64_t* vm_hwm_size);
-
-  bool file_descriptors_reset_ = false;
-  // The file descriptor to current process proc files. The files are kept open
-  // when detection is on to reduce measurement overhead.
-  base::ScopedFD statm_fd_;
-  base::ScopedFD status_fd_;
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_ANDROID_H_
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_android.cc b/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
similarity index 75%
rename from third_party/blink/renderer/controller/memory_usage_monitor_android.cc
rename to third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
index b32ded5..8558d53 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor_android.cc
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
@@ -2,11 +2,12 @@
 // 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/controller/memory_usage_monitor_android.h"
+#include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h"
 
 #include <ctype.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <utility>
 
 #include "third_party/blink/public/platform/platform.h"
 
@@ -25,12 +26,17 @@
 
 static MemoryUsageMonitor* g_instance_for_testing = nullptr;
 
+MemoryUsageMonitorPosix& GetMemoryUsageMonitor() {
+  DEFINE_STATIC_LOCAL(MemoryUsageMonitorPosix, monitor, ());
+  return monitor;
+}
+
 }  // namespace
 
 // static
 MemoryUsageMonitor& MemoryUsageMonitor::Instance() {
-  DEFINE_STATIC_LOCAL(MemoryUsageMonitorAndroid, monitor, ());
-  return g_instance_for_testing ? *g_instance_for_testing : monitor;
+  return g_instance_for_testing ? *g_instance_for_testing
+                                : GetMemoryUsageMonitor();
 }
 
 // static
@@ -41,7 +47,7 @@
 // Since the measurement is done every second in background, optimizations are
 // in place to get just the metrics we need from the proc files. So, this
 // calculation exists here instead of using the cross-process memory-infra code.
-bool MemoryUsageMonitorAndroid::CalculateProcessMemoryFootprint(
+bool MemoryUsageMonitorPosix::CalculateProcessMemoryFootprint(
     int statm_fd,
     int status_fd,
     uint64_t* private_footprint,
@@ -87,9 +93,10 @@
   return true;
 }
 
-void MemoryUsageMonitorAndroid::GetProcessMemoryUsage(MemoryUsage& usage) {
+void MemoryUsageMonitorPosix::GetProcessMemoryUsage(MemoryUsage& usage) {
+#if defined(OS_ANDROID)
   ResetFileDescriptors();
-
+#endif
   if (!statm_fd_.is_valid() || !status_fd_.is_valid())
     return;
   uint64_t private_footprint, swap, vm_size, vm_hwm_size;
@@ -103,7 +110,8 @@
   }
 }
 
-void MemoryUsageMonitorAndroid::ResetFileDescriptors() {
+#if defined(OS_ANDROID)
+void MemoryUsageMonitorPosix::ResetFileDescriptors() {
   if (file_descriptors_reset_)
     return;
   file_descriptors_reset_ = true;
@@ -114,12 +122,26 @@
   if (!status_fd_.is_valid())
     status_fd_.reset(open("/proc/self/status", O_RDONLY));
 }
+#endif
 
-void MemoryUsageMonitorAndroid::ReplaceFileDescriptorsForTesting(
-    base::File statm_file,
-    base::File status_file) {
+void MemoryUsageMonitorPosix::SetProcFiles(base::File statm_file,
+                                           base::File status_file) {
+  DCHECK(statm_file.IsValid());
+  DCHECK(status_file.IsValid());
+  DCHECK_EQ(-1, statm_fd_.get());
+  DCHECK_EQ(-1, status_fd_.get());
   statm_fd_.reset(statm_file.TakePlatformFile());
   status_fd_.reset(status_file.TakePlatformFile());
 }
 
+#if defined(OS_LINUX)
+// static
+void MemoryUsageMonitorPosix::Bind(
+    mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver) {
+  // This should be called only once per process on RenderProcessWillLaunch.
+  DCHECK(!GetMemoryUsageMonitor().receiver_.is_bound());
+  GetMemoryUsageMonitor().receiver_.Bind(std::move(receiver));
+}
+#endif
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_posix.h b/third_party/blink/renderer/controller/memory_usage_monitor_posix.h
new file mode 100644
index 0000000..2952709
--- /dev/null
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_posix.h
@@ -0,0 +1,75 @@
+// 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_CONTROLLER_MEMORY_USAGE_MONITOR_POSIX_H_
+#define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_POSIX_H_
+
+#include "base/files/file.h"
+#include "base/files/scoped_file.h"
+#include "build/build_config.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+#include "third_party/blink/renderer/controller/controller_export.h"
+#include "third_party/blink/renderer/controller/memory_usage_monitor.h"
+
+#if defined(OS_LINUX)
+#include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom-blink.h"
+#endif
+
+namespace blink {
+
+// MemoryUsageMonitor implementation for Android and Linux.
+class CONTROLLER_EXPORT MemoryUsageMonitorPosix
+    : public MemoryUsageMonitor
+#if defined(OS_LINUX)
+    ,
+      public mojom::blink::MemoryUsageMonitorLinux
+#endif
+{
+ public:
+  MemoryUsageMonitorPosix() = default;
+
+#if defined(OS_LINUX)
+  static void Bind(
+      mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver);
+#endif
+
+ private:
+  FRIEND_TEST_ALL_PREFIXES(MemoryUsageMonitorPosixTest,
+                           CalculateProcessFootprint);
+
+  friend class CrashMemoryMetricsReporterImpl;
+  void GetProcessMemoryUsage(MemoryUsage&) override;
+  static bool CalculateProcessMemoryFootprint(int statm_fd,
+                                              int status_fd,
+                                              uint64_t* private_footprint,
+                                              uint64_t* swap_footprint,
+                                              uint64_t* vm_size,
+                                              uint64_t* vm_hwm_size);
+
+#if defined(OS_LINUX)
+  // mojom::MemoryUsageMonitorLinux implementations:
+  void SetProcFiles(base::File statm_file, base::File status_file) override;
+#endif
+
+#if defined(OS_ANDROID)
+  void ResetFileDescriptors();
+  // For Android, SetProcFiles is used only for testing.
+  void SetProcFiles(base::File statm_file, base::File status_file);
+
+  bool file_descriptors_reset_ = false;
+#endif
+
+  // The file descriptor to current process proc files. The files are kept open
+  // for the whole lifetime of the renderer.
+  base::ScopedFD statm_fd_;
+  base::ScopedFD status_fd_;
+
+#if defined(OS_LINUX)
+  mojo::Receiver<mojom::blink::MemoryUsageMonitorLinux> receiver_{this};
+#endif
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_POSIX_H_
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_android_test.cc b/third_party/blink/renderer/controller/memory_usage_monitor_posix_test.cc
similarity index 88%
rename from third_party/blink/renderer/controller/memory_usage_monitor_android_test.cc
rename to third_party/blink/renderer/controller/memory_usage_monitor_posix_test.cc
index ebf0a75..6391623 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor_android_test.cc
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_posix_test.cc
@@ -2,17 +2,19 @@
 // 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/controller/memory_usage_monitor_android.h"
+#include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h"
 
 #include <unistd.h>
+#include <utility>
 
 #include "base/files/file_util.h"
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace blink {
 
-TEST(MemoryUsageMonitorAndroidTest, CalculateProcessFootprint) {
-  MemoryUsageMonitorAndroid monitor;
+TEST(MemoryUsageMonitorPosixTest, CalculateProcessFootprint) {
+  MemoryUsageMonitorPosix monitor;
 
   const char kStatusFile[] =
       "First:    1\n"
@@ -41,8 +43,7 @@
   base::File status_file(status_path,
                          base::File::FLAG_OPEN | base::File::FLAG_READ);
 
-  monitor.ReplaceFileDescriptorsForTesting(std::move(statm_file),
-                                           std::move(status_file));
+  monitor.SetProcFiles(std::move(statm_file), std::move(status_file));
 
   MemoryUsage usage = monitor.GetCurrentMemoryUsage();
   EXPECT_EQ(expected_private_footprint_kb,
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_win.cc b/third_party/blink/renderer/controller/memory_usage_monitor_win.cc
new file mode 100644
index 0000000..fdd640c
--- /dev/null
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_win.cc
@@ -0,0 +1,55 @@
+// 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 "third_party/blink/renderer/controller/memory_usage_monitor_win.h"
+
+#include <windows.h>  // Must be in front of other Windows header files.
+
+#include <psapi.h>
+#include <tchar.h>
+
+#include "third_party/blink/public/platform/platform.h"
+
+namespace blink {
+
+namespace {
+
+static MemoryUsageMonitor* g_instance_for_testing = nullptr;
+
+}  // namespace
+
+// static
+MemoryUsageMonitor& MemoryUsageMonitor::Instance() {
+  DEFINE_STATIC_LOCAL(MemoryUsageMonitorWin, monitor, ());
+  return g_instance_for_testing ? *g_instance_for_testing : monitor;
+}
+
+// static
+void MemoryUsageMonitor::SetInstanceForTesting(MemoryUsageMonitor* instance) {
+  g_instance_for_testing = instance;
+}
+
+// CalculateProcessMemoryFootprint is generated from:
+// - CalculatePrivateFootprintKb defined in
+//   //services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc
+// - OSMetrics::FillOSMemoryDump defined in
+//   //services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_win.cc
+bool MemoryUsageMonitorWin::CalculateProcessMemoryFootprint(
+    uint64_t* private_footprint) {
+  PROCESS_MEMORY_COUNTERS_EX pmc;
+  if (!::GetProcessMemoryInfo(::GetCurrentProcess(),
+                              reinterpret_cast<PROCESS_MEMORY_COUNTERS*>(&pmc),
+                              sizeof(pmc)))
+    return false;
+  *private_footprint = pmc.PrivateUsage;
+  return true;
+}
+
+void MemoryUsageMonitorWin::GetProcessMemoryUsage(MemoryUsage& usage) {
+  uint64_t private_footprint;
+  if (CalculateProcessMemoryFootprint(&private_footprint))
+    usage.private_footprint_bytes = static_cast<double>(private_footprint);
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_win.h b/third_party/blink/renderer/controller/memory_usage_monitor_win.h
new file mode 100644
index 0000000..f83a5f9
--- /dev/null
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_win.h
@@ -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.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_WIN_H_
+#define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_WIN_H_
+
+#include "third_party/blink/renderer/controller/controller_export.h"
+#include "third_party/blink/renderer/controller/memory_usage_monitor.h"
+
+namespace blink {
+
+// Memory usage monitor implementation for Windows.
+class CONTROLLER_EXPORT MemoryUsageMonitorWin : public MemoryUsageMonitor {
+ public:
+  MemoryUsageMonitorWin() = default;
+
+ private:
+  void GetProcessMemoryUsage(MemoryUsage&) override;
+  static bool CalculateProcessMemoryFootprint(uint64_t* private_footprint);
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CONTROLLER_MEMORY_USAGE_MONITOR_WIN_H_
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl_test.cc b/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
index 20cd097..61b14bd 100644
--- a/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
+++ b/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
@@ -12,7 +12,6 @@
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
 #include "third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h"
diff --git a/third_party/blink/renderer/core/animation/animatable.idl b/third_party/blink/renderer/core/animation/animatable.idl
index 9d43276..1101e4c 100644
--- a/third_party/blink/renderer/core/animation/animatable.idl
+++ b/third_party/blink/renderer/core/animation/animatable.idl
@@ -31,7 +31,7 @@
 // https://drafts.csswg.org/web-animations/#the-animatable-interface-mixin
 interface mixin Animatable {
     [CallWith=ScriptState, Measure, RaisesException] Animation animate(object? keyframes, optional (unrestricted double or KeyframeAnimationOptions) options);
-    [RuntimeEnabled=WebAnimationsAPI] sequence<Animation> getAnimations(optional GetAnimationsOptions options);
+    [RuntimeEnabled=WebAnimationsAPI] sequence<Animation> getAnimations(optional GetAnimationsOptions options = {});
 };
 
 // https://drafts.csswg.org/web-animations-1/#extensions-to-the-element-interface
diff --git a/third_party/blink/renderer/core/animation/animation_effect.idl b/third_party/blink/renderer/core/animation/animation_effect.idl
index bf779a5..64683b9 100644
--- a/third_party/blink/renderer/core/animation/animation_effect.idl
+++ b/third_party/blink/renderer/core/animation/animation_effect.idl
@@ -34,5 +34,5 @@
 interface AnimationEffect {
     EffectTiming getTiming();
     ComputedEffectTiming getComputedTiming();
-    [RaisesException] void updateTiming(optional OptionalEffectTiming timing);
+    [RaisesException] void updateTiming(optional OptionalEffectTiming timing = {});
 };
diff --git a/third_party/blink/renderer/core/animation/document_timeline.idl b/third_party/blink/renderer/core/animation/document_timeline.idl
index e62efdb..54c03af 100644
--- a/third_party/blink/renderer/core/animation/document_timeline.idl
+++ b/third_party/blink/renderer/core/animation/document_timeline.idl
@@ -8,5 +8,5 @@
     RuntimeEnabled=WebAnimationsAPI,
     Exposed=Window
 ] interface DocumentTimeline : AnimationTimeline {
-  [CallWith=ExecutionContext] constructor(optional DocumentTimelineOptions options);
+  [CallWith=ExecutionContext] constructor(optional DocumentTimelineOptions options = {});
 };
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline.idl b/third_party/blink/renderer/core/animation/scroll_timeline.idl
index efda39d..90461ae 100644
--- a/third_party/blink/renderer/core/animation/scroll_timeline.idl
+++ b/third_party/blink/renderer/core/animation/scroll_timeline.idl
@@ -8,7 +8,7 @@
     RuntimeEnabled=ScrollTimeline,
     Exposed=Window
 ] interface ScrollTimeline : AnimationTimeline {
-    [CallWith=Document, RaisesException, MeasureAs=ScrollTimelineConstructor] constructor(optional ScrollTimelineOptions options);
+    [CallWith=Document, RaisesException, MeasureAs=ScrollTimelineConstructor] constructor(optional ScrollTimelineOptions options = {});
     readonly attribute Element? scrollSource;
     readonly attribute ScrollDirection orientation;
     readonly attribute DOMString startScrollOffset;
diff --git a/third_party/blink/renderer/core/clipboard/system_clipboard.cc b/third_party/blink/renderer/core/clipboard/system_clipboard.cc
index 2d8a114..ad8d3b4 100644
--- a/third_party/blink/renderer/core/clipboard/system_clipboard.cc
+++ b/third_party/blink/renderer/core/clipboard/system_clipboard.cc
@@ -7,10 +7,8 @@
 #include "base/memory/scoped_refptr.h"
 #include "build/build_config.h"
 #include "mojo/public/cpp/system/platform_handle.h"
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/web_drag_data.h"
 #include "third_party/blink/public/platform/web_string.h"
diff --git a/third_party/blink/renderer/core/css/css_style_sheet.idl b/third_party/blink/renderer/core/css/css_style_sheet.idl
index f201ac6..8e00a8b 100644
--- a/third_party/blink/renderer/core/css/css_style_sheet.idl
+++ b/third_party/blink/renderer/core/css/css_style_sheet.idl
@@ -23,7 +23,7 @@
 [
     Exposed=Window
 ] interface CSSStyleSheet : StyleSheet {
-    [CallWith=Document, RaisesException] constructor(optional CSSStyleSheetInit options);
+    [CallWith=Document, RaisesException] constructor(optional CSSStyleSheetInit options = {});
     readonly attribute CSSRule? ownerRule;
     [SameObject, RaisesException] readonly attribute CSSRuleList cssRules;
     [RaisesException] unsigned long insertRule(DOMString rule, optional unsigned long index = 0);
diff --git a/third_party/blink/renderer/core/css/cssom/css_matrix_component.idl b/third_party/blink/renderer/core/css/cssom/css_matrix_component.idl
index 76996802..6c304bf 100644
--- a/third_party/blink/renderer/core/css/cssom/css_matrix_component.idl
+++ b/third_party/blink/renderer/core/css/cssom/css_matrix_component.idl
@@ -9,6 +9,6 @@
     Exposed=(Window,LayoutWorklet,PaintWorklet)
 ] interface CSSMatrixComponent : CSSTransformComponent {
     constructor(DOMMatrixReadOnly matrix,
-        optional CSSMatrixComponentOptions options);
+        optional CSSMatrixComponentOptions options = {});
     attribute DOMMatrix matrix;
 };
diff --git a/third_party/blink/renderer/core/css/font_face.idl b/third_party/blink/renderer/core/css/font_face.idl
index d22c927..90baf8a 100644
--- a/third_party/blink/renderer/core/css/font_face.idl
+++ b/third_party/blink/renderer/core/css/font_face.idl
@@ -42,7 +42,7 @@
     Exposed=(Window,Worker)
 ] interface FontFace {
     // FIXME: This should be (DOMString or BinaryData), where BinaryData is typedef of (ArrayBuffer or ArrayBufferView)
-    [CallWith=ExecutionContext, MeasureAs=FontFaceConstructor] constructor(DOMString family, (DOMString or ArrayBuffer or ArrayBufferView) source, optional FontFaceDescriptors descriptors);
+    [CallWith=ExecutionContext, MeasureAs=FontFaceConstructor] constructor(DOMString family, (DOMString or ArrayBuffer or ArrayBufferView) source, optional FontFaceDescriptors descriptors = {});
     [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString family;
     [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString style;
     [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString weight;
diff --git a/third_party/blink/renderer/core/css/font_face_set_load_event.idl b/third_party/blink/renderer/core/css/font_face_set_load_event.idl
index 517192a..a85f1cbe 100644
--- a/third_party/blink/renderer/core/css/font_face_set_load_event.idl
+++ b/third_party/blink/renderer/core/css/font_face_set_load_event.idl
@@ -34,6 +34,6 @@
   // TODO(loonybear): Exposed=(Window,Worker)
   Exposed=Window
 ] interface FontFaceSetLoadEvent : Event {
-    constructor(DOMString type, optional FontFaceSetLoadEventInit eventInitDict);
+    constructor(DOMString type, optional FontFaceSetLoadEventInit eventInitDict = {});
     [SameObject] readonly attribute FrozenArray<FontFace> fontfaces;
 };
diff --git a/third_party/blink/renderer/core/css/media_query_list_event.idl b/third_party/blink/renderer/core/css/media_query_list_event.idl
index 4f7f293..2a2ae626 100644
--- a/third_party/blink/renderer/core/css/media_query_list_event.idl
+++ b/third_party/blink/renderer/core/css/media_query_list_event.idl
@@ -7,7 +7,7 @@
 [
     Exposed=Window
 ] interface MediaQueryListEvent : Event {
-    constructor(DOMString type, optional MediaQueryListEventInit eventInitDict);
+    constructor(DOMString type, optional MediaQueryListEventInit eventInitDict = {});
     readonly attribute DOMString media;
     readonly attribute boolean matches;
 };
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 0621f39..876be5f 100644
--- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -131,24 +131,28 @@
   return svg_element && svg_element->IsOutermostSVGSVGElement();
 }
 
-static bool IsAtUAShadowBoundary(const Element* element) {
+static bool IsAtMediaUAShadowBoundary(const Element* element) {
   if (!element)
     return false;
-  if (ContainerNode* parent = element->parentNode())
-    return parent->IsShadowRoot() && To<ShadowRoot>(parent)->IsUserAgent();
+  if (ContainerNode* parent = element->parentNode()) {
+    if (auto* shadow_root = DynamicTo<ShadowRoot>(parent))
+      return shadow_root->host().IsMediaElement();
+  }
   return false;
 }
 
-// CSS requires text-decoration to be reset at each DOM element for
-// inline blocks, inline tables, UA shadow DOM crossings, floating elements,
-// and absolute or relatively positioned elements. Outermost <svg> roots are
-// considered to be atomic inline-level.
+// CSS requires text-decoration to be reset at each DOM element for inline
+// blocks, inline tables, floating elements, and absolute or relatively
+// positioned elements. Outermost <svg> roots are considered to be atomic
+// inline-level. Media elements have a special rendering where the media
+// controls do not use a proper containing block model which means we need
+// to manually stop text-decorations to apply to text inside media controls.
 static bool StopPropagateTextDecorations(const ComputedStyle& style,
                                          const Element* element) {
   return style.Display() == EDisplay::kInlineTable ||
          style.Display() == EDisplay::kInlineBlock ||
          style.Display() == EDisplay::kWebkitInlineBox ||
-         IsAtUAShadowBoundary(element) || style.IsFloating() ||
+         IsAtMediaUAShadowBoundary(element) || style.IsFloating() ||
          style.HasOutOfFlowPosition() || IsOutermostSVGElement(element) ||
          IsA<HTMLRTElement>(element);
 }
diff --git a/third_party/blink/renderer/core/dom/document.idl b/third_party/blink/renderer/core/dom/document.idl
index 550aa4c6..cb58ee7 100644
--- a/third_party/blink/renderer/core/dom/document.idl
+++ b/third_party/blink/renderer/core/dom/document.idl
@@ -169,7 +169,7 @@
     // Custom Elements
     // https://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-register
     // FIXME: The registerElement return type should be Function.
-    [RuntimeEnabled=CustomElementsV0, CallWith=ScriptState, CustomElementCallbacks, RaisesException, DeprecateAs=DocumentRegisterElement] any registerElement(DOMString type, optional ElementRegistrationOptions options);
+    [RuntimeEnabled=CustomElementsV0, CallWith=ScriptState, CustomElementCallbacks, RaisesException, DeprecateAs=DocumentRegisterElement] any registerElement(DOMString type, optional ElementRegistrationOptions options = {});
     // https://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-instantiate
     [CustomElementCallbacks, PerWorldBindings, RaisesException, ImplementedAs=CreateElementForBinding] Element createElement(DOMString localName, (DOMString or ElementCreationOptions) options);
     [CustomElementCallbacks, RaisesException] Element createElementNS(DOMString? namespaceURI, DOMString qualifiedName, (DOMString or ElementCreationOptions) options);
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index c994de3..9713f25 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -5408,8 +5408,6 @@
     return false;
   if (pseudo_id == kPseudoIdFirstLetter && IsSVGElement())
     return false;
-  if (pseudo_id == kPseudoIdMarker && IsA<HTMLFieldSetElement>(this))
-    return false;
   if (const ComputedStyle* style = GetComputedStyle())
     return style->CanGeneratePseudoElement(pseudo_id);
   return false;
diff --git a/third_party/blink/renderer/core/dom/element.idl b/third_party/blink/renderer/core/dom/element.idl
index 2f0674c6..1434891 100644
--- a/third_party/blink/renderer/core/dom/element.idl
+++ b/third_party/blink/renderer/core/dom/element.idl
@@ -96,7 +96,7 @@
 
     // Pointer Lock
     // https://w3c.github.io/pointerlock/#extensions-to-the-element-interface
-    [MeasureAs=ElementRequestPointerLock] void requestPointerLock(optional PointerLockOptions options);
+    [MeasureAs=ElementRequestPointerLock] void requestPointerLock(optional PointerLockOptions options = {});
 
     // CSSOM View Module
     // https://drafts.csswg.org/cssom-view/#extension-to-the-element-interface
@@ -105,12 +105,12 @@
 
     // TODO(sunyunjia): Add default value for scrollIntoView() once
     // crbug.com/734599 is fixed.
-    void scrollIntoView(optional (ScrollIntoViewOptions or boolean) arg);
-    [ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options);
+    void scrollIntoView(optional (ScrollIntoViewOptions or boolean) arg = {});
+    [ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options = {});
     [ImplementedAs=scrollTo] void scroll(unrestricted double x, unrestricted double y);
-    void scrollTo(optional ScrollToOptions options);
+    void scrollTo(optional ScrollToOptions options = {});
     void scrollTo(unrestricted double x, unrestricted double y);
-    void scrollBy(optional ScrollToOptions options);
+    void scrollBy(optional ScrollToOptions options = {});
     void scrollBy(unrestricted double x, unrestricted double y);
     [Affects=Nothing] attribute unrestricted double scrollTop;
     [Affects=Nothing] attribute unrestricted double scrollLeft;
diff --git a/third_party/blink/renderer/core/dom/events/custom_event.idl b/third_party/blink/renderer/core/dom/events/custom_event.idl
index 8481868..0bb00fd 100644
--- a/third_party/blink/renderer/core/dom/events/custom_event.idl
+++ b/third_party/blink/renderer/core/dom/events/custom_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=(Window,Worker)
 ] interface CustomEvent : Event {
-    [CallWith=ScriptState] constructor(DOMString type, optional CustomEventInit eventInitDict);
+    [CallWith=ScriptState] constructor(DOMString type, optional CustomEventInit eventInitDict = {});
     [CallWith=ScriptState] readonly attribute any detail;
 
     [Measure, CallWith=ScriptState] void initCustomEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional any detail = null);
diff --git a/third_party/blink/renderer/core/dom/events/event.idl b/third_party/blink/renderer/core/dom/events/event.idl
index 38dfc6a..88b05a4 100644
--- a/third_party/blink/renderer/core/dom/events/event.idl
+++ b/third_party/blink/renderer/core/dom/events/event.idl
@@ -23,7 +23,7 @@
 [
     Exposed=(Window,Worker,AudioWorklet)
 ] interface Event {
-    constructor(DOMString type, optional EventInit eventInitDict);
+    constructor(DOMString type, optional EventInit eventInitDict = {});
     readonly attribute DOMString type;
     readonly attribute EventTarget? target;
     readonly attribute EventTarget? currentTarget;
diff --git a/third_party/blink/renderer/core/dom/mutation_observer.idl b/third_party/blink/renderer/core/dom/mutation_observer.idl
index 59f2522..6a9679ba 100644
--- a/third_party/blink/renderer/core/dom/mutation_observer.idl
+++ b/third_party/blink/renderer/core/dom/mutation_observer.idl
@@ -38,7 +38,7 @@
     Exposed=Window
 ] interface MutationObserver {
     [CallWith=ScriptState] constructor(MutationCallback callback);
-    [RaisesException] void observe(Node target, optional MutationObserverInit options);
+    [RaisesException] void observe(Node target, optional MutationObserverInit options = {});
     void disconnect();
     sequence<MutationRecord> takeRecords();
 };
diff --git a/third_party/blink/renderer/core/dom/node.idl b/third_party/blink/renderer/core/dom/node.idl
index e027885c..c7e0eb37 100644
--- a/third_party/blink/renderer/core/dom/node.idl
+++ b/third_party/blink/renderer/core/dom/node.idl
@@ -54,7 +54,7 @@
     [Affects=Nothing, PerWorldBindings] readonly attribute Node? lastChild;
     [Affects=Nothing, PerWorldBindings] readonly attribute Node? previousSibling;
     [Affects=Nothing, PerWorldBindings] readonly attribute Node? nextSibling;
-    [MeasureAs=NodeGetRootNode] Node getRootNode(optional GetRootNodeOptions options);
+    [MeasureAs=NodeGetRootNode] Node getRootNode(optional GetRootNodeOptions options = {});
 
     [Affects=Nothing, CEReactions, CustomElementCallbacks] attribute DOMString? nodeValue;
 
diff --git a/third_party/blink/renderer/core/dom/pseudo_element.cc b/third_party/blink/renderer/core/dom/pseudo_element.cc
index 43bb6f3d..de03b12 100644
--- a/third_party/blink/renderer/core/dom/pseudo_element.cc
+++ b/third_party/blink/renderer/core/dom/pseudo_element.cc
@@ -161,6 +161,17 @@
 
 void PseudoElement::AttachLayoutTree(AttachContext& context) {
   DCHECK(!GetLayoutObject());
+
+  // Some elements may have 'display: list-item' but not be list items.
+  // Do not create a layout object for the ::marker in that case.
+  if (pseudo_id_ == kPseudoIdMarker) {
+    LayoutObject* originating_layout = parentNode()->GetLayoutObject();
+    if (!originating_layout || !originating_layout->IsListItemIncludingNG()) {
+      Node::AttachLayoutTree(context);
+      return;
+    }
+  }
+
   {
     AttachLayoutTreeScope scope(this);
     Element::AttachLayoutTree(context);
diff --git a/third_party/blink/renderer/core/editing/finder/text_finder.cc b/third_party/blink/renderer/core/editing/finder/text_finder.cc
index a964a56..0a59fe8 100644
--- a/third_party/blink/renderer/core/editing/finder/text_finder.cc
+++ b/third_party/blink/renderer/core/editing/finder/text_finder.cc
@@ -327,9 +327,9 @@
 }
 
 void TextFinder::ReportFindInPageTerminationToAccessibility() {
-  if (OwnerFrame().Client()) {
-    OwnerFrame().Client()->HandleAccessibilityFindInPageTermination();
-  }
+  GetFrame()
+      ->GetLocalFrameHostRemote()
+      .HandleAccessibilityFindInPageTermination();
 }
 
 void TextFinder::ReportFindInPageResultToAccessibility(int identifier) {
@@ -345,12 +345,14 @@
   Node* end_node = active_match_->endContainer();
   ax_object_cache->HandleTextMarkerDataAdded(start_node, end_node);
 
-  if (OwnerFrame().Client()) {
-    OwnerFrame().Client()->HandleAccessibilityFindInPageResult(
-        identifier, active_match_index_ + 1, blink::WebNode(start_node),
-        active_match_->startOffset(), blink::WebNode(end_node),
-        active_match_->endOffset());
-  }
+  int32_t start_id = ax_object_cache->GetAXID(start_node);
+  int32_t end_id = ax_object_cache->GetAXID(end_node);
+
+  auto params = mojom::blink::FindInPageResultAXParams::New(
+      identifier, active_match_index_ + 1, start_id,
+      active_match_->startOffset(), end_id, active_match_->endOffset());
+  GetFrame()->GetLocalFrameHostRemote().HandleAccessibilityFindInPageResult(
+      std::move(params));
 }
 
 void TextFinder::StartScopingStringMatches(
diff --git a/third_party/blink/renderer/core/editing/ime/edit_context.idl b/third_party/blink/renderer/core/editing/ime/edit_context.idl
index cdf5ecc7..b085b020 100644
--- a/third_party/blink/renderer/core/editing/ime/edit_context.idl
+++ b/third_party/blink/renderer/core/editing/ime/edit_context.idl
@@ -11,7 +11,7 @@
     ActiveScriptWrappable,
     RuntimeEnabled=EditContext
 ] interface EditContext : EventTarget {
-    [CallWith=ScriptState] constructor(optional EditContextInit options);
+    [CallWith=ScriptState] constructor(optional EditContextInit options = {});
     void focus();
     void blur();
     [RaisesException] void updateSelection(unsigned long start, unsigned long end);
diff --git a/third_party/blink/renderer/core/editing/ime/text_format_update_event.idl b/third_party/blink/renderer/core/editing/ime/text_format_update_event.idl
index aea74ba..cbf87a6 100644
--- a/third_party/blink/renderer/core/editing/ime/text_format_update_event.idl
+++ b/third_party/blink/renderer/core/editing/ime/text_format_update_event.idl
@@ -11,7 +11,7 @@
     Exposed=Window,
     RuntimeEnabled=EditContext
 ] interface TextFormatUpdateEvent : Event {
-    constructor(optional TextFormatUpdateEventInit options);
+    constructor(optional TextFormatUpdateEventInit options = {});
     readonly attribute unsigned long formatRangeStart;
     readonly attribute unsigned long formatRangeEnd;
     readonly attribute DOMString underlineColor;
diff --git a/third_party/blink/renderer/core/editing/ime/text_update_event.idl b/third_party/blink/renderer/core/editing/ime/text_update_event.idl
index ca71b9af..f622e18 100644
--- a/third_party/blink/renderer/core/editing/ime/text_update_event.idl
+++ b/third_party/blink/renderer/core/editing/ime/text_update_event.idl
@@ -12,7 +12,7 @@
     Exposed=Window,
     RuntimeEnabled=EditContext
 ] interface TextUpdateEvent : Event {
-    constructor(optional TextUpdateEventInit options);
+    constructor(optional TextUpdateEventInit options = {});
     readonly attribute unsigned long updateRangeStart;
     readonly attribute unsigned long updateRangeEnd;
     readonly attribute DOMString updateText;
diff --git a/third_party/blink/renderer/core/editing/visible_units_line.cc b/third_party/blink/renderer/core/editing/visible_units_line.cc
index 014e69a..3da1252a 100644
--- a/third_party/blink/renderer/core/editing/visible_units_line.cc
+++ b/third_party/blink/renderer/core/editing/visible_units_line.cc
@@ -72,7 +72,7 @@
     DCHECK(line_box.IsLineBox()) << line_box;
     const PhysicalOffset start_point = line_box.LineStartPoint();
     return FromPositionInDOMTree<Strategy>(
-        line_box.CursorForDescendants().PositionForPoint(start_point));
+        line_box.PositionForPointInInlineBox(start_point));
   }
 
   const InlineBox* inline_box =
@@ -254,7 +254,7 @@
     line_box.MoveToContainingLine();
     const PhysicalOffset end_point = line_box.LineEndPoint();
     return FromPositionInDOMTree<Strategy>(
-        line_box.CursorForDescendants().PositionForPoint(end_point));
+        line_box.PositionForPointInInlineBox(end_point));
   }
 
   const InlineBox* inline_box =
diff --git a/third_party/blink/renderer/core/events/animation_event.idl b/third_party/blink/renderer/core/events/animation_event.idl
index daa8463..e32d8e6e 100644
--- a/third_party/blink/renderer/core/events/animation_event.idl
+++ b/third_party/blink/renderer/core/events/animation_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window
 ] interface AnimationEvent : Event {
-    constructor(DOMString type, optional AnimationEventInit eventInitDict);
+    constructor(DOMString type, optional AnimationEventInit eventInitDict = {});
     readonly attribute DOMString animationName;
     readonly attribute double elapsedTime;
     readonly attribute DOMString pseudoElement;
diff --git a/third_party/blink/renderer/core/events/animation_playback_event.idl b/third_party/blink/renderer/core/events/animation_playback_event.idl
index f76416e5..00e5e91 100644
--- a/third_party/blink/renderer/core/events/animation_playback_event.idl
+++ b/third_party/blink/renderer/core/events/animation_playback_event.idl
@@ -8,7 +8,7 @@
     RuntimeEnabled=WebAnimationsAPI,
     Exposed=Window
 ] interface AnimationPlaybackEvent : Event {
-    constructor(DOMString type, optional AnimationPlaybackEventInit eventInitDict);
+    constructor(DOMString type, optional AnimationPlaybackEventInit eventInitDict = {});
     readonly attribute double? currentTime;
     readonly attribute double? timelineTime;
 };
diff --git a/third_party/blink/renderer/core/events/application_cache_error_event.idl b/third_party/blink/renderer/core/events/application_cache_error_event.idl
index 4a07aff..80db4d8 100644
--- a/third_party/blink/renderer/core/events/application_cache_error_event.idl
+++ b/third_party/blink/renderer/core/events/application_cache_error_event.idl
@@ -11,7 +11,7 @@
 [
     SecureContext=RestrictAppCacheToSecureContexts
 ] interface ApplicationCacheErrorEvent : Event {
-    constructor(DOMString type, optional ApplicationCacheErrorEventInit eventInitDict);
+    constructor(DOMString type, optional ApplicationCacheErrorEventInit eventInitDict = {});
     readonly attribute DOMString reason;
     readonly attribute DOMString url;
     readonly attribute unsigned short status;
diff --git a/third_party/blink/renderer/core/events/clipboard_event.idl b/third_party/blink/renderer/core/events/clipboard_event.idl
index ebeb3729..ec305c6 100644
--- a/third_party/blink/renderer/core/events/clipboard_event.idl
+++ b/third_party/blink/renderer/core/events/clipboard_event.idl
@@ -7,6 +7,6 @@
 [
     Exposed=Window
 ] interface ClipboardEvent : Event {
-    constructor(DOMString type, optional ClipboardEventInit eventInitDict);
+    constructor(DOMString type, optional ClipboardEventInit eventInitDict = {});
     readonly attribute DataTransfer? clipboardData;
 };
diff --git a/third_party/blink/renderer/core/events/composition_event.idl b/third_party/blink/renderer/core/events/composition_event.idl
index 51e389f..a446b3b 100644
--- a/third_party/blink/renderer/core/events/composition_event.idl
+++ b/third_party/blink/renderer/core/events/composition_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window
 ] interface CompositionEvent : UIEvent {
-    constructor(DOMString type, optional CompositionEventInit eventInitDict);
+    constructor(DOMString type, optional CompositionEventInit eventInitDict = {});
     readonly attribute DOMString data;
 
     // https://w3c.github.io/uievents/#idl-interface-CompositionEvent-initializers
diff --git a/third_party/blink/renderer/core/events/drag_event.idl b/third_party/blink/renderer/core/events/drag_event.idl
index 73c1a18..e586af6 100644
--- a/third_party/blink/renderer/core/events/drag_event.idl
+++ b/third_party/blink/renderer/core/events/drag_event.idl
@@ -7,6 +7,6 @@
 [
     Exposed=Window
 ] interface DragEvent : MouseEvent {
-    constructor(DOMString type, optional DragEventInit eventInitDict);
+    constructor(DOMString type, optional DragEventInit eventInitDict = {});
     [ImplementedAs=getDataTransfer] readonly attribute DataTransfer? dataTransfer;
 };
diff --git a/third_party/blink/renderer/core/events/error_event.idl b/third_party/blink/renderer/core/events/error_event.idl
index 23fba19..d3e4362 100644
--- a/third_party/blink/renderer/core/events/error_event.idl
+++ b/third_party/blink/renderer/core/events/error_event.idl
@@ -33,7 +33,7 @@
 [
     Exposed=(Window,Worker)
 ] interface ErrorEvent : Event {
-    [CallWith=ScriptState] constructor(DOMString type, optional ErrorEventInit eventInitDict);
+    [CallWith=ScriptState] constructor(DOMString type, optional ErrorEventInit eventInitDict = {});
     readonly attribute DOMString message;
     readonly attribute DOMString filename;
     readonly attribute unsigned long lineno;
diff --git a/third_party/blink/renderer/core/events/focus_event.idl b/third_party/blink/renderer/core/events/focus_event.idl
index 7e630ae..1f6c233 100644
--- a/third_party/blink/renderer/core/events/focus_event.idl
+++ b/third_party/blink/renderer/core/events/focus_event.idl
@@ -28,6 +28,6 @@
 [
     Exposed=Window
 ] interface FocusEvent : UIEvent {
-    constructor(DOMString type, optional FocusEventInit eventInitDict);
+    constructor(DOMString type, optional FocusEventInit eventInitDict = {});
     readonly attribute EventTarget? relatedTarget;
 };
diff --git a/third_party/blink/renderer/core/events/hash_change_event.idl b/third_party/blink/renderer/core/events/hash_change_event.idl
index 922b02a..bbfd549 100644
--- a/third_party/blink/renderer/core/events/hash_change_event.idl
+++ b/third_party/blink/renderer/core/events/hash_change_event.idl
@@ -23,7 +23,7 @@
     // TODO(foolip): Exposed=(Window,Worker)
     Exposed=Window
 ] interface HashChangeEvent : Event {
-    constructor(DOMString type, optional HashChangeEventInit eventInitDict);
+    constructor(DOMString type, optional HashChangeEventInit eventInitDict = {});
     readonly attribute DOMString oldURL;
     readonly attribute DOMString newURL;
 };
diff --git a/third_party/blink/renderer/core/events/input_event.idl b/third_party/blink/renderer/core/events/input_event.idl
index 8d105e05..dc356b2 100644
--- a/third_party/blink/renderer/core/events/input_event.idl
+++ b/third_party/blink/renderer/core/events/input_event.idl
@@ -8,7 +8,7 @@
 [
     Exposed=Window
 ] interface InputEvent : UIEvent {
-    constructor(DOMString type, optional InputEventInit eventInitDict);
+    constructor(DOMString type, optional InputEventInit eventInitDict = {});
     readonly attribute DOMString? data;
     readonly attribute boolean isComposing;
 
diff --git a/third_party/blink/renderer/core/events/keyboard_event.idl b/third_party/blink/renderer/core/events/keyboard_event.idl
index 970be00..6ef9b98 100644
--- a/third_party/blink/renderer/core/events/keyboard_event.idl
+++ b/third_party/blink/renderer/core/events/keyboard_event.idl
@@ -18,12 +18,12 @@
  * Boston, MA 02110-1301, USA.
  */
 
-// https://w3c.github.io/uievents/#interface-KeyboardEvent
+// https://w3c.github.io/uievents/#interface-keyboardevent
 
 [
     Exposed=Window
 ] interface KeyboardEvent : UIEvent {
-    [CallWith=ScriptState] constructor(DOMString type, optional KeyboardEventInit eventInitDict);
+    [CallWith=ScriptState] constructor(DOMString type, optional KeyboardEventInit eventInitDict = {});
     // KeyLocationCode
     const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
     const unsigned long DOM_KEY_LOCATION_LEFT     = 0x01;
diff --git a/third_party/blink/renderer/core/events/message_event.idl b/third_party/blink/renderer/core/events/message_event.idl
index 41a7656..c325dfb 100644
--- a/third_party/blink/renderer/core/events/message_event.idl
+++ b/third_party/blink/renderer/core/events/message_event.idl
@@ -30,7 +30,7 @@
 [
     Exposed=(Window,Worker,AudioWorklet)
 ] interface MessageEvent : Event {
-    [RaisesException] constructor(DOMString type, optional MessageEventInit eventInitDict);
+    [RaisesException] constructor(DOMString type, optional MessageEventInit eventInitDict = {});
     [CachedAttribute=IsDataDirty, CallWith=ScriptState] readonly attribute any data;
     readonly attribute DOMString origin;
     readonly attribute DOMString lastEventId;
diff --git a/third_party/blink/renderer/core/events/mouse_event.idl b/third_party/blink/renderer/core/events/mouse_event.idl
index 7a01700..1ba7128 100644
--- a/third_party/blink/renderer/core/events/mouse_event.idl
+++ b/third_party/blink/renderer/core/events/mouse_event.idl
@@ -22,7 +22,7 @@
 [
     Exposed=Window
 ] interface MouseEvent : UIEvent {
-    [CallWith=ScriptState] constructor(DOMString type, optional MouseEventInit eventInitDict);
+    [CallWith=ScriptState] constructor(DOMString type, optional MouseEventInit eventInitDict = {});
     [HighEntropy, MeasureAs=MouseEventScreenX] readonly attribute double screenX;
     [HighEntropy, MeasureAs=MouseEventScreenY] readonly attribute double screenY;
     readonly attribute double           clientX;
diff --git a/third_party/blink/renderer/core/events/overscroll_event.idl b/third_party/blink/renderer/core/events/overscroll_event.idl
index 2fec6da..909255e 100644
--- a/third_party/blink/renderer/core/events/overscroll_event.idl
+++ b/third_party/blink/renderer/core/events/overscroll_event.idl
@@ -7,7 +7,7 @@
 [
     RuntimeEnabled=OverscrollCustomization
 ] interface OverscrollEvent : Event {
-    constructor(DOMString type, boolean bubbles, optional OverscrollEventInit eventInitDict);
+    constructor(DOMString type, boolean bubbles, optional OverscrollEventInit eventInitDict = {});
     readonly attribute double deltaX;
     readonly attribute double deltaY;
 };
diff --git a/third_party/blink/renderer/core/events/page_transition_event.idl b/third_party/blink/renderer/core/events/page_transition_event.idl
index cd18a0c1..977ba8c 100644
--- a/third_party/blink/renderer/core/events/page_transition_event.idl
+++ b/third_party/blink/renderer/core/events/page_transition_event.idl
@@ -29,6 +29,6 @@
     // TODO(foolip): Exposed=(Window,Worker)
     Exposed=Window
 ] interface PageTransitionEvent : Event {
-    constructor(DOMString type, optional PageTransitionEventInit eventInitDict);
+    constructor(DOMString type, optional PageTransitionEventInit eventInitDict = {});
     readonly attribute boolean persisted;
 };
diff --git a/third_party/blink/renderer/core/events/pointer_event.idl b/third_party/blink/renderer/core/events/pointer_event.idl
index dd67123..fc1bdda 100644
--- a/third_party/blink/renderer/core/events/pointer_event.idl
+++ b/third_party/blink/renderer/core/events/pointer_event.idl
@@ -7,7 +7,7 @@
 [
     Exposed=Window
 ] interface PointerEvent : MouseEvent {
-    constructor(DOMString type, optional PointerEventInit eventInitDict);
+    constructor(DOMString type, optional PointerEventInit eventInitDict = {});
     [MeasureAs=PointerEventAttributeCount]   readonly    attribute long      pointerId;
     [MeasureAs=PointerEventAttributeCount]   readonly    attribute double    width;
     [MeasureAs=PointerEventAttributeCount]   readonly    attribute double    height;
diff --git a/third_party/blink/renderer/core/events/pop_state_event.idl b/third_party/blink/renderer/core/events/pop_state_event.idl
index 9049f82..bf478ea 100644
--- a/third_party/blink/renderer/core/events/pop_state_event.idl
+++ b/third_party/blink/renderer/core/events/pop_state_event.idl
@@ -30,6 +30,6 @@
     // TODO(foolip): Exposed=(Window,Worker)
     Exposed=Window
 ] interface PopStateEvent : Event {
-    [CallWith=ScriptState] constructor(DOMString type, optional PopStateEventInit eventInitDict);
+    [CallWith=ScriptState] constructor(DOMString type, optional PopStateEventInit eventInitDict = {});
     [Custom=Getter] readonly attribute any state;
 };
diff --git a/third_party/blink/renderer/core/events/progress_event.idl b/third_party/blink/renderer/core/events/progress_event.idl
index efd0126..72491678 100644
--- a/third_party/blink/renderer/core/events/progress_event.idl
+++ b/third_party/blink/renderer/core/events/progress_event.idl
@@ -26,9 +26,9 @@
 // https://xhr.spec.whatwg.org/#interface-progressevent
 
 [
-    Exposed=(Window,DedicatedWorker,SharedWorker)
+    Exposed=(Window, DedicatedWorker, SharedWorker)
 ] interface ProgressEvent : Event {
-    constructor(DOMString type, optional ProgressEventInit eventInitDict);
+    constructor(DOMString type, optional ProgressEventInit eventInitDict = {});
     readonly attribute boolean lengthComputable;
     readonly attribute unsigned long long loaded;
     readonly attribute unsigned long long total;
diff --git a/third_party/blink/renderer/core/events/touch_event.idl b/third_party/blink/renderer/core/events/touch_event.idl
index 99e449d..80d28b6d 100644
--- a/third_party/blink/renderer/core/events/touch_event.idl
+++ b/third_party/blink/renderer/core/events/touch_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window
 ] interface TouchEvent : UIEvent {
-    constructor(DOMString type, optional TouchEventInit eventInitDict);
+    constructor(DOMString type, optional TouchEventInit eventInitDict = {});
     readonly attribute TouchList touches;
     readonly attribute TouchList targetTouches;
     readonly attribute TouchList changedTouches;
diff --git a/third_party/blink/renderer/core/events/transition_event.idl b/third_party/blink/renderer/core/events/transition_event.idl
index 73cda3f..3f07239 100644
--- a/third_party/blink/renderer/core/events/transition_event.idl
+++ b/third_party/blink/renderer/core/events/transition_event.idl
@@ -29,7 +29,7 @@
 [
     Exposed=Window
 ] interface TransitionEvent : Event {
-    constructor(DOMString type, optional TransitionEventInit eventInitDict);
+    constructor(DOMString type, optional TransitionEventInit eventInitDict = {});
     readonly attribute DOMString propertyName;
     readonly attribute double elapsedTime;
     readonly attribute DOMString pseudoElement;
diff --git a/third_party/blink/renderer/core/events/ui_event.idl b/third_party/blink/renderer/core/events/ui_event.idl
index 28eceaa..47212cb 100644
--- a/third_party/blink/renderer/core/events/ui_event.idl
+++ b/third_party/blink/renderer/core/events/ui_event.idl
@@ -22,7 +22,7 @@
 [
     Exposed=Window
 ] interface UIEvent : Event {
-    constructor(DOMString type, optional UIEventInit eventInitDict);
+    constructor(DOMString type, optional UIEventInit eventInitDict = {});
     readonly attribute Window? view;
     readonly attribute long detail;
     readonly attribute InputDeviceCapabilities? sourceCapabilities;
diff --git a/third_party/blink/renderer/core/events/wheel_event.idl b/third_party/blink/renderer/core/events/wheel_event.idl
index a49395b..8ad0c31 100644
--- a/third_party/blink/renderer/core/events/wheel_event.idl
+++ b/third_party/blink/renderer/core/events/wheel_event.idl
@@ -24,7 +24,7 @@
 [
     Exposed=Window
 ] interface WheelEvent : MouseEvent {
-    constructor(DOMString type, optional WheelEventInit eventInitDict);
+    constructor(DOMString type, optional WheelEventInit eventInitDict = {});
     // DeltaModeCode
     const unsigned long DOM_DELTA_PIXEL = 0x00;
     const unsigned long DOM_DELTA_LINE = 0x01;
diff --git a/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc b/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc
index 852199f..5f98eb0 100644
--- a/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc
@@ -427,15 +427,6 @@
   return GetFrame()->View()->GetCompositingRect();
 }
 
-void WebRemoteFrameImpl::RenderFallbackContent() const {
-  // TODO(ekaramad): If the owner renders its own content, then the current
-  // ContentFrame() should detach and free-up the OOPIF process (see
-  // https://crbug.com/850223).
-  auto* owner = frame_->DeprecatedLocalOwner();
-  DCHECK(IsA<HTMLObjectElement>(owner));
-  owner->RenderFallbackContent(frame_);
-}
-
 WebRemoteFrameImpl::WebRemoteFrameImpl(
     WebTreeScopeType scope,
     WebRemoteFrameClient* client,
diff --git a/third_party/blink/renderer/core/exported/web_remote_frame_impl.h b/third_party/blink/renderer/core/exported/web_remote_frame_impl.h
index 580cb4f1..838e9978 100644
--- a/third_party/blink/renderer/core/exported/web_remote_frame_impl.h
+++ b/third_party/blink/renderer/core/exported/web_remote_frame_impl.h
@@ -104,7 +104,6 @@
   void SetHadStickyUserActivationBeforeNavigation(bool value) override;
   v8::Local<v8::Object> GlobalProxy() const override;
   WebRect GetCompositingRect() override;
-  void RenderFallbackContent() const override;
 
   void InitializeCoreFrame(Page&,
                            FrameOwner*,
diff --git a/third_party/blink/renderer/core/fetch/request.idl b/third_party/blink/renderer/core/fetch/request.idl
index 1f2fe64..a275fe5 100644
--- a/third_party/blink/renderer/core/fetch/request.idl
+++ b/third_party/blink/renderer/core/fetch/request.idl
@@ -11,8 +11,8 @@
 enum RequestMode { "navigate", "same-origin", "no-cors", "cors" };
 enum RequestCredentials { "omit", "same-origin", "include" };
 enum RequestRedirect { "follow", "error", "manual" };
-enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", 
-    "only-if-cached" };
+enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache",
+                    "only-if-cached" };
 enum RequestImportance {"low", "auto", "high"};
 
 // https://w3c.github.io/webappsec-referrer-policy/#referrer-policies
@@ -33,7 +33,7 @@
     ActiveScriptWrappable,
     Exposed=(Window,Worker)
 ] interface Request {
-    [CallWith=ScriptState, RaisesException] constructor(RequestInfo input, optional RequestInit requestInitDict);
+    [CallWith=ScriptState, RaisesException] constructor(RequestInfo input, optional RequestInit init = {});
     readonly attribute ByteString method;
     readonly attribute USVString url;
     [ImplementedAs=getHeaders, SameObject] readonly attribute Headers headers;
diff --git a/third_party/blink/renderer/core/fetch/response.idl b/third_party/blink/renderer/core/fetch/response.idl
index 533993a..1ae9071 100644
--- a/third_party/blink/renderer/core/fetch/response.idl
+++ b/third_party/blink/renderer/core/fetch/response.idl
@@ -12,7 +12,7 @@
 ] interface Response {
     // TODO(yhirano): We use "any" for body because the IDL processor doesn't
     // recognize ReadableStream implemented with V8 extras. Fix it.
-    [CallWith=ScriptState, RaisesException] constructor(optional any body, optional ResponseInit init);
+    [CallWith=ScriptState, RaisesException] constructor(optional any body, optional ResponseInit init = {});
     [CallWith=ScriptState, NewObject] static Response error();
     [CallWith=ScriptState, NewObject, RaisesException] static Response redirect(USVString url, optional unsigned short status = 302);
     readonly attribute ResponseType type;
diff --git a/third_party/blink/renderer/core/fetch/window_fetch.idl b/third_party/blink/renderer/core/fetch/window_fetch.idl
index a6170ea..75b9179 100644
--- a/third_party/blink/renderer/core/fetch/window_fetch.idl
+++ b/third_party/blink/renderer/core/fetch/window_fetch.idl
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// https://fetch.spec.whatwg.org/#fetch-method
+
 [
     ImplementedAs=GlobalFetch
 ] partial interface Window {
-    [CallWith=ScriptState, NewObject, RaisesException] Promise<Response> fetch(RequestInfo input, optional RequestInit init);
+    [CallWith=ScriptState, NewObject, RaisesException] Promise<Response> fetch(RequestInfo input, optional RequestInit init = {});
 };
diff --git a/third_party/blink/renderer/core/fetch/worker_fetch.idl b/third_party/blink/renderer/core/fetch/worker_fetch.idl
index b210f6cf..e6d276db 100644
--- a/third_party/blink/renderer/core/fetch/worker_fetch.idl
+++ b/third_party/blink/renderer/core/fetch/worker_fetch.idl
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// https://fetch.spec.whatwg.org/#fetch-method
+
 [
     ImplementedAs=GlobalFetch
 ] partial interface WorkerGlobalScope {
-    [CallWith=ScriptState, NewObject, RaisesException] Promise<Response> fetch(RequestInfo input, optional RequestInit init);
+    [CallWith=ScriptState, NewObject, RaisesException] Promise<Response> fetch(RequestInfo input, optional RequestInit init = {});
 };
diff --git a/third_party/blink/renderer/core/fileapi/blob.idl b/third_party/blink/renderer/core/fileapi/blob.idl
index d1b814b2..5247341a 100644
--- a/third_party/blink/renderer/core/fileapi/blob.idl
+++ b/third_party/blink/renderer/core/fileapi/blob.idl
@@ -35,7 +35,7 @@
     Exposed=(Window,Worker),
     Serializable
 ] interface Blob {
-    [CallWith=ExecutionContext] constructor(optional sequence<BlobPart> blobParts, optional BlobPropertyBag options);
+    [CallWith=ExecutionContext] constructor(optional sequence<BlobPart> blobParts, optional BlobPropertyBag options = {});
     readonly attribute unsigned long long size;
     readonly attribute DOMString type;
 
diff --git a/third_party/blink/renderer/core/fileapi/file.idl b/third_party/blink/renderer/core/fileapi/file.idl
index 8113ac9..4339a27 100644
--- a/third_party/blink/renderer/core/fileapi/file.idl
+++ b/third_party/blink/renderer/core/fileapi/file.idl
@@ -29,7 +29,7 @@
     Exposed=(Window,Worker),
     Serializable
 ] interface File : Blob {
-    [CallWith=ExecutionContext] constructor(sequence<BlobPart> fileBits, USVString fileName, optional FilePropertyBag options);
+    [CallWith=ExecutionContext] constructor(sequence<BlobPart> fileBits, USVString fileName, optional FilePropertyBag options = {});
     readonly attribute DOMString name;
     readonly attribute long long lastModified;
 
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index 66a7629f..13a7940 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -43,7 +43,6 @@
 #include "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/blocked_navigation_types.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/interface_registry.h"
 #include "third_party/blink/public/platform/scheduler/web_resource_loading_task_runner_handle.h"
 #include "third_party/blink/public/platform/web_content_settings_client.h"
@@ -1998,6 +1997,14 @@
     document->CountUse(feature);
 }
 
+void LocalFrame::RenderFallbackContent() {
+  // TODO(ekaramad): If the owner renders its own content, then the current
+  // ContentFrame() should detach (see https://crbug.com/850223).
+  auto* owner = DeprecatedLocalOwner();
+  DCHECK(IsA<HTMLObjectElement>(owner));
+  owner->RenderFallbackContent(this);
+}
+
 void LocalFrame::BindToReceiver(
     blink::LocalFrame* frame,
     mojo::PendingAssociatedReceiver<mojom::blink::LocalFrame> receiver) {
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
index 9cd3fd29..9107b04 100644
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -485,6 +485,7 @@
   void CopyImageAt(const gfx::Point& window_point) final;
   void SaveImageAt(const gfx::Point& window_point) final;
   void ReportBlinkFeatureUsage(const Vector<mojom::blink::WebFeature>&) final;
+  void RenderFallbackContent() final;
 
   SystemClipboard* GetSystemClipboard();
 
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc
index 4d99722..b78e8d0 100644
--- a/third_party/blink/renderer/core/frame/remote_frame.cc
+++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -215,6 +215,15 @@
   return false;
 }
 
+void RemoteFrame::RenderFallbackContent() {
+  // TODO(ekaramad): If the owner renders its own content, then the current
+  // ContentFrame() should detach and free-up the OOPIF process (see
+  // https://crbug.com/850223).
+  auto* owner = DeprecatedLocalOwner();
+  DCHECK(IsA<HTMLObjectElement>(owner));
+  owner->RenderFallbackContent(this);
+}
+
 void RemoteFrame::DidFocus() {
   GetRemoteFrameHostRemote().DidFocusFrame();
 }
diff --git a/third_party/blink/renderer/core/frame/remote_frame.h b/third_party/blink/renderer/core/frame/remote_frame.h
index c86c18e..3328f203 100644
--- a/third_party/blink/renderer/core/frame/remote_frame.h
+++ b/third_party/blink/renderer/core/frame/remote_frame.h
@@ -112,6 +112,7 @@
   void SetEmbeddingToken(
       const base::UnguessableToken& embedding_token) override;
   void SetPageFocus(bool is_focused) override;
+  void RenderFallbackContent() override;
 
  private:
   // Frame protected overrides:
diff --git a/third_party/blink/renderer/core/frame/remote_frame_owner.cc b/third_party/blink/renderer/core/frame/remote_frame_owner.cc
index 9d6fdfa..129c692 100644
--- a/third_party/blink/renderer/core/frame/remote_frame_owner.cc
+++ b/third_party/blink/renderer/core/frame/remote_frame_owner.cc
@@ -73,9 +73,7 @@
   DCHECK(failed_frame->IsLocalFrame());
   LocalFrame* local_frame = To<LocalFrame>(failed_frame);
   DCHECK(local_frame->IsProvisional() || ContentFrame() == local_frame);
-  WebLocalFrameImpl::FromFrame(local_frame)
-      ->Client()
-      ->RenderFallbackContentInParentProcess();
+  local_frame->GetLocalFrameHostRemote().RenderFallbackContentInParentProcess();
 }
 
 void RemoteFrameOwner::IntrinsicSizingInfoChanged() {
diff --git a/third_party/blink/renderer/core/frame/reporting_observer.idl b/third_party/blink/renderer/core/frame/reporting_observer.idl
index ea845ee..134e31d 100644
--- a/third_party/blink/renderer/core/frame/reporting_observer.idl
+++ b/third_party/blink/renderer/core/frame/reporting_observer.idl
@@ -9,7 +9,7 @@
 [
     ActiveScriptWrappable
 ] interface ReportingObserver {
-    [CallWith=ExecutionContext] constructor(ReportingObserverCallback callback, optional ReportingObserverOptions options);
+    [CallWith=ExecutionContext] constructor(ReportingObserverCallback callback, optional ReportingObserverOptions options = {});
     void observe();
     void disconnect();
     ReportList takeRecords();
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index 6a9cbac..b425add4 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -2179,14 +2179,6 @@
                                                            : NoLoadInProgress;
 }
 
-void WebLocalFrameImpl::RenderFallbackContent() const {
-  // TODO(ekaramad): If the owner renders its own content, then the current
-  // ContentFrame() should detach (see https://crbug.com/850223).
-  auto* owner = frame_->DeprecatedLocalOwner();
-  DCHECK(IsA<HTMLObjectElement>(owner));
-  owner->RenderFallbackContent(frame_);
-}
-
 // Called when a navigation is blocked because a Content Security Policy (CSP)
 // is infringed.
 void WebLocalFrameImpl::ReportContentSecurityPolicyViolation(
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
index a003e40..62b69c6 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -335,7 +335,6 @@
   void LoadJavaScriptURL(const WebURL&) override;
   FallbackContentResult MaybeRenderFallbackContent(
       const WebURLError&) const override;
-  void RenderFallbackContent() const override;
   void SetCommittedFirstRealLoad() override;
   bool HasCommittedFirstRealLoad() override;
   bool WillStartNavigation(
diff --git a/third_party/blink/renderer/core/frame/window.idl b/third_party/blink/renderer/core/frame/window.idl
index ef5f134..8ad9e12 100644
--- a/third_party/blink/renderer/core/frame/window.idl
+++ b/third_party/blink/renderer/core/frame/window.idl
@@ -85,7 +85,7 @@
 
     [CrossOrigin, CallWith=Isolate, RaisesException] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
 
-    [CrossOrigin, CallWith=Isolate, RaisesException] void postMessage(any message, optional WindowPostMessageOptions options);
+    [CrossOrigin, CallWith=Isolate, RaisesException] void postMessage(any message, optional WindowPostMessageOptions options = {});
 
     // WindowOrWorkerGlobalScope mixin
     // https://html.spec.whatwg.org/C/#windoworworkerglobalscope-mixin
@@ -108,7 +108,7 @@
 
     // Cooperative Scheduling of Background Tasks
     // https://www.w3.org/TR/requestidlecallback/#window_extensions
-    [Measure] long requestIdleCallback(IdleRequestCallback callback, optional IdleRequestOptions options);
+    [Measure] long requestIdleCallback(IdleRequestCallback callback, optional IdleRequestOptions options = {});
     void cancelIdleCallback(long handle);
 
     // CSS Object Model (CSSOM)
@@ -135,11 +135,11 @@
     [HighEntropy, MeasureAs=WindowPageXOffset, Replaceable] readonly attribute double pageXOffset;
     [HighEntropy, MeasureAs=WindowScrollY, Replaceable] readonly attribute double scrollY;
     [HighEntropy, MeasureAs=WindowPageYOffset, Replaceable] readonly attribute double pageYOffset;
-    void scroll(optional ScrollToOptions options);
+    void scroll(optional ScrollToOptions options = {});
     void scroll(unrestricted double x, unrestricted double y);
-    void scrollTo(optional ScrollToOptions options);
+    void scrollTo(optional ScrollToOptions options = {});
     void scrollTo(unrestricted double x, unrestricted double y);
-    void scrollBy(optional ScrollToOptions options);
+    void scrollBy(optional ScrollToOptions options = {});
     void scrollBy(unrestricted double x, unrestricted double y);
 
     // Visual Viewport API
diff --git a/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl b/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl
index 6c1bac8..a2bed30b 100644
--- a/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl
+++ b/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl
@@ -25,9 +25,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://html.spec.whatwg.org/C/webappapis.html#windoworworkerglobalscope-mixin
-// https://html.spec.whatwg.org/C/timers-and-user-prompts.html#timers
-
 // https://html.spec.whatwg.org/C/#imagebitmapsource
 typedef (HTMLImageElement or
          SVGImageElement or
@@ -38,6 +35,8 @@
          ImageBitmap or
          OffscreenCanvas) ImageBitmapSource;
 
+// https://html.spec.whatwg.org/C/#windoworworkerglobalscope-mixin
+// https://html.spec.whatwg.org/C/#timers
 [
     LegacyTreatAsPartialInterface,
     Exposed=(Window,Worker)
@@ -56,7 +55,7 @@
 
     // ImageBitmap
     [CallWith=ScriptState, RaisesException] Promise<ImageBitmap> createImageBitmap(
-        ImageBitmapSource imageBitmap, optional ImageBitmapOptions options);
+        ImageBitmapSource imageBitmap, optional ImageBitmapOptions options = {});
     [CallWith=ScriptState, RaisesException] Promise<ImageBitmap> createImageBitmap(
-        ImageBitmapSource imageBitmap, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
+        ImageBitmapSource imageBitmap, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options = {});
 };
diff --git a/third_party/blink/renderer/core/fullscreen/element_fullscreen.idl b/third_party/blink/renderer/core/fullscreen/element_fullscreen.idl
index be3feba0..dcf12e39 100644
--- a/third_party/blink/renderer/core/fullscreen/element_fullscreen.idl
+++ b/third_party/blink/renderer/core/fullscreen/element_fullscreen.idl
@@ -7,16 +7,16 @@
 [
     ImplementedAs=ElementFullscreen
 ] partial interface Element {
-    [CallWith=ScriptState, RaisesException] Promise<void> requestFullscreen(optional FullscreenOptions options);
+    [CallWith=ScriptState, RaisesException] Promise<void> requestFullscreen(optional FullscreenOptions options = {});
 
     attribute EventHandler onfullscreenchange;
     attribute EventHandler onfullscreenerror;
 
     // Mozilla version
-    [LogActivity, LogAllWorlds, MeasureAs=PrefixedElementRequestFullScreen, ImplementedAs=webkitRequestFullscreen] void webkitRequestFullScreen(optional FullscreenOptions options);
+    [LogActivity, LogAllWorlds, MeasureAs=PrefixedElementRequestFullScreen, ImplementedAs=webkitRequestFullscreen] void webkitRequestFullScreen(optional FullscreenOptions options = {});
 
     // W3C version
-    [LogActivity, LogAllWorlds, MeasureAs=PrefixedElementRequestFullscreen] void webkitRequestFullscreen(optional FullscreenOptions options);
+    [LogActivity, LogAllWorlds, MeasureAs=PrefixedElementRequestFullscreen] void webkitRequestFullscreen(optional FullscreenOptions options = {});
 
     attribute EventHandler onwebkitfullscreenchange;
     attribute EventHandler onwebkitfullscreenerror;
diff --git a/third_party/blink/renderer/core/geometry/dom_matrix.idl b/third_party/blink/renderer/core/geometry/dom_matrix.idl
index d360b0ba..1c50634 100644
--- a/third_party/blink/renderer/core/geometry/dom_matrix.idl
+++ b/third_party/blink/renderer/core/geometry/dom_matrix.idl
@@ -9,7 +9,7 @@
     Serializable
 ] interface DOMMatrix : DOMMatrixReadOnly {
     [CallWith=ExecutionContext, RaisesException] constructor(optional (DOMString or sequence<unrestricted double>) init);
-    [RaisesException, NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other);
+    [RaisesException, NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other = {});
     [RaisesException, NewObject] static DOMMatrix fromFloat32Array(Float32Array array32);
     [RaisesException, NewObject] static DOMMatrix fromFloat64Array(Float64Array array64);
 
@@ -39,8 +39,8 @@
     inherit attribute unrestricted double m44;
 
     // Mutable transform methods
-    [RaisesException] DOMMatrix multiplySelf(optional DOMMatrixInit other);
-    [RaisesException] DOMMatrix preMultiplySelf(optional DOMMatrixInit other);
+    [RaisesException] DOMMatrix multiplySelf(optional DOMMatrixInit other = {});
+    [RaisesException] DOMMatrix preMultiplySelf(optional DOMMatrixInit other = {});
     DOMMatrix translateSelf(optional unrestricted double tx = 0,
                             optional unrestricted double ty = 0,
                             optional unrestricted double tz = 0);
diff --git a/third_party/blink/renderer/core/geometry/dom_matrix_read_only.idl b/third_party/blink/renderer/core/geometry/dom_matrix_read_only.idl
index 0b14b31..e1279dd0 100644
--- a/third_party/blink/renderer/core/geometry/dom_matrix_read_only.idl
+++ b/third_party/blink/renderer/core/geometry/dom_matrix_read_only.idl
@@ -9,7 +9,7 @@
     Serializable
 ] interface DOMMatrixReadOnly {
     [CallWith=ExecutionContext, RaisesException] constructor(optional (DOMString or sequence<unrestricted double>) init);
-    [RaisesException, NewObject] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other);
+    [RaisesException, NewObject] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other = {});
     [RaisesException, NewObject] static DOMMatrixReadOnly fromFloat32Array(Float32Array array32);
     [RaisesException, NewObject] static DOMMatrixReadOnly fromFloat64Array(Float64Array array64);
 
@@ -68,12 +68,12 @@
                               optional unrestricted double angle = 0);
     DOMMatrix skewX(optional unrestricted double sx = 0);
     DOMMatrix skewY(optional unrestricted double sy = 0);
-    [RaisesException] DOMMatrix multiply(optional DOMMatrixInit other);
+    [RaisesException] DOMMatrix multiply(optional DOMMatrixInit other = {});
     DOMMatrix flipX();
     DOMMatrix flipY();
     DOMMatrix inverse();
 
-    DOMPoint transformPoint(optional DOMPointInit point);
+    DOMPoint transformPoint(optional DOMPointInit point = {});
     Float32Array toFloat32Array();
     Float64Array toFloat64Array();
     [Exposed=Window, RaisesException] stringifier;
diff --git a/third_party/blink/renderer/core/geometry/dom_point.idl b/third_party/blink/renderer/core/geometry/dom_point.idl
index 320b046..1bdd4d0 100644
--- a/third_party/blink/renderer/core/geometry/dom_point.idl
+++ b/third_party/blink/renderer/core/geometry/dom_point.idl
@@ -10,7 +10,7 @@
 ] interface DOMPoint : DOMPointReadOnly {
     constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
                 optional unrestricted double z = 0, optional unrestricted double w = 1);
-    [NewObject] static DOMPoint fromPoint(optional DOMPointInit other);
+    [NewObject] static DOMPoint fromPoint(optional DOMPointInit other = {});
     inherit attribute unrestricted double x;
     inherit attribute unrestricted double y;
     inherit attribute unrestricted double z;
diff --git a/third_party/blink/renderer/core/geometry/dom_point_read_only.idl b/third_party/blink/renderer/core/geometry/dom_point_read_only.idl
index ac232be..fc84bc4 100644
--- a/third_party/blink/renderer/core/geometry/dom_point_read_only.idl
+++ b/third_party/blink/renderer/core/geometry/dom_point_read_only.idl
@@ -10,14 +10,14 @@
 ] interface DOMPointReadOnly {
     constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
                 optional unrestricted double z = 0, optional unrestricted double w = 1);
-    [NewObject] static DOMPointReadOnly fromPoint(optional DOMPointInit other);
+    [NewObject] static DOMPointReadOnly fromPoint(optional DOMPointInit other = {});
 
     readonly attribute unrestricted double x;
     readonly attribute unrestricted double y;
     readonly attribute unrestricted double z;
     readonly attribute unrestricted double w;
 
-    [RaisesException, NewObject] DOMPoint matrixTransform(optional DOMMatrixInit matrix);
+    [RaisesException, NewObject] DOMPoint matrixTransform(optional DOMMatrixInit matrix = {});
 
     [CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
 };
diff --git a/third_party/blink/renderer/core/geometry/dom_quad.idl b/third_party/blink/renderer/core/geometry/dom_quad.idl
index 4913130..8a589be 100644
--- a/third_party/blink/renderer/core/geometry/dom_quad.idl
+++ b/third_party/blink/renderer/core/geometry/dom_quad.idl
@@ -8,9 +8,9 @@
     Exposed=(Window,Worker),
     Serializable
 ] interface DOMQuad {
-    constructor(optional DOMPointInit p1, optional DOMPointInit p2, optional DOMPointInit p3, optional DOMPointInit p4);
-    [NewObject] static DOMQuad fromRect(optional DOMRectInit other);
-    [NewObject] static DOMQuad fromQuad(optional DOMQuadInit other);
+    constructor(optional DOMPointInit p1 = {}, optional DOMPointInit p2 = {}, optional DOMPointInit p3 = {}, optional DOMPointInit p4 = {});
+    [NewObject] static DOMQuad fromRect(optional DOMRectInit other = {});
+    [NewObject] static DOMQuad fromQuad(optional DOMQuadInit other = {});
 
     [SameObject] readonly attribute DOMPoint p1;
     [SameObject] readonly attribute DOMPoint p2;
diff --git a/third_party/blink/renderer/core/geometry/dom_rect.idl b/third_party/blink/renderer/core/geometry/dom_rect.idl
index a286acc8..4e310352 100644
--- a/third_party/blink/renderer/core/geometry/dom_rect.idl
+++ b/third_party/blink/renderer/core/geometry/dom_rect.idl
@@ -12,7 +12,7 @@
                 optional unrestricted double y = 0,
                 optional unrestricted double width = 0,
                 optional unrestricted double height = 0);
-    [NewObject] static DOMRect fromRect(optional DOMRectInit other);
+    [NewObject] static DOMRect fromRect(optional DOMRectInit other = {});
 
     inherit attribute unrestricted double x;
     inherit attribute unrestricted double y;
diff --git a/third_party/blink/renderer/core/geometry/dom_rect_read_only.idl b/third_party/blink/renderer/core/geometry/dom_rect_read_only.idl
index 39f1e90..e26b356 100644
--- a/third_party/blink/renderer/core/geometry/dom_rect_read_only.idl
+++ b/third_party/blink/renderer/core/geometry/dom_rect_read_only.idl
@@ -10,7 +10,7 @@
 ] interface DOMRectReadOnly {
     constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
                 optional unrestricted double width = 0, optional unrestricted double height = 0);
-    [NewObject] static DOMRectReadOnly fromRect(optional DOMRectInit other);
+    [NewObject] static DOMRectReadOnly fromRect(optional DOMRectInit other = {});
 
     readonly attribute unrestricted double x;
     readonly attribute unrestricted double y;
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl b/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl
index 27b54f8..d8f04c4 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl
@@ -40,7 +40,7 @@
 
     [HighEntropy, MeasureAs=CanvasToBlob, RaisesException] void toBlob(BlobCallback _callback, optional DOMString type = "image/png", optional any quality);
 
-    [HighEntropy, RuntimeEnabled=CanvasColorManagement, MeasureAs=CanvasConvertToBlob, RaisesException, CallWith=ScriptState] Promise<Blob> convertToBlob(optional ImageEncodeOptions options);
+    [HighEntropy, RuntimeEnabled=CanvasColorManagement, MeasureAs=CanvasConvertToBlob, RaisesException, CallWith=ScriptState] Promise<Blob> convertToBlob(optional ImageEncodeOptions options = {});
 };
 
 // https://html.spec.whatwg.org/C/#blobcallback
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_registry.idl b/third_party/blink/renderer/core/html/custom/custom_element_registry.idl
index 986991b7..144566b 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_registry.idl
+++ b/third_party/blink/renderer/core/html/custom/custom_element_registry.idl
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://html.spec.whatwg.org/C/custom-elements.html#customelementregistry
+// https://html.spec.whatwg.org/C/#customelementregistry
 
 [Exposed=Window]
 interface CustomElementRegistry {
-    [CallWith=ScriptState, CEReactions, CustomElementCallbacks, RaisesException, MeasureAs=CustomElementRegistryDefine] void define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options);
+    [CallWith=ScriptState, CEReactions, CustomElementCallbacks, RaisesException, MeasureAs=CustomElementRegistryDefine] void define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options = {});
     any get(DOMString name);
     [CallWith=ScriptState,RaisesException] Promise<void> whenDefined(DOMString name);
     [CEReactions] void upgrade(Node root);
diff --git a/third_party/blink/renderer/core/html/document_all_name_collection.h b/third_party/blink/renderer/core/html/document_all_name_collection.h
index 8de9fcd..d8f7fba 100644
--- a/third_party/blink/renderer/core/html/document_all_name_collection.h
+++ b/third_party/blink/renderer/core/html/document_all_name_collection.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_DOCUMENT_ALL_NAME_COLLECTION_H_
 
 #include "third_party/blink/renderer/core/html/html_name_collection.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
 
@@ -21,11 +22,12 @@
   bool ElementMatches(const Element&) const;
 };
 
-DEFINE_TYPE_CASTS(DocumentAllNameCollection,
-                  LiveNodeListBase,
-                  collection,
-                  collection->GetType() == kDocumentAllNamedItems,
-                  collection.GetType() == kDocumentAllNamedItems);
+template <>
+struct DowncastTraits<DocumentAllNameCollection> {
+  static bool AllowFrom(const LiveNodeListBase& collection) {
+    return collection.GetType() == kDocumentAllNamedItems;
+  }
+};
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/core/html/document_name_collection.h b/third_party/blink/renderer/core/html/document_name_collection.h
index 39f342c..3757a9f9 100644
--- a/third_party/blink/renderer/core/html/document_name_collection.h
+++ b/third_party/blink/renderer/core/html/document_name_collection.h
@@ -7,6 +7,7 @@
 
 #include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/html/html_name_collection.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
 
@@ -24,11 +25,12 @@
   bool ElementMatches(const HTMLElement&) const;
 };
 
-DEFINE_TYPE_CASTS(DocumentNameCollection,
-                  LiveNodeListBase,
-                  collection,
-                  collection->GetType() == kDocumentNamedItems,
-                  collection.GetType() == kDocumentNamedItems);
+template <>
+struct DowncastTraits<DocumentNameCollection> {
+  static bool AllowFrom(const LiveNodeListBase& collection) {
+    return collection.GetType() == kDocumentNamedItems;
+  }
+};
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/core/html/forms/form_data_event.idl b/third_party/blink/renderer/core/html/forms/form_data_event.idl
index c0cdfab..84c7af0 100644
--- a/third_party/blink/renderer/core/html/forms/form_data_event.idl
+++ b/third_party/blink/renderer/core/html/forms/form_data_event.idl
@@ -7,6 +7,6 @@
 [
   Exposed=Window
 ] interface FormDataEvent : Event {
-  constructor(DOMString type, optional FormDataEventInit eventInitDict);
+  constructor(DOMString type, optional FormDataEventInit eventInitDict = {});
   readonly attribute FormData formData;
 };
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc
index 5b4cd431..7ef8db7 100644
--- a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc
+++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc
@@ -202,20 +202,6 @@
   return g_empty_atom;
 }
 
-void HTMLFormControlElement::AttachLayoutTree(AttachContext& context) {
-  HTMLElement::AttachLayoutTree(context);
-
-  // The call to UpdateFromElement() needs to go after the call through
-  // to the base class's attachLayoutTree() because that can sometimes do a
-  // close on the LayoutObject.
-  UpdateFromElement();
-}
-
-void HTMLFormControlElement::UpdateFromElement() {
-  if (auto* layout_object = GetLayoutObject())
-    layout_object->UpdateFromElement();
-}
-
 void HTMLFormControlElement::DidMoveToNewDocument(Document& old_document) {
   ListedElement::DidMoveToNewDocument(old_document);
   HTMLElement::DidMoveToNewDocument(old_document);
@@ -271,11 +257,6 @@
   return FastGetAttribute(html_names::kValueAttr);
 }
 
-void HTMLFormControlElement::DidRecalcStyle(const StyleRecalcChange change) {
-  if (!change.ReattachLayoutTree())
-    UpdateFromElement();
-}
-
 bool HTMLFormControlElement::SupportsFocus() const {
   return !IsDisabledFormControl();
 }
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.h b/third_party/blink/renderer/core/html/forms/html_form_control_element.h
index 86d721d..a29c82a 100644
--- a/third_party/blink/renderer/core/html/forms/html_form_control_element.h
+++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.h
@@ -135,7 +135,6 @@
   void ParseAttribute(const AttributeModificationParams&) override;
   virtual void RequiredAttributeChanged();
   void DisabledAttributeChanged() override;
-  void AttachLayoutTree(AttachContext&) override;
   InsertionNotificationRequest InsertedInto(ContainerNode&) override;
   void RemovedFrom(ContainerNode&) override;
   void WillChangeForm() override;
@@ -146,14 +145,8 @@
   bool IsKeyboardFocusable() const override;
   bool ShouldHaveFocusAppearance() const final;
 
-  void DidRecalcStyle(const StyleRecalcChange) override;
-
   virtual void ResetImpl() {}
 
-  // This is called just after attaching a LayoutObject. However,
-  // GetLayoutObject() can be nullptr.
-  virtual void UpdateFromElement();
-
  private:
   bool IsFormControlElement() const final { return true; }
   bool AlwaysCreateUserAgentShadowRoot() const override { return true; }
diff --git a/third_party/blink/renderer/core/html/forms/html_input_element.cc b/third_party/blink/renderer/core/html/forms/html_input_element.cc
index abfbeac..1c559b7 100644
--- a/third_party/blink/renderer/core/html/forms/html_input_element.cc
+++ b/third_party/blink/renderer/core/html/forms/html_input_element.cc
@@ -1217,7 +1217,7 @@
                                       ExceptionState& exception_state) {
   UseCounter::Count(GetDocument(), WebFeature::kInputElementValueAsDateSetter);
   base::Optional<base::Time> date =
-      NativeValueTraits<IDLDateOrNull>::NativeValue(
+      NativeValueTraits<IDLNullable<IDLDate>>::NativeValue(
           script_state->GetIsolate(), value.V8Value(), exception_state);
   if (exception_state.HadException())
     return;
diff --git a/third_party/blink/renderer/core/html/forms/html_select_element.cc b/third_party/blink/renderer/core/html/forms/html_select_element.cc
index 2e149ba..0aa0e2f 100644
--- a/third_party/blink/renderer/core/html/forms/html_select_element.cc
+++ b/third_party/blink/renderer/core/html/forms/html_select_element.cc
@@ -2103,12 +2103,19 @@
 
 void HTMLSelectElement::DidRecalcStyle(const StyleRecalcChange change) {
   HTMLFormControlElementWithState::DidRecalcStyle(change);
-  if (!change.ReattachLayoutTree() && PopupIsVisible())
+  if (change.ReattachLayoutTree())
+    return;
+  UpdateFromElement();
+  if (PopupIsVisible())
     popup_->UpdateFromElement(PopupMenu::kByStyleChange);
 }
 
 void HTMLSelectElement::AttachLayoutTree(AttachContext& context) {
   HTMLFormControlElementWithState::AttachLayoutTree(context);
+  // The call to UpdateFromElement() needs to go after the call through
+  // to the base class's AttachLayoutTree() because that can sometimes do a
+  // close on the LayoutObject.
+  UpdateFromElement();
 
   if (const ComputedStyle* style = GetComputedStyle()) {
     if (style->Visibility() != EVisibility::kHidden) {
diff --git a/third_party/blink/renderer/core/html/forms/html_select_element.h b/third_party/blink/renderer/core/html/forms/html_select_element.h
index 64fd37e..7967090 100644
--- a/third_party/blink/renderer/core/html/forms/html_select_element.h
+++ b/third_party/blink/renderer/core/html/forms/html_select_element.h
@@ -179,7 +179,7 @@
 
  private:
   const AtomicString& FormControlType() const override;
-  void UpdateFromElement() override;
+  void UpdateFromElement();
 
   bool MayTriggerVirtualKeyboard() const override;
 
diff --git a/third_party/blink/renderer/core/html/html_collection.cc b/third_party/blink/renderer/core/html/html_collection.cc
index f641dc4..d8b509a 100644
--- a/third_party/blink/renderer/core/html/html_collection.cc
+++ b/third_party/blink/renderer/core/html/html_collection.cc
@@ -213,9 +213,10 @@
     case kDocForms:
       return element.HasTagName(html_names::kFormTag);
     case kDocumentNamedItems:
-      return ToDocumentNameCollection(html_collection).ElementMatches(element);
+      return To<DocumentNameCollection>(html_collection)
+          .ElementMatches(element);
     case kDocumentAllNamedItems:
-      return ToDocumentAllNameCollection(html_collection)
+      return To<DocumentAllNameCollection>(html_collection)
           .ElementMatches(element);
     case kTableTBodies:
       return element.HasTagName(html_names::kTbodyTag);
@@ -287,7 +288,7 @@
     case kWindowNamedItems:
       return To<WindowNameCollection>(*this).ElementMatches(element);
     case kDocumentAllNamedItems:
-      return ToDocumentAllNameCollection(*this).ElementMatches(element);
+      return To<DocumentAllNameCollection>(*this).ElementMatches(element);
     default:
       break;
   }
diff --git a/third_party/blink/renderer/core/html/html_or_foreign_element.idl b/third_party/blink/renderer/core/html/html_or_foreign_element.idl
index 8ee6971..a49710e 100644
--- a/third_party/blink/renderer/core/html/html_or_foreign_element.idl
+++ b/third_party/blink/renderer/core/html/html_or_foreign_element.idl
@@ -11,7 +11,7 @@
 
   [CEReactions, Reflect] attribute boolean autofocus;
   [Affects=Nothing, CEReactions, CustomElementCallbacks] attribute long tabIndex;
-  void focus(optional FocusOptions options);
+  void focus(optional FocusOptions options = {});
   void blur();
 };
 
diff --git a/third_party/blink/renderer/core/html/html_slot_element.idl b/third_party/blink/renderer/core/html/html_slot_element.idl
index 3a69ddf..b84b523 100644
--- a/third_party/blink/renderer/core/html/html_slot_element.idl
+++ b/third_party/blink/renderer/core/html/html_slot_element.idl
@@ -24,11 +24,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://w3c.github.io/webcomponents/spec/shadow/#the-slot-element
+// https://html.spec.whatwg.org/C/#the-slot-element
 [HTMLConstructor]
 interface HTMLSlotElement : HTMLElement {
     [CEReactions, Reflect] attribute DOMString name;
-    [ImplementedAs=AssignedNodesForBinding] sequence<Node> assignedNodes(optional AssignedNodesOptions options);
-    [ImplementedAs=AssignedElementsForBinding] sequence<Element> assignedElements(optional AssignedNodesOptions options);
+    [ImplementedAs=AssignedNodesForBinding] sequence<Node> assignedNodes(optional AssignedNodesOptions options = {});
+    [ImplementedAs=AssignedElementsForBinding] sequence<Element> assignedElements(optional AssignedNodesOptions options = {});
     [RuntimeEnabled=ManualSlotting] void assign(sequence<Node> nodes);
 };
diff --git a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
index 9ecff9f..f7226945 100644
--- a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
+++ b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
@@ -6,7 +6,6 @@
 
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
diff --git a/third_party/blink/renderer/core/html/portal/html_portal_element.cc b/third_party/blink/renderer/core/html/portal/html_portal_element.cc
index 94ac4c2..3ec4030 100644
--- a/third_party/blink/renderer/core/html/portal/html_portal_element.cc
+++ b/third_party/blink/renderer/core/html/portal/html_portal_element.cc
@@ -5,7 +5,6 @@
 #include "third_party/blink/renderer/core/html/portal/html_portal_element.h"
 
 #include <utility>
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/mojom/referrer.mojom-blink.h"
 #include "third_party/blink/public/mojom/web_feature/web_feature.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_event_listener.h"
diff --git a/third_party/blink/renderer/core/html/portal/html_portal_element.idl b/third_party/blink/renderer/core/html/portal/html_portal_element.idl
index 4edb54326..088c7ff 100644
--- a/third_party/blink/renderer/core/html/portal/html_portal_element.idl
+++ b/third_party/blink/renderer/core/html/portal/html_portal_element.idl
@@ -9,10 +9,10 @@
   [CEReactions, Reflect, URL] attribute USVString src;
   [CEReactions, Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerPolicy;
 
-  [CallWith=ScriptState, RaisesException, Measure] Promise<void> activate(optional PortalActivateOptions options);
+  [CallWith=ScriptState, RaisesException, Measure] Promise<void> activate(optional PortalActivateOptions options = {});
   [CallWith=ScriptState, RaisesException, Measure] void postMessage(any message, DOMString targetOrigin,
                                                                     optional sequence<object> transfer = []);
-  [CallWith=ScriptState, RaisesException, Measure] void postMessage(any message, optional WindowPostMessageOptions options);
+  [CallWith=ScriptState, RaisesException, Measure] void postMessage(any message, optional WindowPostMessageOptions options = {});
 
   attribute EventHandler onmessage;
   attribute EventHandler onmessageerror;
diff --git a/third_party/blink/renderer/core/html/portal/portal_activate_event.idl b/third_party/blink/renderer/core/html/portal/portal_activate_event.idl
index 77b78961..7db3b3f 100644
--- a/third_party/blink/renderer/core/html/portal/portal_activate_event.idl
+++ b/third_party/blink/renderer/core/html/portal/portal_activate_event.idl
@@ -7,7 +7,7 @@
 [
  Exposed=Window, RuntimeEnabled=Portals
 ] interface PortalActivateEvent : Event {
-  constructor(DOMString type, optional PortalActivateEventInit eventInitDict);
+  constructor(DOMString type, optional PortalActivateEventInit eventInitDict = {});
   [CallWith=ScriptState, Measure] readonly attribute any data;
   [RaisesException, Measure] HTMLPortalElement adoptPredecessor();
 };
diff --git a/third_party/blink/renderer/core/html/portal/portal_host.idl b/third_party/blink/renderer/core/html/portal/portal_host.idl
index 572a089f..4e2ea0c 100644
--- a/third_party/blink/renderer/core/html/portal/portal_host.idl
+++ b/third_party/blink/renderer/core/html/portal/portal_host.idl
@@ -9,7 +9,7 @@
   [RaisesException, CallWith=ScriptState, Measure] void postMessage(any message, DOMString targetOrigin,
                                                                     optional sequence<object> transfer = []);
   [RaisesException, CallWith=ScriptState, Measure] void postMessage(any message,
-                                                                    optional WindowPostMessageOptions options);
+                                                                    optional WindowPostMessageOptions options = {});
 
   attribute EventHandler onmessage;
   attribute EventHandler onmessageerror;
diff --git a/third_party/blink/renderer/core/html/track/track_event.idl b/third_party/blink/renderer/core/html/track/track_event.idl
index ad9c482..c66e7ed 100644
--- a/third_party/blink/renderer/core/html/track/track_event.idl
+++ b/third_party/blink/renderer/core/html/track/track_event.idl
@@ -28,6 +28,6 @@
 [
     Exposed=Window
 ] interface TrackEvent : Event {
-    constructor(DOMString type, optional TrackEventInit eventInitDict);
+    constructor(DOMString type, optional TrackEventInit eventInitDict = {});
     readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
 };
diff --git a/third_party/blink/renderer/core/input/input_device_capabilities.idl b/third_party/blink/renderer/core/input/input_device_capabilities.idl
index 62c0e74..341f71e 100644
--- a/third_party/blink/renderer/core/input/input_device_capabilities.idl
+++ b/third_party/blink/renderer/core/input/input_device_capabilities.idl
@@ -12,7 +12,7 @@
 // https://wicg.github.io/InputDeviceCapabilities/#the-inputdevicecapabilities-interface
 
 interface InputDeviceCapabilities {
-    constructor(optional InputDeviceCapabilitiesInit deviceInitDict);
+    constructor(optional InputDeviceCapabilitiesInit deviceInitDict = {});
 
     // Whether this device dispatches touch events for movement.  This is used to detect
     // mouse events which represent only an action that has already been handled  by
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl b/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
index bcb2028..599d74c 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
@@ -10,7 +10,7 @@
     Exposed=Window,
     ActiveScriptWrappable
 ] interface IntersectionObserver {
-    [CallWith=ScriptState, RaisesException, MeasureAs=IntersectionObserver_Constructor] constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=IntersectionObserver_Constructor] constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options = {});
     readonly attribute Element? root;
     readonly attribute DOMString rootMargin;
     // https://github.com/WICG/IntersectionObserver/issues/114
diff --git a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h
index f9afe55..7fe3073f 100644
--- a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h
+++ b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h
@@ -60,9 +60,6 @@
   void ClearLineClamp();
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutDeprecatedFlexibleBox,
-                                IsDeprecatedFlexibleBox());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_DEPRECATED_FLEXIBLE_BOX_H_
diff --git a/third_party/blink/renderer/core/layout/layout_fieldset.h b/third_party/blink/renderer/core/layout/layout_fieldset.h
index 16db91b..63b37548 100644
--- a/third_party/blink/renderer/core/layout/layout_fieldset.h
+++ b/third_party/blink/renderer/core/layout/layout_fieldset.h
@@ -58,8 +58,6 @@
                  const PhysicalOffset& paint_offset) const override;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutFieldset, IsFieldset());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_FIELDSET_H_
diff --git a/third_party/blink/renderer/core/layout/layout_iframe.h b/third_party/blink/renderer/core/layout/layout_iframe.h
index eab361c..5de2e13 100644
--- a/third_party/blink/renderer/core/layout/layout_iframe.h
+++ b/third_party/blink/renderer/core/layout/layout_iframe.h
@@ -50,8 +50,6 @@
   PaintLayerType LayerTypeRequired() const override;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutIFrame, IsLayoutIFrame());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_IFRAME_H_
diff --git a/third_party/blink/renderer/core/layout/layout_media.h b/third_party/blink/renderer/core/layout/layout_media.h
index 98d8a95..d303267 100644
--- a/third_party/blink/renderer/core/layout/layout_media.h
+++ b/third_party/blink/renderer/core/layout/layout_media.h
@@ -89,8 +89,6 @@
   LayoutObjectChildList children_;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutMedia, IsMedia());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_MEDIA_H_
diff --git a/third_party/blink/renderer/core/layout/layout_table_caption.h b/third_party/blink/renderer/core/layout/layout_table_caption.h
index 240de49b..5ade10c 100644
--- a/third_party/blink/renderer/core/layout/layout_table_caption.h
+++ b/third_party/blink/renderer/core/layout/layout_table_caption.h
@@ -62,8 +62,6 @@
   LayoutTable* Table() const;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableCaption, IsTableCaption());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_TABLE_CAPTION_H_
diff --git a/third_party/blink/renderer/core/layout/layout_text_control_multi_line.h b/third_party/blink/renderer/core/layout/layout_text_control_multi_line.h
index 35fff85..21111aa 100644
--- a/third_party/blink/renderer/core/layout/layout_text_control_multi_line.h
+++ b/third_party/blink/renderer/core/layout/layout_text_control_multi_line.h
@@ -66,8 +66,6 @@
   LayoutUnit ScrollHeight() const override;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTextControlMultiLine, IsTextArea());
-
 }  // namespace blink
 
 #endif
diff --git a/third_party/blink/renderer/core/layout/ng/custom/layout_child.idl b/third_party/blink/renderer/core/layout/ng/custom/layout_child.idl
index 73be84d..76ba3c4 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/layout_child.idl
+++ b/third_party/blink/renderer/core/layout/ng/custom/layout_child.idl
@@ -13,6 +13,6 @@
   readonly attribute StylePropertyMapReadOnly styleMap;
 
   [CallWith=ScriptState, RaisesException] Promise<IntrinsicSizes> intrinsicSizes();
-  [CallWith=ScriptState, RaisesException] Promise<LayoutFragment> layoutNextFragment(optional CustomLayoutConstraintsOptions options);
+  [CallWith=ScriptState, RaisesException] Promise<LayoutFragment> layoutNextFragment(optional CustomLayoutConstraintsOptions options = {});
 };
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
index a7e2111..357405f0 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
@@ -186,11 +186,6 @@
   return container_ink_overflow.SelfAndContentsInkOverflow();
 }
 
-PositionWithAffinity NGFragmentItem::PositionForPoint(
-    const PhysicalOffset&) const {
-  return PositionWithAffinity();
-}
-
 const ShapeResultView* NGFragmentItem::TextShapeResult() const {
   if (Type() == kText)
     return text_.shape_result.get();
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h
index bd4ebd7..88244b2 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h
@@ -343,7 +343,6 @@
 
   // Converts the given point, relative to the fragment itself, into a position
   // in DOM tree.
-  PositionWithAffinity PositionForPoint(const PhysicalOffset&) const;
   PositionWithAffinity PositionForPointInText(
       const PhysicalOffset& point,
       const NGInlineCursor& cursor) const;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc
index 187162a..8218594 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc
@@ -18,8 +18,8 @@
 void NGInlineCursor::MoveToItem(const ItemsSpan::iterator& iter) {
   DCHECK(IsItemCursor());
   DCHECK(iter >= items_.begin() && iter <= items_.end());
-  item_iter_ = iter;
-  current_item_ = iter == items_.end() ? nullptr : iter->get();
+  current_.item_iter_ = iter;
+  current_.item_ = iter == items_.end() ? nullptr : iter->get();
 }
 
 void NGInlineCursor::SetRoot(const NGFragmentItems& fragment_items,
@@ -39,7 +39,7 @@
   DCHECK(&root_paint_fragment);
   DCHECK(!HasRoot());
   root_paint_fragment_ = &root_paint_fragment;
-  current_paint_fragment_ = root_paint_fragment.FirstChild();
+  current_.paint_fragment_ = root_paint_fragment.FirstChild();
 }
 
 void NGInlineCursor::SetRoot(const LayoutBlockFlow& block_flow) {
@@ -80,28 +80,17 @@
   SetRoot(root_paint_fragment);
 }
 
-NGInlineCursor::NGInlineCursor(const NGInlineCursor& other)
-    : items_(other.items_),
-      item_iter_(other.item_iter_),
-      current_item_(other.current_item_),
-      fragment_items_(other.fragment_items_),
-      root_paint_fragment_(other.root_paint_fragment_),
-      current_paint_fragment_(other.current_paint_fragment_),
-      layout_inline_(other.layout_inline_) {}
-
-NGInlineCursor::NGInlineCursor() = default;
-
 bool NGInlineCursor::operator==(const NGInlineCursor& other) const {
   if (root_paint_fragment_) {
     return root_paint_fragment_ == other.root_paint_fragment_ &&
-           current_paint_fragment_ == other.current_paint_fragment_;
+           current_.paint_fragment_ == other.current_.paint_fragment_;
   }
-  if (current_item_ != other.current_item_)
+  if (current_.item_ != other.current_.item_)
     return false;
   DCHECK_EQ(items_.data(), other.items_.data());
   DCHECK_EQ(items_.size(), other.items_.size());
   DCHECK_EQ(fragment_items_, other.fragment_items_);
-  DCHECK(item_iter_ == other.item_iter_);
+  DCHECK(current_.item_iter_ == other.current_.item_iter_);
   return true;
 }
 
@@ -133,23 +122,24 @@
 }
 
 bool NGInlineCursor::HasChildren() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->FirstChild();
-  if (current_item_)
-    return current_item_->HasChildren();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->FirstChild();
+  if (current_.item_)
+    return current_.item_->HasChildren();
   NOTREACHED();
   return false;
 }
 
 NGInlineCursor NGInlineCursor::CursorForDescendants() const {
-  if (current_paint_fragment_)
-    return NGInlineCursor(*current_paint_fragment_);
-  if (current_item_) {
-    unsigned descendants_count = current_item_->DescendantsCount();
+  if (current_.paint_fragment_)
+    return NGInlineCursor(*current_.paint_fragment_);
+  if (current_.item_) {
+    unsigned descendants_count = current_.item_->DescendantsCount();
     if (descendants_count > 1) {
       DCHECK(fragment_items_);
-      return NGInlineCursor(*fragment_items_, ItemsSpan(&*(item_iter_ + 1),
-                                                        descendants_count - 1));
+      return NGInlineCursor(
+          *fragment_items_,
+          ItemsSpan(&*(current_.item_iter_ + 1), descendants_count - 1));
     }
     return NGInlineCursor();
   }
@@ -165,7 +155,7 @@
   if (fragment_items_) {
     const unsigned index_diff = items_.data() - fragment_items_->Items().data();
     DCHECK_LT(index_diff, fragment_items_->Items().size());
-    const unsigned item_index = item_iter_ - items_.begin();
+    const unsigned item_index = current_.item_iter_ - items_.begin();
     items_ = fragment_items_->Items();
     // Update the iterator to the one for the new span.
     MoveToItem(items_.begin() + item_index + index_diff);
@@ -181,65 +171,65 @@
 }
 
 bool NGInlineCursor::IsInlineBox() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsInlineBox();
-  if (current_item_)
-    return current_item_->IsInlineBox();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsInlineBox();
+  if (current_.item_)
+    return current_.item_->IsInlineBox();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsAtomicInline() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsAtomicInline();
-  if (current_item_)
-    return current_item_->IsAtomicInline();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsAtomicInline();
+  if (current_.item_)
+    return current_.item_->IsAtomicInline();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsEllipsis() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->IsEllipsis();
-  if (current_item_)
-    return current_item_->IsEllipsis();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->IsEllipsis();
+  if (current_.item_)
+    return current_.item_->IsEllipsis();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsGeneratedText() const {
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     if (auto* text_fragment = DynamicTo<NGPhysicalTextFragment>(
-            current_paint_fragment_->PhysicalFragment()))
+            current_.paint_fragment_->PhysicalFragment()))
       return text_fragment->IsGeneratedText();
     return false;
   }
-  if (current_item_)
-    return current_item_->IsGeneratedText();
+  if (current_.item_)
+    return current_.item_->IsGeneratedText();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsGeneratedTextType() const {
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     if (auto* text_fragment = DynamicTo<NGPhysicalTextFragment>(
-            current_paint_fragment_->PhysicalFragment())) {
+            current_.paint_fragment_->PhysicalFragment())) {
       return text_fragment->TextType() ==
              NGPhysicalTextFragment::kGeneratedText;
     }
     return false;
   }
-  if (current_item_)
-    return current_item_->Type() == NGFragmentItem::kGeneratedText;
+  if (current_.item_)
+    return current_.item_->Type() == NGFragmentItem::kGeneratedText;
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsHiddenForPaint() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsHiddenForPaint();
-  if (current_item_)
-    return current_item_->IsHiddenForPaint();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsHiddenForPaint();
+  if (current_.item_)
+    return current_.item_->IsHiddenForPaint();
   NOTREACHED();
   return false;
 }
@@ -287,32 +277,32 @@
 }
 
 bool NGInlineCursor::IsLineBreak() const {
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     if (auto* text_fragment = DynamicTo<NGPhysicalTextFragment>(
-            current_paint_fragment_->PhysicalFragment()))
+            current_.paint_fragment_->PhysicalFragment()))
       return text_fragment->IsLineBreak();
     return false;
   }
-  if (current_item_)
-    return IsText() && current_item_->IsLineBreak();
+  if (current_.item_)
+    return IsText() && current_.item_->IsLineBreak();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsListMarker() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsListMarker();
-  if (current_item_)
-    return current_item_->IsListMarker();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsListMarker();
+  if (current_.item_)
+    return current_.item_->IsListMarker();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsText() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsText();
-  if (current_item_)
-    return current_item_->IsText();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsText();
+  if (current_.item_)
+    return current_.item_->IsText();
   NOTREACHED();
   return false;
 }
@@ -345,12 +335,12 @@
 }
 
 bool NGInlineCursor::CanHaveChildren() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsContainer();
-  if (current_item_) {
-    return current_item_->Type() == NGFragmentItem::kLine ||
-           (current_item_->Type() == NGFragmentItem::kBox &&
-            !current_item_->IsAtomicInline());
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsContainer();
+  if (current_.item_) {
+    return current_.item_->Type() == NGFragmentItem::kLine ||
+           (current_.item_->Type() == NGFragmentItem::kBox &&
+            !current_.item_->IsAtomicInline());
   }
   NOTREACHED();
   return false;
@@ -358,35 +348,35 @@
 
 bool NGInlineCursor::IsEmptyLineBox() const {
   DCHECK(IsLineBox());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGPhysicalLineBoxFragment>(
-               current_paint_fragment_->PhysicalFragment())
+               current_.paint_fragment_->PhysicalFragment())
         .IsEmptyLineBox();
   }
-  if (current_item_)
-    return current_item_->IsEmptyLineBox();
+  if (current_.item_)
+    return current_.item_->IsEmptyLineBox();
   NOTREACHED();
   return false;
 }
 
 bool NGInlineCursor::IsLineBox() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().IsLineBox();
-  if (current_item_)
-    return current_item_->Type() == NGFragmentItem::kLine;
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().IsLineBox();
+  if (current_.item_)
+    return current_.item_->Type() == NGFragmentItem::kLine;
   NOTREACHED();
   return false;
 }
 
 TextDirection NGInlineCursor::CurrentBaseDirection() const {
   DCHECK(IsLineBox());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGPhysicalLineBoxFragment>(
-               current_paint_fragment_->PhysicalFragment())
+               current_.paint_fragment_->PhysicalFragment())
         .BaseDirection();
   }
-  if (current_item_)
-    return current_item_->BaseDirection();
+  if (current_.item_)
+    return current_.item_->BaseDirection();
   NOTREACHED();
   return TextDirection::kLtr;
 }
@@ -437,51 +427,51 @@
 }
 
 const NGPhysicalBoxFragment* NGInlineCursor::CurrentBoxFragment() const {
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return DynamicTo<NGPhysicalBoxFragment>(
-        &current_paint_fragment_->PhysicalFragment());
+        &current_.paint_fragment_->PhysicalFragment());
   }
-  if (current_item_)
-    return current_item_->BoxFragment();
+  if (current_.item_)
+    return current_.item_->BoxFragment();
   NOTREACHED();
   return nullptr;
 }
 
 const DisplayItemClient* NGInlineCursor::CurrentDisplayItemClient() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_;
-  if (current_item_)
-    return current_item_;
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_;
+  if (current_.item_)
+    return current_.item_;
   NOTREACHED();
   return nullptr;
 }
 
 const NGInlineBreakToken& NGInlineCursor::CurrentInlineBreakToken() const {
   DCHECK(IsLineBox());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGInlineBreakToken>(
         *To<NGPhysicalLineBoxFragment>(
-             current_paint_fragment_->PhysicalFragment())
+             current_.paint_fragment_->PhysicalFragment())
              .BreakToken());
   }
-  DCHECK(current_item_);
-  return *current_item_->InlineBreakToken();
+  DCHECK(current_.item_);
+  return *current_.item_->InlineBreakToken();
 }
 
 const LayoutObject* NGInlineCursor::CurrentLayoutObject() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->GetLayoutObject();
-  if (current_item_)
-    return current_item_->GetLayoutObject();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->GetLayoutObject();
+  if (current_.item_)
+    return current_.item_->GetLayoutObject();
   NOTREACHED();
   return nullptr;
 }
 
 LayoutObject* NGInlineCursor::CurrentMutableLayoutObject() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->GetMutableLayoutObject();
-  if (current_item_)
-    return current_item_->GetMutableLayoutObject();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->GetMutableLayoutObject();
+  if (current_.item_)
+    return current_.item_->GetMutableLayoutObject();
   NOTREACHED();
   return nullptr;
 }
@@ -493,19 +483,19 @@
 }
 
 const PhysicalRect NGInlineCursor::CurrentInkOverflow() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->InkOverflow();
-  if (current_item_)
-    return current_item_->InkOverflow();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->InkOverflow();
+  if (current_.item_)
+    return current_.item_->InkOverflow();
   NOTREACHED();
   return PhysicalRect();
 }
 
 const PhysicalOffset NGInlineCursor::CurrentOffset() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->InlineOffsetToContainerBox();
-  if (current_item_)
-    return current_item_->Offset();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->InlineOffsetToContainerBox();
+  if (current_.item_)
+    return current_.item_->Offset();
   NOTREACHED();
   return PhysicalOffset();
 }
@@ -515,73 +505,73 @@
 }
 
 TextDirection NGInlineCursor::CurrentResolvedDirection() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().ResolvedDirection();
-  if (current_item_)
-    return current_item_->ResolvedDirection();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->PhysicalFragment().ResolvedDirection();
+  if (current_.item_)
+    return current_.item_->ResolvedDirection();
   NOTREACHED();
   return TextDirection::kLtr;
 }
 
 const PhysicalSize NGInlineCursor::CurrentSize() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->Size();
-  if (current_item_)
-    return current_item_->Size();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->Size();
+  if (current_.item_)
+    return current_.item_->Size();
   NOTREACHED();
   return PhysicalSize();
 }
 
 const ComputedStyle& NGInlineCursor::CurrentStyle() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->Style();
-  return current_item_->Style();
+  if (current_.paint_fragment_)
+    return current_.paint_fragment_->Style();
+  return current_.item_->Style();
 }
 
-NGStyleVariant NGInlineCursor::CurrentStyleVariant() const {
-  if (current_paint_fragment_)
-    return current_paint_fragment_->PhysicalFragment().StyleVariant();
-  return current_item_->StyleVariant();
+NGStyleVariant NGInlineCursorPosition::StyleVariant() const {
+  if (paint_fragment_)
+    return paint_fragment_->PhysicalFragment().StyleVariant();
+  return item_->StyleVariant();
 }
 
 bool NGInlineCursor::UsesFirstLineStyle() const {
-  return CurrentStyleVariant() == NGStyleVariant::kFirstLine;
+  return Current().StyleVariant() == NGStyleVariant::kFirstLine;
 }
 
 NGTextOffset NGInlineCursor::CurrentTextOffset() const {
-  if (current_paint_fragment_) {
-    const auto& text_fragment =
-        To<NGPhysicalTextFragment>(current_paint_fragment_->PhysicalFragment());
+  if (current_.paint_fragment_) {
+    const auto& text_fragment = To<NGPhysicalTextFragment>(
+        current_.paint_fragment_->PhysicalFragment());
     return text_fragment.TextOffset();
   }
-  if (current_item_)
-    return current_item_->TextOffset();
+  if (current_.item_)
+    return current_.item_->TextOffset();
   NOTREACHED();
   return {};
 }
 
 StringView NGInlineCursor::CurrentText() const {
   DCHECK(IsText());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGPhysicalTextFragment>(
-               current_paint_fragment_->PhysicalFragment())
+               current_.paint_fragment_->PhysicalFragment())
         .Text();
   }
-  if (current_item_)
-    return current_item_->Text(*fragment_items_);
+  if (current_.item_)
+    return current_.item_->Text(*fragment_items_);
   NOTREACHED();
   return "";
 }
 
 const ShapeResultView* NGInlineCursor::CurrentTextShapeResult() const {
   DCHECK(IsText());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGPhysicalTextFragment>(
-               current_paint_fragment_->PhysicalFragment())
+               current_.paint_fragment_->PhysicalFragment())
         .TextShapeResult();
   }
-  if (current_item_)
-    return current_item_->TextShapeResult();
+  if (current_.item_)
+    return current_.item_->TextShapeResult();
   NOTREACHED();
   return nullptr;
 }
@@ -589,14 +579,14 @@
 PhysicalRect NGInlineCursor::CurrentLocalRect(unsigned start_offset,
                                               unsigned end_offset) const {
   DCHECK(IsText());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGPhysicalTextFragment>(
-               current_paint_fragment_->PhysicalFragment())
+               current_.paint_fragment_->PhysicalFragment())
         .LocalRect(start_offset, end_offset);
   }
-  if (current_item_) {
-    return current_item_->LocalRect(current_item_->Text(*fragment_items_),
-                                    start_offset, end_offset);
+  if (current_.item_) {
+    return current_.item_->LocalRect(current_.item_->Text(*fragment_items_),
+                                     start_offset, end_offset);
   }
   NOTREACHED();
   return PhysicalRect();
@@ -604,14 +594,14 @@
 
 LayoutUnit NGInlineCursor::InlinePositionForOffset(unsigned offset) const {
   DCHECK(IsText());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     return To<NGPhysicalTextFragment>(
-               current_paint_fragment_->PhysicalFragment())
+               current_.paint_fragment_->PhysicalFragment())
         .InlinePositionForOffset(offset);
   }
-  if (current_item_) {
-    return current_item_->InlinePositionForOffset(
-        current_item_->Text(*fragment_items_), offset);
+  if (current_.item_) {
+    return current_.item_->InlinePositionForOffset(
+        current_.item_->Text(*fragment_items_), offset);
   }
   NOTREACHED();
   return LayoutUnit();
@@ -637,36 +627,223 @@
                                        pixel_size);
 }
 
-PositionWithAffinity NGInlineCursor::PositionForPoint(
-    const PhysicalOffset& point) {
-  if (root_paint_fragment_)
-    return root_paint_fragment_->PositionForPoint(point);
+PositionWithAffinity NGInlineCursor::PositionForPointInInlineFormattingContext(
+    const PhysicalOffset& point,
+    const NGPhysicalBoxFragment& container) {
   DCHECK(IsItemCursor());
+  const ComputedStyle& container_style = container.Style();
+  const WritingMode writing_mode = container_style.GetWritingMode();
+  const TextDirection direction = container_style.Direction();
+  const PhysicalSize& container_size = container.Size();
+  const LayoutUnit point_block_offset =
+      point
+          .ConvertToLogical(writing_mode, direction, container_size,
+                            // |point| is actually a pixel with size 1x1.
+                            PhysicalSize(LayoutUnit(1), LayoutUnit(1)))
+          .block_offset;
+
+  // Stores the closest line box child above |point| in the block direction.
+  // Used if we can't find any child |point| falls in to resolve the position.
+  NGInlineCursorPosition closest_line_before;
+  LayoutUnit closest_line_before_block_offset = LayoutUnit::Min();
+
+  // Stores the closest line box child below |point| in the block direction.
+  // Used if we can't find any child |point| falls in to resolve the position.
+  NGInlineCursorPosition closest_line_after;
+  LayoutUnit closest_line_after_block_offset = LayoutUnit::Max();
+
   while (*this) {
-    const NGFragmentItem* item = CurrentItem();
-    DCHECK(item);
-    // TODO(kojii): Do more staff, when the point is not on any item but within
-    // line box, etc., see |NGPaintFragment::PositionForPoint|.
-    if (!item->Rect().Contains(point)) {
+    const NGFragmentItem* child_item = CurrentItem();
+    DCHECK(child_item);
+    if (child_item->Type() == NGFragmentItem::kLine) {
+      // Try to resolve if |point| falls in a line box in block direction.
+      const LayoutUnit child_block_offset =
+          child_item->Offset()
+              .ConvertToLogical(writing_mode, direction, container_size,
+                                child_item->Size())
+              .block_offset;
+      if (point_block_offset < child_block_offset) {
+        if (child_block_offset < closest_line_after_block_offset) {
+          closest_line_after_block_offset = child_block_offset;
+          closest_line_after = Current();
+        }
+        MoveToNextItemSkippingChildren();
+        continue;
+      }
+
+      // Hitting on line bottom doesn't count, to match legacy behavior.
+      const LayoutUnit child_block_end_offset =
+          child_block_offset +
+          child_item->Size().ConvertToLogical(writing_mode).block_size;
+      if (point_block_offset >= child_block_end_offset) {
+        if (child_block_end_offset > closest_line_before_block_offset) {
+          closest_line_before_block_offset = child_block_end_offset;
+          closest_line_before = Current();
+        }
+        MoveToNextItemSkippingChildren();
+        continue;
+      }
+
+      if (const PositionWithAffinity child_position =
+              PositionForPointInInlineBox(point))
+        return child_position;
       MoveToNextItemSkippingChildren();
       continue;
     }
-    if (item->Type() == NGFragmentItem::kText)
-      return item->PositionForPointInText(point, *this);
-    MoveToNext();
+    DCHECK_NE(child_item->Type(), NGFragmentItem::kText);
+    MoveToNextItem();
+  }
+
+  if (closest_line_after) {
+    MoveTo(closest_line_after);
+    if (const PositionWithAffinity child_position =
+            PositionForPointInInlineBox(point))
+      return child_position;
+  }
+
+  if (closest_line_before) {
+    MoveTo(closest_line_before);
+    if (const PositionWithAffinity child_position =
+            PositionForPointInInlineBox(point))
+      return child_position;
+  }
+
+  return PositionWithAffinity();
+}
+
+PositionWithAffinity NGInlineCursor::PositionForPointInInlineBox(
+    const PhysicalOffset& point) const {
+  if (const NGPaintFragment* paint_fragment = CurrentPaintFragment()) {
+    DCHECK(paint_fragment->PhysicalFragment().IsLineBox());
+    return paint_fragment->PositionForPoint(point);
+  }
+  const NGFragmentItem* container = CurrentItem();
+  DCHECK(container);
+  DCHECK_EQ(container->Type(), NGFragmentItem::kLine);
+  const ComputedStyle& container_style = container->Style();
+  const WritingMode writing_mode = container_style.GetWritingMode();
+  const TextDirection direction = container_style.Direction();
+  const PhysicalSize& container_size = container->Size();
+  const LayoutUnit point_inline_offset =
+      point
+          .ConvertToLogical(writing_mode, direction, container_size,
+                            // |point| is actually a pixel with size 1x1.
+                            PhysicalSize(LayoutUnit(1), LayoutUnit(1)))
+          .inline_offset;
+
+  // Stores the closest child before |point| in the inline direction. Used if we
+  // can't find any child |point| falls in to resolve the position.
+  NGInlineCursorPosition closest_child_before;
+  LayoutUnit closest_child_before_inline_offset = LayoutUnit::Min();
+
+  // Stores the closest child after |point| in the inline direction. Used if we
+  // can't find any child |point| falls in to resolve the position.
+  NGInlineCursorPosition closest_child_after;
+  LayoutUnit closest_child_after_inline_offset = LayoutUnit::Max();
+
+  NGInlineCursor descendants = CursorForDescendants();
+  for (; descendants; descendants.MoveToNext()) {
+    const NGFragmentItem* child_item = descendants.CurrentItem();
+    DCHECK(child_item);
+    const LayoutUnit child_inline_offset =
+        child_item->Offset()
+            .ConvertToLogical(writing_mode, direction, container_size,
+                              child_item->Size())
+            .inline_offset;
+    if (point_inline_offset < child_inline_offset) {
+      if (child_inline_offset < closest_child_after_inline_offset) {
+        closest_child_after_inline_offset = child_inline_offset;
+        closest_child_after = descendants.Current();
+      }
+      continue;
+    }
+    const LayoutUnit child_inline_end_offset =
+        child_inline_offset +
+        child_item->Size().ConvertToLogical(writing_mode).inline_size;
+    if (point_inline_offset > child_inline_end_offset) {
+      if (child_inline_end_offset > closest_child_before_inline_offset) {
+        closest_child_before_inline_offset = child_inline_end_offset;
+        closest_child_before = descendants.Current();
+      }
+      continue;
+    }
+
+    if (const PositionWithAffinity child_position =
+            descendants.PositionForPointInChild(point, *child_item))
+      return child_position;
+  }
+
+  if (closest_child_after) {
+    descendants.MoveTo(closest_child_after);
+    if (const PositionWithAffinity child_position =
+            descendants.PositionForPointInChild(point, *closest_child_after))
+      return child_position;
+  }
+
+  if (closest_child_before) {
+    descendants.MoveTo(closest_child_before);
+    if (const PositionWithAffinity child_position =
+            descendants.PositionForPointInChild(point, *closest_child_before))
+      return child_position;
+  }
+
+  return PositionWithAffinity();
+}
+
+PositionWithAffinity NGInlineCursor::PositionForPointInChild(
+    const PhysicalOffset& point,
+    const NGFragmentItem& child_item) const {
+  DCHECK_EQ(&child_item, CurrentItem());
+  switch (child_item.Type()) {
+    case NGFragmentItem::kText:
+      return child_item.PositionForPointInText(point, *this);
+    case NGFragmentItem::kGeneratedText:
+      break;
+    case NGFragmentItem::kBox:
+      if (const NGPhysicalBoxFragment* box_fragment =
+              child_item.BoxFragment()) {
+        // We must fallback to legacy for old layout roots. We also fallback (to
+        // LayoutNGMixin::PositionForPoint()) for NG block layout, so that we
+        // can utilize LayoutBlock::PositionForPoint() that resolves the
+        // position in block layout.
+        // TODO(xiaochengh): Don't fallback to legacy for NG block layout.
+        if (box_fragment->IsBlockFlow() || box_fragment->IsLegacyLayoutRoot()) {
+          return child_item.GetLayoutObject()->PositionForPoint(
+              point - child_item.Offset());
+        }
+      }
+      break;
+    case NGFragmentItem::kLine:
+      NOTREACHED();
+      break;
   }
   return PositionWithAffinity();
 }
 
 void NGInlineCursor::MakeNull() {
   if (root_paint_fragment_) {
-    current_paint_fragment_ = nullptr;
+    current_.paint_fragment_ = nullptr;
     return;
   }
   if (fragment_items_)
     return MoveToItem(items_.end());
 }
 
+void NGInlineCursor::MoveTo(const NGInlineCursorPosition& position) {
+#if DCHECK_IS_ON()
+  if (position.PaintFragment()) {
+    DCHECK(root_paint_fragment_);
+    DCHECK(
+        position.PaintFragment()->IsDescendantOfNotSelf(*root_paint_fragment_));
+  } else if (position.Item()) {
+    DCHECK(IsItemCursor());
+    const unsigned index = position.item_iter_ - items_.begin();
+    DCHECK_LT(index, items_.size());
+  }
+#endif
+  current_ = position;
+}
+
 void NGInlineCursor::InternalMoveTo(const LayoutObject& layout_object) {
   DCHECK(layout_object.IsInLayoutNGInlineFormattingContext());
   // If this cursor is rootless, find the root of the inline formatting context.
@@ -692,8 +869,8 @@
     if (!index) {
       // TODO(yosin): Once we update all |LayoutObject::FirstInlineFragment()|
       // clients, we should replace to |return MakeNull()|
-      item_iter_ = items_.begin();
-      while (current_item_ && CurrentLayoutObject() != &layout_object)
+      current_.item_iter_ = items_.begin();
+      while (current_.item_ && CurrentLayoutObject() != &layout_object)
         MoveToNextItem();
       return;
     }
@@ -742,7 +919,7 @@
 }
 
 void NGInlineCursor::MoveTo(const NGFragmentItem& fragment_item) {
-  DCHECK(!root_paint_fragment_ && !current_paint_fragment_);
+  DCHECK(!root_paint_fragment_ && !current_.paint_fragment_);
   MoveTo(*fragment_item.GetLayoutObject());
   while (IsNotNull()) {
     if (CurrentItem() == &fragment_item)
@@ -757,12 +934,12 @@
     MoveTo(*paint_fragment);
     return;
   }
-  if (cursor.current_item_) {
+  if (cursor.current_.item_) {
     if (!fragment_items_)
       SetRoot(*cursor.fragment_items_);
     // Note: We use address instead of iterato because we can't compare
     // iterators in different span. See |base::CheckedContiguousIterator<T>|.
-    const ptrdiff_t index = &*cursor.item_iter_ - &*items_.begin();
+    const ptrdiff_t index = &*cursor.current_.item_iter_ - &*items_.begin();
     DCHECK_GE(index, 0);
     DCHECK_LT(static_cast<size_t>(index), items_.size());
     MoveToItem(items_.begin() + index);
@@ -778,17 +955,17 @@
   DCHECK(root_paint_fragment_);
   DCHECK(paint_fragment.IsDescendantOfNotSelf(*root_paint_fragment_))
       << paint_fragment << " " << root_paint_fragment_;
-  current_paint_fragment_ = &paint_fragment;
+  current_.paint_fragment_ = &paint_fragment;
 }
 
 void NGInlineCursor::MoveToContainingLine() {
   DCHECK(!IsLineBox());
-  if (current_paint_fragment_) {
-    current_paint_fragment_ = current_paint_fragment_->ContainerLineBox();
+  if (current_.paint_fragment_) {
+    current_.paint_fragment_ = current_.paint_fragment_->ContainerLineBox();
     return;
   }
-  if (current_item_) {
-    while (current_item_ && !IsLineBox())
+  if (current_.item_) {
+    while (current_.item_ && !IsLineBox())
       MoveToPreviousItem();
     return;
   }
@@ -797,7 +974,7 @@
 
 void NGInlineCursor::MoveToFirst() {
   if (root_paint_fragment_) {
-    current_paint_fragment_ = root_paint_fragment_->FirstChild();
+    current_.paint_fragment_ = root_paint_fragment_->FirstChild();
     return;
   }
   if (IsItemCursor()) {
@@ -872,9 +1049,9 @@
     } while (IsNotNull() && !IsPartOfCulledInlineBox(*layout_inline_));
     return;
   }
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     if (auto* paint_fragment =
-            current_paint_fragment_->NextForSameLayoutObject()) {
+            current_.paint_fragment_->NextForSameLayoutObject()) {
       // |paint_fragment| can be in another fragment tree rooted by
       // |root_paint_fragment_|, e.g. "multicol-span-all-restyle-002.html"
       root_paint_fragment_ = paint_fragment->Root();
@@ -882,11 +1059,11 @@
     }
     return MakeNull();
   }
-  if (current_item_) {
-    const wtf_size_t delta = current_item_->DeltaToNextForSameLayoutObject();
+  if (current_.item_) {
+    const wtf_size_t delta = current_.item_->DeltaToNextForSameLayoutObject();
     if (delta == 0u)
       return MakeNull();
-    return MoveToItem(item_iter_ + delta);
+    return MoveToItem(current_.item_iter_ + delta);
   }
 }
 
@@ -920,12 +1097,12 @@
 
 void NGInlineCursor::MoveToNextLine() {
   DCHECK(IsLineBox());
-  if (current_paint_fragment_) {
-    if (auto* paint_fragment = current_paint_fragment_->NextSibling())
+  if (current_.paint_fragment_) {
+    if (auto* paint_fragment = current_.paint_fragment_->NextSibling())
       return MoveTo(*paint_fragment);
     return MakeNull();
   }
-  if (current_item_) {
+  if (current_.item_) {
     do {
       MoveToNextItem();
     } while (IsNotNull() && !IsLineBox());
@@ -935,7 +1112,7 @@
 }
 
 void NGInlineCursor::MoveToNextSibling() {
-  if (current_paint_fragment_)
+  if (current_.paint_fragment_)
     return MoveToNextSiblingPaintFragment();
   return MoveToNextSiblingItem();
 }
@@ -982,13 +1159,13 @@
 void NGInlineCursor::MoveToPreviousLine() {
   // Note: List marker is sibling of line box.
   DCHECK(IsLineBox());
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     do {
       MoveToPreviousSiblingPaintFragment();
     } while (IsNotNull() && !IsLineBox());
     return;
   }
-  if (current_item_) {
+  if (current_.item_) {
     do {
       MoveToPreviousItem();
     } while (IsNotNull() && !IsLineBox());
@@ -1001,10 +1178,10 @@
   if (!HasChildren())
     return false;
   if (root_paint_fragment_) {
-    MoveTo(*current_paint_fragment_->FirstChild());
+    MoveTo(*current_.paint_fragment_->FirstChild());
     return true;
   }
-  MoveToItem(item_iter_ + 1);
+  MoveToItem(current_.item_iter_ + 1);
   return true;
 }
 
@@ -1012,13 +1189,13 @@
   if (!HasChildren())
     return false;
   if (root_paint_fragment_) {
-    MoveTo(current_paint_fragment_->Children().back());
+    MoveTo(current_.paint_fragment_->Children().back());
     return true;
   }
-  const auto end = item_iter_ + CurrentItem()->DescendantsCount();
+  const auto end = current_.item_iter_ + CurrentItem()->DescendantsCount();
   MoveToNextItem();
   DCHECK(!IsNull());
-  for (auto it = item_iter_ + 1; it != end; ++it) {
+  for (auto it = current_.item_iter_ + 1; it != end; ++it) {
     if (CurrentItem()->HasSameParent(**it))
       MoveToItem(it);
   }
@@ -1027,27 +1204,27 @@
 
 void NGInlineCursor::MoveToNextItem() {
   DCHECK(IsItemCursor());
-  if (UNLIKELY(!current_item_))
+  if (UNLIKELY(!current_.item_))
     return;
-  DCHECK(item_iter_ != items_.end());
-  ++item_iter_;
-  MoveToItem(item_iter_);
+  DCHECK(current_.item_iter_ != items_.end());
+  ++current_.item_iter_;
+  MoveToItem(current_.item_iter_);
 }
 
 void NGInlineCursor::MoveToNextItemSkippingChildren() {
   DCHECK(IsItemCursor());
-  if (UNLIKELY(!current_item_))
+  if (UNLIKELY(!current_.item_))
     return;
   // If the current item has |DescendantsCount|, add it to move to the next
   // sibling, skipping all children and their descendants.
-  if (wtf_size_t descendants_count = current_item_->DescendantsCount())
-    return MoveToItem(item_iter_ + descendants_count);
+  if (wtf_size_t descendants_count = current_.item_->DescendantsCount())
+    return MoveToItem(current_.item_iter_ + descendants_count);
   return MoveToNextItem();
 }
 
 void NGInlineCursor::MoveToNextSiblingItem() {
   DCHECK(IsItemCursor());
-  if (UNLIKELY(!current_item_))
+  if (UNLIKELY(!current_.item_))
     return;
   const NGFragmentItem& item = *CurrentItem();
   MoveToNextItemSkippingChildren();
@@ -1058,47 +1235,47 @@
 
 void NGInlineCursor::MoveToPreviousItem() {
   DCHECK(IsItemCursor());
-  if (UNLIKELY(!current_item_))
+  if (UNLIKELY(!current_.item_))
     return;
-  if (item_iter_ == items_.begin())
+  if (current_.item_iter_ == items_.begin())
     return MakeNull();
-  --item_iter_;
-  current_item_ = item_iter_->get();
+  --current_.item_iter_;
+  current_.item_ = current_.item_iter_->get();
 }
 
 void NGInlineCursor::MoveToParentPaintFragment() {
-  DCHECK(IsPaintFragmentCursor() && current_paint_fragment_);
-  const NGPaintFragment* parent = current_paint_fragment_->Parent();
+  DCHECK(IsPaintFragmentCursor() && current_.paint_fragment_);
+  const NGPaintFragment* parent = current_.paint_fragment_->Parent();
   if (parent && parent != root_paint_fragment_) {
-    current_paint_fragment_ = parent;
+    current_.paint_fragment_ = parent;
     return;
   }
-  current_paint_fragment_ = nullptr;
+  current_.paint_fragment_ = nullptr;
 }
 
 void NGInlineCursor::MoveToNextPaintFragment() {
-  DCHECK(IsPaintFragmentCursor() && current_paint_fragment_);
-  if (const NGPaintFragment* child = current_paint_fragment_->FirstChild()) {
-    current_paint_fragment_ = child;
+  DCHECK(IsPaintFragmentCursor() && current_.paint_fragment_);
+  if (const NGPaintFragment* child = current_.paint_fragment_->FirstChild()) {
+    current_.paint_fragment_ = child;
     return;
   }
   MoveToNextPaintFragmentSkippingChildren();
 }
 
 void NGInlineCursor::MoveToNextSiblingPaintFragment() {
-  DCHECK(IsPaintFragmentCursor() && current_paint_fragment_);
-  if (const NGPaintFragment* next = current_paint_fragment_->NextSibling()) {
-    current_paint_fragment_ = next;
+  DCHECK(IsPaintFragmentCursor() && current_.paint_fragment_);
+  if (const NGPaintFragment* next = current_.paint_fragment_->NextSibling()) {
+    current_.paint_fragment_ = next;
     return;
   }
-  current_paint_fragment_ = nullptr;
+  current_.paint_fragment_ = nullptr;
 }
 
 void NGInlineCursor::MoveToNextPaintFragmentSkippingChildren() {
-  DCHECK(IsPaintFragmentCursor() && current_paint_fragment_);
-  while (current_paint_fragment_) {
-    if (const NGPaintFragment* next = current_paint_fragment_->NextSibling()) {
-      current_paint_fragment_ = next;
+  DCHECK(IsPaintFragmentCursor() && current_.paint_fragment_);
+  while (current_.paint_fragment_) {
+    if (const NGPaintFragment* next = current_.paint_fragment_->NextSibling()) {
+      current_.paint_fragment_ = next;
       return;
     }
     MoveToParentPaintFragment();
@@ -1106,25 +1283,25 @@
 }
 
 void NGInlineCursor::MoveToPreviousPaintFragment() {
-  DCHECK(IsPaintFragmentCursor() && current_paint_fragment_);
-  const NGPaintFragment* const parent = current_paint_fragment_->Parent();
+  DCHECK(IsPaintFragmentCursor() && current_.paint_fragment_);
+  const NGPaintFragment* const parent = current_.paint_fragment_->Parent();
   MoveToPreviousSiblingPaintFragment();
-  if (current_paint_fragment_) {
+  if (current_.paint_fragment_) {
     while (TryToMoveToLastChild())
       continue;
     return;
   }
-  current_paint_fragment_ = parent == root_paint_fragment_ ? nullptr : parent;
+  current_.paint_fragment_ = parent == root_paint_fragment_ ? nullptr : parent;
 }
 
 void NGInlineCursor::MoveToPreviousSiblingPaintFragment() {
-  DCHECK(IsPaintFragmentCursor() && current_paint_fragment_);
-  const NGPaintFragment* const current = current_paint_fragment_;
-  current_paint_fragment_ = nullptr;
+  DCHECK(IsPaintFragmentCursor() && current_.paint_fragment_);
+  const NGPaintFragment* const current = current_.paint_fragment_;
+  current_.paint_fragment_ = nullptr;
   for (auto* sibling : current->Parent()->Children()) {
     if (sibling == current)
       return;
-    current_paint_fragment_ = sibling;
+    current_.paint_fragment_ = sibling;
   }
   NOTREACHED();
 }
@@ -1141,7 +1318,7 @@
   }
   if (cursor.IsItemCursor()) {
     for (NGInlineCursor sibling(cursor); sibling; sibling.MoveToNextSibling())
-      sibling_item_iterators_.push_back(sibling.item_iter_);
+      sibling_item_iterators_.push_back(sibling.Current().item_iter_);
     current_index_ = sibling_item_iterators_.size();
     if (current_index_)
       current_item_ = sibling_item_iterators_[--current_index_]->get();
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
index d3d6b7f..bf127746 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
@@ -35,6 +35,41 @@
 struct PhysicalRect;
 struct PhysicalSize;
 
+// Represents a position of |NGInlineCursor|. This class:
+// 1. Provides properties for the current position.
+// 2. Allows to save |Current()|, and can move back later. Moving to |Position|
+// is faster than moving to |NGFragmentItem|.
+class CORE_EXPORT NGInlineCursorPosition {
+  STACK_ALLOCATED();
+
+ public:
+  using ItemsSpan = base::span<const std::unique_ptr<NGFragmentItem>>;
+
+  const NGPaintFragment* PaintFragment() const { return paint_fragment_; }
+  const NGFragmentItem* Item() const { return item_; }
+  const NGFragmentItem* operator->() const { return item_; }
+  const NGFragmentItem& operator*() const { return *item_; }
+
+  operator bool() const { return paint_fragment_ || item_; }
+
+  bool operator==(const NGInlineCursorPosition& other) const {
+    return paint_fragment_ == other.paint_fragment_ && item_ == other.item_;
+  }
+  bool operator!=(const NGInlineCursorPosition& other) const {
+    return !operator==(other);
+  }
+
+  NGStyleVariant StyleVariant() const;
+
+ private:
+  const NGPaintFragment* paint_fragment_ = nullptr;
+  const NGFragmentItem* item_ = nullptr;
+  ItemsSpan::iterator item_iter_;
+
+  friend class NGInlineBackwardCursor;
+  friend class NGInlineCursor;
+};
+
 // This class traverses fragments in an inline formatting context.
 //
 // When constructed, the initial position is empty. Call |MoveToNext()| to move
@@ -53,12 +88,12 @@
   explicit NGInlineCursor(const NGFragmentItems& fragment_items,
                           ItemsSpan items);
   explicit NGInlineCursor(const NGPaintFragment& root_paint_fragment);
-  NGInlineCursor(const NGInlineCursor& other);
+  NGInlineCursor(const NGInlineCursor& other) = default;
 
   // Creates an |NGInlineCursor| without the root. Even when callers don't know
   // the root of the inline formatting context, this cursor can |MoveTo()|
   // specific |LayoutObject|.
-  NGInlineCursor();
+  NGInlineCursor() = default;
 
   bool operator==(const NGInlineCursor& other) const;
   bool operator!=(const NGInlineCursor& other) const {
@@ -83,12 +118,13 @@
   //
   // Functions to query the current position.
   //
+  const NGInlineCursorPosition& Current() const { return current_; }
 
   // Returns true if cursor is out of fragment tree, e.g. before first fragment
   // or after last fragment in tree.
-  bool IsNull() const { return !current_item_ && !current_paint_fragment_; }
-  bool IsNotNull() const { return !IsNull(); }
-  explicit operator bool() const { return !IsNull(); }
+  bool IsNull() const { return !Current(); }
+  bool IsNotNull() const { return Current(); }
+  explicit operator bool() const { return Current(); }
 
   // True if fragment at the current position can have children.
   bool CanHaveChildren() const;
@@ -164,9 +200,9 @@
   bool IsText() const;
 
   // |Current*| functions return an object for the current position.
-  const NGFragmentItem* CurrentItem() const { return current_item_; }
+  const NGFragmentItem* CurrentItem() const { return Current().Item(); }
   const NGPaintFragment* CurrentPaintFragment() const {
-    return current_paint_fragment_;
+    return Current().PaintFragment();
   }
   // Returns text direction of current line. It is error to call at other than
   // line.
@@ -229,12 +265,21 @@
   PhysicalOffset LineEndPoint() const;
 
   // Converts the given point, relative to the fragment itself, into a position
-  // in DOM tree within the range of |this|.
-  PositionWithAffinity PositionForPoint(const PhysicalOffset&);
+  // in DOM tree within the range of |this|. This variation ignores the inline
+  // offset, and snaps to the nearest line in the block direction.
+  PositionWithAffinity PositionForPointInInlineFormattingContext(
+      const PhysicalOffset& point,
+      const NGPhysicalBoxFragment& container);
+  // Find the |Position| in the line box |Current()| points to. This variation
+  // ignores the block offset, and snaps to the nearest item in inline
+  // direction.
+  PositionWithAffinity PositionForPointInInlineBox(
+      const PhysicalOffset& point) const;
 
   //
   // Functions to move the current position.
   //
+  void MoveTo(const NGInlineCursorPosition& position);
 
   // Move the current position at |fragment_item|.
   void MoveTo(const NGFragmentItem& fragment_item);
@@ -324,9 +369,6 @@
   // NextSkippingChildren, Previous, etc.
 
  private:
-  // Returns style variant of the current position.
-  NGStyleVariant CurrentStyleVariant() const;
-
   // True if current position is part of culled inline box |layout_inline|.
   bool IsPartOfCulledInlineBox(const LayoutInline& layout_inline) const;
 
@@ -362,13 +404,16 @@
   void MoveToPreviousPaintFragment();
   void MoveToPreviousSiblingPaintFragment();
 
+  PositionWithAffinity PositionForPointInChild(
+      const PhysicalOffset& point,
+      const NGFragmentItem& child_item) const;
+
+  NGInlineCursorPosition current_;
+
   ItemsSpan items_;
-  ItemsSpan::iterator item_iter_;
-  const NGFragmentItem* current_item_ = nullptr;
   const NGFragmentItems* fragment_items_ = nullptr;
 
   const NGPaintFragment* root_paint_fragment_ = nullptr;
-  const NGPaintFragment* current_paint_fragment_ = nullptr;
 
   // Used in |MoveToNextForSameLayoutObject()| to support culled inline.
   const LayoutInline* layout_inline_ = nullptr;
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow_mixin.cc b/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow_mixin.cc
index 84cdd33..f3fe0678 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow_mixin.cc
+++ b/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow_mixin.cc
@@ -276,15 +276,18 @@
     if (const PositionWithAffinity position =
             paint_fragment->PositionForPoint(point_in_contents))
       return position;
-  } else if (const NGFragmentItems* items = Base::FragmentItems()) {
-    // The given offset is relative to this |LayoutBlockFlow|. Convert to the
-    // contents offset.
-    PhysicalOffset point_in_contents = point;
-    Base::OffsetForContents(point_in_contents);
-    NGInlineCursor cursor(*items);
-    if (const PositionWithAffinity position =
-            cursor.PositionForPoint(point_in_contents))
-      return position;
+  } else if (const NGPhysicalBoxFragment* fragment = CurrentFragment()) {
+    if (const NGFragmentItems* items = fragment->Items()) {
+      // The given offset is relative to this |LayoutBlockFlow|. Convert to the
+      // contents offset.
+      PhysicalOffset point_in_contents = point;
+      Base::OffsetForContents(point_in_contents);
+      NGInlineCursor cursor(*items);
+      if (const PositionWithAffinity position =
+              cursor.PositionForPointInInlineFormattingContext(
+                  point_in_contents, *fragment))
+        return position;
+    }
   }
 
   return Base::CreatePositionWithAffinity(0);
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.h b/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.h
index b412c6c..5178d12 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.h
+++ b/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.h
@@ -25,8 +25,6 @@
   bool IsOfType(LayoutObjectType) const override;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGFieldset, IsLayoutNGFieldset());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LAYOUT_NG_FIELDSET_H_
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_progress.h b/third_party/blink/renderer/core/layout/ng/layout_ng_progress.h
index 7ad4c0c1..86d6850 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_ng_progress.h
+++ b/third_party/blink/renderer/core/layout/ng/layout_ng_progress.h
@@ -25,8 +25,6 @@
   bool IsOfType(LayoutObjectType type) const override;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGProgress, IsLayoutNGProgress());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LAYOUT_NG_PROGRESS_H_
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
index 43f353d..6655ef18 100644
--- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
+++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
@@ -30,9 +30,6 @@
   PositionWithAffinity PositionForPoint(const PhysicalOffset&) const override;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGInsideListMarker,
-                                IsLayoutNGInsideListMarker());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_LAYOUT_NG_INSIDE_LIST_MARKER_H_
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.h b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.h
index 6ebae9a..b0cd4843 100644
--- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.h
+++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.h
@@ -28,9 +28,6 @@
   void ComputeIntrinsicSizingInfo(IntrinsicSizingInfo&) const final;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGListMarkerImage,
-                                IsLayoutNGListMarkerImage());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_LAYOUT_NG_LIST_MARKER_IMAGE_H_
diff --git a/third_party/blink/renderer/core/layout/ng/mathml/layout_ng_mathml_block.h b/third_party/blink/renderer/core/layout/ng/mathml/layout_ng_mathml_block.h
index 1f14af71..6a2247d 100644
--- a/third_party/blink/renderer/core/layout/ng/mathml/layout_ng_mathml_block.h
+++ b/third_party/blink/renderer/core/layout/ng/mathml/layout_ng_mathml_block.h
@@ -23,8 +23,6 @@
   bool IsChildAllowed(LayoutObject*, const ComputedStyle&) const final;
 };
 
-DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGMathMLBlock, IsMathML());
-
 }  // namespace blink
 
 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_MATHML_LAYOUT_NG_MATHML_BLOCK_H_
diff --git a/third_party/blink/renderer/core/loader/appcache/application_cache_host.cc b/third_party/blink/renderer/core/loader/appcache/application_cache_host.cc
index 8840903..8a59ee3 100644
--- a/third_party/blink/renderer/core/loader/appcache/application_cache_host.cc
+++ b/third_party/blink/renderer/core/loader/appcache/application_cache_host.cc
@@ -35,7 +35,6 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "third_party/blink/public/mojom/appcache/appcache.mojom-blink.h"
 #include "third_party/blink/public/mojom/appcache/appcache_info.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/core/frame/deprecation.h"
 #include "third_party/blink/renderer/core/frame/hosts_using_features.h"
diff --git a/third_party/blink/renderer/core/loader/frame_load_request.cc b/third_party/blink/renderer/core/loader/frame_load_request.cc
index 793f908d..5cb7dbc8 100644
--- a/third_party/blink/renderer/core/loader/frame_load_request.cc
+++ b/third_party/blink/renderer/core/loader/frame_load_request.cc
@@ -45,7 +45,6 @@
                                    const ResourceRequest& resource_request)
     : origin_document_(origin_document),
       should_send_referrer_(kMaybeSendReferrer) {
-  // These flags are passed to a service worker which controls the page.
   resource_request_.CopyFrom(resource_request);
   resource_request_.SetMode(network::mojom::RequestMode::kNavigate);
   resource_request_.SetCredentialsMode(
diff --git a/third_party/blink/renderer/core/loader/resource/document_resource.cc b/third_party/blink/renderer/core/loader/resource/document_resource.cc
index b647251..d4beae15 100644
--- a/third_party/blink/renderer/core/loader/resource/document_resource.cc
+++ b/third_party/blink/renderer/core/loader/resource/document_resource.cc
@@ -41,7 +41,7 @@
             network::mojom::RequestMode::kSameOrigin);
   params.SetRequestContext(mojom::RequestContextType::IMAGE);
   params.SetRequestDestination(network::mojom::RequestDestination::kImage);
-  return ToDocumentResource(
+  return To<DocumentResource>(
       fetcher->RequestResource(params, SVGDocumentResourceFactory(), client));
 }
 
diff --git a/third_party/blink/renderer/core/loader/resource/document_resource.h b/third_party/blink/renderer/core/loader/resource/document_resource.h
index bee1015e..83425227 100644
--- a/third_party/blink/renderer/core/loader/resource/document_resource.h
+++ b/third_party/blink/renderer/core/loader/resource/document_resource.h
@@ -29,6 +29,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/resource.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
 
@@ -75,11 +76,12 @@
   Member<Document> document_;
 };
 
-DEFINE_TYPE_CASTS(DocumentResource,
-                  Resource,
-                  resource,
-                  resource->GetType() == ResourceType::kSVGDocument,
-                  resource.GetType() == ResourceType::kSVGDocument);
+template <>
+struct DowncastTraits<DocumentResource> {
+  static bool AllowFrom(const Resource& resource) {
+    return resource.GetType() == ResourceType::kSVGDocument;
+  }
+};
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/core/messaging/message_port.idl b/third_party/blink/renderer/core/messaging/message_port.idl
index 554b8226..6fab27f 100644
--- a/third_party/blink/renderer/core/messaging/message_port.idl
+++ b/third_party/blink/renderer/core/messaging/message_port.idl
@@ -33,7 +33,7 @@
     Transferable
 ] interface MessagePort : EventTarget {
     [CallWith=ScriptState, RaisesException, Measure] void postMessage(any message, sequence<object> transfer);
-    [CallWith=ScriptState, RaisesException, Measure] void postMessage(any message, optional PostMessageOptions options);
+    [CallWith=ScriptState, RaisesException, Measure] void postMessage(any message, optional PostMessageOptions options = {});
     [Measure] void start();
     [Measure] void close();
 
diff --git a/third_party/blink/renderer/core/mojo/mojo_handle.idl b/third_party/blink/renderer/core/mojo/mojo_handle.idl
index 4fe2ab2..428236f 100644
--- a/third_party/blink/renderer/core/mojo/mojo_handle.idl
+++ b/third_party/blink/renderer/core/mojo/mojo_handle.idl
@@ -15,17 +15,17 @@
     // TODO(alokp): Create MojoMessagePipeHandle, a subclass of MojoHandle
     // and move the following member functions.
     MojoResult writeMessage(BufferSource buffer, sequence<MojoHandle> handles);
-    MojoReadMessageResult readMessage(optional MojoReadMessageFlags flags);
+    MojoReadMessageResult readMessage(optional MojoReadMessageFlags flags = {});
 
     // TODO(alokp): Create MojoDataPipeProducerHandle and MojoDataPipeConsumerHandle,
     // subclasses of MojoHandle and move the following member functions.
-    MojoWriteDataResult writeData(BufferSource buffer, optional MojoWriteDataOptions options);
+    MojoWriteDataResult writeData(BufferSource buffer, optional MojoWriteDataOptions options = {});
     MojoReadDataResult queryData();
-    MojoReadDataResult discardData(unsigned long numBytes, optional MojoDiscardDataOptions options);
-    MojoReadDataResult readData(BufferSource buffer, optional MojoReadDataOptions options);
+    MojoReadDataResult discardData(unsigned long numBytes, optional MojoDiscardDataOptions options = {});
+    MojoReadDataResult readData(BufferSource buffer, optional MojoReadDataOptions options = {});
 
     // TODO(alokp): Create MojoSharedBufferHandle, a subclass of MojoHandle
     // and move the following member functions.
     MojoMapBufferResult mapBuffer(unsigned long offset, unsigned long numBytes);
-    MojoCreateSharedBufferResult duplicateBufferHandle(optional MojoDuplicateBufferHandleOptions options);
+    MojoCreateSharedBufferResult duplicateBufferHandle(optional MojoDuplicateBufferHandleOptions options = {});
 };
diff --git a/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.idl b/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.idl
index 56e759c..3a0ceac 100644
--- a/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.idl
+++ b/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.idl
@@ -6,6 +6,6 @@
     Exposed=(Window,Worker),
     RuntimeEnabled=MojoJSTest
 ] interface MojoInterfaceRequestEvent : Event {
-    constructor(DOMString type, optional MojoInterfaceRequestEventInit eventInitDict);
+    constructor(DOMString type, optional MojoInterfaceRequestEventInit eventInitDict = {});
     readonly attribute MojoHandle handle;
 };
diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.idl b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.idl
index 913e911..5dcd665 100644
--- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.idl
+++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.idl
@@ -14,5 +14,5 @@
     attribute [EnforceRange] unsigned long height;
 
     [CallWith=ScriptState, HighEntropy, MeasureAs=OffscreenCanvasTransferToImageBitmap, RaisesException] ImageBitmap transferToImageBitmap();
-    [CallWith=ScriptState, HighEntropy, MeasureAs=OffscreenCanvasConvertToBlob, RaisesException] Promise<Blob> convertToBlob(optional ImageEncodeOptions options);
+    [CallWith=ScriptState, HighEntropy, MeasureAs=OffscreenCanvasConvertToBlob, RaisesException] Promise<Blob> convertToBlob(optional ImageEncodeOptions options = {});
 };
diff --git a/third_party/blink/renderer/core/page/scrolling/scroll_state.idl b/third_party/blink/renderer/core/page/scrolling/scroll_state.idl
index 6083568..515a5d6 100644
--- a/third_party/blink/renderer/core/page/scrolling/scroll_state.idl
+++ b/third_party/blink/renderer/core/page/scrolling/scroll_state.idl
@@ -8,7 +8,7 @@
   RuntimeEnabled = ScrollCustomization
 ] interface ScrollState
 {
-    constructor(optional ScrollStateInit scrollStateInit);
+    constructor(optional ScrollStateInit scrollStateInit = {});
     readonly attribute double deltaX;
     readonly attribute double deltaY;
     readonly attribute long positionX;
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 19a8aaa89..096fd29 100644
--- a/third_party/blink/renderer/core/paint/object_painter_base.cc
+++ b/third_party/blink/renderer/core/paint/object_painter_base.cc
@@ -550,7 +550,8 @@
     float border_radius = GetFocusRingBorderRadius(style);
     paint_info.context.DrawFocusRing(
         pixel_snapped_outline_rects, style.GetOutlineStrokeWidthForFocusRing(),
-        style.OutlineOffset(), border_radius, min_border_width, color,
+        style.OutlineOffset(), style.GetDefaultOffsetForFocusRing(),
+        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 7664d482..d97e4cd 100644
--- a/third_party/blink/renderer/core/style/computed_style.cc
+++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -2178,7 +2178,8 @@
     return 0;
   if (OutlineStyleIsAuto()) {
     return GraphicsContext::FocusRingOutsetExtent(
-        OutlineOffset(), std::ceil(GetOutlineStrokeWidthForFocusRing()),
+        OutlineOffset(), GetDefaultOffsetForFocusRing(),
+        std::ceil(GetOutlineStrokeWidthForFocusRing()),
         LayoutTheme::GetTheme().IsFocusRingOutset());
   }
   return base::ClampAdd(OutlineWidth(), OutlineOffset()).Max(0);
@@ -2201,6 +2202,17 @@
 #endif
 }
 
+int ComputedStyle::GetDefaultOffsetForFocusRing() const {
+  if (!::features::IsFormControlsRefreshEnabled())
+    return 0;
+
+  // For FormControlsRefresh checkbox, radio and links have a 2px inner padding.
+  if (EffectiveAppearance() == kCheckboxPart ||
+      EffectiveAppearance() == kRadioPart || IsLink())
+    return 2;
+  return 0;
+}
+
 bool ComputedStyle::ColumnRuleEquivalent(
     const ComputedStyle& other_style) const {
   return ColumnRuleStyle() == other_style.ColumnRuleStyle() &&
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
index dbfaa89..42715c3 100644
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -2004,6 +2004,7 @@
   }
   CORE_EXPORT int OutlineOutsetExtent() const;
   CORE_EXPORT float GetOutlineStrokeWidthForFocusRing() const;
+  CORE_EXPORT int GetDefaultOffsetForFocusRing() const;
   bool HasOutlineWithCurrentColor() const {
     return HasOutline() && OutlineColor().IsCurrentColor();
   }
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 d8ba2197..3f73fcd 100644
--- a/third_party/blink/renderer/core/style/computed_style_test.cc
+++ b/third_party/blink/renderer/core/style/computed_style_test.cc
@@ -104,6 +104,8 @@
   style->SetOutlineStyleIsAuto(static_cast<bool>(OutlineIsAuto::kOn));
   style->SetEffectiveZoom(4.75);
   if (::features::IsFormControlsRefreshEnabled()) {
+    EXPECT_EQ(4, style->OutlineOutsetExtent());
+    style->SetEffectiveAppearance(kRadioPart);
     EXPECT_EQ(6, style->OutlineOutsetExtent());
   } else {
 #if defined(OS_MACOSX)
diff --git a/third_party/blink/renderer/core/svg/svg_tests.cc b/third_party/blink/renderer/core/svg/svg_tests.cc
index b5839de..b32a8bca 100644
--- a/third_party/blink/renderer/core/svg/svg_tests.cc
+++ b/third_party/blink/renderer/core/svg/svg_tests.cc
@@ -20,12 +20,14 @@
 
 #include "third_party/blink/renderer/core/svg/svg_tests.h"
 
+#include "third_party/blink/renderer/core/mathml_names.h"
 #include "third_party/blink/renderer/core/page/chrome_client.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 #include "third_party/blink/renderer/core/svg/svg_static_string_list.h"
 #include "third_party/blink/renderer/core/svg_names.h"
 #include "third_party/blink/renderer/platform/language.h"
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 
 namespace blink {
 
@@ -98,7 +100,9 @@
     if (extensions.IsEmpty())
       return false;
     for (const auto& extension : extensions) {
-      if (extension != html_names::xhtmlNamespaceURI)
+      if (extension != html_names::xhtmlNamespaceURI &&
+          (!RuntimeEnabledFeatures::MathMLCoreEnabled() ||
+           extension != mathml_names::kNamespaceURI))
         return false;
     }
   }
diff --git a/third_party/blink/renderer/core/svg/svg_use_element.cc b/third_party/blink/renderer/core/svg/svg_use_element.cc
index 9ec653605..be26c0d 100644
--- a/third_party/blink/renderer/core/svg/svg_use_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_use_element.cc
@@ -319,7 +319,7 @@
   }
   if (!ResourceIsValid())
     return nullptr;
-  return ToDocumentResource(GetResource())
+  return To<DocumentResource>(GetResource())
       ->GetDocument()
       ->getElementById(element_identifier);
 }
@@ -628,7 +628,7 @@
   // TODO(fs): Handle revalidations that return a new/different resource.
   if (!resource->IsLoaded() && !resource->IsCacheValidator())
     return false;
-  return ToDocumentResource(resource)->GetDocument();
+  return To<DocumentResource>(resource)->GetDocument();
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/testing/dictionary_test.idl b/third_party/blink/renderer/core/testing/dictionary_test.idl
index e1cddf7c..3d13200 100644
--- a/third_party/blink/renderer/core/testing/dictionary_test.idl
+++ b/third_party/blink/renderer/core/testing/dictionary_test.idl
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 interface DictionaryTest {
-    void set(optional InternalDictionary testingDictionary);
+    void set(optional InternalDictionary testingDictionary = {});
     InternalDictionary get();
     [CallWith=ScriptState] object getDictionaryMemberProperties();
 
diff --git a/third_party/blink/renderer/core/testing/fake_local_frame_host.cc b/third_party/blink/renderer/core/testing/fake_local_frame_host.cc
index 3883ae4c3..5fe8f78 100644
--- a/third_party/blink/renderer/core/testing/fake_local_frame_host.cc
+++ b/third_party/blink/renderer/core/testing/fake_local_frame_host.cc
@@ -77,6 +77,8 @@
     const KURL& initiator_url,
     mojom::NavigationBlockedReason reason) {}
 
+void FakeLocalFrameHost::RenderFallbackContentInParentProcess() {}
+
 void FakeLocalFrameHost::BindFrameHostReceiver(
     mojo::ScopedInterfaceEndpointHandle handle) {
   receiver_.Bind(mojo::PendingAssociatedReceiver<mojom::blink::LocalFrameHost>(
@@ -85,5 +87,9 @@
 
 void FakeLocalFrameHost::GoToEntryAtOffset(int32_t offset,
                                            bool has_user_gesture) {}
+void FakeLocalFrameHost::HandleAccessibilityFindInPageResult(
+    mojom::blink::FindInPageResultAXParamsPtr params) {}
+
+void FakeLocalFrameHost::HandleAccessibilityFindInPageTermination() {}
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/testing/fake_local_frame_host.h b/third_party/blink/renderer/core/testing/fake_local_frame_host.h
index ff1f298..ae96d5c 100644
--- a/third_party/blink/renderer/core/testing/fake_local_frame_host.h
+++ b/third_party/blink/renderer/core/testing/fake_local_frame_host.h
@@ -55,6 +55,10 @@
                           const KURL& initiator_url,
                           mojom::NavigationBlockedReason reason) override;
   void GoToEntryAtOffset(int32_t offset, bool has_user_gesture) override;
+  void RenderFallbackContentInParentProcess() override;
+  void HandleAccessibilityFindInPageResult(
+      mojom::blink::FindInPageResultAXParamsPtr params) override;
+  void HandleAccessibilityFindInPageTermination() override;
 
  private:
   void BindFrameHostReceiver(mojo::ScopedInterfaceEndpointHandle handle);
diff --git a/third_party/blink/renderer/core/timing/performance.idl b/third_party/blink/renderer/core/timing/performance.idl
index 644afd13..054c1bb 100644
--- a/third_party/blink/renderer/core/timing/performance.idl
+++ b/third_party/blink/renderer/core/timing/performance.idl
@@ -60,18 +60,18 @@
     // https://w3c.github.io/user-timing/#extensions-performance-interface
     // TODO(https://crbug.com/996275): Once our IDL parser supports it, we need
     // to supply a default-value of '{}' to markOptions.
-    [MeasureAs=UserTiming, CallWith=ScriptState, RaisesException] PerformanceMark mark(DOMString markName, optional PerformanceMarkOptions markOptions);
+    [MeasureAs=UserTiming, CallWith=ScriptState, RaisesException] PerformanceMark mark(DOMString markName, optional PerformanceMarkOptions markOptions = {});
     [MeasureAs=UserTiming] void clearMarks(optional DOMString markName);
     // TODO(https://crbug.com/996275): Once our IDL parser supports it, we need
     // to supply a default-value of '{}' to startOrOptions.
-    [MeasureAs=UserTiming, CallWith=ScriptState, RaisesException] PerformanceMeasure measure(DOMString measureName, optional (DOMString or PerformanceMeasureOptions) startOrOptions, optional DOMString end);
+    [MeasureAs=UserTiming, CallWith=ScriptState, RaisesException] PerformanceMeasure measure(DOMString measureName, optional (DOMString or PerformanceMeasureOptions) startOrMeasureOptions = {}, optional DOMString endMark);
     [MeasureAs=UserTiming] void clearMeasures(optional DOMString measureName);
 
     // TODO(foolip): There is no spec for the Memory Info API, see blink-dev:
     // https://groups.google.com/a/chromium.org/d/msg/blink-dev/g5YRCGpC9vs/b4OJz71NmPwJ
     [Exposed=Window, Measure] readonly attribute MemoryInfo memory;
 
-    [Exposed=(Window,Worker), CallWith=ScriptState, RuntimeEnabled=MeasureMemory] Promise<MeasureMemory> measureMemory(optional MeasureMemoryOptions options);
+    [Exposed=(Window,Worker), CallWith=ScriptState, RuntimeEnabled=MeasureMemory] Promise<MeasureMemory> measureMemory(optional MeasureMemoryOptions options = {});
 
     // JS Self-Profiling API
     // https://github.com/WICG/js-self-profiling/
diff --git a/third_party/blink/renderer/core/timing/performance_mark.idl b/third_party/blink/renderer/core/timing/performance_mark.idl
index 4906896..81fa84e5 100644
--- a/third_party/blink/renderer/core/timing/performance_mark.idl
+++ b/third_party/blink/renderer/core/timing/performance_mark.idl
@@ -28,6 +28,6 @@
 [
 Exposed=(Window,Worker)
 ] interface PerformanceMark : PerformanceEntry {
-    [CallWith=ScriptState, RaisesException] constructor(DOMString markName, optional PerformanceMarkOptions markOptions);
+    [CallWith=ScriptState, RaisesException] constructor(DOMString markName, optional PerformanceMarkOptions markOptions = {});
     [CallWith=ScriptState] readonly attribute any detail;
 };
diff --git a/third_party/blink/renderer/core/timing/performance_observer.idl b/third_party/blink/renderer/core/timing/performance_observer.idl
index 8cc4f1a..83fa192 100644
--- a/third_party/blink/renderer/core/timing/performance_observer.idl
+++ b/third_party/blink/renderer/core/timing/performance_observer.idl
@@ -11,7 +11,7 @@
     Exposed=(Window,Worker)
 ] interface PerformanceObserver {
     [CallWith=ScriptState] constructor(PerformanceObserverCallback callback);
-    [RaisesException] void observe(optional PerformanceObserverInit options);
+    [RaisesException] void observe(optional PerformanceObserverInit options = {});
     void disconnect();
     PerformanceEntryList takeRecords();
     [SameObject, SaveSameObject, CallWith=ScriptState] static readonly attribute FrozenArray<DOMString> supportedEntryTypes;
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl
index 034a5e4..aa7f68f 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl
@@ -37,7 +37,7 @@
     [Replaceable] readonly attribute DOMString name;
 
     [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence<object> transfer);
-    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options);
+    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options = {});
 
     void close();
 
diff --git a/third_party/blink/renderer/core/workers/worker.idl b/third_party/blink/renderer/core/workers/worker.idl
index 5ea5b8d..dde87b03 100644
--- a/third_party/blink/renderer/core/workers/worker.idl
+++ b/third_party/blink/renderer/core/workers/worker.idl
@@ -32,11 +32,11 @@
     Exposed=(Window,DedicatedWorker),
     ImplementedAs=DedicatedWorker
 ] interface Worker : EventTarget {
-    [CallWith=ExecutionContext, RaisesException] constructor(DOMString scriptURL, optional WorkerOptions options);
+    [CallWith=ExecutionContext, RaisesException] constructor(DOMString scriptURL, optional WorkerOptions options = {});
     void terminate();
 
     [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence<object> transfer);
-    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options);
+    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options = {});
     attribute EventHandler onmessage;
 };
 
diff --git a/third_party/blink/renderer/core/workers/worklet.idl b/third_party/blink/renderer/core/workers/worklet.idl
index 91fe7094..cb4571e9b 100644
--- a/third_party/blink/renderer/core/workers/worklet.idl
+++ b/third_party/blink/renderer/core/workers/worklet.idl
@@ -7,5 +7,5 @@
 [
     SecureContext
 ] interface Worklet {
-    [CallWith=ScriptState, RaisesException] Promise<void> addModule(USVString moduleURL, optional WorkletOptions options);
+    [CallWith=ScriptState, RaisesException] Promise<void> addModule(USVString moduleURL, optional WorkletOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/app_banner/before_install_prompt_event.idl b/third_party/blink/renderer/modules/app_banner/before_install_prompt_event.idl
index aa198f96..73d2426 100644
--- a/third_party/blink/renderer/modules/app_banner/before_install_prompt_event.idl
+++ b/third_party/blink/renderer/modules/app_banner/before_install_prompt_event.idl
@@ -5,7 +5,7 @@
 [
     ActiveScriptWrappable
 ] interface BeforeInstallPromptEvent : Event {
-    [CallWith=ExecutionContext] constructor(DOMString type, optional BeforeInstallPromptEventInit eventInitDict);
+    [CallWith=ExecutionContext] constructor(DOMString type, optional BeforeInstallPromptEventInit eventInitDict = {});
     readonly attribute FrozenArray<DOMString> platforms;
     [CallWith=ScriptState, RaisesException] readonly attribute Promise<AppBannerPromptResult> userChoice;
     [CallWith=ScriptState, RaisesException] Promise<void> prompt();
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc
index d4bbd67..a3af130 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc
@@ -6,7 +6,6 @@
 
 #include <utility>
 
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/renderer/modules/background_fetch/background_fetch_options.h"
 #include "third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h"
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.idl b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.idl
index ad540ab..18e2ce7d 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.idl
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.idl
@@ -8,7 +8,7 @@
     Exposed=(Window,Worker),
     RuntimeEnabled=BackgroundFetch
 ] interface BackgroundFetchManager {
-    [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchManagerFetch] Promise<BackgroundFetchRegistration> fetch(DOMString id, (RequestInfo or sequence<RequestInfo>) requests, optional BackgroundFetchOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchManagerFetch] Promise<BackgroundFetchRegistration> fetch(DOMString id, (RequestInfo or sequence<RequestInfo>) requests, optional BackgroundFetchOptions options = {});
     [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchManagerGet] Promise<BackgroundFetchRegistration?> get(DOMString id);
     [CallWith=ScriptState, MeasureAs=BackgroundFetchManagerGetIds] Promise<FrozenArray<DOMString>> getIds();
 };
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl
index fa906d7..58adaf1d 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl
@@ -20,8 +20,8 @@
     attribute EventHandler onprogress;
 
     [CallWith=ScriptState, MeasureAs=BackgroundFetchRegistrationAbort] Promise<boolean> abort();
-    [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchRegistrationMatch] Promise<BackgroundFetchRecord> match(RequestInfo request, optional CacheQueryOptions options);
-    [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchRegistrationMatchAll] Promise<sequence<BackgroundFetchRecord>> matchAll(optional RequestInfo request, optional CacheQueryOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchRegistrationMatch] Promise<BackgroundFetchRecord> match(RequestInfo request, optional CacheQueryOptions options = {});
+    [CallWith=ScriptState, RaisesException, MeasureAs=BackgroundFetchRegistrationMatchAll] Promise<sequence<BackgroundFetchRecord>> matchAll(optional RequestInfo request, optional CacheQueryOptions options = {});
 };
 
 enum BackgroundFetchResult { "", "success", "failure" };
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_update_ui_event.idl b/third_party/blink/renderer/modules/background_fetch/background_fetch_update_ui_event.idl
index b8114af..d6ba200 100644
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_update_ui_event.idl
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_update_ui_event.idl
@@ -9,5 +9,5 @@
     RuntimeEnabled=BackgroundFetch
 ] interface BackgroundFetchUpdateUIEvent : BackgroundFetchEvent {
     constructor(DOMString type, BackgroundFetchEventInit init);
-    [CallWith=ScriptState, RaisesException] Promise<void> updateUI(optional BackgroundFetchUIOptions options);
+  [CallWith=ScriptState, RaisesException] Promise<void> updateUI(optional BackgroundFetchUIOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/background_sync/periodic_sync_manager.idl b/third_party/blink/renderer/modules/background_sync/periodic_sync_manager.idl
index deb5029..443c2a6 100644
--- a/third_party/blink/renderer/modules/background_sync/periodic_sync_manager.idl
+++ b/third_party/blink/renderer/modules/background_sync/periodic_sync_manager.idl
@@ -9,7 +9,7 @@
     Exposed=(Window,Worker),
     RuntimeEnabled=PeriodicBackgroundSync
 ] interface PeriodicSyncManager {
-    [MeasureAs=PeriodicBackgroundSyncRegister,CallWith=ScriptState,RaisesException,ImplementedAs=registerPeriodicSync] Promise<void> register(DOMString tag, optional BackgroundSyncOptions options);
+    [MeasureAs=PeriodicBackgroundSyncRegister,CallWith=ScriptState,RaisesException,ImplementedAs=registerPeriodicSync] Promise<void> register(DOMString tag, optional BackgroundSyncOptions options = {});
     [MeasureAs=PeriodicBackgroundSyncGetTags, CallWith=ScriptState] Promise<sequence<DOMString>> getTags();
     [MeasureAs=PeriodicBackgroundSyncUnregister,CallWith=ScriptState] Promise<void> unregister(DOMString tag);
 };
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth.idl b/third_party/blink/renderer/modules/bluetooth/bluetooth.idl
index 4aab1566..f669af3 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth.idl
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth.idl
@@ -10,11 +10,11 @@
     SecureContext
 ] interface Bluetooth : EventTarget {
     [CallWith=ScriptState, RaisesException] Promise<boolean> getAvailability();
-    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRequestDevice] Promise<BluetoothDevice> requestDevice (optional RequestDeviceOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRequestDevice] Promise<BluetoothDevice> requestDevice (optional RequestDeviceOptions options = {});
 
-    // https://webbluetoothcg.github.io/web-bluetooth/scanning.html#dom-bluetooth-requestlescan
+    // https://webbluetoothcg.github.io/web-bluetooth/scanning.html#scanning
     [RuntimeEnabled=WebBluetoothScanning, CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRequestScan]
-    Promise<BluetoothLEScan> requestLEScan (optional BluetoothLEScanOptions options);
+    Promise<BluetoothLEScan> requestLEScan (optional BluetoothLEScanOptions options = {});
 
     [RuntimeEnabled=WebBluetoothScanning] attribute EventHandler onadvertisementreceived;
 };
diff --git a/third_party/blink/renderer/modules/cache_storage/cache.idl b/third_party/blink/renderer/modules/cache_storage/cache.idl
index a923cdf..fc43512 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache.idl
+++ b/third_party/blink/renderer/modules/cache_storage/cache.idl
@@ -9,11 +9,11 @@
     Exposed=(Window,Worker)
 ] interface Cache {
     [CallWith=ScriptState, MeasureAs=CacheStorageRead, RaisesException]
-    Promise<any> match(RequestInfo request, optional CacheQueryOptions options);
+    Promise<any> match(RequestInfo request, optional CacheQueryOptions options = {});
 
     [CallWith=ScriptState, MeasureAs=CacheStorageRead, RaisesException]
     Promise<sequence<Response>> matchAll(optional RequestInfo request,
-                                         optional CacheQueryOptions options);
+                                         optional CacheQueryOptions options = {});
 
     [CallWith=ScriptState, MeasureAs=CacheStorageWrite, RaisesException]
     Promise<void> add(RequestInfo request);
@@ -30,9 +30,9 @@
       MeasureAs=CacheStorageWrite,
       RaisesException
     ] Promise<boolean> delete(RequestInfo request,
-                              optional CacheQueryOptions options);
+                              optional CacheQueryOptions options = {});
 
     [CallWith=ScriptState, MeasureAs=CacheStorageRead, RaisesException]
     Promise<sequence<Request>> keys(optional RequestInfo request,
-                                    optional CacheQueryOptions options);
+                                    optional CacheQueryOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage.idl b/third_party/blink/renderer/modules/cache_storage/cache_storage.idl
index bc0a0e2..5bd6417 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache_storage.idl
+++ b/third_party/blink/renderer/modules/cache_storage/cache_storage.idl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// See https://w3c.github.io/ServiceWorker/#cachestorage-interface
+// https://w3c.github.io/ServiceWorker/#cachestorage-interface
 [
     ActiveScriptWrappable,
     SecureContext,
@@ -10,7 +10,7 @@
 ] interface CacheStorage {
   [CallWith=ScriptState, MeasureAs=CacheStorageRead, RaisesException]
   Promise<any> match(RequestInfo request,
-                     optional MultiCacheQueryOptions options);
+                     optional MultiCacheQueryOptions options = {});
 
   [CallWith=ScriptState, MeasureAs=CacheStorageRead]
   Promise<boolean> has(DOMString cacheName);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_pattern.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_pattern.idl
index afb67a4..fdab94a 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_pattern.idl
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_pattern.idl
@@ -22,10 +22,13 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+// https://html.spec.whatwg.org/C/#canvaspattern
+
 [
     Exposed=(Window,Worker)
 ] interface CanvasPattern {
 
-    [RaisesException] void setTransform(optional DOMMatrix2DInit transform);
+    [RaisesException] void setTransform(optional DOMMatrix2DInit transform = {});
 
 };
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
index d2b906eb..b4b6ae1 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
@@ -59,7 +59,7 @@
     void translate(unrestricted double x, unrestricted double y);
     void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
     void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
-    [RaisesException] void setTransform(optional DOMMatrix2DInit transform);
+    [RaisesException] void setTransform(optional DOMMatrix2DInit transform = {});
     DOMMatrix getTransform();
     void resetTransform();
 
@@ -119,7 +119,7 @@
     [CallWith=ScriptState, RaisesException] void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy, unrestricted double sw, unrestricted double sh, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh);
 
     // hit regions
-    [RuntimeEnabled=CanvasHitRegion, RaisesException] void addHitRegion(optional HitRegionOptions options);
+    [RuntimeEnabled=CanvasHitRegion, RaisesException] void addHitRegion(optional HitRegionOptions options = {});
     [RuntimeEnabled=CanvasHitRegion] void removeHitRegion(DOMString id);
     [RuntimeEnabled=CanvasHitRegion] void clearHitRegions();
 
@@ -132,7 +132,7 @@
 
     // https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md
     [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(unsigned long sw, unsigned long sh, ImageDataColorSettings imageDataColorSettings);
-    [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(ImageDataArray data, unsigned long sw, unsigned long sh, optional ImageDataColorSettings imageDataColorSettings);
+    [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(ImageDataArray data, unsigned long sw, unsigned long sh, optional ImageDataColorSettings imageDataColorSettings = {});
 
     // Context state
     // Should be merged with WebGL counterpart in CanvasRenderingContext, once no-longer experimental
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.idl
index c2d6ff1..c9049fc 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.idl
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.idl
@@ -32,7 +32,7 @@
     Exposed=(PaintWorklet,Window,Worker)
 ] interface Path2D {
     constructor(optional (Path2D or DOMString) path);
-    [RaisesException] void addPath(Path2D path, optional DOMMatrix2DInit transform);
+    [RaisesException] void addPath(Path2D path, optional DOMMatrix2DInit transform = {});
 };
 
 Path2D includes CanvasPath;
diff --git a/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module_support_webgl2_compute.idl b/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module_support_webgl2_compute.idl
index 3ca7190..8df9faa 100644
--- a/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module_support_webgl2_compute.idl
+++ b/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module_support_webgl2_compute.idl
@@ -23,6 +23,6 @@
     // requires throwing TypeError if the incoming argument is not an object type
     // (and is not undefined or null). The binding must ignore this.
     // Related spec issue: https://github.com/whatwg/html/issues/595
-    [RaisesException] RenderingContext? getContext(DOMString contextId, [PermissiveDictionaryConversion] optional CanvasContextCreationAttributesModule attributes);
+    [RaisesException] RenderingContext? getContext(DOMString contextId, [PermissiveDictionaryConversion] optional CanvasContextCreationAttributesModule attributes = {});
     [CallWith=ExecutionContext, RaisesException, MeasureAs=OffscreenCanvas, RuntimeEnabled=SurfaceEmbeddingFeatures] OffscreenCanvas transferControlToOffscreen();
 };
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module_support_webgl2_compute.idl b/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module_support_webgl2_compute.idl
index b98939e..a3728a2 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module_support_webgl2_compute.idl
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module_support_webgl2_compute.idl
@@ -14,5 +14,5 @@
 [
     ImplementedAs=OffscreenCanvasModule
 ] partial interface OffscreenCanvas {
-    [CallWith=ExecutionContext, RaisesException] OffscreenRenderingContext? getContext(OffscreenRenderingContextType contextType, optional CanvasContextCreationAttributesModule attributes);
+    [CallWith=ExecutionContext, RaisesException] OffscreenRenderingContext? getContext(OffscreenRenderingContextType contextType, optional CanvasContextCreationAttributesModule attributes = {});
 };
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
index 6555d4c..4371777 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
@@ -23,7 +23,7 @@
     void translate(unrestricted double x, unrestricted double y);
     void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
     void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
-    [RaisesException] void setTransform(optional DOMMatrix2DInit transform);
+    [RaisesException] void setTransform(optional DOMMatrix2DInit transform = {});
     DOMMatrix getTransform();
     void resetTransform();
 
diff --git a/third_party/blink/renderer/modules/clipboard/clipboard_item.idl b/third_party/blink/renderer/modules/clipboard/clipboard_item.idl
index 25d6a685d..d9ddf4f1 100644
--- a/third_party/blink/renderer/modules/clipboard/clipboard_item.idl
+++ b/third_party/blink/renderer/modules/clipboard/clipboard_item.idl
@@ -9,7 +9,7 @@
   RuntimeEnabled=AsyncClipboard
 ] interface ClipboardItem {
   [RaisesException] constructor(record<DOMString, Blob> items,
-              optional ClipboardItemOptions options);
+              optional ClipboardItemOptions options = {});
   readonly attribute FrozenArray<DOMString> types;
 
   [RuntimeEnabled=RawClipboard]
@@ -18,4 +18,4 @@
   [
     CallWith=ScriptState
   ] Promise<Blob> getType(DOMString type);
-};
\ No newline at end of file
+};
diff --git a/third_party/blink/renderer/modules/contacts_picker/contacts_manager.idl b/third_party/blink/renderer/modules/contacts_picker/contacts_manager.idl
index b47228d..30f2b65 100644
--- a/third_party/blink/renderer/modules/contacts_picker/contacts_manager.idl
+++ b/third_party/blink/renderer/modules/contacts_picker/contacts_manager.idl
@@ -10,5 +10,5 @@
     RuntimeEnabled=ContactsManager
 ] interface ContactsManager {
     [CallWith=ScriptState, MeasureAs=ContactsManagerGetProperties] Promise<sequence<ContactProperty>> getProperties();
-    [CallWith=ScriptState, RaisesException, MeasureAs=ContactsManagerSelect] Promise<sequence<ContactInfo>> select(sequence<ContactProperty> properties, optional ContactsSelectOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=ContactsManagerSelect] Promise<sequence<ContactInfo>> select(sequence<ContactProperty> properties, optional ContactsSelectOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_change_event.idl b/third_party/blink/renderer/modules/cookie_store/cookie_change_event.idl
index 223a6fd..01f43c90 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_change_event.idl
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_change_event.idl
@@ -13,7 +13,7 @@
   RuntimeEnabled=CookieStore,
   SecureContext
 ] interface CookieChangeEvent : Event {
-  constructor(DOMString type, optional CookieChangeEventInit eventInitDict);
+  constructor(DOMString type, optional CookieChangeEventInit eventInitDict = {});
   [MeasureAs=CookieStoreAPI] readonly attribute CookieList changed;
   [MeasureAs=CookieStoreAPI] readonly attribute CookieList deleted;
 };
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.idl b/third_party/blink/renderer/modules/cookie_store/cookie_store.idl
index a216eba..1949534 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.idl
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.idl
@@ -13,15 +13,15 @@
   [CallWith=ScriptState, Measure, RaisesException] Promise<CookieListItem?> get(
       USVString name);
   [CallWith=ScriptState, Measure, RaisesException] Promise<CookieListItem?> get(
-      optional CookieStoreGetOptions options);
+      optional CookieStoreGetOptions options = {});
   [CallWith=ScriptState, Measure, RaisesException] Promise<CookieList> getAll(
       USVString name);
   [CallWith=ScriptState, Measure, RaisesException] Promise<CookieList> getAll(
-      optional CookieStoreGetOptions options);
+      optional CookieStoreGetOptions options = {});
 
   // https://wicg.github.io/cookie-store/explainer.html#the-modifications-api
   [CallWith=ScriptState, Measure, RaisesException] Promise<void> set(
-      USVString name, USVString value, optional CookieStoreSetOptions options);
+      USVString name, USVString value, optional CookieStoreSetOptions options = {});
   [CallWith=ScriptState, Measure, RaisesException] Promise<void> set(
       CookieStoreSetExtraOptions options);
   [CallWith=ScriptState, ImplementedAs=Delete, Measure, RaisesException]
diff --git a/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.idl b/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.idl
index cb8d5fa2..3d61cb0 100644
--- a/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.idl
+++ b/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.idl
@@ -11,7 +11,7 @@
   Exposed=ServiceWorker,
   RuntimeEnabled=CookieStore
 ] interface ExtendableCookieChangeEvent : ExtendableEvent {
-  constructor(DOMString type, optional ExtendableCookieChangeEventInit eventInitDict);
+  constructor(DOMString type, optional ExtendableCookieChangeEventInit eventInitDict = {});
   [MeasureAs=CookieStoreAPI] readonly attribute CookieList changed;
   [MeasureAs=CookieStoreAPI] readonly attribute CookieList deleted;
 };
diff --git a/third_party/blink/renderer/modules/cookie_store/service_worker_registration_cookies.cc b/third_party/blink/renderer/modules/cookie_store/service_worker_registration_cookies.cc
index d569307d..52623dea 100644
--- a/third_party/blink/renderer/modules/cookie_store/service_worker_registration_cookies.cc
+++ b/third_party/blink/renderer/modules/cookie_store/service_worker_registration_cookies.cc
@@ -4,7 +4,6 @@
 
 #include "third_party/blink/renderer/modules/cookie_store/service_worker_registration_cookies.h"
 
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/renderer/modules/cookie_store/cookie_store_manager.h"
 #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h"
diff --git a/third_party/blink/renderer/modules/credentialmanager/credentials_container.idl b/third_party/blink/renderer/modules/credentialmanager/credentials_container.idl
index 1ff690c2..c7ee625 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credentials_container.idl
+++ b/third_party/blink/renderer/modules/credentialmanager/credentials_container.idl
@@ -6,8 +6,8 @@
 
 [Exposed=Window, SecureContext]
 interface CredentialsContainer {
-    [CallWith=ScriptState, MeasureAs=CredentialManagerGet] Promise<Credential?> get(optional CredentialRequestOptions options);
+    [CallWith=ScriptState, MeasureAs=CredentialManagerGet] Promise<Credential?> get(optional CredentialRequestOptions options = {});
     [CallWith=ScriptState, MeasureAs=CredentialManagerStore] Promise<Credential> store(Credential credential);
-    [CallWith=ScriptState, RaisesException, MeasureAs=CredentialManagerCreate] Promise<Credential?> create(optional CredentialCreationOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=CredentialManagerCreate] Promise<Credential?> create(optional CredentialCreationOptions options = {});
     [CallWith=ScriptState, MeasureAs=CredentialManagerPreventSilentAccess] Promise<void> preventSilentAccess();
 };
diff --git a/third_party/blink/renderer/modules/credentialmanager/credentials_container_test.cc b/third_party/blink/renderer/modules/credentialmanager/credentials_container_test.cc
index 427cfed..c4c4123 100644
--- a/third_party/blink/renderer/modules/credentialmanager/credentials_container_test.cc
+++ b/third_party/blink/renderer/modules/credentialmanager/credentials_container_test.cc
@@ -11,7 +11,6 @@
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/public/mojom/credentialmanager/credential_manager.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl b/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl
index 0f22522..94d6d46 100644
--- a/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl
+++ b/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl
@@ -18,7 +18,7 @@
     void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
     void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
     void resetTransform();
-    [RaisesException] void setTransform(optional DOMMatrix2DInit transform);
+    [RaisesException] void setTransform(optional DOMMatrix2DInit transform = {});
     DOMMatrix getTransform();
 
 
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl b/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl
index 850fb62..02ab114 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl
+++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window, SecureContext
 ] interface DeviceMotionEvent : Event {
-    constructor(DOMString type, optional DeviceMotionEventInit eventInitDict);
+    constructor(DOMString type, optional DeviceMotionEventInit eventInitDict = {});
     readonly attribute DeviceMotionEventAcceleration? acceleration;
     readonly attribute DeviceMotionEventAcceleration? accelerationIncludingGravity;
     readonly attribute DeviceMotionEventRotationRate? rotationRate;
diff --git a/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl b/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl
index 499a10f..b623b70 100644
--- a/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl
+++ b/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window, SecureContext
 ] interface DeviceOrientationEvent : Event {
-    constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict);
+    constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict = {});
     readonly attribute double? alpha;
     readonly attribute double? beta;
     readonly attribute double? gamma;
diff --git a/third_party/blink/renderer/modules/encoding/text_decoder.idl b/third_party/blink/renderer/modules/encoding/text_decoder.idl
index 55a59040..96ea471 100644
--- a/third_party/blink/renderer/modules/encoding/text_decoder.idl
+++ b/third_party/blink/renderer/modules/encoding/text_decoder.idl
@@ -28,12 +28,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// https://encoding.spec.whatwg.org/#textdecoder
+
 [
     Exposed=(Window,Worker)
 ] interface TextDecoder {
-    [RaisesException, MeasureAs=TextDecoderConstructor] constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options);
+    [RaisesException, MeasureAs=TextDecoderConstructor] constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options = {});
     readonly attribute DOMString encoding;
     readonly attribute boolean fatal;
     readonly attribute boolean ignoreBOM;
-    [RaisesException, MeasureAs=TextDecoderDecode] DOMString decode(optional BufferSource input, optional TextDecodeOptions options);
+    [RaisesException, MeasureAs=TextDecoderDecode] DOMString decode(optional BufferSource input, optional TextDecodeOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl b/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl
index 4e47557..427c971 100644
--- a/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl
+++ b/third_party/blink/renderer/modules/encoding/text_decoder_stream.idl
@@ -6,7 +6,7 @@
 [
     Exposed=(Window,Worker)
 ] interface TextDecoderStream {
-    [CallWith=ScriptState, RaisesException, MeasureAs=TextDecoderStreamConstructor] constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=TextDecoderStreamConstructor] constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options = {});
     readonly attribute DOMString encoding;
     readonly attribute boolean fatal;
     readonly attribute boolean ignoreBOM;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl b/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
index aa409f3e..d24d4a18 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window
 ] interface MediaEncryptedEvent : Event {
-    constructor(DOMString type, optional MediaEncryptedEventInit eventInitDict);
+    constructor(DOMString type, optional MediaEncryptedEventInit eventInitDict = {});
     readonly attribute DOMString initDataType;
     readonly attribute ArrayBuffer? initData;
 };
diff --git a/third_party/blink/renderer/modules/eventsource/event_source.idl b/third_party/blink/renderer/modules/eventsource/event_source.idl
index 7d1adc7..a6c1344 100644
--- a/third_party/blink/renderer/modules/eventsource/event_source.idl
+++ b/third_party/blink/renderer/modules/eventsource/event_source.idl
@@ -35,7 +35,7 @@
     ActiveScriptWrappable,
     Exposed=(Window,Worker)
 ] interface EventSource : EventTarget {
-    [CallWith=ExecutionContext, RaisesException] constructor(USVString url, optional EventSourceInit eventSourceInitDict);
+    [CallWith=ExecutionContext, RaisesException] constructor(USVString url, optional EventSourceInit eventSourceInitDict = {});
     readonly attribute USVString url;
     readonly attribute boolean withCredentials;
 
diff --git a/third_party/blink/renderer/modules/filesystem/directory_entry.idl b/third_party/blink/renderer/modules/filesystem/directory_entry.idl
index 84f7c97e..25846d52 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_entry.idl
+++ b/third_party/blink/renderer/modules/filesystem/directory_entry.idl
@@ -28,7 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://www.w3.org/TR/2012/WD-file-system-api-20120417/#idl-def-DirectoryEntry
+// https://wicg.github.io/entries-api/#api-directoryentry
 [
   NoInterfaceObject
 ] interface DirectoryEntry : Entry {
@@ -37,14 +37,14 @@
   // TODO(crbug.com/841185): |successCallback| and |errorCallback| are not
   // nullable in the spec.
   void getFile(DOMString? path,
-               optional FileSystemFlags options,
+               optional FileSystemFlags options = {},
                optional EntryCallback? successCallback,
                optional ErrorCallback? errorCallback);
 
   // TODO(crbug.com/841185): |successCallback| and |errorCallback| are not
   // nullable in the spec.
   void getDirectory(DOMString? path,
-                    optional FileSystemFlags options,
+                    optional FileSystemFlags options = {},
                     optional EntryCallback? successCallback,
                     optional ErrorCallback? errorCallback);
 
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.cc b/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.cc
index b5bf4f2..a8a7293 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.cc
+++ b/third_party/blink/renderer/modules/filesystem/file_system_dispatcher.cc
@@ -8,7 +8,6 @@
 
 #include "build/build_config.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/public/platform/file_path_conversion.h"
 #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_axis_event.idl b/third_party/blink/renderer/modules/gamepad/gamepad_axis_event.idl
index 5359dc90..b8f091d 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_axis_event.idl
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_axis_event.idl
@@ -8,7 +8,7 @@
 [
     RuntimeEnabled=GamepadButtonAxisEvents
 ] interface GamepadAxisEvent : GamepadEvent {
-    constructor(DOMString type, optional GamepadAxisEventInit eventInitDict);
+    constructor(DOMString type, optional GamepadAxisEventInit eventInitDict = {});
     [ImplementedAs=getAxis] readonly attribute unsigned long axis;
     [ImplementedAs=getValue] readonly attribute double value;
 };
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_button_event.idl b/third_party/blink/renderer/modules/gamepad/gamepad_button_event.idl
index a816e2c..5138a3b1 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_button_event.idl
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_button_event.idl
@@ -8,7 +8,7 @@
 [
     RuntimeEnabled=GamepadButtonAxisEvents
 ] interface GamepadButtonEvent : GamepadEvent {
-    constructor(DOMString type, optional GamepadButtonEventInit eventInitDict);
+    constructor(DOMString type, optional GamepadButtonEventInit eventInitDict = {});
     [ImplementedAs=getButton] readonly attribute unsigned long button;
     [ImplementedAs=getValue] readonly attribute double value;
 };
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_event.idl b/third_party/blink/renderer/modules/gamepad/gamepad_event.idl
index 3013b5c..6e5d205 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_event.idl
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_event.idl
@@ -5,6 +5,6 @@
 // https://w3c.github.io/gamepad/#gamepadevent-interface
 
 interface GamepadEvent : Event {
-    constructor(DOMString type, optional GamepadEventInit eventInitDict);
+    constructor(DOMString type, optional GamepadEventInit eventInitDict = {});
     [ImplementedAs=getGamepad] readonly attribute Gamepad gamepad;
 };
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.cc b/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.cc
index ecfd71d..6b058ac 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.cc
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_shared_memory_reader.cc
@@ -10,7 +10,6 @@
 #include "device/gamepad/public/mojom/gamepad_hardware_buffer.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/modules/gamepad/gamepad_listener.h"
 
diff --git a/third_party/blink/renderer/modules/geolocation/geolocation.idl b/third_party/blink/renderer/modules/geolocation/geolocation.idl
index 9330197..55e55ab 100644
--- a/third_party/blink/renderer/modules/geolocation/geolocation.idl
+++ b/third_party/blink/renderer/modules/geolocation/geolocation.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://www.w3.org/TR/geolocation-API/#geolocation_interface
+// https://w3c.github.io/geolocation-api/#geolocation_interface
 [
     ActiveScriptWrappable,
     Exposed=Window
@@ -35,7 +35,7 @@
         PositionCallback successCallback,
         // TODO(crbug.com/841185): |errorCallback| is not nullable in the spec.
         optional PositionErrorCallback? errorCallback,
-        optional PositionOptions options);
+        optional PositionOptions options = {});
 
     [
         LogActivity,
@@ -44,7 +44,7 @@
         PositionCallback successCallback,
         // TODO(crbug.com/841185): |errorCallback| is not nullable in the spec.
         optional PositionErrorCallback? errorCallback,
-        optional PositionOptions options);
+        optional PositionOptions options = {});
 
     void clearWatch(long watchID);
 };
diff --git a/third_party/blink/renderer/modules/idle/idle_detector.idl b/third_party/blink/renderer/modules/idle/idle_detector.idl
index 8a9c7d8..9daf79e 100644
--- a/third_party/blink/renderer/modules/idle/idle_detector.idl
+++ b/third_party/blink/renderer/modules/idle/idle_detector.idl
@@ -4,14 +4,13 @@
 
 // https://github.com/samuelgoto/idle-detection
 
-
 [
   SecureContext,
   Exposed=(Window,DedicatedWorker),
   ActiveScriptWrappable,
   RuntimeEnabled=IdleDetection
 ] interface IdleDetector : EventTarget {
-  [CallWith=ScriptState, RaisesException] constructor(optional IdleOptions options);
+  [CallWith=ScriptState, RaisesException] constructor(optional IdleOptions options = {});
   readonly attribute IdleState state;
   attribute EventHandler onchange;
   [CallWith=ScriptState, RaisesException, MeasureAs=IdleDetectionStart] Promise<void> start();
diff --git a/third_party/blink/renderer/modules/idle/idle_state.cc b/third_party/blink/renderer/modules/idle/idle_state.cc
index d8f8fa1a..eb14959 100644
--- a/third_party/blink/renderer/modules/idle/idle_state.cc
+++ b/third_party/blink/renderer/modules/idle/idle_state.cc
@@ -4,7 +4,6 @@
 
 #include "third_party/blink/renderer/modules/idle/idle_state.h"
 
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_database.idl b/third_party/blink/renderer/modules/indexeddb/idb_database.idl
index 938b6b4..2b5273199 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_database.idl
+++ b/third_party/blink/renderer/modules/indexeddb/idb_database.idl
@@ -24,7 +24,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://w3c.github.io/IndexedDB/#idl-def-IDBDatabase
+// https://w3c.github.io/IndexedDB/#database-interface
 
 [
     ActiveScriptWrappable,
@@ -45,7 +45,7 @@
 
     [MeasureAs=IndexedDBWrite, NewObject, RaisesException]
     IDBObjectStore createObjectStore(DOMString name,
-                                     optional IDBObjectStoreParameters options);
+                                     optional IDBObjectStoreParameters options = {});
 
     [MeasureAs=IndexedDBWrite, RaisesException]
     void deleteObjectStore(DOMString name);
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_factory.cc b/third_party/blink/renderer/modules/indexeddb/idb_factory.cc
index c7b06b4c..657f320 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_factory.cc
+++ b/third_party/blink/renderer/modules/indexeddb/idb_factory.cc
@@ -33,9 +33,7 @@
 
 #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
 #include "mojo/public/cpp/bindings/pending_associated_remote.h"
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/public/platform/web_content_settings_client.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl b/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl
index 3218ac7..d3f80ca 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl
+++ b/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl
@@ -23,7 +23,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://w3c.github.io/IndexedDB/#idl-def-IDBObjectStore
+// https://w3c.github.io/IndexedDB/#object-store-interface
 
 [
     Exposed=(Window,Worker)
@@ -81,7 +81,7 @@
     [CallWith=ScriptState, MeasureAs=IndexedDBWrite, NewObject, RaisesException]
     IDBIndex createIndex(DOMString name,
                          (DOMString or sequence<DOMString>) keyPath,
-                         optional IDBIndexParameters options);
+                         optional IDBIndexParameters options = {});
 
     [MeasureAs=IndexedDBWrite, RaisesException]
     void deleteIndex(DOMString name);
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_version_change_event.idl b/third_party/blink/renderer/modules/indexeddb/idb_version_change_event.idl
index b66917f..47a8172 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_version_change_event.idl
+++ b/third_party/blink/renderer/modules/indexeddb/idb_version_change_event.idl
@@ -31,7 +31,7 @@
 [
     Exposed=(Window,Worker)
 ] interface IDBVersionChangeEvent : Event {
-    constructor(DOMString type, optional IDBVersionChangeEventInit eventInitDict);
+    constructor(DOMString type, optional IDBVersionChangeEventInit eventInitDict = {});
     readonly attribute unsigned long long oldVersion;
     readonly attribute unsigned long long? newVersion;
 
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl b/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl
index fdae9ce6..f5c141fd 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl
@@ -10,7 +10,7 @@
     ActiveScriptWrappable,
     Exposed=Window
 ] interface MediaRecorder : EventTarget {
-    [CallWith=ExecutionContext, RaisesException] constructor(MediaStream stream, optional MediaRecorderOptions options);
+    [CallWith=ExecutionContext, RaisesException] constructor(MediaStream stream, optional MediaRecorderOptions options = {});
     readonly attribute MediaStream stream;
     readonly attribute DOMString mimeType;
     readonly attribute RecordingState state;
diff --git a/third_party/blink/renderer/modules/mediasession/media_metadata.idl b/third_party/blink/renderer/modules/mediasession/media_metadata.idl
index af5ad294..5a09a8ae 100644
--- a/third_party/blink/renderer/modules/mediasession/media_metadata.idl
+++ b/third_party/blink/renderer/modules/mediasession/media_metadata.idl
@@ -8,7 +8,7 @@
     Exposed=Window,
     RuntimeEnabled=MediaSession
 ] interface MediaMetadata {
-    [CallWith=ScriptState, RaisesException] constructor(optional MediaMetadataInit metadata);
+    [CallWith=ScriptState, RaisesException] constructor(optional MediaMetadataInit init = {});
     attribute DOMString title;
     attribute DOMString artist;
     attribute DOMString album;
diff --git a/third_party/blink/renderer/modules/mediastream/media_devices.idl b/third_party/blink/renderer/modules/mediastream/media_devices.idl
index 16d463d..4b5e20e 100644
--- a/third_party/blink/renderer/modules/mediastream/media_devices.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_devices.idl
@@ -20,10 +20,12 @@
     [
       CallWith = ScriptState, RaisesException, MeasureAs = GetUserMediaPromise
     ] Promise<MediaStream>
-    getUserMedia(optional MediaStreamConstraints constraints);
+    getUserMedia(optional MediaStreamConstraints constraints = {});
+
+    // https://w3c.github.io/mediacapture-screen-share/#dom-mediadevices-getdisplaymedia
     [
       RuntimeEnabled = GetDisplayMedia, CallWith = ScriptState, RaisesException,
       MeasureAs = GetDisplayMedia
     ] Promise<MediaStream>
-    getDisplayMedia(optional MediaStreamConstraints constraints);
+    getDisplayMedia(optional MediaStreamConstraints constraints = {});
 };
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_event.idl b/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
index aaa8af9..68ea235 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
@@ -29,6 +29,6 @@
 [
     Exposed=Window
 ] interface MediaStreamEvent : Event {
-    constructor(DOMString type, optional MediaStreamEventInit eventInitDict);
+    constructor(DOMString type, optional MediaStreamEventInit eventInitDict = {});
     readonly attribute MediaStream? stream;
 };
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track.idl b/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
index 8a1e2a4..fac1a9cf8 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
@@ -30,6 +30,7 @@
     "ended"
 };
 
+// https://w3c.github.io/mediacapture-main/#media-stream-track-interface-definition
 [
     Exposed=Window,
     ActiveScriptWrappable
@@ -50,5 +51,5 @@
     MediaTrackCapabilities getCapabilities();
     MediaTrackConstraints getConstraints();
     MediaTrackSettings getSettings();
-    [CallWith=ScriptState] Promise<void> applyConstraints(optional MediaTrackConstraints constraints);
+    [CallWith=ScriptState] Promise<void> applyConstraints(optional MediaTrackConstraints constraints = {});
 };
diff --git a/third_party/blink/renderer/modules/native_file_system/file_system_directory_handle.idl b/third_party/blink/renderer/modules/native_file_system/file_system_directory_handle.idl
index 3971a281..a041b36 100644
--- a/third_party/blink/renderer/modules/native_file_system/file_system_directory_handle.idl
+++ b/third_party/blink/renderer/modules/native_file_system/file_system_directory_handle.idl
@@ -10,11 +10,11 @@
     RuntimeEnabled=NativeFileSystem,
     ImplementedAs=NativeFileSystemDirectoryHandle
 ] interface FileSystemDirectoryHandle : FileSystemHandle {
-    [CallWith=ScriptState] Promise<FileSystemFileHandle> getFile(USVString name, optional FileSystemGetFileOptions options);
-    [CallWith=ScriptState] Promise<FileSystemDirectoryHandle> getDirectory(USVString name, optional FileSystemGetDirectoryOptions options);
+    [CallWith=ScriptState] Promise<FileSystemFileHandle> getFile(USVString name, optional FileSystemGetFileOptions options = {});
+    [CallWith=ScriptState] Promise<FileSystemDirectoryHandle> getDirectory(USVString name, optional FileSystemGetDirectoryOptions options = {});
     [CallWith=ScriptState] object getEntries();
 
-    [CallWith=ScriptState] Promise<void> removeEntry(USVString name, optional FileSystemRemoveOptions options);
+    [CallWith=ScriptState] Promise<void> removeEntry(USVString name, optional FileSystemRemoveOptions options = {});
 
     [CallWith=ScriptState, Measure, RaisesException]
     static Promise<FileSystemDirectoryHandle> getSystemDirectory(GetSystemDirectoryOptions options);
diff --git a/third_party/blink/renderer/modules/native_file_system/file_system_file_handle.idl b/third_party/blink/renderer/modules/native_file_system/file_system_file_handle.idl
index 907ec617..7148f72 100644
--- a/third_party/blink/renderer/modules/native_file_system/file_system_file_handle.idl
+++ b/third_party/blink/renderer/modules/native_file_system/file_system_file_handle.idl
@@ -10,7 +10,7 @@
     RuntimeEnabled=NativeFileSystem,
     ImplementedAs=NativeFileSystemFileHandle
 ] interface FileSystemFileHandle : FileSystemHandle {
-    [CallWith=ScriptState] Promise<FileSystemWriter> createWriter(optional FileSystemCreateWriterOptions options);
-    [CallWith=ScriptState, RuntimeEnabled=WritableFileStream, RaisesException] Promise<FileSystemWritableFileStream> createWritable(optional FileSystemCreateWriterOptions options);
+    [CallWith=ScriptState] Promise<FileSystemWriter> createWriter(optional FileSystemCreateWriterOptions options = {});
+    [CallWith=ScriptState, RuntimeEnabled=WritableFileStream, RaisesException] Promise<FileSystemWritableFileStream> createWritable(optional FileSystemCreateWriterOptions options = {});
     [CallWith=ScriptState, RaisesException] Promise<File> getFile();
 };
diff --git a/third_party/blink/renderer/modules/native_file_system/file_system_handle.idl b/third_party/blink/renderer/modules/native_file_system/file_system_handle.idl
index 74f0c795..3e6ad57 100644
--- a/third_party/blink/renderer/modules/native_file_system/file_system_handle.idl
+++ b/third_party/blink/renderer/modules/native_file_system/file_system_handle.idl
@@ -19,7 +19,7 @@
     readonly attribute USVString name;
 
     [CallWith=ScriptState] Promise<PermissionState> queryPermission(
-        optional FileSystemHandlePermissionDescriptor descriptor);
+        optional FileSystemHandlePermissionDescriptor descriptor = {});
     [CallWith=ScriptState] Promise<PermissionState> requestPermission(
-        optional FileSystemHandlePermissionDescriptor descriptor);
+        optional FileSystemHandlePermissionDescriptor descriptor = {});
 };
diff --git a/third_party/blink/renderer/modules/native_file_system/window_native_file_system.idl b/third_party/blink/renderer/modules/native_file_system/window_native_file_system.idl
index ba6bea8..fae73c8 100644
--- a/third_party/blink/renderer/modules/native_file_system/window_native_file_system.idl
+++ b/third_party/blink/renderer/modules/native_file_system/window_native_file_system.idl
@@ -10,5 +10,5 @@
 ] partial interface Window {
     [CallWith=ScriptState, Measure, RaisesException]
     Promise<(FileSystemHandle or sequence<FileSystemHandle>)>
-        chooseFileSystemEntries(optional ChooseFileSystemEntriesOptions options);
+        chooseFileSystemEntries(optional ChooseFileSystemEntriesOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.cc b/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.cc
index 3be6ca9..c5ee52d 100644
--- a/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.cc
+++ b/third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.cc
@@ -102,6 +102,22 @@
   return true;
 }
 
+// HTML5 requires that schemes with the |web+| prefix contain one or more
+// ASCII alphas after that prefix.
+static bool IsValidWebSchemeName(const String& protocol) {
+  if (protocol.length() < 5)
+    return false;
+
+  unsigned protocol_length = protocol.length();
+  for (unsigned i = 4; i < protocol_length; i++) {
+    char c = protocol[i];
+    if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
+      return false;
+    }
+  }
+  return true;
+}
+
 static bool VerifyCustomHandlerScheme(const String& scheme,
                                       ExceptionState& exception_state) {
   if (!IsValidProtocol(scheme)) {
@@ -112,13 +128,12 @@
   }
 
   if (scheme.StartsWith("web+")) {
-    // The specification requires that the length of scheme is at least five
-    // characters (including 'web+' prefix).
-    if (scheme.length() >= 5)
+    if (IsValidWebSchemeName(scheme))
       return true;
-
-    exception_state.ThrowSecurityError("The scheme name '" + scheme +
-                                       "' is less than five characters long.");
+    exception_state.ThrowSecurityError(
+        "The scheme name '" + scheme +
+        "' is not allowed. Schemes starting with 'web+' must be followed by "
+        "one or more ASCII letters.");
     return false;
   }
 
diff --git a/third_party/blink/renderer/modules/notifications/notification.idl b/third_party/blink/renderer/modules/notifications/notification.idl
index 4d00d047..d7604ec 100644
--- a/third_party/blink/renderer/modules/notifications/notification.idl
+++ b/third_party/blink/renderer/modules/notifications/notification.idl
@@ -44,7 +44,7 @@
     Exposed=(Window,Worker),
     RuntimeEnabled=Notifications
 ] interface Notification : EventTarget {
-    [CallWith=ExecutionContext, RaisesException, MeasureAs=NotificationCreated] constructor(DOMString title, optional NotificationOptions options);
+    [CallWith=ExecutionContext, RaisesException, MeasureAs=NotificationCreated] constructor(DOMString title, optional NotificationOptions options = {});
     [CallWith=ExecutionContext, MeasureAs=NotificationPermission] static readonly attribute NotificationPermission permission;
 
     // TODO(crbug.com/841185): |deprecatedCallback| is not nullable in the spec.
diff --git a/third_party/blink/renderer/modules/notifications/notification_manager.cc b/third_party/blink/renderer/modules/notifications/notification_manager.cc
index 0419436..6ab85be 100644
--- a/third_party/blink/renderer/modules/notifications/notification_manager.cc
+++ b/third_party/blink/renderer/modules/notifications/notification_manager.cc
@@ -11,7 +11,6 @@
 #include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h"
 #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
 #include "third_party/blink/public/mojom/permissions/permission_status.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
diff --git a/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.idl b/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.idl
index d40f95d..b4ec0aa 100644
--- a/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.idl
+++ b/third_party/blink/renderer/modules/notifications/service_worker_registration_notifications.idl
@@ -9,6 +9,6 @@
     ImplementedAs=ServiceWorkerRegistrationNotifications,
     RuntimeEnabled=Notifications
 ] partial interface ServiceWorkerRegistration {
-    [CallWith=ScriptState, RaisesException] Promise<void> showNotification(DOMString title, optional NotificationOptions options);
-    [CallWith=ScriptState] Promise<sequence<Notification>> getNotifications(optional GetNotificationOptions filter);
+    [CallWith=ScriptState, RaisesException] Promise<void> showNotification(DOMString title, optional NotificationOptions options = {});
+    [CallWith=ScriptState] Promise<sequence<Notification>> getNotifications(optional GetNotificationOptions filter = {});
 };
diff --git a/third_party/blink/renderer/modules/payments/merchant_validation_event.idl b/third_party/blink/renderer/modules/payments/merchant_validation_event.idl
index 03f3536..7388579 100644
--- a/third_party/blink/renderer/modules/payments/merchant_validation_event.idl
+++ b/third_party/blink/renderer/modules/payments/merchant_validation_event.idl
@@ -9,7 +9,7 @@
     SecureContext,
     Exposed=Window
 ] interface MerchantValidationEvent : Event {
-  [CallWith=ScriptState, RaisesException] constructor(DOMString type, optional MerchantValidationEventInit eventInitDict);
+  [CallWith=ScriptState, RaisesException] constructor(DOMString type, optional MerchantValidationEventInit eventInitDict = {});
   readonly attribute DOMString methodName;
   readonly attribute USVString validationURL;
   [CallWith=ScriptState,RaisesException] void complete(Promise<any> merchantSessionPromise);
diff --git a/third_party/blink/renderer/modules/payments/payment_method_change_event.idl b/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
index cd5d2e7..f2f85fc 100644
--- a/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
+++ b/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
@@ -9,7 +9,7 @@
     SecureContext,
     Exposed=Window
 ] interface PaymentMethodChangeEvent : PaymentRequestUpdateEvent {
-    [CallWith=ScriptState] constructor(DOMString type, optional PaymentMethodChangeEventInit eventInitDict);
+    [CallWith=ScriptState] constructor(DOMString type, optional PaymentMethodChangeEventInit eventInitDict = {});
     readonly attribute DOMString methodName;
     [CallWith=ScriptState] readonly attribute object? methodDetails;
 };
diff --git a/third_party/blink/renderer/modules/payments/payment_request.idl b/third_party/blink/renderer/modules/payments/payment_request.idl
index 84ccc5e..9ef367e 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.idl
+++ b/third_party/blink/renderer/modules/payments/payment_request.idl
@@ -11,7 +11,7 @@
     Exposed=Window,
     ActiveScriptWrappable
 ] interface PaymentRequest : EventTarget {
-    [CallWith=ExecutionContext, RaisesException] constructor(sequence<PaymentMethodData> methodData, PaymentDetailsInit details, optional PaymentOptions options);
+    [CallWith=ExecutionContext, RaisesException] constructor(sequence<PaymentMethodData> methodData, PaymentDetailsInit details, optional PaymentOptions options = {});
     [CallWith=ScriptState, RaisesException, NewObject] Promise<PaymentResponse> show(optional Promise<PaymentDetailsUpdate> detailsPromise);
     [CallWith=ScriptState, RaisesException, NewObject] Promise<void> abort();
     [CallWith=ScriptState, RaisesException, HighEntropy, Measure, NewObject] Promise<boolean> canMakePayment();
diff --git a/third_party/blink/renderer/modules/payments/payment_request_event.cc b/third_party/blink/renderer/modules/payments/payment_request_event.cc
index c04488b1..08ebbcf0 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_event.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request_event.cc
@@ -7,7 +7,6 @@
 #include <utility>
 
 #include "third_party/blink/public/mojom/payments/payment_request.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_modifier.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request_update_event.idl b/third_party/blink/renderer/modules/payments/payment_request_update_event.idl
index fad0b941..0dded8b 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_update_event.idl
+++ b/third_party/blink/renderer/modules/payments/payment_request_update_event.idl
@@ -8,6 +8,6 @@
     RuntimeEnabled=PaymentRequest,
     Exposed=Window
 ] interface PaymentRequestUpdateEvent : Event {
-    [CallWith=ExecutionContext] constructor(DOMString type, optional PaymentRequestUpdateEventInit eventInitDict);
+    [CallWith=ExecutionContext] constructor(DOMString type, optional PaymentRequestUpdateEventInit eventInitDict = {});
     [CallWith=ScriptState,RaisesException] void updateWith(Promise<PaymentDetailsUpdate> detailsPromise);
 };
diff --git a/third_party/blink/renderer/modules/payments/payment_response.idl b/third_party/blink/renderer/modules/payments/payment_response.idl
index fe1ed74..21a43c3 100644
--- a/third_party/blink/renderer/modules/payments/payment_response.idl
+++ b/third_party/blink/renderer/modules/payments/payment_response.idl
@@ -30,7 +30,7 @@
     readonly attribute DOMString? payerPhone;
 
     [CallWith=ScriptState, RaisesException, NewObject] Promise<void> complete(optional PaymentComplete paymentResult = "unknown");
-    [CallWith=ScriptState, RaisesException, NewObject, RuntimeEnabled=PaymentRetry] Promise<void> retry(optional PaymentValidationErrors errorFields);
+    [CallWith=ScriptState, RaisesException, NewObject, RuntimeEnabled=PaymentRetry] Promise<void> retry(optional PaymentValidationErrors errorFields = {});
 
     [RuntimeEnabled=PaymentRetry] attribute EventHandler onpayerdetailchange;
 };
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_error.h b/third_party/blink/renderer/modules/peerconnection/rtc_error.h
index 5dda5403..2ea9b2d 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_error.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_error.h
@@ -19,7 +19,6 @@
 
  public:
   static RTCError* Create(const RTCErrorInit* init, String message);
-  static RTCError* Create(webrtc::RTCError);
   RTCError(const RTCErrorInit* init, String message);
   RTCError(webrtc::RTCError);
 
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.idl b/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.idl
index 9a64eb7..7e2b32a 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.idl
@@ -59,7 +59,7 @@
 [
     Exposed=Window
 ] interface RTCIceCandidate {
-    [CallWith=ExecutionContext, RaisesException] constructor(optional RTCIceCandidateInit candidateInitDict);
+    [CallWith=ExecutionContext, RaisesException] constructor(optional RTCIceCandidateInit candidateInitDict = {});
     readonly attribute DOMString candidate;
     readonly attribute DOMString? sdpMid;
     readonly attribute unsigned short? sdpMLineIndex;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
index eac3860e..8da77d67 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
@@ -67,9 +67,9 @@
     Exposed=Window
 ] interface RTCPeerConnection : EventTarget {
     // TODO(guidou): There should only be one constructor argument.
-    [CallWith=ExecutionContext, RaisesException] constructor(optional RTCConfiguration configuration, optional Dictionary mediaConstraints);
-    [CallWith=ScriptState, RaisesException] Promise<RTCSessionDescription> createOffer(optional RTCOfferOptions options);
-    [CallWith=ScriptState, RaisesException] Promise<RTCSessionDescription> createAnswer(optional RTCAnswerOptions options);
+    [CallWith=ExecutionContext, RaisesException] constructor(optional RTCConfiguration configuration = {}, optional Dictionary mediaConstraints = {});
+    [CallWith=ScriptState, RaisesException] Promise<RTCSessionDescription> createOffer(optional RTCOfferOptions options = {});
+    [CallWith=ScriptState, RaisesException] Promise<RTCSessionDescription> createAnswer(optional RTCAnswerOptions options = {});
     [CallWith=ScriptState, RaisesException] Promise<void> setLocalDescription(optional RTCSessionDescriptionInit description = {});
     readonly attribute RTCSessionDescription? localDescription;
     readonly attribute RTCSessionDescription? currentLocalDescription;
@@ -147,8 +147,8 @@
     [Measure] sequence<RTCRtpReceiver> getReceivers();
     // https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver
     [Measure, RaisesException] RTCRtpTransceiver addTransceiver(
-        (MediaStreamTrack or DOMString) track_or_kind,
-        optional RTCRtpTransceiverInit init);
+        (MediaStreamTrack or DOMString) trackOrKind,
+        optional RTCRtpTransceiverInit init = {});
     // https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack
     [Measure, RaisesException] RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
     // https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-removetrack
@@ -158,7 +158,7 @@
 
     // https://w3c.github.io/webrtc-pc/#peer-to-peer-data-api
     [RuntimeEnabled=RTCSctpTransport] readonly attribute RTCSctpTransport? sctp;
-    [CallWith=ScriptState, RaisesException] RTCDataChannel createDataChannel(USVString label, optional RTCDataChannelInit dataChannelDict);
+    [CallWith=ScriptState, RaisesException] RTCDataChannel createDataChannel(USVString label, optional RTCDataChannelInit dataChannelDict = {});
     attribute EventHandler ondatachannel;
 
     // Certificate management
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.idl b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.idl
index 774cd27..164cbfd 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.idl
@@ -26,7 +26,7 @@
 [
     Exposed=Window
 ] interface RTCPeerConnectionIceEvent : Event {
-    constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict);
+    constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict = {});
     readonly attribute RTCIceCandidate? candidate;
     // TODO(loonybear): add nullable url attribute here:
     // https://rawgit.com/w3c/webrtc-pc/master/webrtc.html#rtcpeerconnectioniceevent
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.idl b/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.idl
index 6f3f948..3facdd0 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.idl
@@ -7,6 +7,6 @@
    RuntimeEnabled=RTCQuicTransport,
    Exposed=Window
 ] interface RTCQuicStreamEvent : Event {
-    constructor(DOMString type, optional RTCQuicStreamEventInit eventInitDict);
+    constructor(DOMString type, optional RTCQuicStreamEventInit eventInitDict = {});
     readonly attribute RTCQuicStream stream;
 };
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl
index 335e2e9..bcef231 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl
@@ -9,7 +9,7 @@
     [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? transport;
     [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? rtcpTransport;
     static RTCRtpCapabilities? getCapabilities(DOMString kind);
-    [CallWith=ScriptState] Promise<void> setParameters(optional RTCRtpSendParameters parameters);
+    [CallWith=ScriptState] Promise<void> setParameters(optional RTCRtpSendParameters parameters = {});
     RTCRtpSendParameters getParameters();
     [Measure, CallWith=ScriptState] Promise<void> replaceTrack(MediaStreamTrack? withTrack);
     [Measure] readonly attribute RTCDTMFSender? dtmf;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_session_description.idl b/third_party/blink/renderer/modules/peerconnection/rtc_session_description.idl
index 9bc34939..2a5b2d41 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_session_description.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_session_description.idl
@@ -40,7 +40,7 @@
 [
     Exposed=Window
 ] interface RTCSessionDescription {
-    [CallWith=ExecutionContext] constructor(optional RTCSessionDescriptionInit descriptionInitDict);
+    [CallWith=ExecutionContext] constructor(optional RTCSessionDescriptionInit descriptionInitDict = {});
     // TODO(foolip): |type| and |sdp| should be readonly and not nullable.
     // https://crbug.com/662898
     [Measure] attribute RTCSdpType? type;
diff --git a/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.idl b/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.idl
index be8608c..7eb7cad 100644
--- a/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.idl
+++ b/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.idl
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://wicg.github.io/picture-in-picture/v2/
+// https://w3c.github.io/picture-in-picture/#htmlvideoelement-extensions
 [
     ImplementedAs=HTMLElementPictureInPicture,
     RuntimeEnabled=PictureInPictureV2
 ]
 partial interface HTMLElement {
-    [CallWith=ScriptState, NewObject, RaisesException] Promise<PictureInPictureWindow> requestPictureInPicture(optional PictureInPictureOptions options);
+    [CallWith=ScriptState, NewObject, RaisesException] Promise<PictureInPictureWindow> requestPictureInPicture(optional PictureInPictureOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/presentation/presentation_controller.h b/third_party/blink/renderer/modules/presentation/presentation_controller.h
index 0518081..0e32f25 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_controller.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_controller.h
@@ -8,7 +8,6 @@
 #include "base/macros.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/mojom/presentation/presentation.mojom-blink.h"
 #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
diff --git a/third_party/blink/renderer/modules/presentation/presentation_receiver.cc b/third_party/blink/renderer/modules/presentation/presentation_receiver.cc
index a4f0d82..9784b38 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_receiver.cc
+++ b/third_party/blink/renderer/modules/presentation/presentation_receiver.cc
@@ -4,7 +4,6 @@
 
 #include "third_party/blink/renderer/modules/presentation/presentation_receiver.h"
 
-#include "services/service_manager/public/cpp/interface_provider.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
diff --git a/third_party/blink/renderer/modules/push_messaging/push_event.idl b/third_party/blink/renderer/modules/push_messaging/push_event.idl
index f472ab1..c4fb82b7 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_event.idl
+++ b/third_party/blink/renderer/modules/push_messaging/push_event.idl
@@ -8,6 +8,6 @@
     Exposed=ServiceWorker,
     RuntimeEnabled=PushMessaging
 ] interface PushEvent : ExtendableEvent {
-    [RaisesException] constructor(DOMString type, optional PushEventInit eventInitDict);
+    [RaisesException] constructor(DOMString type, optional PushEventInit eventInitDict = {});
     readonly attribute PushMessageData? data;
 };
diff --git a/third_party/blink/renderer/modules/push_messaging/push_manager.idl b/third_party/blink/renderer/modules/push_messaging/push_manager.idl
index 734a746..ede1aa2 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_manager.idl
+++ b/third_party/blink/renderer/modules/push_messaging/push_manager.idl
@@ -11,9 +11,9 @@
     [SameObject, SaveSameObject]
     static readonly attribute FrozenArray<DOMString> supportedContentEncodings;
 
-    [CallWith=ScriptState, RaisesException] Promise<PushSubscription> subscribe(optional PushSubscriptionOptionsInit options);
+    [CallWith=ScriptState, RaisesException] Promise<PushSubscription> subscribe(optional PushSubscriptionOptionsInit options = {});
     [CallWith=ScriptState] Promise<PushSubscription?> getSubscription();
-    [CallWith=ScriptState, RaisesException] Promise<PushPermissionState> permissionState(optional PushSubscriptionOptionsInit options);
+    [CallWith=ScriptState, RaisesException] Promise<PushPermissionState> permissionState(optional PushSubscriptionOptionsInit options = {});
 };
 
 enum PushPermissionState {
diff --git a/third_party/blink/renderer/modules/push_messaging/push_subscription_change_event.idl b/third_party/blink/renderer/modules/push_messaging/push_subscription_change_event.idl
index 99fad82..beb21f1 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_subscription_change_event.idl
+++ b/third_party/blink/renderer/modules/push_messaging/push_subscription_change_event.idl
@@ -8,7 +8,7 @@
     Exposed=ServiceWorker,
     RuntimeEnabled=PushMessagingSubscriptionChange
 ] interface PushSubscriptionChangeEvent : ExtendableEvent {
-  constructor(DOMString type, optional PushSubscriptionChangeEventInit eventInitDict);
+  constructor(DOMString type, optional PushSubscriptionChangeEventInit eventInitDict = {});
   readonly attribute PushSubscription? newSubscription;
   readonly attribute PushSubscription? oldSubscription;
-};
\ No newline at end of file
+};
diff --git a/third_party/blink/renderer/modules/scheduler/scheduler.idl b/third_party/blink/renderer/modules/scheduler/scheduler.idl
index 7268c07..d51c47f 100644
--- a/third_party/blink/renderer/modules/scheduler/scheduler.idl
+++ b/third_party/blink/renderer/modules/scheduler/scheduler.idl
@@ -8,5 +8,5 @@
     ImplementedAs=DOMScheduler,
     RuntimeEnabled=WebScheduler
 ] interface Scheduler {
-    [CallWith=ScriptState, RaisesException] Promise<any> postTask(Function callback, optional SchedulerPostTaskOptions options, any... arguments);
+    [CallWith=ScriptState, RaisesException] Promise<any> postTask(Function callback, optional SchedulerPostTaskOptions options = {}, any... arguments);
 };
diff --git a/third_party/blink/renderer/modules/sensor/absolute_orientation_sensor.idl b/third_party/blink/renderer/modules/sensor/absolute_orientation_sensor.idl
index 8d00165..0b1c7fc 100644
--- a/third_party/blink/renderer/modules/sensor/absolute_orientation_sensor.idl
+++ b/third_party/blink/renderer/modules/sensor/absolute_orientation_sensor.idl
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Specification at:
 // https://w3c.github.io/orientation-sensor/#absoluteorientationsensor-interface
 
 [
     SecureContext,
     Exposed=Window
 ] interface AbsoluteOrientationSensor : OrientationSensor {
-  [CallWith=ExecutionContext, RaisesException, MeasureAs=AbsoluteOrientationSensorConstructor] constructor(optional SpatialSensorOptions sensorOptions);
+  [CallWith=ExecutionContext, RaisesException, MeasureAs=AbsoluteOrientationSensorConstructor] constructor(optional SpatialSensorOptions sensorOptions = {});
 };
diff --git a/third_party/blink/renderer/modules/sensor/accelerometer.idl b/third_party/blink/renderer/modules/sensor/accelerometer.idl
index fec8d8fe..460d3970 100644
--- a/third_party/blink/renderer/modules/sensor/accelerometer.idl
+++ b/third_party/blink/renderer/modules/sensor/accelerometer.idl
@@ -2,14 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Specification at:
 // https://w3c.github.io/accelerometer/#accelerometer-interface
 
 [
     SecureContext,
     Exposed=Window
 ] interface Accelerometer : Sensor {
-    [CallWith=ExecutionContext, RaisesException, MeasureAs=AccelerometerConstructor] constructor(optional SpatialSensorOptions sensorOptions);
+    [CallWith=ExecutionContext, RaisesException, MeasureAs=AccelerometerConstructor] constructor(optional SpatialSensorOptions sensorOptions = {});
     readonly attribute unrestricted double? x;
     readonly attribute unrestricted double? y;
     readonly attribute unrestricted double? z;
diff --git a/third_party/blink/renderer/modules/sensor/ambient_light_sensor.idl b/third_party/blink/renderer/modules/sensor/ambient_light_sensor.idl
index b90cb7b..b589643 100644
--- a/third_party/blink/renderer/modules/sensor/ambient_light_sensor.idl
+++ b/third_party/blink/renderer/modules/sensor/ambient_light_sensor.idl
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Specification at:
 // https://w3c.github.io/ambient-light/#ambient-light-sensor-interface
 
 [
@@ -10,6 +9,6 @@
     SecureContext,
     Exposed=Window
 ] interface AmbientLightSensor : Sensor {
-    [CallWith=ExecutionContext, RaisesException, MeasureAs=AmbientLightSensorConstructor] constructor(optional SensorOptions sensorOptions);
+    [CallWith=ExecutionContext, RaisesException, MeasureAs=AmbientLightSensorConstructor] constructor(optional SensorOptions sensorOptions = {});
     readonly attribute unrestricted double? illuminance;
 };
diff --git a/third_party/blink/renderer/modules/sensor/gyroscope.idl b/third_party/blink/renderer/modules/sensor/gyroscope.idl
index 13104c9..a817020 100644
--- a/third_party/blink/renderer/modules/sensor/gyroscope.idl
+++ b/third_party/blink/renderer/modules/sensor/gyroscope.idl
@@ -9,7 +9,7 @@
     SecureContext,
     Exposed=Window
 ] interface Gyroscope : Sensor {
-    [CallWith=ExecutionContext, RaisesException, MeasureAs=GyroscopeConstructor] constructor(optional SpatialSensorOptions sensorOptions);
+    [CallWith=ExecutionContext, RaisesException, MeasureAs=GyroscopeConstructor] constructor(optional SpatialSensorOptions sensorOptions = {});
     readonly attribute unrestricted double? x;
     readonly attribute unrestricted double? y;
     readonly attribute unrestricted double? z;
diff --git a/third_party/blink/renderer/modules/sensor/linear_acceleration_sensor.idl b/third_party/blink/renderer/modules/sensor/linear_acceleration_sensor.idl
index ce5d3b64..c04f648 100644
--- a/third_party/blink/renderer/modules/sensor/linear_acceleration_sensor.idl
+++ b/third_party/blink/renderer/modules/sensor/linear_acceleration_sensor.idl
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Specification at:
 // https://w3c.github.io/accelerometer/#linearaccelerationsensor
 
 [
     SecureContext,
     Exposed=Window
 ] interface LinearAccelerationSensor : Accelerometer {
-  [CallWith=ExecutionContext, RaisesException, MeasureAs=LinearAccelerationSensorConstructor] constructor(optional SpatialSensorOptions sensorOptions);
+  [CallWith=ExecutionContext, RaisesException, MeasureAs=LinearAccelerationSensorConstructor] constructor(optional SpatialSensorOptions sensorOptions = {});
 };
diff --git a/third_party/blink/renderer/modules/sensor/magnetometer.idl b/third_party/blink/renderer/modules/sensor/magnetometer.idl
index 5a766c5..9ef493d 100644
--- a/third_party/blink/renderer/modules/sensor/magnetometer.idl
+++ b/third_party/blink/renderer/modules/sensor/magnetometer.idl
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Specification at:
 // https://w3c.github.io/magnetometer/#magnetometer-interface
 
 [
@@ -10,7 +9,7 @@
     RuntimeEnabled=SensorExtraClasses,
     SecureContext
 ] interface Magnetometer : Sensor {
-    [CallWith=ExecutionContext, RaisesException, MeasureAs=MagnetometerConstructor] constructor(optional SpatialSensorOptions sensorOptions);
+    [CallWith=ExecutionContext, RaisesException, MeasureAs=MagnetometerConstructor] constructor(optional SpatialSensorOptions sensorOptions = {});
     readonly attribute unrestricted double? x;
     readonly attribute unrestricted double? y;
     readonly attribute unrestricted double? z;
diff --git a/third_party/blink/renderer/modules/sensor/relative_orientation_sensor.idl b/third_party/blink/renderer/modules/sensor/relative_orientation_sensor.idl
index 45e81a4..c0d7d88 100644
--- a/third_party/blink/renderer/modules/sensor/relative_orientation_sensor.idl
+++ b/third_party/blink/renderer/modules/sensor/relative_orientation_sensor.idl
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Specification at:
 // https://w3c.github.io/orientation-sensor/#relativeorientationsensor-interface
 
 [
     SecureContext,
     Exposed=Window
 ] interface RelativeOrientationSensor : OrientationSensor {
-  [CallWith=ExecutionContext, RaisesException, MeasureAs=RelativeOrientationSensorConstructor] constructor(optional SpatialSensorOptions sensorOptions);
+  [CallWith=ExecutionContext, RaisesException, MeasureAs=RelativeOrientationSensorConstructor] constructor(optional SpatialSensorOptions sensorOptions = {});
 };
diff --git a/third_party/blink/renderer/modules/serial/serial.idl b/third_party/blink/renderer/modules/serial/serial.idl
index 48d7960a5..7d7a898 100644
--- a/third_party/blink/renderer/modules/serial/serial.idl
+++ b/third_party/blink/renderer/modules/serial/serial.idl
@@ -2,10 +2,10 @@
 // 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
+// https://wicg.github.io/serial/#serial-interface
 
 [
-    Exposed(Window Serial,DedicatedWorker Serial),
+    Exposed(Window Serial, DedicatedWorker Serial),
     SecureContext
 ] interface Serial : EventTarget {
     attribute EventHandler onconnect;
@@ -15,5 +15,5 @@
     Promise<sequence<SerialPort>> getPorts();
 
     [CallWith=ScriptState, RaisesException, MeasureAs=SerialRequestPort, Exposed=Window]
-    Promise<SerialPort> requestPort(optional SerialPortRequestOptions options);
+    Promise<SerialPort> requestPort(optional SerialPortRequestOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/service_worker/client.idl b/third_party/blink/renderer/modules/service_worker/client.idl
index 640ef5c..638cf56 100644
--- a/third_party/blink/renderer/modules/service_worker/client.idl
+++ b/third_party/blink/renderer/modules/service_worker/client.idl
@@ -17,7 +17,7 @@
     readonly attribute DOMString id;
     readonly attribute ClientType type;
     [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence<object> transfer);
-    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options);
+    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options = {});
 
     // FIXME: frameType is non-standard, see https://crbug.com/697110
     [CallWith=ScriptState] readonly attribute ContextFrameType frameType;
diff --git a/third_party/blink/renderer/modules/service_worker/clients.idl b/third_party/blink/renderer/modules/service_worker/clients.idl
index 8f90d4dd..a97db40 100644
--- a/third_party/blink/renderer/modules/service_worker/clients.idl
+++ b/third_party/blink/renderer/modules/service_worker/clients.idl
@@ -8,7 +8,7 @@
     ImplementedAs=ServiceWorkerClients
 ] interface Clients {
     [CallWith=ScriptState] Promise<any> get(DOMString id);
-    [CallWith=ScriptState] Promise<sequence<Client>> matchAll(optional ClientQueryOptions options);
+    [CallWith=ScriptState] Promise<sequence<Client>> matchAll(optional ClientQueryOptions options = {});
     [CallWith=ScriptState] Promise<WindowClient?> openWindow(USVString url);
     [CallWith=ScriptState] Promise<void> claim();
 };
diff --git a/third_party/blink/renderer/modules/service_worker/extendable_event.idl b/third_party/blink/renderer/modules/service_worker/extendable_event.idl
index 137eb5a2..f470b8d 100644
--- a/third_party/blink/renderer/modules/service_worker/extendable_event.idl
+++ b/third_party/blink/renderer/modules/service_worker/extendable_event.idl
@@ -32,6 +32,6 @@
 [
     Exposed=ServiceWorker
 ] interface ExtendableEvent : Event {
-    constructor(DOMString type, optional ExtendableEventInit eventInitDict);
+    constructor(DOMString type, optional ExtendableEventInit eventInitDict = {});
     [CallWith=ScriptState, RaisesException] void waitUntil(Promise<any> f);
 };
diff --git a/third_party/blink/renderer/modules/service_worker/install_event.idl b/third_party/blink/renderer/modules/service_worker/install_event.idl
index d7895c2d..29b97ec 100644
--- a/third_party/blink/renderer/modules/service_worker/install_event.idl
+++ b/third_party/blink/renderer/modules/service_worker/install_event.idl
@@ -7,5 +7,5 @@
 [
     Exposed=ServiceWorker
 ] interface InstallEvent : ExtendableEvent {
-    constructor(DOMString type, optional ExtendableEventInit eventInitDict);
+    constructor(DOMString type, optional ExtendableEventInit eventInitDict = {});
 };
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker.idl b/third_party/blink/renderer/modules/service_worker/service_worker.idl
index 3b1a85c..fee6b379 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker.idl
+++ b/third_party/blink/renderer/modules/service_worker/service_worker.idl
@@ -48,7 +48,7 @@
 ] interface ServiceWorker : EventTarget {
 
     [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence<object> transfer);
-    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options);
+    [CallWith=ScriptState, RaisesException] void postMessage(any message, optional PostMessageOptions options = {});
 
     readonly attribute USVString scriptURL;
     readonly attribute ServiceWorkerState  state;
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_container.idl b/third_party/blink/renderer/modules/service_worker/service_worker_container.idl
index e6b8cd5..740be03 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_container.idl
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_container.idl
@@ -35,7 +35,7 @@
     readonly attribute ServiceWorker? controller;
     [CallWith=ScriptState, RaisesException] readonly attribute Promise<ServiceWorkerRegistration> ready;
 
-    [CallWith=ScriptState, ImplementedAs=registerServiceWorker] Promise<ServiceWorkerRegistration> register(USVString url, optional RegistrationOptions options);
+    [CallWith=ScriptState, ImplementedAs=registerServiceWorker] Promise<ServiceWorkerRegistration> register(USVString url, optional RegistrationOptions options = {});
     [CallWith=ScriptState] Promise<ServiceWorkerRegistration> getRegistration(optional USVString documentURL = "");
     [CallWith=ScriptState] Promise<sequence<ServiceWorkerRegistration>> getRegistrations();
 
diff --git a/third_party/blink/renderer/modules/shapedetection/barcode_detector.idl b/third_party/blink/renderer/modules/shapedetection/barcode_detector.idl
index 86cd51d6..cf378dd 100644
--- a/third_party/blink/renderer/modules/shapedetection/barcode_detector.idl
+++ b/third_party/blink/renderer/modules/shapedetection/barcode_detector.idl
@@ -9,7 +9,7 @@
     SecureContext,
     RuntimeEnabled=ShapeDetection
 ] interface BarcodeDetector {
-    [CallWith=ExecutionContext, RaisesException, MeasureAs=ShapeDetection_BarcodeDetectorConstructor] constructor(optional BarcodeDetectorOptions barcodeDetectorOptions);
+    [CallWith=ExecutionContext, RaisesException, MeasureAs=ShapeDetection_BarcodeDetectorConstructor] constructor(optional BarcodeDetectorOptions barcodeDetectorOptions = {});
     [CallWith=ScriptState] static Promise<sequence<BarcodeFormat>> getSupportedFormats();
     [CallWith=ScriptState, MeasureAs=ShapeDetectionAPI] Promise<sequence<DetectedBarcode>> detect(ImageBitmapSource image);
 };
diff --git a/third_party/blink/renderer/modules/shapedetection/face_detector.idl b/third_party/blink/renderer/modules/shapedetection/face_detector.idl
index 7846321..ef4ce52 100644
--- a/third_party/blink/renderer/modules/shapedetection/face_detector.idl
+++ b/third_party/blink/renderer/modules/shapedetection/face_detector.idl
@@ -9,6 +9,6 @@
     SecureContext,
     RuntimeEnabled=ShapeDetection
 ] interface FaceDetector {
-    [CallWith=ExecutionContext, MeasureAs=ShapeDetection_FaceDetectorConstructor] constructor(optional FaceDetectorOptions faceDetectorOptions);
+    [CallWith=ExecutionContext, MeasureAs=ShapeDetection_FaceDetectorConstructor] constructor(optional FaceDetectorOptions faceDetectorOptions = {});
     [CallWith=ScriptState, MeasureAs=ShapeDetectionAPI] Promise<sequence<DetectedFace>> detect(ImageBitmapSource image);
 };
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.idl b/third_party/blink/renderer/modules/sms/sms_receiver.idl
index 677c4bd..de97504 100644
--- a/third_party/blink/renderer/modules/sms/sms_receiver.idl
+++ b/third_party/blink/renderer/modules/sms/sms_receiver.idl
@@ -10,5 +10,5 @@
   RuntimeEnabled=SmsReceiver
 ] interface SMSReceiver {
   [CallWith=ScriptState, RaisesException, MeasureAs=SMSReceiverStart]
-  Promise<SMS> receive(optional SMSReceiverOptions options);
+  Promise<SMS> receive(optional SMSReceiverOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition_error_event.idl b/third_party/blink/renderer/modules/speech/speech_recognition_error_event.idl
index d7487f0..6ed1f015 100644
--- a/third_party/blink/renderer/modules/speech/speech_recognition_error_event.idl
+++ b/third_party/blink/renderer/modules/speech/speech_recognition_error_event.idl
@@ -28,7 +28,7 @@
 [
     NoInterfaceObject
 ] interface SpeechRecognitionErrorEvent : Event {
-    constructor(DOMString type, optional SpeechRecognitionErrorEventInit eventInitDict);
+    constructor(DOMString type, optional SpeechRecognitionErrorEventInit eventInitDict = {});
     readonly attribute DOMString error;
     readonly attribute DOMString message;
 };
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition_event.idl b/third_party/blink/renderer/modules/speech/speech_recognition_event.idl
index cb7a0c6..ba73df6 100644
--- a/third_party/blink/renderer/modules/speech/speech_recognition_event.idl
+++ b/third_party/blink/renderer/modules/speech/speech_recognition_event.idl
@@ -28,7 +28,7 @@
 [
     NoInterfaceObject
 ] interface SpeechRecognitionEvent : Event {
-    constructor(DOMString type, optional SpeechRecognitionEventInit initDict);
+    constructor(DOMString type, optional SpeechRecognitionEventInit initDict = {});
     readonly attribute unsigned long resultIndex;
     readonly attribute SpeechRecognitionResultList? results;
 
diff --git a/third_party/blink/renderer/modules/storage/storage_event.idl b/third_party/blink/renderer/modules/storage/storage_event.idl
index 3c53611..80388ff 100644
--- a/third_party/blink/renderer/modules/storage/storage_event.idl
+++ b/third_party/blink/renderer/modules/storage/storage_event.idl
@@ -28,7 +28,7 @@
 [
     Exposed=Window
 ] interface StorageEvent : Event {
-    constructor(DOMString type, optional StorageEventInit eventInitDict);
+    constructor(DOMString type, optional StorageEventInit eventInitDict = {});
     readonly attribute DOMString? key;
     readonly attribute DOMString? oldValue;
     readonly attribute DOMString? newValue;
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
index 35607484..d879f42 100644
--- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
@@ -23,11 +23,11 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#analysernode
+// https://webaudio.github.io/web-audio-api/#analysernode
 [
     Exposed=Window
 ] interface AnalyserNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional AnalyserOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional AnalyserOptions options = {});
     [RaisesException=Setter] attribute unsigned long fftSize;
     readonly attribute unsigned long frequencyBinCount;
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.idl
index 38a0a36..87c54df 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer_source_node.idl
@@ -24,12 +24,12 @@
  */
 
 // A cached (non-streamed), memory-resident audio source
-// See https://webaudio.github.io/web-audio-api/#AudioBufferSourceNode
+// https://webaudio.github.io/web-audio-api/#AudioBufferSourceNode
 [
     Exposed=Window,
     ActiveScriptWrappable
 ] interface AudioBufferSourceNode : AudioScheduledSourceNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional AudioBufferSourceOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional AudioBufferSourceOptions options = {});
     [RaisesException=Setter] attribute AudioBuffer? buffer;
 
     readonly attribute AudioParam playbackRate;
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.idl b/third_party/blink/renderer/modules/webaudio/audio_context.idl
index 3f5e5f3..ec84063 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_context.idl
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.idl
@@ -30,12 +30,12 @@
     "playback"
 };
 
-// See https://webaudio.github.io/web-audio-api/#AudioContext
+// https://webaudio.github.io/web-audio-api/#AudioContext
 [
     Exposed=Window,
     ActiveScriptWrappable
 ] interface AudioContext : BaseAudioContext {
-    [CallWith=Document, RaisesException, Measure] constructor(optional AudioContextOptions contextOptions);
+    [CallWith=Document, RaisesException, Measure] constructor(optional AudioContextOptions contextOptions = {});
     [MeasureAs=AudioContextSuspend, CallWith=ScriptState, ImplementedAs=suspendContext] Promise<void> suspend();
     [MeasureAs=AudioContextClose, RaisesException, CallWith=ScriptState, ImplementedAs=closeContext] Promise<void> close();
     [MeasureAs=AudioContextResume, RaisesException, CallWith=ScriptState, ImplementedAs=resumeContext] Promise<void> resume();
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.idl b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.idl
index efe2b87e..9c985b4 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.idl
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// See https://webaudio.github.io/web-audio-api/#audioworkletnode
+// https://webaudio.github.io/web-audio-api/#audioworkletnode
 
 [
     Exposed=Window,
     ActiveScriptWrappable
 ] interface AudioWorkletNode : AudioNode {
-    [CallWith=ScriptState, RaisesException, MeasureAs=AudioWorkletNodeConstructor] constructor(BaseAudioContext context, DOMString name, optional AudioWorkletNodeOptions options);
+    [CallWith=ScriptState, RaisesException, MeasureAs=AudioWorkletNodeConstructor] constructor(BaseAudioContext context, DOMString name, optional AudioWorkletNodeOptions options = {});
     readonly attribute AudioParamMap parameters;
     readonly attribute MessagePort port;
     attribute EventHandler onprocessorerror;
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.idl b/third_party/blink/renderer/modules/webaudio/base_audio_context.idl
index 3a9bd6a..13eca1ad 100644
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.idl
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.idl
@@ -56,7 +56,7 @@
     [RaisesException, MeasureAs=AudioContextCreateScriptProcessor] ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize, optional unsigned long numberOfInputChannels, optional unsigned long numberOfOutputChannels);
     [RaisesException, MeasureAs=AudioContextCreateStereoPanner] StereoPannerNode createStereoPanner();
     [RaisesException, MeasureAs=AudioContextCreateOscillator] OscillatorNode createOscillator();
-    [RaisesException, MeasureAs=AudioContextCreatePeriodicWave] PeriodicWave createPeriodicWave(sequence<float> real, sequence<float> imag, optional PeriodicWaveConstraints options);
+    [RaisesException, MeasureAs=AudioContextCreatePeriodicWave] PeriodicWave createPeriodicWave(sequence<float> real, sequence<float> imag, optional PeriodicWaveConstraints constraints = {});
 
     // Channel splitting and merging
     [RaisesException, MeasureAs=AudioContextCreateChannelSplitter] ChannelSplitterNode createChannelSplitter(optional unsigned long numberOfOutputs);
diff --git a/third_party/blink/renderer/modules/webaudio/biquad_filter_node.idl b/third_party/blink/renderer/modules/webaudio/biquad_filter_node.idl
index a5628b5..f221cc9 100644
--- a/third_party/blink/renderer/modules/webaudio/biquad_filter_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/biquad_filter_node.idl
@@ -23,7 +23,7 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#biquadfilternode
+// https://webaudio.github.io/web-audio-api/#biquadfilternode
 enum BiquadFilterType {
     "lowpass",
     "highpass",
@@ -38,7 +38,7 @@
 [
     Exposed=Window
 ] interface BiquadFilterNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional BiquadFilterOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional BiquadFilterOptions options = {});
     attribute BiquadFilterType type;
 
     readonly attribute AudioParam frequency; // in Hertz
diff --git a/third_party/blink/renderer/modules/webaudio/channel_merger_node.idl b/third_party/blink/renderer/modules/webaudio/channel_merger_node.idl
index 16e2b23..21b31d0 100644
--- a/third_party/blink/renderer/modules/webaudio/channel_merger_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/channel_merger_node.idl
@@ -26,9 +26,9 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#channelmergernode
+// https://webaudio.github.io/web-audio-api/#channelmergernode
 [
     Exposed=Window
 ] interface ChannelMergerNode : AudioNode {
-  [RaisesException, Measure] constructor(BaseAudioContext context, optional ChannelMergerOptions options);
+  [RaisesException, Measure] constructor(BaseAudioContext context, optional ChannelMergerOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/webaudio/channel_splitter_node.idl b/third_party/blink/renderer/modules/webaudio/channel_splitter_node.idl
index 34d42b7..6bc52ac 100644
--- a/third_party/blink/renderer/modules/webaudio/channel_splitter_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/channel_splitter_node.idl
@@ -23,9 +23,9 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#channelsplitternode
+// https://webaudio.github.io/web-audio-api/#channelsplitternode
 [
     Exposed=Window
 ] interface ChannelSplitterNode : AudioNode {
-  [RaisesException, Measure] constructor(BaseAudioContext context, optional ChannelSplitterOptions options);
+  [RaisesException, Measure] constructor(BaseAudioContext context, optional ChannelSplitterOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/webaudio/constant_source_node.idl b/third_party/blink/renderer/modules/webaudio/constant_source_node.idl
index 4864e94..0bc1ab3 100644
--- a/third_party/blink/renderer/modules/webaudio/constant_source_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/constant_source_node.idl
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// See https://webaudio.github.io/web-audio-api/#ConstantSourceNode
+// https://webaudio.github.io/web-audio-api/#ConstantSourceNode
 [
     Exposed=Window,
     ActiveScriptWrappable
 ] interface ConstantSourceNode : AudioScheduledSourceNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional ConstantSourceOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional ConstantSourceOptions options = {});
     readonly attribute AudioParam offset;
 };
diff --git a/third_party/blink/renderer/modules/webaudio/convolver_node.idl b/third_party/blink/renderer/modules/webaudio/convolver_node.idl
index b469bf0..3d41a80 100644
--- a/third_party/blink/renderer/modules/webaudio/convolver_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/convolver_node.idl
@@ -24,11 +24,11 @@
  */
 
 // A linear convolution effect
-// See https://webaudio.github.io/web-audio-api/#ConvolverNode
+// https://webaudio.github.io/web-audio-api/#ConvolverNode
 [
     Exposed=Window
 ] interface ConvolverNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional ConvolverOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional ConvolverOptions options = {});
     [RaisesException=Setter] attribute AudioBuffer? buffer;
     attribute boolean normalize;
 };
diff --git a/third_party/blink/renderer/modules/webaudio/delay_node.idl b/third_party/blink/renderer/modules/webaudio/delay_node.idl
index 5e0b352..c30a4a0 100644
--- a/third_party/blink/renderer/modules/webaudio/delay_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/delay_node.idl
@@ -23,10 +23,10 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#DelayNode
+// https://webaudio.github.io/web-audio-api/#DelayNode
 [
     Exposed=Window
 ] interface DelayNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional DelayOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional DelayOptions options = {});
     readonly attribute AudioParam delayTime;
 };
diff --git a/third_party/blink/renderer/modules/webaudio/dynamics_compressor_node.idl b/third_party/blink/renderer/modules/webaudio/dynamics_compressor_node.idl
index 2a0228f..1d16e033 100644
--- a/third_party/blink/renderer/modules/webaudio/dynamics_compressor_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/dynamics_compressor_node.idl
@@ -23,11 +23,11 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#dynamicscompressornode
+// https://webaudio.github.io/web-audio-api/#dynamicscompressornode
 [
     Exposed=Window
 ] interface DynamicsCompressorNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional DynamicsCompressorOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional DynamicsCompressorOptions options = {});
     readonly attribute AudioParam threshold; // in Decibels
     readonly attribute AudioParam knee; // in Decibels
     readonly attribute AudioParam ratio; // unit-less
diff --git a/third_party/blink/renderer/modules/webaudio/gain_node.idl b/third_party/blink/renderer/modules/webaudio/gain_node.idl
index 4a93c48..e8193ad 100644
--- a/third_party/blink/renderer/modules/webaudio/gain_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/gain_node.idl
@@ -23,11 +23,11 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#gainnode
+// https://webaudio.github.io/web-audio-api/#gainnode
 [
     Exposed=Window
 ] interface GainNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional GainOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional GainOptions options = {});
     // FIXME: eventually it will be interesting to remove the readonly restriction, but need to properly deal with thread safety here.
     readonly attribute AudioParam gain;
 };
diff --git a/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.idl b/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.idl
index 4fc2a8c..833a9b4 100644
--- a/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.idl
@@ -23,10 +23,10 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#mediastreamaudiodestinationnode
+// https://webaudio.github.io/web-audio-api/#mediastreamaudiodestinationnode
 [
     Exposed=Window
 ] interface MediaStreamAudioDestinationNode : AudioNode {
-    [RaisesException, Measure] constructor(AudioContext context, optional AudioNodeOptions options);
+    [RaisesException, Measure] constructor(AudioContext context, optional AudioNodeOptions options = {});
     readonly attribute MediaStream stream;
 };
diff --git a/third_party/blink/renderer/modules/webaudio/oscillator_node.idl b/third_party/blink/renderer/modules/webaudio/oscillator_node.idl
index a5ca186..8f0685b 100644
--- a/third_party/blink/renderer/modules/webaudio/oscillator_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/oscillator_node.idl
@@ -23,7 +23,9 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#oscillatornode
+// https://webaudio.github.io/web-audio-api/#oscillatornode
+
+// https://webaudio.github.io/web-audio-api/#enumdef-oscillatortype
 enum OscillatorType {
     "sine",
     "square",
@@ -36,7 +38,7 @@
 [
     Exposed=Window
 ] interface OscillatorNode : AudioScheduledSourceNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional OscillatorOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional OscillatorOptions options = {});
 
     [RaisesException=Setter] attribute OscillatorType type;
 
diff --git a/third_party/blink/renderer/modules/webaudio/panner_node.idl b/third_party/blink/renderer/modules/webaudio/panner_node.idl
index fae1207..1ac9b00a9 100644
--- a/third_party/blink/renderer/modules/webaudio/panner_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/panner_node.idl
@@ -23,7 +23,7 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#pannernode
+// https://webaudio.github.io/web-audio-api/#pannernode
 enum PanningModelType {
     "equalpower",
     "HRTF"
@@ -38,7 +38,7 @@
 [
     Exposed=Window
 ] interface PannerNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional PannerOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional PannerOptions options = {});
     // Default model for stereo is equalpower.
     attribute PanningModelType panningModel;
 
diff --git a/third_party/blink/renderer/modules/webaudio/periodic_wave.idl b/third_party/blink/renderer/modules/webaudio/periodic_wave.idl
index 90f38241..521b2be 100644
--- a/third_party/blink/renderer/modules/webaudio/periodic_wave.idl
+++ b/third_party/blink/renderer/modules/webaudio/periodic_wave.idl
@@ -24,9 +24,9 @@
  */
 
 // PeriodicWave represents a periodic audio waveform given by its Fourier coefficients.
-// See https://webaudio.github.io/web-audio-api/#periodicwave
+// https://webaudio.github.io/web-audio-api/#periodicwave
 [
     Exposed=Window
 ] interface PeriodicWave {
-  [RaisesException, Measure] constructor(BaseAudioContext context, optional PeriodicWaveOptions options);
+  [RaisesException, Measure] constructor(BaseAudioContext context, optional PeriodicWaveOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/webaudio/stereo_panner_node.idl b/third_party/blink/renderer/modules/webaudio/stereo_panner_node.idl
index ebeb07f..da44448 100644
--- a/third_party/blink/renderer/modules/webaudio/stereo_panner_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/stereo_panner_node.idl
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// See https://webaudio.github.io/web-audio-api/#stereopannernode
+// https://webaudio.github.io/web-audio-api/#stereopannernode
 [
     Exposed=Window
 ] interface StereoPannerNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional StereoPannerOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional StereoPannerOptions options = {});
 
     readonly attribute AudioParam pan;
 
diff --git a/third_party/blink/renderer/modules/webaudio/wave_shaper_node.idl b/third_party/blink/renderer/modules/webaudio/wave_shaper_node.idl
index 21da3dc..f391280 100644
--- a/third_party/blink/renderer/modules/webaudio/wave_shaper_node.idl
+++ b/third_party/blink/renderer/modules/webaudio/wave_shaper_node.idl
@@ -23,7 +23,7 @@
  * DAMAGE.
  */
 
-// See https://webaudio.github.io/web-audio-api/#waveshapernode
+// https://webaudio.github.io/web-audio-api/#waveshapernode
 enum OverSampleType {
     "none",
     "2x",
@@ -33,7 +33,7 @@
 [
     Exposed=Window
 ] interface WaveShaperNode : AudioNode {
-    [RaisesException, Measure] constructor(BaseAudioContext context, optional WaveShaperOptions options);
+    [RaisesException, Measure] constructor(BaseAudioContext context, optional WaveShaperOptions options = {});
     [RaisesException=Setter] attribute Float32Array? curve;
     attribute OverSampleType oversample;
 };
diff --git a/third_party/blink/renderer/modules/webgl/webgl_context_event.idl b/third_party/blink/renderer/modules/webgl/webgl_context_event.idl
index db40a16b..e7bf820 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_context_event.idl
+++ b/third_party/blink/renderer/modules/webgl/webgl_context_event.idl
@@ -26,6 +26,6 @@
 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15
 
 interface WebGLContextEvent : Event {
-    constructor(DOMString type, optional WebGLContextEventInit eventInit);
+    constructor(DOMString type, optional WebGLContextEventInit eventInit = {});
     readonly attribute DOMString statusMessage;
 };
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc
index 616ecae..f041234 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc
@@ -8,7 +8,6 @@
 #include <utility>
 
 #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.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/core/dom/document.h"
diff --git a/third_party/blink/renderer/modules/webmidi/midi_connection_event.idl b/third_party/blink/renderer/modules/webmidi/midi_connection_event.idl
index 092f770..8627cbd 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_connection_event.idl
+++ b/third_party/blink/renderer/modules/webmidi/midi_connection_event.idl
@@ -33,6 +33,6 @@
 [
     SecureContext
 ] interface MIDIConnectionEvent : Event {
-    constructor(DOMString type, optional MIDIConnectionEventInit eventInitDict);
+    constructor(DOMString type, optional MIDIConnectionEventInit eventInitDict = {});
     readonly attribute MIDIPort port;
 };
diff --git a/third_party/blink/renderer/modules/webmidi/midi_message_event.idl b/third_party/blink/renderer/modules/webmidi/midi_message_event.idl
index 0583589c3..222b4ce 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_message_event.idl
+++ b/third_party/blink/renderer/modules/webmidi/midi_message_event.idl
@@ -33,6 +33,6 @@
 [
     SecureContext
 ] interface MIDIMessageEvent : Event {
-    constructor(DOMString type, optional MIDIMessageEventInit eventInitDict);
+    constructor(DOMString type, optional MIDIMessageEventInit eventInitDict = {});
     readonly attribute Uint8Array data;
 };
diff --git a/third_party/blink/renderer/modules/webmidi/navigator_web_midi.idl b/third_party/blink/renderer/modules/webmidi/navigator_web_midi.idl
index dfb062d..04c8a34 100644
--- a/third_party/blink/renderer/modules/webmidi/navigator_web_midi.idl
+++ b/third_party/blink/renderer/modules/webmidi/navigator_web_midi.idl
@@ -28,11 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// https://webaudio.github.io/web-midi-api/#requestMIDIAccess
+// https://webaudio.github.io/web-midi-api/#extensions-to-the-navigator-interface
 
 [
   ImplementedAs=NavigatorWebMIDI,
   SecureContext
 ] partial interface Navigator {
-  [CallWith=ScriptState, RaisesException, MeasureAs=RequestMIDIAccess_ObscuredByFootprinting] Promise<MIDIAccess> requestMIDIAccess(optional MIDIOptions options);
+  [CallWith=ScriptState, RaisesException, MeasureAs=RequestMIDIAccess_ObscuredByFootprinting] Promise<MIDIAccess> requestMIDIAccess(optional MIDIOptions options = {});
 };
diff --git a/third_party/blink/renderer/modules/webshare/navigator_share.idl b/third_party/blink/renderer/modules/webshare/navigator_share.idl
index b8558387..072c028 100644
--- a/third_party/blink/renderer/modules/webshare/navigator_share.idl
+++ b/third_party/blink/renderer/modules/webshare/navigator_share.idl
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://w3c.github.io/web-share/
+// https://w3c.github.io/web-share/level-2/#navigator-interface
 
 [
   ImplementedAs=NavigatorShare,
   RuntimeEnabled=WebShare
 ] partial interface Navigator {
   [SecureContext, CallWith=ScriptState, MeasureAs=WebShareCanShare, RuntimeEnabled=WebShareV2]
-  boolean canShare(optional ShareData data);
+  boolean canShare(optional ShareData data = {});
 
   [SecureContext, CallWith=ScriptState, RaisesException, MeasureAs=WebShareShare]
-  Promise<void> share(optional ShareData data);
+  Promise<void> share(optional ShareData data = {});
 };
diff --git a/third_party/blink/renderer/modules/websockets/close_event.idl b/third_party/blink/renderer/modules/websockets/close_event.idl
index 3bcc94d..e6394d3 100644
--- a/third_party/blink/renderer/modules/websockets/close_event.idl
+++ b/third_party/blink/renderer/modules/websockets/close_event.idl
@@ -33,7 +33,7 @@
 [
     Exposed=(Window,Worker)
 ] interface CloseEvent : Event {
-    constructor(DOMString type, optional CloseEventInit eventInitDict);
+    constructor(DOMString type, optional CloseEventInit eventInitDict = {});
     readonly attribute boolean wasClean;
     readonly attribute unsigned short code;
     readonly attribute DOMString reason;
diff --git a/third_party/blink/renderer/modules/websockets/websocket_stream.idl b/third_party/blink/renderer/modules/websockets/websocket_stream.idl
index c7f7daa5..9b64a62 100644
--- a/third_party/blink/renderer/modules/websockets/websocket_stream.idl
+++ b/third_party/blink/renderer/modules/websockets/websocket_stream.idl
@@ -9,9 +9,9 @@
     RuntimeEnabled=WebSocketStream,
     ActiveScriptWrappable
 ] interface WebSocketStream {
-  [CallWith=ScriptState, RaisesException, MeasureAs=WebSocketStreamConstructor] constructor(USVString url, optional WebSocketStreamOptions options);
+  [CallWith=ScriptState, RaisesException, MeasureAs=WebSocketStreamConstructor] constructor(USVString url, optional WebSocketStreamOptions options = {});
   readonly attribute USVString url;
   [CallWith=ScriptState] readonly attribute Promise<WebSocketConnection> connection;
   [CallWith=ScriptState] readonly attribute Promise<WebSocketCloseInfo> closed;
-  [RaisesException] void close(optional WebSocketCloseInfo closeInfo);
+  [RaisesException] void close(optional WebSocketCloseInfo closeInfo = {});
 };
diff --git a/third_party/blink/renderer/modules/webtransport/quic_transport.idl b/third_party/blink/renderer/modules/webtransport/quic_transport.idl
index 189bfbfd..c791c99 100644
--- a/third_party/blink/renderer/modules/webtransport/quic_transport.idl
+++ b/third_party/blink/renderer/modules/webtransport/quic_transport.idl
@@ -19,5 +19,5 @@
   ReadableStream receiveDatagrams();
 
   // From WebTransport mixin
-  void close(optional WebTransportCloseInfo closeInfo);
+  void close(optional WebTransportCloseInfo closeInfo = {});
 };
diff --git a/third_party/blink/renderer/modules/xr/xr.cc b/third_party/blink/renderer/modules/xr/xr.cc
index 3acad42..76a30b0 100644
--- a/third_party/blink/renderer/modules/xr/xr.cc
+++ b/third_party/blink/renderer/modules/xr/xr.cc
@@ -9,7 +9,6 @@
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-blink.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
diff --git a/third_party/blink/renderer/modules/xr/xr.idl b/third_party/blink/renderer/modules/xr/xr.idl
index 93aba883d..a0abb7a 100644
--- a/third_party/blink/renderer/modules/xr/xr.idl
+++ b/third_party/blink/renderer/modules/xr/xr.idl
@@ -11,5 +11,5 @@
   attribute EventHandler ondevicechange;
   [CallWith=ScriptState, DeprecateAs=XRSupportsSession, RaisesException] Promise<void> supportsSession(XRSessionMode mode);
   [CallWith=ScriptState, MeasureAs=XRIsSessionSupported, RaisesException] Promise<boolean> isSessionSupported(XRSessionMode mode);
-  [CallWith=ScriptState, MeasureAs=XRRequestSession, RaisesException] Promise<XRSession> requestSession(XRSessionMode mode, optional XRSessionInit options);
+  [CallWith=ScriptState, MeasureAs=XRRequestSession, RaisesException] Promise<XRSession> requestSession(XRSessionMode mode, optional XRSessionInit options = {});
 };
diff --git a/third_party/blink/renderer/modules/xr/xr_rigid_transform.idl b/third_party/blink/renderer/modules/xr/xr_rigid_transform.idl
index b66eb08..84bd98a 100644
--- a/third_party/blink/renderer/modules/xr/xr_rigid_transform.idl
+++ b/third_party/blink/renderer/modules/xr/xr_rigid_transform.idl
@@ -9,7 +9,7 @@
     Exposed=Window,
     RuntimeEnabled=WebXR
 ] interface XRRigidTransform {
-  [RaisesException] constructor(optional DOMPointInit position, optional DOMPointInit orientation);
+  [RaisesException] constructor(optional DOMPointInit position = {}, optional DOMPointInit orientation = {});
   [SameObject] readonly attribute DOMPointReadOnly position;
   [SameObject] readonly attribute DOMPointReadOnly orientation;
   [SameObject] readonly attribute Float32Array matrix;
diff --git a/third_party/blink/renderer/modules/xr/xr_session.idl b/third_party/blink/renderer/modules/xr/xr_session.idl
index f71e1a4..2735fe2 100644
--- a/third_party/blink/renderer/modules/xr/xr_session.idl
+++ b/third_party/blink/renderer/modules/xr/xr_session.idl
@@ -41,7 +41,7 @@
   attribute EventHandler onselectend;
   attribute EventHandler onvisibilitychange;
 
-  [RaisesException] void updateRenderState(optional XRRenderStateInit init);
+  [RaisesException] void updateRenderState(optional XRRenderStateInit init = {});
 
   [CallWith=ScriptState, RaisesException] Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type);
 
@@ -52,7 +52,7 @@
 
   // https://github.com/immersive-web/real-world-geometry/blob/master/plane-detection-explainer.md
   [RuntimeEnabled=WebXRIncubations] readonly attribute XRWorldTrackingState worldTrackingState;
-  [RuntimeEnabled=WebXRIncubations, RaisesException] void updateWorldTrackingState(optional XRWorldTrackingStateInit state);
+  [RuntimeEnabled=WebXRIncubations, RaisesException] void updateWorldTrackingState(optional XRWorldTrackingStateInit state = {});
 
   [RuntimeEnabled=WebXRIncubations] readonly attribute XRAnchorSet trackedAnchors;
   [RuntimeEnabled=WebXRIncubations, CallWith=ScriptState, RaisesException] Promise<XRAnchor> createAnchor(XRRigidTransform initial_pose, XRSpace space);
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl b/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl
index 380da299..1f9e3af 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl
@@ -10,7 +10,7 @@
     Exposed=Window,
     RuntimeEnabled=WebXR
 ] interface XRWebGLLayer {
-  [RaisesException, Measure] constructor(XRSession session, XRWebGLRenderingContext context, optional XRWebGLLayerInit layerInit);
+  [RaisesException, Measure] constructor(XRSession session, XRWebGLRenderingContext context, optional XRWebGLLayerInit layerInit = {});
   readonly attribute boolean antialias;
   readonly attribute boolean ignoreDepthValues;
 
diff --git a/third_party/blink/renderer/platform/blob/blob_data.cc b/third_party/blink/renderer/platform/blob/blob_data.cc
index 246335e..a381dbc 100644
--- a/third_party/blink/renderer/platform/blob/blob_data.cc
+++ b/third_party/blink/renderer/platform/blob/blob_data.cc
@@ -85,7 +85,7 @@
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       ThreadSpecific<mojo::Remote<mojom::blink::BlobRegistry>>, registry, ());
   if (UNLIKELY(!registry.IsSet())) {
-    // TODO(mek): Going through InterfaceProvider to get a
+    // TODO(mek): Going through BrowserInterfaceBroker to get a
     // mojom::blink::BlobRegistry ends up going through the main thread. Ideally
     // workers wouldn't need to do that.
     Platform::Current()->GetBrowserInterfaceBroker()->GetInterface(
diff --git a/third_party/blink/renderer/platform/blob/blob_data_test.cc b/third_party/blink/renderer/platform/blob/blob_data_test.cc
index aa375aa..b515e0b1 100644
--- a/third_party/blink/renderer/platform/blob/blob_data_test.cc
+++ b/third_party/blink/renderer/platform/blob/blob_data_test.cc
@@ -15,7 +15,6 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/mojom/blob/blob_registry.mojom-blink.h"
 #include "third_party/blink/public/platform/file_path_conversion.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/renderer/platform/blob/blob_bytes_provider.h"
 #include "third_party/blink/renderer/platform/blob/testing/fake_blob_registry.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index 2d924fd..7cbbd965 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -370,10 +370,14 @@
 
 namespace {
 
-int AdjustedFocusRingOffset(int offset, int width, bool is_outset) {
+int AdjustedFocusRingOffset(int offset,
+                            int default_offset,
+                            int width,
+                            bool is_outset) {
   if (::features::IsFormControlsRefreshEnabled()) {
-    // For FormControlsRefresh the focus ring has a 2px inner padding.
-    return 2;
+    // For FormControlsRefresh the focus ring has a default offset that
+    // depends on the element type.
+    return default_offset;
   }
 
 #if defined(OS_MACOSX)
@@ -388,6 +392,7 @@
 }  // namespace
 
 int GraphicsContext::FocusRingOutsetExtent(int offset,
+                                           int default_offset,
                                            int width,
                                            bool is_outset) {
   // Unlike normal outlines (whole width is outside of the offset), focus
@@ -395,11 +400,13 @@
   // 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) +
+    return AdjustedFocusRingOffset(offset, default_offset, width, is_outset) +
            std::ceil(width / 3.f) * 2;
   }
 
-  return AdjustedFocusRingOffset(offset, width, is_outset) + (width + 1) / 2;
+  return AdjustedFocusRingOffset(offset, /*default_offset=*/0, width,
+                                 is_outset) +
+         (width + 1) / 2;
 }
 
 void GraphicsContext::DrawFocusRingPath(const SkPath& path,
@@ -455,7 +462,8 @@
   if (!::features::IsFormControlsRefreshEnabled()) {
     // For FormControlsRefresh the offset is already adjusted by
     // GraphicsContext::DrawFocusRing.
-    offset = AdjustedFocusRingOffset(offset, std::ceil(width), is_outset);
+    offset = AdjustedFocusRingOffset(offset, /*default_offset=*/0,
+                                     std::ceil(width), is_outset);
   }
   for (unsigned i = 0; i < rect_count; i++) {
     SkIRect r = rects[i];
@@ -498,6 +506,7 @@
 void GraphicsContext::DrawFocusRing(const Vector<IntRect>& rects,
                                     float width,
                                     int offset,
+                                    int default_offset,
                                     float border_radius,
                                     float min_border_width,
                                     const Color& color,
@@ -507,7 +516,8 @@
     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);
+    offset = AdjustedFocusRingOffset(offset, default_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) {
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.h b/third_party/blink/renderer/platform/graphics/graphics_context.h
index 5c1954d..91586af 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.h
@@ -371,6 +371,7 @@
   void DrawFocusRing(const Vector<IntRect>&,
                      float width,
                      int offset,
+                     int default_offset,
                      float border_radius,
                      float min_border_width,
                      const Color&,
@@ -430,7 +431,10 @@
                                           FloatPoint& p2,
                                           float stroke_width);
 
-  static int FocusRingOutsetExtent(int offset, int width, bool is_outset);
+  static int FocusRingOutsetExtent(int offset,
+                                   int default_offset,
+                                   int width,
+                                   bool is_outset);
 
   void SetInDrawingRecorder(bool);
   bool InDrawingRecorder() const { return in_drawing_recorder_; }
diff --git a/third_party/blink/renderer/platform/network/encoded_form_data_element_mojom_traits.cc b/third_party/blink/renderer/platform/network/encoded_form_data_element_mojom_traits.cc
index 4807a6d..d95ad2f 100644
--- a/third_party/blink/renderer/platform/network/encoded_form_data_element_mojom_traits.cc
+++ b/third_party/blink/renderer/platform/network/encoded_form_data_element_mojom_traits.cc
@@ -18,7 +18,6 @@
 #include "third_party/blink/public/mojom/blob/blob.mojom-blink.h"
 #include "third_party/blink/public/mojom/blob/blob_registry.mojom-blink.h"
 #include "third_party/blink/public/platform/file_path_conversion.h"
-#include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/platform/network/wrapped_data_pipe_getter.h"
 
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 5abe587..a28fc1b 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -1571,7 +1571,6 @@
 crbug.com/6606 external/wpt/mathml/relations/html5-tree/href-click-1.html [ Failure ]
 crbug.com/6606 external/wpt/mathml/relations/html5-tree/href-click-2.html [ Failure ]
 crbug.com/6606 external/wpt/mathml/relations/html5-tree/href-click-3.html [ Failure ]
-crbug.com/6606 external/wpt/mathml/relations/html5-tree/integration-point-1.html [ Failure ]
 crbug.com/6606 external/wpt/mathml/relations/html5-tree/integration-point-2.html [ Failure ]
 crbug.com/6606 external/wpt/mathml/relations/html5-tree/integration-point-3.html [ Failure ]
 crbug.com/6606 external/wpt/mathml/relations/html5-tree/integration-point-4.html [ Failure ]
@@ -4170,6 +4169,9 @@
 crbug.com/1010751 virtual/import-maps-without-builtin-modules/external/wpt/import-maps/builtin-support.tentative/* [ Skip ]
 crbug.com/1010751 external/wpt/import-maps/imported/* [ Skip ]
 
+# Disabled temporarliy until eager evaluation is fixed/re-baselined in DevTools.
+crbug.com/1043151 http/tests/devtools/console/viewport-testing/console-runtime-result-below-prompt.js [ Pass Failure ]
+
 # This test requires a special browser flag and seems not suitable for a wpt test, see bug.
 crbug.com/691944 external/wpt/service-workers/service-worker/update-after-oneday.https.html [ Skip ]
 crbug.com/691944 virtual/omt-service-worker-startup/external/wpt/service-workers/service-worker/update-after-oneday.https.html [ Skip ]
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 a239e4aa..f1d14efb 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
@@ -116599,6 +116599,18 @@
      {}
     ]
    ],
+   "forced-colors-mode/forced-colors-mode-25.html": [
+    [
+     "forced-colors-mode/forced-colors-mode-25.html",
+     [
+      [
+       "/forced-colors-mode/forced-colors-mode-25-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "html/browsers/sandboxing/sandbox-parse-noscript.html": [
     [
      "html/browsers/sandboxing/sandbox-parse-noscript.html",
@@ -145594,6 +145606,9 @@
    "css/css-position/parsing/inset-start-valid-expected.txt": [
     []
    ],
+   "css/css-position/position-absolute-table-001-expected.txt": [
+    []
+   ],
    "css/css-position/position-relative-table-left-ref.html": [
     []
    ],
@@ -145975,9 +145990,6 @@
    "css/css-scroll-snap/snap-after-initial-layout/snap-after-initial-layout-ref.html": [
     []
    ],
-   "css/css-scroll-snap/snap-after-relayout/move-current-target-expected.txt": [
-    []
-   ],
    "css/css-scroll-snap/snap-inline-block-expected.txt": [
     []
    ],
@@ -159973,6 +159985,9 @@
    "forced-colors-mode/forced-colors-mode-23-ref.html": [
     []
    ],
+   "forced-colors-mode/forced-colors-mode-25-ref.html": [
+    []
+   ],
    "forced-colors-mode/resources/float-image.jpg": [
     []
    ],
@@ -171796,6 +171811,33 @@
    "quirks/unitless-length/support/common.js": [
     []
    ],
+   "referrer-policy/4K+1/generic/spec_json.js": [
+    []
+   ],
+   "referrer-policy/4K+1/generic/test-case.sub.js": [
+    []
+   ],
+   "referrer-policy/4K+1/spec.src.json": [
+    []
+   ],
+   "referrer-policy/4K-1/generic/spec_json.js": [
+    []
+   ],
+   "referrer-policy/4K-1/generic/test-case.sub.js": [
+    []
+   ],
+   "referrer-policy/4K-1/spec.src.json": [
+    []
+   ],
+   "referrer-policy/4K/generic/spec_json.js": [
+    []
+   ],
+   "referrer-policy/4K/generic/test-case.sub.js": [
+    []
+   ],
+   "referrer-policy/4K/spec.src.json": [
+    []
+   ],
    "referrer-policy/META.yml": [
     []
    ],
@@ -183004,9 +183046,15 @@
    "webdriver/tests/take_screenshot/__init__.py": [
     []
    ],
+   "webgpu/LICENSE.txt": [
+    []
+   ],
    "webgpu/OWNERS": [
     []
    ],
+   "webgpu/constants.js": [
+    []
+   ],
    "webgpu/framework/allowed_characters.js": [
     []
    ],
@@ -183016,6 +183064,9 @@
    "webgpu/framework/fixture.js": [
     []
    ],
+   "webgpu/framework/generate_minimal_query_list.js": [
+    []
+   ],
    "webgpu/framework/gpu/implementation.js": [
     []
    ],
@@ -183091,6 +183142,9 @@
    "webgpu/runtime/helper/options.js": [
     []
    ],
+   "webgpu/runtime/helper/test_worker-worker.js": [
+    []
+   ],
    "webgpu/runtime/helper/test_worker.js": [
     []
    ],
@@ -209907,6 +209961,46 @@
      }
     ]
    ],
+   "cookie-store/cookieStore_subscribe_arguments.tentative.https.any.js": [
+    [
+     "cookie-store/cookieStore_subscribe_arguments.tentative.https.any.html",
+     {
+      "script_metadata": [
+       [
+        "title",
+        "Cookie Store API: cookieStore.subscribe() arguments"
+       ],
+       [
+        "global",
+        "!default,serviceworker,window"
+       ],
+       [
+        "script",
+        "/service-workers/service-worker/resources/test-helpers.sub.js"
+       ]
+      ]
+     }
+    ],
+    [
+     "cookie-store/cookieStore_subscribe_arguments.tentative.https.any.serviceworker.html",
+     {
+      "script_metadata": [
+       [
+        "title",
+        "Cookie Store API: cookieStore.subscribe() arguments"
+       ],
+       [
+        "global",
+        "!default,serviceworker,window"
+       ],
+       [
+        "script",
+        "/service-workers/service-worker/resources/test-helpers.sub.js"
+       ]
+      ]
+     }
+    ]
+   ],
    "cookie-store/cookieStore_subscriptions_empty.tentative.https.window.js": [
     [
      "cookie-store/cookieStore_subscriptions_empty.tentative.https.window.html",
@@ -219025,6 +219119,12 @@
      {}
     ]
    ],
+   "css/css-position/position-absolute-table-001.html": [
+    [
+     "css/css-position/position-absolute-table-001.html",
+     {}
+    ]
+   ],
    "css/css-position/position-fixed-at-bottom-right-on-viewport.html": [
     [
      "css/css-position/position-fixed-at-bottom-right-on-viewport.html",
@@ -321457,141 +321557,135 @@
    ],
    "webgpu/cts.html": [
     [
-     "webgpu/cts.html?q=cts:buffers/create_mapped:",
+     "webgpu/cts.html?q=cts:buffers/create_mapped",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:buffers/map:",
+     "webgpu/cts.html?q=cts:buffers/map",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:buffers/map_detach:",
+     "webgpu/cts.html?q=cts:buffers/map_detach",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:buffers/map_oom:",
+     "webgpu/cts.html?q=cts:buffers/map_oom",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:canvas/context_creation:",
+     "webgpu/cts.html?q=cts:canvas/context_creation",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:command_buffer/basic:",
+     "webgpu/cts.html?q=cts:command_buffer/basic",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:command_buffer/compute/basic:",
+     "webgpu/cts.html?q=cts:command_buffer/compute/basic",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:command_buffer/copies:",
+     "webgpu/cts.html?q=cts:command_buffer/copies",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:command_buffer/render/basic:",
+     "webgpu/cts.html?q=cts:command_buffer/render/basic",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:command_buffer/render/rendering:",
+     "webgpu/cts.html?q=cts:command_buffer/render/rendering",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:command_buffer/render/storeop:",
+     "webgpu/cts.html?q=cts:command_buffer/render/storeop",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:copyImageBitmapToTexture:",
+     "webgpu/cts.html?q=cts:copyImageBitmapToTexture",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:examples:",
+     "webgpu/cts.html?q=cts:examples",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:fences:",
+     "webgpu/cts.html?q=cts:fences",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:resource_init/sampled_texture_clear:",
+     "webgpu/cts.html?q=cts:resource_init/sampled_texture_clear",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/createBindGroup:",
+     "webgpu/cts.html?q=cts:validation/createBindGroup",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/createBindGroupLayout:",
+     "webgpu/cts.html?q=cts:validation/createBindGroupLayout",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/createPipelineLayout:",
+     "webgpu/cts.html?q=cts:validation/createPipelineLayout",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/createRenderPipeline:",
+     "webgpu/cts.html?q=cts:validation/createRenderPipeline",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/createTexture:",
+     "webgpu/cts.html?q=cts:validation/createTexture",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/createView:",
+     "webgpu/cts.html?q=cts:validation/createView",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/error_scope:",
+     "webgpu/cts.html?q=cts:validation/error_scope",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/fences:",
+     "webgpu/cts.html?q=cts:validation/fences",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/queue_submit:",
+     "webgpu/cts.html?q=cts:validation/queue_submit",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/render_pass:",
+     "webgpu/cts.html?q=cts:validation/render_pass",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/render_pass_descriptor:",
+     "webgpu/cts.html?q=cts:validation/render_pass_descriptor",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/setBindGroup:",
+     "webgpu/cts.html?q=cts:validation/setBindGroup",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/setBlendColor:",
+     "webgpu/cts.html?q=cts:validation/setBlendColor",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/setScissorRect:",
+     "webgpu/cts.html?q=cts:validation/setScissorRect",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/setStencilReference:",
+     "webgpu/cts.html?q=cts:validation/setStencilReference",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/setVertexBuffer:",
+     "webgpu/cts.html?q=cts:validation/setVertexBuffer",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/setViewport:",
+     "webgpu/cts.html?q=cts:validation/setViewport",
      {}
     ],
     [
-     "webgpu/cts.html?q=cts:validation/vertex_state:",
-     {}
-    ]
-   ],
-   "webgpu/runtime/helper/test_worker.worker.js": [
-    [
-     "webgpu/runtime/helper/test_worker.worker.html",
+     "webgpu/cts.html?q=cts:validation/vertex_state",
      {}
     ]
    ],
@@ -328396,6 +328490,12 @@
      {}
     ]
    ],
+   "webxr/xrFrame_getViewerPose_getPose.https.html": [
+    [
+     "webxr/xrFrame_getViewerPose_getPose.https.html",
+     {}
+    ]
+   ],
    "webxr/xrFrame_lifetime.https.html": [
     [
      "webxr/xrFrame_lifetime.https.html",
@@ -350176,7 +350276,7 @@
    "support"
   ],
   "common/security-features/README.md": [
-   "2509d661b4afb68a5bfca0a41270d93586ddbe49",
+   "46cabd2bb3c24dd94f81e78a7799512e7741cd13",
    "support"
   ],
   "common/security-features/resources/common.sub.js": [
@@ -350296,11 +350396,11 @@
    "support"
   ],
   "common/security-features/tools/format_spec_src_json.py": [
-   "b4549bb710cd119e87ca4a41d65d7980b6b40406",
+   "d1bf5817ad208f3ae8cc16b3ad11cc0d310d35aa",
    "support"
   ],
   "common/security-features/tools/generate.py": [
-   "ba997067b3f44640fec79fac9cea10a79ae982af",
+   "3345d6520691de734977a18d73c94f71b446408a",
    "support"
   ],
   "common/security-features/tools/spec_validator.py": [
@@ -350316,11 +350416,11 @@
    "support"
   ],
   "common/security-features/tools/template/test.debug.html.template": [
-   "b4b0fec733e1ce6f6a5cad0f9c9d4391aa244fb1",
+   "f09395cff49a7a4282606a79135b813354e14022",
    "support"
   ],
   "common/security-features/tools/template/test.release.html.template": [
-   "d93506e231a4c6e719b055b1e312bd163eb9519d",
+   "6bf79f77df1a6a3d357b68d1f59f90e04ca0815f",
    "support"
   ],
   "common/security-features/tools/util.py": [
@@ -353748,7 +353848,7 @@
    "testharness"
   ],
   "cookie-store/cookieStore_getAll_arguments.tentative.https.any.js": [
-   "6073fca3deb0e9ebdaf522ca895829eb869371eb",
+   "93f9fd84daece913b24d5ff18747d1dacd5cd646",
    "testharness"
   ],
   "cookie-store/cookieStore_getAll_multiple.tentative.https.any.js": [
@@ -353760,7 +353860,7 @@
    "testharness"
   ],
   "cookie-store/cookieStore_get_arguments.tentative.https.any.js": [
-   "73932c9bd5ddc0352b0a7cc19b9f13dbe3b30bad",
+   "e88fdcbcef7fe6fd3c5d5a7db41a947bf53a4da8",
    "testharness"
   ],
   "cookie-store/cookieStore_get_delete_basic.tentative.https.any.js": [
@@ -353795,6 +353895,10 @@
    "a4b31178ab0977e96e86e45b550712b862c6d2c7",
    "testharness"
   ],
+  "cookie-store/cookieStore_subscribe_arguments.tentative.https.any.js": [
+   "5c49cefb82ef03e2a78ddd4243b9262f47ccb71d",
+   "testharness"
+  ],
   "cookie-store/cookieStore_subscriptions_empty.tentative.https.window.js": [
    "907a34b4de6632f5e91adbcd606839a92eead320",
    "testharness"
@@ -359512,7 +359616,7 @@
    "reftest"
   ],
   "css/CSS2/linebox/inline-negative-margin-001.html": [
-   "226a3a19ad17b8fb773e00174b1dcd1593e6be61",
+   "b1ce232e6e9770a0019c5570f9e6ea57eb87f121",
    "testharness"
   ],
   "css/CSS2/linebox/inline-negative-margin-minmax-crash-001.html": [
@@ -371360,7 +371464,7 @@
    "testharness"
   ],
   "css/css-animations/CSSAnimation-getCurrentTime.tentative.html": [
-   "4a0b9bdce744d9f452f4989b41025bd94931dc4b",
+   "e4d1f859fd4d65f51b89de6e23ead724545568a3",
    "testharness"
   ],
   "css/css-animations/CSSAnimation-id.tentative.html": [
@@ -401819,6 +401923,14 @@
    "5a76277092bf9e84605fbb8e1fd64e17259e3f44",
    "testharness"
   ],
+  "css/css-position/position-absolute-table-001-expected.txt": [
+   "b02f749fafe6b78ea759369cb65b318609af8317",
+   "support"
+  ],
+  "css/css-position/position-absolute-table-001.html": [
+   "c467ac480069caad4da5d65480b0d7b8a32dccfe",
+   "testharness"
+  ],
   "css/css-position/position-fixed-at-bottom-right-on-viewport.html": [
    "9184db028e864915813a4dcf76822f9a07d03b29",
    "testharness"
@@ -403803,12 +403915,8 @@
    "70774b3d40f691fe4feb623b4dfe430b12f4e8c0",
    "testharness"
   ],
-  "css/css-scroll-snap/snap-after-relayout/move-current-target-expected.txt": [
-   "3ba4afcb8454cdb40a8ae73254bfeb89ccd93ad3",
-   "support"
-  ],
   "css/css-scroll-snap/snap-after-relayout/move-current-target.html": [
-   "83c2c478bf5921cedd9cb4d48b5de14533f4bbcd",
+   "ccadc884c5ba23f90b4b7d273e5aaf355cf648d1",
    "testharness"
   ],
   "css/css-scroll-snap/snap-after-relayout/remove-current-target.html": [
@@ -420212,7 +420320,7 @@
    "testharness"
   ],
   "css/css-transitions/CSSTransition-currentTime.tentative.html": [
-   "4c7a7a4891636a7201f07b671ff605dca3ddcc2b",
+   "8ee7215b7414722ec315826b54ceb650006552c5",
    "testharness"
   ],
   "css/css-transitions/CSSTransition-effect.tentative.html": [
@@ -454087,6 +454195,14 @@
    "20519ea181e82a64865b95f32f3486e52300eb06",
    "reftest"
   ],
+  "forced-colors-mode/forced-colors-mode-25-ref.html": [
+   "9c626ae768676c155459e90a75e2bd4fdda02867",
+   "support"
+  ],
+  "forced-colors-mode/forced-colors-mode-25.html": [
+   "ea1f973f04aa66c9e00a63cedacf929d62c70524",
+   "reftest"
+  ],
   "forced-colors-mode/resources/float-image.jpg": [
    "ab06d5f94d16e22bb08fad79d6fef662b2a7de5a",
    "support"
@@ -464396,7 +464512,7 @@
    "reftest"
   ],
   "html/rendering/non-replaced-elements/tables/table-ua-stylesheet-expected.txt": [
-   "1a9a242f358ac00f71b1d3605a6dd559788c9397",
+   "b43dba43a1d76c5539d5bfe28d1afc85b837ee51",
    "support"
   ],
   "html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html": [
@@ -480380,7 +480496,7 @@
    "testharness"
   ],
   "media-source/mediasource-addsourcebuffer.html": [
-   "7f6aa2ab697784c76da466aa2ad807b5b75c7ade",
+   "6ada12284908d13a9658380cbdde3179e702047d",
    "testharness"
   ],
   "media-source/mediasource-append-buffer-expected.txt": [
@@ -480396,7 +480512,7 @@
    "testharness"
   ],
   "media-source/mediasource-appendwindow.html": [
-   "272031a6e9ec7efbed938e8a5de927c9f2afed8a",
+   "aebbee418dfefb7a67c72fb569c9b84560faee44",
    "testharness"
   ],
   "media-source/mediasource-attach-stops-delaying-load-event.html": [
@@ -480436,7 +480552,7 @@
    "support"
   ],
   "media-source/mediasource-changetype.html": [
-   "263dd82671650afc6d4456ed0aff2eb0ec543235",
+   "8ce821d08f1c247675e5f9d86ee9554c191e47e4",
    "testharness"
   ],
   "media-source/mediasource-closed.html": [
@@ -480556,7 +480672,7 @@
    "testharness"
   ],
   "media-source/mediasource-liveseekable.html": [
-   "a2f05a9cd6a38984f2479cd45f8e5f42b27ecd4a",
+   "3e79a1140264ffa467198bc8c2996c42657231fb",
    "testharness"
   ],
   "media-source/mediasource-multiple-attach.html": [
@@ -480584,7 +480700,7 @@
    "support"
   ],
   "media-source/mediasource-remove.html": [
-   "9a4eb3fc5cb1b0d4d4f95da7345e1bb6f4f674f8",
+   "454178709f9b7b2f83fd9a60625765512874b502",
    "testharness"
   ],
   "media-source/mediasource-removesourcebuffer.html": [
@@ -493472,7 +493588,7 @@
    "testharness"
   ],
   "portals/portals-focus.sub.html": [
-   "1427dae2e4d13cd849fdc4f92dbcd9d4b2cad280",
+   "1779590779af1f7306925add9dfdd84a6abfa323",
    "testharness"
   ],
   "portals/portals-host-exposure.sub.html": [
@@ -493552,7 +493668,7 @@
    "support"
   ],
   "portals/resources/focus-page-with-button.html": [
-   "2b6f0ff75604a5750ba96f6c19c9cc6508495676",
+   "2bf0ddb93933a492b209b28d8767e3885350496f",
    "support"
   ],
   "portals/resources/focus-page-with-x-origin-iframe.sub.html": [
@@ -494399,6 +494515,42 @@
    "f2f7eab4e33858b571344940c67de9b50e18e119",
    "support"
   ],
+  "referrer-policy/4K+1/generic/spec_json.js": [
+   "39cd997338e4c9e235d30097d970daeff5f1f19b",
+   "support"
+  ],
+  "referrer-policy/4K+1/generic/test-case.sub.js": [
+   "b602d65f4141da242b1a9c47b2544cb3e9abc39c",
+   "support"
+  ],
+  "referrer-policy/4K+1/spec.src.json": [
+   "5dc2085c62fa48787d4c16da422e3551eb844630",
+   "support"
+  ],
+  "referrer-policy/4K-1/generic/spec_json.js": [
+   "39cd997338e4c9e235d30097d970daeff5f1f19b",
+   "support"
+  ],
+  "referrer-policy/4K-1/generic/test-case.sub.js": [
+   "5b6aa4216b74a04a193ce7ece447b890d2ec6469",
+   "support"
+  ],
+  "referrer-policy/4K-1/spec.src.json": [
+   "5dc2085c62fa48787d4c16da422e3551eb844630",
+   "support"
+  ],
+  "referrer-policy/4K/generic/spec_json.js": [
+   "39cd997338e4c9e235d30097d970daeff5f1f19b",
+   "support"
+  ],
+  "referrer-policy/4K/generic/test-case.sub.js": [
+   "912c06e10e7f0917c2cf83bb28f2a0975e103c7c",
+   "support"
+  ],
+  "referrer-policy/4K/spec.src.json": [
+   "5dc2085c62fa48787d4c16da422e3551eb844630",
+   "support"
+  ],
   "referrer-policy/META.yml": [
    "8ead043aad0a6aa79dad5c2c9e9b757df5869265",
    "support"
@@ -506596,7 +506748,7 @@
    "testharness"
   ],
   "referrer-policy/generic/test-case.sub.js": [
-   "c8a6b139f33fa044ddb644409b1e4437d3df338c",
+   "a8292e57e1fe32efbed35a184fd7461198643dd1",
    "support"
   ],
   "referrer-policy/generic/unsupported-csp-referrer-directive.html": [
@@ -507552,7 +507704,7 @@
    "support"
   ],
   "resources/chromium/webxr-test-math-helper.js": [
-   "0147f50f3712af39734ddd7db3bee073a1d8c923",
+   "5eff666b70678e3d04a4b316616e8713a3cc58ea",
    "support"
   ],
   "resources/chromium/webxr-test-math-helper.js.headers": [
@@ -507560,7 +507712,7 @@
    "support"
   ],
   "resources/chromium/webxr-test.js": [
-   "16191695e894f91e9a09aea1cfb7d9deb0307de9",
+   "695b265db60067f5872099a7eda6ed579b3d73ca",
    "support"
   ],
   "resources/chromium/webxr-test.js.headers": [
@@ -507800,7 +507952,7 @@
    "support"
   ],
   "scroll-animations/scroll-animation.html": [
-   "d565788e1089af140fb3579fca67d4ca9b60bdf3",
+   "bee9e360c5913b2f54a16a68f4625d13c42bb15b",
    "testharness"
   ],
   "scroll-animations/setting-current-time.html": [
@@ -516508,67 +516660,67 @@
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html": [
-   "1200fd450a0c0fa18c85b3bfb15a21ea3801f25b",
+   "9727bfb22403f9f8fa8f0d14cad719be25b37132",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html": [
-   "7d8a4be26acf5e0a957242cf1c78e727d72d3c8e",
+   "cb4a631af663cdbcac8d50edcef49f536c0e8eb6",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html": [
-   "c86e6594a296c57562b18f84ac6fa38399567a08",
+   "ab906119ad88b38a7db0a89c0d16810d67b8b4a7",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFECompositeElement.html": [
-   "19714ea73f08fb99041c82e53c44b89094caea1d",
+   "e6315b434504e754872dd460988187957efbfb07",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html": [
-   "cab47f1bdaebaa167c60ea3a9f11f0ec2a7644cc",
+   "b2aff0bd8cc84146488cc277a3eec6905f7686f7",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html": [
-   "11fe32d527c3547e80fbbc823977a528e386caae",
+   "14dda6e227e2826299b150af850a12c72dc6fbfa",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFEMorphologyElement.html": [
-   "250bc6ce811af3d42a337ade8427ba245467b5e1",
+   "3bf638e5e6b60519e7259f96890ed0c6f11a4316",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFETurbulenceElement.html": [
-   "06e23346bf6165559762c2574fb5345ba4561528",
+   "2818a8afa4ac42c5ae7a83646f4e56931dbf748f",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGFilterElement.html": [
-   "b8a82db15eda1da842056229799368899cfe213b",
+   "fcf38a8513adcbba0ceb4543340173c85de8ed7c",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGGradientElement.html": [
-   "fcb3d717b2f1cea03b1a846c7bac0a637e320607",
+   "a23a66f3d25817fa112f18f5a29ad3f43936f65a",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement.html": [
-   "7ff298a9d063009daae352e651e94cbce083531e",
+   "7ac884ae3e5052d40a60521a5c6b91eb854b4e4c",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGMaskElement.html": [
-   "e2a755688851d8a44827891196ea5c318af4ff29",
+   "6a0a26bacb7ecd13264ac419dffb97266ead097f",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGPatternElement.html": [
-   "069336506f259769c791899f7943a1ec9579c32e",
+   "6c49adee9020f527d9f6fb51ff01204810d4b61e",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGTextContentElement.html": [
-   "60e15bda01bd29ee3630a164868c7f4df98c9f15",
+   "0798c9be666e0c40279364cb2fabb58ee3ffdc0a",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration-SVGTextPathElement.html": [
-   "46c136f777f8c95ddd666770ebb31b8ff81d24a5",
+   "9841866b5a2a8bb83ac5155ba666a4695e8c269d",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedEnumeration.html": [
-   "bac69203311116bcc5fd9957ebae7be80f7e9096",
+   "990b884545d70a3f1156e4c070cdac2d6cc2ac79",
    "testharness"
   ],
   "svg/types/scripted/SVGAnimatedInteger.html": [
@@ -527124,7 +527276,7 @@
    "support"
   ],
   "web-animations/interfaces/KeyframeEffect/constructor.html": [
-   "8f16aa18711e596c1c2c604595146e36601a606f",
+   "46a23b0c2e87aef9d36c86960b4f9c2d254f3140",
    "testharness"
   ],
   "web-animations/interfaces/KeyframeEffect/copy-constructor.html": [
@@ -529743,12 +529895,20 @@
    "ad9e3695148d63153db8aacbe3b8444a814d5ba3",
    "wdspec"
   ],
+  "webgpu/LICENSE.txt": [
+   "c7a75d7d221561df02c42470ad5e751324de645d",
+   "support"
+  ],
   "webgpu/OWNERS": [
    "0902cf56183a851dc4e32a6da83083eecfd5cfe0",
    "support"
   ],
+  "webgpu/constants.js": [
+   "28771fb0e3e96d273436446e8c254a28c92aebeb",
+   "support"
+  ],
   "webgpu/cts.html": [
-   "5c529e90401ce3523ab210739da616047c93c8eb",
+   "058d3b3c4ad6bf098529234bcae42d34c2969dac",
    "testharness"
   ],
   "webgpu/framework/allowed_characters.js": [
@@ -529760,19 +529920,23 @@
    "support"
   ],
   "webgpu/framework/fixture.js": [
-   "d976fa46880a30cbb1837fce30a96023875e0f87",
+   "11b5f405456b4d5e635571b00247cce4e1fc5942",
+   "support"
+  ],
+  "webgpu/framework/generate_minimal_query_list.js": [
+   "12311acac0516009516147e2914910176613dd81",
    "support"
   ],
   "webgpu/framework/gpu/implementation.js": [
-   "726eeab4eed644d4b5c4e0693e2462dbf1a08c5d",
+   "653b60ab433c04ae08af73971950d125e209f447",
    "support"
   ],
   "webgpu/framework/id.js": [
-   "8e5db2c7d7fbde102865f7da04fcccaea53960b6",
+   "cb21a667d6035cbbf1e0a83b01f1460d2c51d927",
    "support"
   ],
   "webgpu/framework/index.js": [
-   "93ee20963990d21039a60902b4e52ee0c5cb8b72",
+   "c85a681688881226ebfcb5ae431196fe3ecde439",
    "support"
   ],
   "webgpu/framework/listing.js": [
@@ -529784,11 +529948,11 @@
    "support"
   ],
   "webgpu/framework/logger.js": [
-   "5536e736f069a3a013eb88233eb0d3a8c413f919",
+   "b3ddbb6155588bd4d15e081c06f8445313c9ef96",
    "support"
   ],
   "webgpu/framework/params/combine.js": [
-   "181877cf1650ef59c6d1f19a2ebff8cd84c5b790",
+   "20b2be113525b20d36036fbb5de8dbabefcad6d9",
    "support"
   ],
   "webgpu/framework/params/exclude.js": [
@@ -529800,7 +529964,7 @@
    "support"
   ],
   "webgpu/framework/params/index.js": [
-   "bb21202f92de8395873d807aa02e283067e84bf7",
+   "de922526696d7921d2ed8139964b85996d811dc1",
    "support"
   ],
   "webgpu/framework/params/options.js": [
@@ -529808,15 +529972,15 @@
    "support"
   ],
   "webgpu/framework/test_filter/filter_by_group.js": [
-   "e7cc5f78ba52a49eb021bf7cc9247448f2620f53",
+   "b43749f9c5d700d1085b6402a086e38dcc4f2e24",
    "support"
   ],
   "webgpu/framework/test_filter/filter_one_file.js": [
-   "7616bee6afeaec3fb6836f21fd318a4185d78c5a",
+   "6c634888810bdb817c2228312290fb2394a77f59",
    "support"
   ],
   "webgpu/framework/test_filter/index.js": [
-   "1a9dbcad4875d6e5160965f08f37c3fcd1e4c54d",
+   "743975e13d687848ba8277cdc0adac4352ad5b9e",
    "support"
   ],
   "webgpu/framework/test_filter/internal.js": [
@@ -529824,19 +529988,19 @@
    "support"
   ],
   "webgpu/framework/test_filter/load_filter.js": [
-   "03d475eb4b8aa756b5ebb46c5fa764876d6e6fc7",
+   "787747ead06027cb07f42b3485d25e569aa37a47",
    "support"
   ],
   "webgpu/framework/test_group.js": [
-   "68527a5b2cf55426ae779739fba788cfde94b244",
+   "643e9f60b3150dd870644888d6898a4d5451b5cc",
    "support"
   ],
   "webgpu/framework/tree.js": [
-   "a0690519dbbe9e6ddc4c036acbca60dd409e0dc0",
+   "fd7e6704c7602a28b3d28b366a614ac60ce13226",
    "support"
   ],
   "webgpu/framework/url_query.js": [
-   "3712432888f6d2ac46aa410bb098ce7971ef0f93",
+   "1446bc7f7f74b00b74bba7b22a29c553262b3941",
    "support"
   ],
   "webgpu/framework/util/async_mutex.js": [
@@ -529844,11 +530008,11 @@
    "support"
   ],
   "webgpu/framework/util/index.js": [
-   "01d10e375b6cbbafdb8ce34a8cb77e3e9b94952e",
+   "2cba5f33998f3573db78fcef03c1e3fd535791ef",
    "support"
   ],
   "webgpu/framework/util/stack.js": [
-   "bd51d54509483954bb84ea9757b873ca42233cab",
+   "92b9c0e6bbc7e612fdb3742ab4502a1cd28b7f98",
    "support"
   ],
   "webgpu/framework/util/timeout.js": [
@@ -529856,20 +530020,20 @@
    "support"
   ],
   "webgpu/framework/version.js": [
-   "8dd830276b92cd74c0a911ff5e328cbfb50e4463",
+   "f8067d48eeb9a9942cd2797c57fbaa471044671f",
    "support"
   ],
   "webgpu/runtime/helper/options.js": [
    "1a90beadf1ee459911b2b549fc9359b44fe37bbd",
    "support"
   ],
-  "webgpu/runtime/helper/test_worker.js": [
-   "8a8c232f3b11b4a326a4f11ef60319d2b157710e",
+  "webgpu/runtime/helper/test_worker-worker.js": [
+   "d382f1e80e4dda805aca7e41cb90273cf84147c2",
    "support"
   ],
-  "webgpu/runtime/helper/test_worker.worker.js": [
-   "513874144f714e50a289cd22cc88087cd73235e3",
-   "testharness"
+  "webgpu/runtime/helper/test_worker.js": [
+   "a67030056f5b8d5ed7665f9e06f9735d0e26b287",
+   "support"
   ],
   "webgpu/runtime/wpt.js": [
    "fd02f09471bc656a900714dd586101d6acb28c46",
@@ -529904,7 +530068,7 @@
    "support"
   ],
   "webgpu/suites/cts/command_buffer/compute/basic.spec.js": [
-   "7abb291ca43e401b80019f29fa3cdc21175300fc",
+   "598edea66ab3946b45548ca3cea1d8becd8aec55",
    "support"
   ],
   "webgpu/suites/cts/command_buffer/copies.spec.js": [
@@ -529916,15 +530080,15 @@
    "support"
   ],
   "webgpu/suites/cts/command_buffer/render/rendering.spec.js": [
-   "a5d7568dae594357bf94c26c5a07b020671442f1",
+   "7bb7c546b5842aa585dec89ec456ad78a4ccfc18",
    "support"
   ],
   "webgpu/suites/cts/command_buffer/render/storeop.spec.js": [
-   "ae92995aa6b73eadd52b3342ff6737b91b413431",
+   "5bf6bd0116c80eea3082fab2f84522027755672b",
    "support"
   ],
   "webgpu/suites/cts/copyImageBitmapToTexture.spec.js": [
-   "c9b07e83a81bad7b809c8b80f754ba3dbbe1f0e1",
+   "b201bb49750c4f368fe6c39aa1462f1b026a3f69",
    "support"
   ],
   "webgpu/suites/cts/examples.spec.js": [
@@ -529936,11 +530100,11 @@
    "support"
   ],
   "webgpu/suites/cts/format_info.js": [
-   "d1b5b85530bdbd1af762083ad44314ecc7d36fc4",
+   "5d54bbb8c51ecd39ddb4869ce29e46571726a0cc",
    "support"
   ],
   "webgpu/suites/cts/gpu_test.js": [
-   "cf52a6cacf82581d3d04aa28f01d057c8118957d",
+   "236e9eaeb9d10923d840ff9cbe885a9d534e9230",
    "support"
   ],
   "webgpu/suites/cts/index.js": [
@@ -529948,27 +530112,27 @@
    "support"
   ],
   "webgpu/suites/cts/resource_init/sampled_texture_clear.spec.js": [
-   "b7dfbe3583f1b18c0774580861f382b3e969b535",
+   "66cee08addd60931f1192a6bf7bc97227b5b4130",
    "support"
   ],
   "webgpu/suites/cts/validation/createBindGroup.spec.js": [
-   "4bc1d0877bab8087b3fa2bd25431b1b681ddef44",
+   "22472f8dff2cf6b4d4206d7e29bc652a56466c4d",
    "support"
   ],
   "webgpu/suites/cts/validation/createBindGroupLayout.spec.js": [
-   "9ac11b49ba621ff076c0e0b94a868ec0b37e6d2e",
+   "22fa8f5d606e01841485d2567849db8dcd211168",
    "support"
   ],
   "webgpu/suites/cts/validation/createPipelineLayout.spec.js": [
-   "b82229db3d9296f6dcadf70218d2143fccb8c8f6",
+   "9d5394f925b6bec87b1ec7a01f9bd66aa994929e",
    "support"
   ],
   "webgpu/suites/cts/validation/createRenderPipeline.spec.js": [
-   "b66dabf285a2c007e01356ed9c42a9cfe7eddc43",
+   "f6a555526559969c659c74a49d3035573fc013db",
    "support"
   ],
   "webgpu/suites/cts/validation/createTexture.spec.js": [
-   "77f1c9709b6cddda912bacd988408671cb20e8bb",
+   "08c6d1b50b596e32b780f08a7be6d370d0951a75",
    "support"
   ],
   "webgpu/suites/cts/validation/createView.spec.js": [
@@ -529988,7 +530152,7 @@
    "support"
   ],
   "webgpu/suites/cts/validation/render_pass.spec.js": [
-   "3e08dcc17368ecb7a74d386c64e2166fb6baff66",
+   "f788fb63d8d0cd0270516a9e51640cb95fdf4118",
    "support"
   ],
   "webgpu/suites/cts/validation/render_pass_descriptor.spec.js": [
@@ -530020,11 +530184,11 @@
    "support"
   ],
   "webgpu/suites/cts/validation/validation_test.js": [
-   "dc5488e769883b99a9157567d3aaa71eafd2dd42",
+   "c275f94a80e5b8477838f4b66e4a1c123de9dbd6",
    "support"
   ],
   "webgpu/suites/cts/validation/vertex_state.spec.js": [
-   "da619181192b907f0485d71cf364616568d77f66",
+   "cc33cde1decd5f42f006007e0e9381d50067babd",
    "support"
   ],
   "webmessaging/Channel_postMessage_Blob.htm": [
@@ -536387,6 +536551,10 @@
    "1f3e3765df4e0a4319ea94842f2368e673948c4c",
    "testharness"
   ],
+  "webxr/xrFrame_getViewerPose_getPose.https.html": [
+   "7d26983fc963c3ef4b00726d055f6b1a85d2d5f9",
+   "testharness"
+  ],
   "webxr/xrFrame_lifetime.https.html": [
    "2d706d24848a29ee9ad5f3d309f809b803f5c8ca",
    "testharness"
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/README.md b/third_party/blink/web_tests/external/wpt/common/security-features/README.md
index 2509d66..46cabd2 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/README.md
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/README.md
@@ -81,6 +81,41 @@
 Note that **release** is the default target when invoking ```generate.py```.
 
 
+## Sub projects
+
+Projects can be nested, for example to reuse a single `spec.src.json` across similar but slightly different sets of generated tests.
+The directory structure would look like:
+
+```
+project-directory/ (e.g. referrer-policy/)
+├── spec.src.json - Parent project's spec JSON
+├── generic/
+│   └── test-case.sub.js - Parent project's test helper
+├── gen/ - parent project's generated tests
+└── sub-project-directory/ (e.g. 4K)
+    ├── spec.src.json - Child project's spec JSON
+    ├── generic/
+    │   └── test-case.sub.js - Child project's test helper
+    └── gen/ - child project's generated tests
+```
+
+`generate.py --spec project-directory/sub-project-directory` generates test files under `project-directory/sub-project-directory/gen`, based on `project-directory/spec.src.json` and `project-directory/sub-project-directory/spec.src.json`.
+
+- The child project's `spec.src.json` is merged into parent project's `spec.src.json`.
+    - Two spec JSON objects are merged recursively.
+    - If a same key exists in both objects, the child's value overwrites the parent's value.
+        - If both (child's and parent's) values are arrays, then the child's value is concatenated to the parent's value.
+    - For debugging, `generate.py` dumps the merged spec JSON object as `generic/debug-output.spec.src.json`.
+- The child project's generated tests include both of the parent and child project's `test-case.sub.js`:
+  ```html
+  <script src="project-directory/test-case.sub.js"></script>
+  <script src="project-directory/sub-project-directory/test-case.sub.js"></script>
+  <script>
+    TestCase(...);
+  </script>
+  ```
+
+
 ## Updating the tests
 
 The main test logic lives in ```project-directory/generic/test-case.sub.js``` with helper functions defined in ```/common/security-features/resources/common.js``` so you should probably start there.
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/tools/format_spec_src_json.py b/third_party/blink/web_tests/external/wpt/common/security-features/tools/format_spec_src_json.py
index b4549bb..d1bf581 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/tools/format_spec_src_json.py
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/tools/format_spec_src_json.py
@@ -7,7 +7,9 @@
     '''Formats spec.src.json.'''
     script_directory = os.path.dirname(os.path.abspath(__file__))
     for dir in [
-            'mixed-content', 'referrer-policy', 'upgrade-insecure-requests'
+            'mixed-content', 'referrer-policy', 'referrer-policy/4K-1',
+            'referrer-policy/4K', 'referrer-policy/4K+1',
+            'upgrade-insecure-requests'
     ]:
         filename = os.path.join(script_directory, '..', '..', '..', dir,
                                 'spec.src.json')
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/tools/generate.py b/third_party/blink/web_tests/external/wpt/common/security-features/tools/generate.py
index ba99706..3345d652 100755
--- a/third_party/blink/web_tests/external/wpt/common/security-features/tools/generate.py
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/tools/generate.py
@@ -130,8 +130,8 @@
     return {"meta": meta, "headers": headers}
 
 
-def generate_selection(spec_directory, spec_json, selection, spec,
-                       test_html_template_basename):
+def generate_selection(spec_directory, test_helper_filenames, spec_json,
+                       selection, spec, test_html_template_basename):
     test_filename = get_test_filename(spec_directory, spec_json, selection)
 
     target_policy_delivery = util.PolicyDelivery(selection['delivery_type'],
@@ -184,9 +184,10 @@
 
     test_directory = os.path.dirname(test_filename)
 
-    selection['helper_js'] = os.path.relpath(
-        os.path.join(spec_directory, 'generic', 'test-case.sub.js'),
-        test_directory)
+    selection['helper_js'] = ""
+    for test_helper_filename in test_helper_filenames:
+        selection['helper_js'] += '    <script src="%s"></script>\n' % (
+            os.path.relpath(test_helper_filename, test_directory))
     selection['sanity_checker_js'] = os.path.relpath(
         os.path.join(spec_directory, 'generic', 'sanity-checker.js'),
         test_directory)
@@ -237,17 +238,20 @@
     util.write_file(test_filename, test_html_template % selection)
 
 
-def generate_test_source_files(spec_directory, spec_json, target):
+def generate_test_source_files(spec_directory, test_helper_filenames,
+                               spec_json, target):
     test_expansion_schema = spec_json['test_expansion_schema']
     specification = spec_json['specification']
 
     spec_json_js_template = util.get_template('spec_json.js.template')
-    generated_spec_json_filename = os.path.join(spec_directory, "generic",
-                                                "spec_json.js")
     util.write_file(
-        generated_spec_json_filename,
+        os.path.join(spec_directory, "generic", "spec_json.js"),
         spec_json_js_template % {'spec_json': json.dumps(spec_json)})
 
+    util.write_file(
+        os.path.join(spec_directory, "generic", "debug-output.spec.src.json"),
+        json.dumps(spec_json, indent=2, separators=(',', ': ')))
+
     # Choose a debug/release template depending on the target.
     html_template = "test.%s.html.template" % target
 
@@ -290,12 +294,26 @@
                 print('Excluding selection:', selection_path)
                 continue
             try:
-                generate_selection(spec_directory, spec_json, selection, spec,
-                                   html_template)
+                generate_selection(spec_directory, test_helper_filenames,
+                                   spec_json, selection, spec, html_template)
             except util.ShouldSkip:
                 continue
 
 
+def merge_json(base, child):
+    for key in child:
+        if key not in base:
+            base[key] = child[key]
+            continue
+        # `base[key]` and `child[key]` both exists.
+        if isinstance(base[key], list) and isinstance(child[key], list):
+            base[key].extend(child[key])
+        elif isinstance(base[key], dict) and isinstance(child[key], dict):
+            merge_json(base[key], child[key])
+        else:
+            base[key] = child[key]
+
+
 def main():
     parser = argparse.ArgumentParser(
         description='Test suite generator utility')
@@ -317,11 +335,38 @@
 
     spec_directory = os.path.abspath(args.spec)
 
-    spec_filename = os.path.join(spec_directory, "spec.src.json")
-    spec_json = util.load_spec_json(spec_filename)
-    spec_validator.assert_valid_spec_json(spec_json)
+    # Read `spec.src.json` files, starting from `spec_directory`, and
+    # continuing to parent directories as long as `spec.src.json` exists.
+    spec_filenames = []
+    test_helper_filenames = []
+    spec_src_directory = spec_directory
+    while len(spec_src_directory) >= len(util.test_root_directory):
+        spec_filename = os.path.join(spec_src_directory, "spec.src.json")
+        if not os.path.exists(spec_filename):
+            break
+        spec_filenames.append(spec_filename)
+        test_filename = os.path.join(spec_src_directory, 'generic',
+                                     'test-case.sub.js')
+        assert (os.path.exists(test_filename))
+        test_helper_filenames.append(test_filename)
+        spec_src_directory = os.path.abspath(
+            os.path.join(spec_src_directory, ".."))
 
-    generate_test_source_files(spec_directory, spec_json, args.target)
+    spec_filenames = list(reversed(spec_filenames))
+    test_helper_filenames = list(reversed(test_helper_filenames))
+
+    if len(spec_filenames) == 0:
+        print('Error: No spec.src.json is found at %s.' % spec_directory)
+        return
+
+    spec_json = util.load_spec_json(spec_filenames[0])
+    for spec_filename in spec_filenames[1:]:
+        child_spec_json = util.load_spec_json(spec_filename)
+        merge_json(spec_json, child_spec_json)
+
+    spec_validator.assert_valid_spec_json(spec_json)
+    generate_test_source_files(spec_directory, test_helper_filenames,
+                               spec_json, args.target)
 
 
 if __name__ == '__main__':
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.debug.html.template b/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.debug.html.template
index b4b0fec..f09395c 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.debug.html.template
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.debug.html.template
@@ -15,8 +15,7 @@
     <script src="%(spec_json_js)s"></script>
     <!-- Internal checking of the tests -->
     <script src="%(sanity_checker_js)s"></script>
-    <script src="%(helper_js)s"></script>
-  </head>
+%(helper_js)s  </head>
   <body>
     <script>
       TestCase(
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.release.html.template b/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.release.html.template
index d93506e..6bf79f7 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.release.html.template
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/tools/template/test.release.html.template
@@ -11,8 +11,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/security-features/resources/common.sub.js"></script>
-    <script src="%(helper_js)s"></script>
-  </head>
+%(helper_js)s  </head>
   <body>
     <script>
       TestCase(
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/CSSAnimation-getCurrentTime.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-animations/CSSAnimation-getCurrentTime.tentative.html
index 4a0b9bd..e4d1f85 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/CSSAnimation-getCurrentTime.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/CSSAnimation-getCurrentTime.tentative.html
@@ -56,8 +56,8 @@
   const animation = div.getAnimations()[0];
   await animation.ready;
 
-  assert_throws(
-    new TypeError(),
+  assert_throws_js(
+    TypeError,
     () => {
       animation.currentTime = null;
     },
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSTransition-currentTime.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSTransition-currentTime.tentative.html
index 4c7a7a4..8ee7215 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSTransition-currentTime.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSTransition-currentTime.tentative.html
@@ -98,8 +98,8 @@
 
   await animation.ready;
 
-  assert_throws(
-    new TypeError(),
+  assert_throws_js(
+    TypeError,
     () => {
       animation.currentTime = null;
     },
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html b/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html
new file mode 100644
index 0000000..9481e80
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html
@@ -0,0 +1,3 @@
+<!doctype html>
+<title>Test reference</title>
+<span style="text-decoration:underline">This text should be underlined.</span>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html b/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html
new file mode 100644
index 0000000..89657ef
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<title>Rendering of object element fallback with text-decoration</title>
+<link rel="match" href="object-fallback-text-decoration-ref.html">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules">
+<meta name="assert" content="Checks that text-decoration applies to rendered object fallback.">
+<style>
+  object { text-decoration: underline; }
+</style>
+<object>This text should be underlined.</object>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/the-details-element/summary-text-decoration-ref.html b/third_party/blink/web_tests/external/wpt/html/rendering/the-details-element/summary-text-decoration-ref.html
new file mode 100644
index 0000000..8b6105f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/the-details-element/summary-text-decoration-ref.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<title>Test reference</title>
+<details>
+  <summary><span style="text-decoration:underline">This text should be underlined.</span></summary>
+</details>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/the-details-element/summary-text-decoration.html b/third_party/blink/web_tests/external/wpt/html/rendering/the-details-element/summary-text-decoration.html
new file mode 100644
index 0000000..80bbd44
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/the-details-element/summary-text-decoration.html
@@ -0,0 +1,11 @@
+<!doctype html>
+<title>Rendering of summary element with text-decoration</title>
+<link rel="match" href="summary-text-decoration-ref.html">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements">
+<meta name="assert" content="Checks that text-decoration applies to rendered summary element.">
+<style>
+  summary { text-decoration: underline; }
+</style>
+<details>
+  <summary>This text should be underlined.</summary>
+</details>
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html b/third_party/blink/web_tests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html
index dcf1007..2b70f7a 100644
--- a/third_party/blink/web_tests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html
+++ b/third_party/blink/web_tests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html
@@ -110,9 +110,9 @@
   'ws',
   'wss',
   'wyciwyg',
-  /*other invalid schemes*/
+  /* other invalid schemes */
   'unrecognized',
-  'mаilto', /*a cyrillic "а"*/
+  'mаilto', /* a cyrillic "а" */
   'mailto:',
   'mailto://',
   'mailto' + String.fromCharCode(0),
@@ -122,7 +122,11 @@
   'ssh:/',
   'magnet:+',
   'tel:sip',
+  /* web+ prefixed schemes must be followed by 1+ ascii alphas */
   'web+',
+  'web+dots.are.forbidden',
+  'web+dashes-are-forbidden',
+  'web+digits123areforbidden',
 ];
 for (const scheme of denylist) {
   test(() => {
@@ -161,7 +165,7 @@
   'webcal',
   'wtai',
   'xmpp',
-  /*other valid schemes*/
+  /* other valid schemes */
   'BitcoIn',
   'Irc',
   'MagneT',
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-addsourcebuffer.html b/third_party/blink/web_tests/external/wpt/media-source/mediasource-addsourcebuffer.html
index 7f6aa2ab..6ada12284 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-addsourcebuffer.html
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-addsourcebuffer.html
@@ -21,7 +21,7 @@
 
           mediasource_test(function(test, mediaElement, mediaSource)
           {
-              assert_throws({name: "TypeError"},
+              assert_throws_js(TypeError,
                           function() { mediaSource.addSourceBuffer(""); },
                           "addSourceBuffer() threw an exception when passed an empty string.");
               test.done();
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-appendwindow.html b/third_party/blink/web_tests/external/wpt/media-source/mediasource-appendwindow.html
index 272031a6e..aebbee4 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-appendwindow.html
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-appendwindow.html
@@ -33,51 +33,51 @@
               assert_true(sourceBuffer != null, "New SourceBuffer returned");
               sourceBuffer.appendWindowEnd = 500.0;
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = Number.NEGATIVE_INFINITY; },
                   "set appendWindowStart throws an exception for Number.NEGATIVE_INFINITY.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = Number.POSITIVE_INFINITY; },
                   "set appendWindowStart throws an exception for Number.POSITIVE_INFINITY.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = Number.NaN; },
                   "set appendWindowStart throws an exception for Number.NaN.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = 600.0; },
                   "set appendWindowStart throws an exception when greater than appendWindowEnd.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = sourceBuffer.appendWindowEnd; },
                   "set appendWindowStart throws an exception when equal to appendWindowEnd.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowEnd = sourceBuffer.appendWindowStart; },
                   "set appendWindowEnd throws an exception when equal to appendWindowStart.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowEnd = sourceBuffer.appendWindowStart - 1; },
                   "set appendWindowEnd throws an exception if less than appendWindowStart.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = -100.0; },
                   "set appendWindowStart throws an exception when less than 0.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowEnd = -100.0; },
                   "set appendWindowEnd throws an exception when less than 0.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowEnd = Number.NaN; },
                   "set appendWindowEnd throws an exception if NaN.");
 
-              assert_throws(new TypeError(),
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowEnd = undefined; },
                   "set appendWindowEnd throws an exception if undefined.");
 
-              assert_throws({name: "TypeError"},
+              assert_throws_js(TypeError,
                   function() { sourceBuffer.appendWindowStart = undefined; },
                   "set appendWindowStart throws an exception if undefined.");
 
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-changetype.html b/third_party/blink/web_tests/external/wpt/media-source/mediasource-changetype.html
index 263dd82..8ce821d08 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-changetype.html
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-changetype.html
@@ -15,7 +15,7 @@
 {
     var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE);
 
-    assert_throws(new TypeError(), function()
+    assert_throws_js(TypeError, function()
     {
         sourceBuffer.changeType("");
     }, "changeType");
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-liveseekable.html b/third_party/blink/web_tests/external/wpt/media-source/mediasource-liveseekable.html
index a2f05a9..3e79a11 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-liveseekable.html
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-liveseekable.html
@@ -49,7 +49,7 @@
 mediasource_test(function(test, mediaElement, mediaSource)
 {
     mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'"));
-    assert_throws(new TypeError(), function() { mediaSource.setLiveSeekableRange(-1, 1); });
+    assert_throws_js(TypeError, function() { mediaSource.setLiveSeekableRange(-1, 1); });
     test.done();
 }, "setLiveSeekableRange throws a TypeError if start is negative");
 
@@ -57,7 +57,7 @@
 mediasource_test(function(test, mediaElement, mediaSource)
 {
     mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'"));
-    assert_throws(new TypeError(), function() { mediaSource.setLiveSeekableRange(2, 1); });
+    assert_throws_js(TypeError, function() { mediaSource.setLiveSeekableRange(2, 1); });
     test.done();
 }, "setLiveSeekableRange throws a TypeError if start is greater than end");
 
diff --git a/third_party/blink/web_tests/external/wpt/media-source/mediasource-remove.html b/third_party/blink/web_tests/external/wpt/media-source/mediasource-remove.html
index 9a4eb3fc..4541787 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/mediasource-remove.html
+++ b/third_party/blink/web_tests/external/wpt/media-source/mediasource-remove.html
@@ -17,7 +17,7 @@
 
               mediaSource.duration = 10;
 
-              assert_throws(new TypeError(), function()
+              assert_throws_js(TypeError, function()
               {
                   sourceBuffer.remove(-1, 2);
               }, "remove");
@@ -33,7 +33,7 @@
 
               [ undefined, NaN, Infinity, -Infinity ].forEach(function(item)
               {
-                  assert_throws(new TypeError(), function()
+                  assert_throws_js(TypeError, function()
                   {
                       sourceBuffer.remove(item, 2);
                   }, "remove");
@@ -48,7 +48,7 @@
 
               mediaSource.duration = 10;
 
-              assert_throws(new TypeError(), function()
+              assert_throws_js(TypeError, function()
               {
                   sourceBuffer.remove(11, 12);
               }, "remove");
@@ -62,7 +62,7 @@
 
               mediaSource.duration = 10;
 
-              assert_throws(new TypeError(), function()
+              assert_throws_js(TypeError, function()
               {
                   sourceBuffer.remove(2, 1);
               }, "remove");
@@ -76,7 +76,7 @@
 
               mediaSource.duration = 10;
 
-              assert_throws(new TypeError(), function()
+              assert_throws_js(TypeError, function()
               {
                   sourceBuffer.remove(0, Number.NEGATIVE_INFINITY);
               }, "remove");
@@ -90,7 +90,7 @@
 
               mediaSource.duration = 10;
 
-              assert_throws(new TypeError(), function()
+              assert_throws_js(TypeError, function()
               {
                   sourceBuffer.remove(0, Number.NaN);
               }, "remove");
@@ -121,7 +121,7 @@
               assert_false(sourceBuffer.updating, "updating is false");
               assert_equals(mediaSource.duration, NaN, "duration isn't set");
 
-              assert_throws(new TypeError(), function()
+              assert_throws_js(TypeError, function()
               {
                   sourceBuffer.remove(0, 0);
               }, "remove");
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/generic/spec_json.js b/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/generic/spec_json.js
new file mode 100644
index 0000000..39cd9973
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/generic/spec_json.js
@@ -0,0 +1 @@
+var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "test_description_template": "Referrer Policy: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Referrer-Policy: %(title)s", "specification": [{"name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined", "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'", "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "omitted"}]}, {"name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'", "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "origin", "title": "Referrer Policy is set to 'origin'", "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "origin"}]}, {"name": "same-origin", "title": "Referrer Policy is set to 'same-origin'", "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "omitted"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "omitted"}]}, {"name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'", "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-upgrade", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-downgrade", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "origin"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'", "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'", "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "test_expansion": [{"name": "same-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-insecure", "expansion": "override", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "cross-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-http", "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "same-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-secure", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "cross-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-https", "subresource": "*", "expectation": "origin"}]}, {"name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'", "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "unsafe-url", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "stripped-referrer"}]}], "delivery_key": "referrerPolicy", "excluded_tests": [{"name": "cross-origin-workers", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": ["cross-http", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "upgraded-protocol-workers", "expansion": "*", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "mixed-content-insecure-subresources", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "*"}, {"name": "area-tag", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "area-tag", "expectation": "*"}, {"name": "worker-requests-with-swap-origin-redirect", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "swap-origin", "origin": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "overhead-for-redirection", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin"], "origin": "*", "subresource": ["a-tag", "area-tag"], "expectation": "*"}, {"name": "source-https-unsupported-by-web-platform-tests-runners", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "<link rel=noreferrer>'s delivery_value should be no-referrer", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "rel-noref", "delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "expectation=stripped-referrer only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": "*", "subresource": "*", "expectation": ["omitted", "origin"]}, {"name": "Only on the top context", "expansion": "*", "source_scheme": "*", "source_context_list": ["req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": "*", "subresource": "*", "expectation": "*"}], "source_context_schema": {"supported_delivery_type": {"top": ["meta", "http-rp"], "iframe": ["meta", "http-rp"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": []}, "supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch"], "worker-module-data": ["xhr", "fetch"]}}, "subresource_schema": {"supported_delivery_type": {"iframe-tag": ["attr"], "img-tag": ["attr"], "script-tag": ["attr"], "a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "xhr": [], "fetch": [], "worker-module": [], "sharedworker-classic": [], "worker-classic": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": ["same-http", "same-https", "cross-http", "cross-https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "source_scheme": ["http", "https"], "redirection": ["no-redirect", "keep-origin", "swap-origin"], "subresource": ["iframe-tag", "img-tag", "script-tag", "a-tag", "area-tag", "xhr", "worker-classic", "worker-module", "sharedworker-classic", "fetch"], "expectation": ["omitted", "origin", "stripped-referrer"]}};
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/generic/test-case.sub.js b/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/generic/test-case.sub.js
new file mode 100644
index 0000000..b602d65
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/generic/test-case.sub.js
@@ -0,0 +1,11 @@
+function TestCase(scenario, testDescription, sanityChecker) {
+  // This check is A NOOP in release.
+  sanityChecker.checkScenario(scenario);
+  return {
+    start: () => runLengthTest(
+        scenario,
+        4096 + 1,
+        "origin",
+        "`Referer` header with length > 4k is stripped to an origin.")
+  };
+}
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/spec.src.json b/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/spec.src.json
new file mode 100644
index 0000000..5dc2085
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K+1/spec.src.json
@@ -0,0 +1,40 @@
+{
+  "excluded_tests": [
+    {
+      "name": "expectation=stripped-referrer only",
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": "*",
+      "redirection": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "origin": "*",
+      "subresource": "*",
+      "expectation": [
+        "omitted",
+        "origin"
+      ]
+    },
+    {
+      "name": "Only on the top context",
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": [
+        "req",
+        "srcdoc-inherit",
+        "srcdoc",
+        "iframe",
+        "worker-classic",
+        "worker-classic-data",
+        "worker-module",
+        "worker-module-data"
+      ],
+      "redirection": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "origin": "*",
+      "subresource": "*",
+      "expectation": "*"
+    }
+  ]
+}
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/generic/spec_json.js b/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/generic/spec_json.js
new file mode 100644
index 0000000..39cd9973
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/generic/spec_json.js
@@ -0,0 +1 @@
+var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "test_description_template": "Referrer Policy: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Referrer-Policy: %(title)s", "specification": [{"name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined", "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'", "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "omitted"}]}, {"name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'", "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "origin", "title": "Referrer Policy is set to 'origin'", "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "origin"}]}, {"name": "same-origin", "title": "Referrer Policy is set to 'same-origin'", "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "omitted"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "omitted"}]}, {"name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'", "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-upgrade", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-downgrade", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "origin"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'", "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'", "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "test_expansion": [{"name": "same-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-insecure", "expansion": "override", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "cross-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-http", "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "same-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-secure", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "cross-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-https", "subresource": "*", "expectation": "origin"}]}, {"name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'", "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "unsafe-url", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "stripped-referrer"}]}], "delivery_key": "referrerPolicy", "excluded_tests": [{"name": "cross-origin-workers", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": ["cross-http", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "upgraded-protocol-workers", "expansion": "*", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "mixed-content-insecure-subresources", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "*"}, {"name": "area-tag", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "area-tag", "expectation": "*"}, {"name": "worker-requests-with-swap-origin-redirect", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "swap-origin", "origin": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "overhead-for-redirection", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin"], "origin": "*", "subresource": ["a-tag", "area-tag"], "expectation": "*"}, {"name": "source-https-unsupported-by-web-platform-tests-runners", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "<link rel=noreferrer>'s delivery_value should be no-referrer", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "rel-noref", "delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "expectation=stripped-referrer only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": "*", "subresource": "*", "expectation": ["omitted", "origin"]}, {"name": "Only on the top context", "expansion": "*", "source_scheme": "*", "source_context_list": ["req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": "*", "subresource": "*", "expectation": "*"}], "source_context_schema": {"supported_delivery_type": {"top": ["meta", "http-rp"], "iframe": ["meta", "http-rp"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": []}, "supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch"], "worker-module-data": ["xhr", "fetch"]}}, "subresource_schema": {"supported_delivery_type": {"iframe-tag": ["attr"], "img-tag": ["attr"], "script-tag": ["attr"], "a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "xhr": [], "fetch": [], "worker-module": [], "sharedworker-classic": [], "worker-classic": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": ["same-http", "same-https", "cross-http", "cross-https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "source_scheme": ["http", "https"], "redirection": ["no-redirect", "keep-origin", "swap-origin"], "subresource": ["iframe-tag", "img-tag", "script-tag", "a-tag", "area-tag", "xhr", "worker-classic", "worker-module", "sharedworker-classic", "fetch"], "expectation": ["omitted", "origin", "stripped-referrer"]}};
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/generic/test-case.sub.js b/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/generic/test-case.sub.js
new file mode 100644
index 0000000..5b6aa42
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/generic/test-case.sub.js
@@ -0,0 +1,11 @@
+function TestCase(scenario, testDescription, sanityChecker) {
+  // This check is A NOOP in release.
+  sanityChecker.checkScenario(scenario);
+  return {
+    start: () => runLengthTest(
+        scenario,
+        4096 - 1,
+        scenario.expectation,
+        "`Referer` header with length < 4k is not stripped to an origin.")
+  };
+}
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/spec.src.json b/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/spec.src.json
new file mode 100644
index 0000000..5dc2085
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K-1/spec.src.json
@@ -0,0 +1,40 @@
+{
+  "excluded_tests": [
+    {
+      "name": "expectation=stripped-referrer only",
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": "*",
+      "redirection": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "origin": "*",
+      "subresource": "*",
+      "expectation": [
+        "omitted",
+        "origin"
+      ]
+    },
+    {
+      "name": "Only on the top context",
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": [
+        "req",
+        "srcdoc-inherit",
+        "srcdoc",
+        "iframe",
+        "worker-classic",
+        "worker-classic-data",
+        "worker-module",
+        "worker-module-data"
+      ],
+      "redirection": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "origin": "*",
+      "subresource": "*",
+      "expectation": "*"
+    }
+  ]
+}
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K/generic/spec_json.js b/third_party/blink/web_tests/external/wpt/referrer-policy/4K/generic/spec_json.js
new file mode 100644
index 0000000..39cd9973
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K/generic/spec_json.js
@@ -0,0 +1 @@
+var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "test_description_template": "Referrer Policy: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Referrer-Policy: %(title)s", "specification": [{"name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined", "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'", "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "omitted"}]}, {"name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'", "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "origin", "title": "Referrer Policy is set to 'origin'", "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "origin"}]}, {"name": "same-origin", "title": "Referrer Policy is set to 'same-origin'", "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "omitted"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "omitted"}]}, {"name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'", "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-upgrade", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-downgrade", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "origin"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'", "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'", "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "test_expansion": [{"name": "same-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-insecure", "expansion": "override", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "cross-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-http", "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "same-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-secure", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "cross-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-https", "subresource": "*", "expectation": "origin"}]}, {"name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'", "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "unsafe-url", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "stripped-referrer"}]}], "delivery_key": "referrerPolicy", "excluded_tests": [{"name": "cross-origin-workers", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": ["cross-http", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "upgraded-protocol-workers", "expansion": "*", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "mixed-content-insecure-subresources", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "*"}, {"name": "area-tag", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "area-tag", "expectation": "*"}, {"name": "worker-requests-with-swap-origin-redirect", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "swap-origin", "origin": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"], "expectation": "*"}, {"name": "overhead-for-redirection", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin"], "origin": "*", "subresource": ["a-tag", "area-tag"], "expectation": "*"}, {"name": "source-https-unsupported-by-web-platform-tests-runners", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "<link rel=noreferrer>'s delivery_value should be no-referrer", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "rel-noref", "delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "expectation=stripped-referrer only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": "*", "subresource": "*", "expectation": ["omitted", "origin"]}, {"name": "Only on the top context", "expansion": "*", "source_scheme": "*", "source_context_list": ["req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": "*", "subresource": "*", "expectation": "*"}], "source_context_schema": {"supported_delivery_type": {"top": ["meta", "http-rp"], "iframe": ["meta", "http-rp"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": []}, "supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch"], "worker-module-data": ["xhr", "fetch"]}}, "subresource_schema": {"supported_delivery_type": {"iframe-tag": ["attr"], "img-tag": ["attr"], "script-tag": ["attr"], "a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "xhr": [], "fetch": [], "worker-module": [], "sharedworker-classic": [], "worker-classic": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": ["same-http", "same-https", "cross-http", "cross-https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "source_scheme": ["http", "https"], "redirection": ["no-redirect", "keep-origin", "swap-origin"], "subresource": ["iframe-tag", "img-tag", "script-tag", "a-tag", "area-tag", "xhr", "worker-classic", "worker-module", "sharedworker-classic", "fetch"], "expectation": ["omitted", "origin", "stripped-referrer"]}};
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K/generic/test-case.sub.js b/third_party/blink/web_tests/external/wpt/referrer-policy/4K/generic/test-case.sub.js
new file mode 100644
index 0000000..912c06e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K/generic/test-case.sub.js
@@ -0,0 +1,11 @@
+function TestCase(scenario, testDescription, sanityChecker) {
+  // This check is A NOOP in release.
+  sanityChecker.checkScenario(scenario);
+  return {
+    start: () => runLengthTest(
+        scenario,
+        4096,
+        scenario.expectation,
+        "`Referer` header with length == 4k is not stripped to an origin.")
+  };
+}
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/4K/spec.src.json b/third_party/blink/web_tests/external/wpt/referrer-policy/4K/spec.src.json
new file mode 100644
index 0000000..5dc2085
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/4K/spec.src.json
@@ -0,0 +1,40 @@
+{
+  "excluded_tests": [
+    {
+      "name": "expectation=stripped-referrer only",
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": "*",
+      "redirection": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "origin": "*",
+      "subresource": "*",
+      "expectation": [
+        "omitted",
+        "origin"
+      ]
+    },
+    {
+      "name": "Only on the top context",
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": [
+        "req",
+        "srcdoc-inherit",
+        "srcdoc",
+        "iframe",
+        "worker-classic",
+        "worker-classic-data",
+        "worker-module",
+        "worker-module-data"
+      ],
+      "redirection": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "origin": "*",
+      "subresource": "*",
+      "expectation": "*"
+    }
+  ]
+}
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/test-case.sub.js b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/test-case.sub.js
index c8a6b13..a8292e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/test-case.sub.js
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/test-case.sub.js
@@ -22,110 +22,77 @@
   return invokeRequest(subresource, scenario.source_context_list);
 }
 
+const referrerUrlResolver = {
+  "omitted": function(sourceUrl) {
+    return undefined;
+  },
+  "origin": function(sourceUrl) {
+    return new URL(sourceUrl).origin + "/";
+  },
+  "stripped-referrer": function(sourceUrl) {
+    return stripUrlForUseAsReferrer(sourceUrl);
+  }
+};
+
+function checkResult(scenario, expectation, result) {
+// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer
+  let referrerSource = result.sourceContextUrl;
+  const sentFromSrcdoc = scenario.source_context_list.length > 0 &&
+      scenario.source_context_list[scenario.source_context_list.length - 1]
+      .sourceContextType === 'srcdoc';
+  if (sentFromSrcdoc) {
+    // Step 3. While document is an iframe srcdoc document, let document be
+    // document's browsing context's browsing context container's node
+    // document. [spec text]
+
+    // Workaround for srcdoc cases. Currently we only test <iframe srcdoc>
+    // inside the top-level Document, so |document| in the spec here is
+    // the top-level Document.
+    // This doesn't work if e.g. we test <iframe srcdoc> inside another
+    // external <iframe>.
+    referrerSource = location.toString();
+  }
+  const expectedReferrerUrl =
+    referrerUrlResolver[expectation](referrerSource);
+
+  // Check the reported URL.
+  assert_equals(result.referrer,
+                expectedReferrerUrl,
+                "Reported Referrer URL is '" +
+                expectation + "'.");
+  assert_equals(result.headers.referer,
+                expectedReferrerUrl,
+                "Reported Referrer URL from HTTP header is '" +
+                expectedReferrerUrl + "'");
+}
+
+function runLengthTest(scenario, urlLength, expectation, testDescription) {
+  // `Referer` headers with length over 4k are culled down to an origin, so,
+  // let's test around that boundary for tests that would otherwise return
+  // the complete URL.
+  history.pushState(null, null, "/");
+  history.replaceState(null, null,
+      "A".repeat(urlLength - location.href.length));
+
+  promise_test(t => {
+    assert_equals(scenario.expectation, "stripped-referrer");
+    // Only on top-level Window, due to navigations using `history`.
+    assert_equals(scenario.source_context_list.length, 0);
+
+    return invokeScenario(scenario)
+      .then(result => checkResult(scenario, expectation, result));
+  }, testDescription);
+}
+
 function TestCase(scenario, testDescription, sanityChecker) {
   // This check is A NOOP in release.
   sanityChecker.checkScenario(scenario);
 
-  const referrerUrlResolver = {
-    "omitted": function(sourceUrl) {
-      return undefined;
-    },
-    "origin": function(sourceUrl) {
-      return new URL(sourceUrl).origin + "/";
-    },
-    "stripped-referrer": function(sourceUrl) {
-      return stripUrlForUseAsReferrer(sourceUrl);
-    }
-  };
-
-  const checkResult = (expectation, result) => {
-    // https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer
-    let referrerSource = result.sourceContextUrl;
-    const sentFromSrcdoc = scenario.source_context_list.length > 0 &&
-        scenario.source_context_list[scenario.source_context_list.length - 1]
-        .sourceContextType === 'srcdoc';
-    if (sentFromSrcdoc) {
-      // Step 3. While document is an iframe srcdoc document, let document be
-      // document's browsing context's browsing context container's node
-      // document. [spec text]
-
-      // Workaround for srcdoc cases. Currently we only test <iframe srcdoc>
-      // inside the top-level Document, so |document| in the spec here is
-      // the top-level Document.
-      // This doesn't work if e.g. we test <iframe srcdoc> inside another
-      // external <iframe>.
-      referrerSource = location.toString();
-    }
-    const expectedReferrerUrl =
-      referrerUrlResolver[expectation](referrerSource);
-
-    // Check the reported URL.
-    assert_equals(result.referrer,
-                  expectedReferrerUrl,
-                  "Reported Referrer URL is '" +
-                  expectation + "'.");
-    assert_equals(result.headers.referer,
-                  expectedReferrerUrl,
-                  "Reported Referrer URL from HTTP header is '" +
-                  expectedReferrerUrl + "'");
-  };
-
   function runTest() {
-    function historyBackPromise(t, scenario) {
-      history.back();
-      return new Promise(resolve => {
-          // Wait for completion of `history.back()` by listening the
-          // popstate events that are fired near the end of
-          // `history.back()` processing.
-          window.addEventListener('popstate', resolve, {once: true});
-
-          // Workaround for Safari: Waiting for popstate events causes
-          // timeout in a-tag tests. To avoid timeout, we anyway resolve
-          // the promise.
-          if (scenario.subresource === 'a-tag') {
-            t.step_timeout(resolve, 1000);
-          }
-        });
-    }
-
     promise_test(_ => {
       return invokeScenario(scenario)
-        .then(result => checkResult(scenario.expectation, result));
+        .then(result => checkResult(scenario, scenario.expectation, result));
     }, testDescription);
-
-    // `Referer` headers with length over 4k are culled down to an origin, so,
-    // let's test around that boundary for tests that would otherwise return
-    // the complete URL.
-    // The following tests run only on top-level Documents, because they rely
-    // on navigations using `history`.
-    // Different subresource URLs are used because getRequestURLs() is called
-    // for each sub test which returns a unique URL.
-    if (scenario.expectation == "stripped-referrer" &&
-        scenario.source_context_list.length == 0) {
-      promise_test(t => {
-        history.pushState(null, null, "/");
-        history.replaceState(null, null, "A".repeat(4096 - location.href.length - 1));
-        return invokeScenario(scenario)
-          .then(result => checkResult(scenario.expectation, result))
-          .finally(_ => historyBackPromise(t, scenario));
-      }, "`Referer` header with length < 4k is not stripped to an origin.");
-
-      promise_test(t => {
-        history.pushState(null, null, "/");
-        history.replaceState(null, null, "A".repeat(4096 - location.href.length));
-        return invokeScenario(scenario)
-          .then(result => checkResult(scenario.expectation, result))
-          .finally(_ => historyBackPromise(t, scenario));
-      }, "`Referer` header with length == 4k is not stripped to an origin.");
-
-      promise_test(t => {
-        history.pushState(null, null, "/");
-        history.replaceState(null, null, "A".repeat(4096 - location.href.length + 1));
-        return invokeScenario(scenario)
-          .then(result => checkResult("origin", result))
-          .finally(_ => historyBackPromise(t, scenario));
-      }, "`Referer` header with length > 4k is stripped to an origin.");
-    }
   }
 
   return {start: runTest};
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html
index 1200fd4..9727bfb 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html
@@ -20,15 +20,15 @@
   assert_equals(clipPathElement.getAttribute('clipPathUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = 3; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(clipPathElement.getAttribute('clipPathUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = -1; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(clipPathElement.getAttribute('clipPathUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = 0; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(clipPathElement.getAttribute('clipPathUnits'), "objectBoundingBox");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html
index 7d8a4be..cb4a631 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html
@@ -35,15 +35,15 @@
   assert_equals(feFuncRElement.getAttribute('type'), "gamma");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feFuncRElement.type.baseVal = 6; });
+  assert_throws_js(TypeError, function() { feFuncRElement.type.baseVal = 6; });
   assert_equals(feFuncRElement.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA);
   assert_equals(feFuncRElement.getAttribute('type'), "gamma");
 
-  assert_throws(new TypeError(), function() { feFuncRElement.type.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feFuncRElement.type.baseVal = -1; });
   assert_equals(feFuncRElement.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA);
   assert_equals(feFuncRElement.getAttribute('type'), "gamma");
 
-  assert_throws(new TypeError(), function() { feFuncRElement.type.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feFuncRElement.type.baseVal = 0; });
   assert_equals(feFuncRElement.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA);
   assert_equals(feFuncRElement.getAttribute('type'), "gamma");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html
index c86e6594..ab90611 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html
@@ -30,15 +30,15 @@
   assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feColorMatrixElement.type.baseVal = 5; });
+  assert_throws_js(TypeError, function() { feColorMatrixElement.type.baseVal = 5; });
   assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA);
   assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha");
 
-  assert_throws(new TypeError(), function() { feColorMatrixElement.type.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feColorMatrixElement.type.baseVal = -1; });
   assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA);
   assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha");
 
-  assert_throws(new TypeError(), function() { feColorMatrixElement.type.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feColorMatrixElement.type.baseVal = 0; });
   assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA);
   assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFECompositeElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFECompositeElement.html
index 19714ea7..e6315b4 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFECompositeElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFECompositeElement.html
@@ -40,15 +40,15 @@
   assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feCompositeElement.operator.baseVal = 7; });
+  assert_throws_js(TypeError, function() { feCompositeElement.operator.baseVal = 7; });
   assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC);
   assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic");
 
-  assert_throws(new TypeError(), function() { feCompositeElement.operator.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feCompositeElement.operator.baseVal = -1; });
   assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC);
   assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic");
 
-  assert_throws(new TypeError(), function() { feCompositeElement.operator.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feCompositeElement.operator.baseVal = 0; });
   assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC);
   assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html
index cab47f1b..b2aff0b 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html
@@ -25,15 +25,15 @@
   assert_equals(feConvolveMatrixElement.getAttribute('edgeMode'), "none");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feConvolveMatrixElement.edgeMode.baseVal = 4; });
+  assert_throws_js(TypeError, function() { feConvolveMatrixElement.edgeMode.baseVal = 4; });
   assert_equals(feConvolveMatrixElement.edgeMode.baseVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE);
   assert_equals(feConvolveMatrixElement.getAttribute('edgeMode'), "none");
 
-  assert_throws(new TypeError(), function() { feConvolveMatrixElement.edgeMode.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feConvolveMatrixElement.edgeMode.baseVal = -1; });
   assert_equals(feConvolveMatrixElement.edgeMode.baseVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE);
   assert_equals(feConvolveMatrixElement.getAttribute('edgeMode'), "none");
 
-  assert_throws(new TypeError(), function() { feConvolveMatrixElement.edgeMode.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feConvolveMatrixElement.edgeMode.baseVal = 0; });
   assert_equals(feConvolveMatrixElement.edgeMode.baseVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE);
   assert_equals(feConvolveMatrixElement.getAttribute('edgeMode'), "none");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html
index 11fe32d..14dda6e 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html
@@ -32,15 +32,15 @@
   assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feDisplacementMapElement.xChannelSelector.baseVal = 5; });
+  assert_throws_js(TypeError, function() { feDisplacementMapElement.xChannelSelector.baseVal = 5; });
   assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
   assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
 
-  assert_throws(new TypeError(), function() { feDisplacementMapElement.xChannelSelector.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feDisplacementMapElement.xChannelSelector.baseVal = -1; });
   assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
   assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
 
-  assert_throws(new TypeError(), function() { feDisplacementMapElement.xChannelSelector.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feDisplacementMapElement.xChannelSelector.baseVal = 0; });
   assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
   assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
 
@@ -71,15 +71,15 @@
   assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feDisplacementMapElement.yChannelSelector.baseVal = 5; });
+  assert_throws_js(TypeError, function() { feDisplacementMapElement.yChannelSelector.baseVal = 5; });
   assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
   assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
 
-  assert_throws(new TypeError(), function() { feDisplacementMapElement.yChannelSelector.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feDisplacementMapElement.yChannelSelector.baseVal = -1; });
   assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
   assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
 
-  assert_throws(new TypeError(), function() { feDisplacementMapElement.yChannelSelector.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feDisplacementMapElement.yChannelSelector.baseVal = 0; });
   assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
   assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEMorphologyElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEMorphologyElement.html
index 250bc6c..3bf638e5 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEMorphologyElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFEMorphologyElement.html
@@ -20,15 +20,15 @@
   assert_equals(feMorphologyElement.getAttribute('operator'), "dilate");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feMorphologyElement.operator.baseVal = 4; });
+  assert_throws_js(TypeError, function() { feMorphologyElement.operator.baseVal = 4; });
   assert_equals(feMorphologyElement.operator.baseVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE);
   assert_equals(feMorphologyElement.getAttribute('operator'), "dilate");
 
-  assert_throws(new TypeError(), function() { feMorphologyElement.operator.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feMorphologyElement.operator.baseVal = -1; });
   assert_equals(feMorphologyElement.operator.baseVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE);
   assert_equals(feMorphologyElement.getAttribute('operator'), "dilate");
 
-  assert_throws(new TypeError(), function() { feMorphologyElement.operator.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feMorphologyElement.operator.baseVal = 0; });
   assert_equals(feMorphologyElement.operator.baseVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE);
   assert_equals(feMorphologyElement.getAttribute('operator'), "dilate");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFETurbulenceElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFETurbulenceElement.html
index 06e2334..2818a8af 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFETurbulenceElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFETurbulenceElement.html
@@ -22,15 +22,15 @@
   assert_equals(feTurbulenceElement.getAttribute('type'), "turbulence");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feTurbulenceElement.type.baseVal = 3; });
+  assert_throws_js(TypeError, function() { feTurbulenceElement.type.baseVal = 3; });
   assert_equals(feTurbulenceElement.type.baseVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE);
   assert_equals(feTurbulenceElement.getAttribute('type'), "turbulence");
 
-  assert_throws(new TypeError(), function() { feTurbulenceElement.type.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feTurbulenceElement.type.baseVal = -1; });
   assert_equals(feTurbulenceElement.type.baseVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE);
   assert_equals(feTurbulenceElement.getAttribute('type'), "turbulence");
 
-  assert_throws(new TypeError(), function() { feTurbulenceElement.type.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feTurbulenceElement.type.baseVal = 0; });
   assert_equals(feTurbulenceElement.type.baseVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE);
   assert_equals(feTurbulenceElement.getAttribute('type'), "turbulence");
 
@@ -51,15 +51,15 @@
   assert_equals(feTurbulenceElement.getAttribute('stitchTiles'), "noStitch");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { feTurbulenceElement.stitchTiles.baseVal = 3; });
+  assert_throws_js(TypeError, function() { feTurbulenceElement.stitchTiles.baseVal = 3; });
   assert_equals(feTurbulenceElement.stitchTiles.baseVal, SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH);
   assert_equals(feTurbulenceElement.getAttribute('stitchTiles'), "noStitch");
 
-  assert_throws(new TypeError(), function() { feTurbulenceElement.stitchTiles.baseVal = -1; });
+  assert_throws_js(TypeError, function() { feTurbulenceElement.stitchTiles.baseVal = -1; });
   assert_equals(feTurbulenceElement.stitchTiles.baseVal, SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH);
   assert_equals(feTurbulenceElement.getAttribute('stitchTiles'), "noStitch");
 
-  assert_throws(new TypeError(), function() { feTurbulenceElement.stitchTiles.baseVal = 0; });
+  assert_throws_js(TypeError, function() { feTurbulenceElement.stitchTiles.baseVal = 0; });
   assert_equals(feTurbulenceElement.stitchTiles.baseVal, SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH);
   assert_equals(feTurbulenceElement.getAttribute('stitchTiles'), "noStitch");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFilterElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFilterElement.html
index b8a82db..fcf38a8 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFilterElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGFilterElement.html
@@ -22,15 +22,15 @@
   assert_equals(filterElement.getAttribute('filterUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { filterElement.filterUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { filterElement.filterUnits.baseVal = 3; });
   assert_equals(filterElement.filterUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(filterElement.getAttribute('filterUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { filterElement.filterUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { filterElement.filterUnits.baseVal = -1; });
   assert_equals(filterElement.filterUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(filterElement.getAttribute('filterUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { filterElement.filterUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { filterElement.filterUnits.baseVal = 0; });
   assert_equals(filterElement.filterUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(filterElement.getAttribute('filterUnits'), "objectBoundingBox");
 
@@ -51,15 +51,15 @@
   assert_equals(filterElement.getAttribute('primitiveUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { filterElement.primitiveUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { filterElement.primitiveUnits.baseVal = 3; });
   assert_equals(filterElement.primitiveUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(filterElement.getAttribute('primitiveUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { filterElement.primitiveUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { filterElement.primitiveUnits.baseVal = -1; });
   assert_equals(filterElement.primitiveUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(filterElement.getAttribute('primitiveUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { filterElement.primitiveUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { filterElement.primitiveUnits.baseVal = 0; });
   assert_equals(filterElement.primitiveUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(filterElement.getAttribute('primitiveUnits'), "objectBoundingBox");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGGradientElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGGradientElement.html
index fcb3d71..a23a66f 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGGradientElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGGradientElement.html
@@ -22,15 +22,15 @@
   assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { gradientElement.gradientUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { gradientElement.gradientUnits.baseVal = 3; });
   assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { gradientElement.gradientUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { gradientElement.gradientUnits.baseVal = -1; });
   assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { gradientElement.gradientUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { gradientElement.gradientUnits.baseVal = 0; });
   assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
 
@@ -56,15 +56,15 @@
   assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { gradientElement.spreadMethod.baseVal = 4; });
+  assert_throws_js(TypeError, function() { gradientElement.spreadMethod.baseVal = 4; });
   assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
   assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
 
-  assert_throws(new TypeError(), function() { gradientElement.spreadMethod.baseVal = -1; });
+  assert_throws_js(TypeError, function() { gradientElement.spreadMethod.baseVal = -1; });
   assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
   assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
 
-  assert_throws(new TypeError(), function() { gradientElement.spreadMethod.baseVal = 0; });
+  assert_throws_js(TypeError, function() { gradientElement.spreadMethod.baseVal = 0; });
   assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
   assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement.html
index 7ff298a..7ac884a 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement.html
@@ -24,15 +24,15 @@
   assert_equals(markerElement.getAttribute('markerUnits'), "strokeWidth");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { markerElement.markerUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { markerElement.markerUnits.baseVal = 3; });
   assert_equals(markerElement.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH);
   assert_equals(markerElement.getAttribute('markerUnits'), "strokeWidth");
 
-  assert_throws(new TypeError(), function() { markerElement.markerUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { markerElement.markerUnits.baseVal = -1; });
   assert_equals(markerElement.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH);
   assert_equals(markerElement.getAttribute('markerUnits'), "strokeWidth");
 
-  assert_throws(new TypeError(), function() { markerElement.markerUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { markerElement.markerUnits.baseVal = 0; });
   assert_equals(markerElement.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH);
   assert_equals(markerElement.getAttribute('markerUnits'), "strokeWidth");
 
@@ -91,15 +91,15 @@
   markerElement.setAttribute('orient', '10deg');
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { markerElement.orientType.baseVal = 3; });
+  assert_throws_js(TypeError, function() { markerElement.orientType.baseVal = 3; });
   assert_equals(markerElement.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE);
   assert_equals(markerElement.getAttribute('orient'), "10deg");
 
-  assert_throws(new TypeError(), function() { markerElement.orientType.baseVal = -1; });
+  assert_throws_js(TypeError, function() { markerElement.orientType.baseVal = -1; });
   assert_equals(markerElement.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE);
   assert_equals(markerElement.getAttribute('orient'), "10deg");
 
-  assert_throws(new TypeError(), function() { markerElement.orientType.baseVal = 0; });
+  assert_throws_js(TypeError, function() { markerElement.orientType.baseVal = 0; });
   assert_equals(markerElement.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE);
   assert_equals(markerElement.getAttribute('orient'), "10deg");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMaskElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMaskElement.html
index e2a7556..6a0a26b 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMaskElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGMaskElement.html
@@ -22,15 +22,15 @@
   assert_equals(maskElement.getAttribute('maskUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { maskElement.maskUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { maskElement.maskUnits.baseVal = 3; });
   assert_equals(maskElement.maskUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(maskElement.getAttribute('maskUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { maskElement.maskUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { maskElement.maskUnits.baseVal = -1; });
   assert_equals(maskElement.maskUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(maskElement.getAttribute('maskUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { maskElement.maskUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { maskElement.maskUnits.baseVal = 0; });
   assert_equals(maskElement.maskUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(maskElement.getAttribute('maskUnits'), "objectBoundingBox");
 
@@ -51,15 +51,15 @@
   assert_equals(maskElement.getAttribute('maskContentUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { maskElement.maskContentUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { maskElement.maskContentUnits.baseVal = 3; });
   assert_equals(maskElement.maskContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(maskElement.getAttribute('maskContentUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { maskElement.maskContentUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { maskElement.maskContentUnits.baseVal = -1; });
   assert_equals(maskElement.maskContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(maskElement.getAttribute('maskContentUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { maskElement.maskContentUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { maskElement.maskContentUnits.baseVal = 0; });
   assert_equals(maskElement.maskContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(maskElement.getAttribute('maskContentUnits'), "objectBoundingBox");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGPatternElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGPatternElement.html
index 0693365..6c49ade 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGPatternElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGPatternElement.html
@@ -22,15 +22,15 @@
   assert_equals(patternElement.getAttribute('patternUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { patternElement.patternUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { patternElement.patternUnits.baseVal = 3; });
   assert_equals(patternElement.patternUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(patternElement.getAttribute('patternUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { patternElement.patternUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { patternElement.patternUnits.baseVal = -1; });
   assert_equals(patternElement.patternUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(patternElement.getAttribute('patternUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { patternElement.patternUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { patternElement.patternUnits.baseVal = 0; });
   assert_equals(patternElement.patternUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(patternElement.getAttribute('patternUnits'), "objectBoundingBox");
 
@@ -51,15 +51,15 @@
   assert_equals(patternElement.getAttribute('patternContentUnits'), "objectBoundingBox");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { patternElement.patternContentUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { patternElement.patternContentUnits.baseVal = 3; });
   assert_equals(patternElement.patternContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(patternElement.getAttribute('patternContentUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { patternElement.patternContentUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { patternElement.patternContentUnits.baseVal = -1; });
   assert_equals(patternElement.patternContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(patternElement.getAttribute('patternContentUnits'), "objectBoundingBox");
 
-  assert_throws(new TypeError(), function() { patternElement.patternContentUnits.baseVal = 0; });
+  assert_throws_js(TypeError, function() { patternElement.patternContentUnits.baseVal = 0; });
   assert_equals(patternElement.patternContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
   assert_equals(patternElement.getAttribute('patternContentUnits'), "objectBoundingBox");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextContentElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextContentElement.html
index 60e15bd..0798c9be 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextContentElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextContentElement.html
@@ -20,15 +20,15 @@
   assert_equals(textContentElement.getAttribute('lengthAdjust'), "spacingAndGlyphs");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { textContentElement.lengthAdjust.baseVal = 3; });
+  assert_throws_js(TypeError, function() { textContentElement.lengthAdjust.baseVal = 3; });
   assert_equals(textContentElement.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS);
   assert_equals(textContentElement.getAttribute('lengthAdjust'), "spacingAndGlyphs");
 
-  assert_throws(new TypeError(), function() { textContentElement.lengthAdjust.baseVal = -1; });
+  assert_throws_js(TypeError, function() { textContentElement.lengthAdjust.baseVal = -1; });
   assert_equals(textContentElement.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS);
   assert_equals(textContentElement.getAttribute('lengthAdjust'), "spacingAndGlyphs");
 
-  assert_throws(new TypeError(), function() { textContentElement.lengthAdjust.baseVal = 0; });
+  assert_throws_js(TypeError, function() { textContentElement.lengthAdjust.baseVal = 0; });
   assert_equals(textContentElement.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS);
   assert_equals(textContentElement.getAttribute('lengthAdjust'), "spacingAndGlyphs");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextPathElement.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextPathElement.html
index 46c136f..9841866 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextPathElement.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration-SVGTextPathElement.html
@@ -22,15 +22,15 @@
   assert_equals(textPathElement.getAttribute('method'), "stretch");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { textPathElement.method.baseVal = 3; });
+  assert_throws_js(TypeError, function() { textPathElement.method.baseVal = 3; });
   assert_equals(textPathElement.method.baseVal, SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH);
   assert_equals(textPathElement.getAttribute('method'), "stretch");
 
-  assert_throws(new TypeError(), function() { textPathElement.method.baseVal = -1; });
+  assert_throws_js(TypeError, function() { textPathElement.method.baseVal = -1; });
   assert_equals(textPathElement.method.baseVal, SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH);
   assert_equals(textPathElement.getAttribute('method'), "stretch");
 
-  assert_throws(new TypeError(), function() { textPathElement.method.baseVal = 0; });
+  assert_throws_js(TypeError, function() { textPathElement.method.baseVal = 0; });
   assert_equals(textPathElement.method.baseVal, SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH);
   assert_equals(textPathElement.getAttribute('method'), "stretch");
 
@@ -51,15 +51,15 @@
   assert_equals(textPathElement.getAttribute('spacing'), "exact");
 
   // Try setting invalid values.
-  assert_throws(new TypeError(), function() { textPathElement.spacing.baseVal = 3; });
+  assert_throws_js(TypeError, function() { textPathElement.spacing.baseVal = 3; });
   assert_equals(textPathElement.spacing.baseVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT);
   assert_equals(textPathElement.getAttribute('spacing'), "exact");
 
-  assert_throws(new TypeError(), function() { textPathElement.spacing.baseVal = -1; });
+  assert_throws_js(TypeError, function() { textPathElement.spacing.baseVal = -1; });
   assert_equals(textPathElement.spacing.baseVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT);
   assert_equals(textPathElement.getAttribute('spacing'), "exact");
 
-  assert_throws(new TypeError(), function() { textPathElement.spacing.baseVal = 0; });
+  assert_throws_js(TypeError, function() { textPathElement.spacing.baseVal = 0; });
   assert_equals(textPathElement.spacing.baseVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT);
   assert_equals(textPathElement.getAttribute('spacing'), "exact");
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration.html b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration.html
index bac69203..990b8845 100644
--- a/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration.html
+++ b/third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGAnimatedEnumeration.html
@@ -20,9 +20,9 @@
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
 
   // Check assigning various valid and invalid values.
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = 3; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = 3; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = -1; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = -1; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
 
   // ECMA-262, 9.7, "ToUint16"
@@ -30,12 +30,12 @@
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
 
   // ECMA-262, 9.7, "ToUint16"
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = 'aString'; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = 'aString'; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
 
   clipPathElement.clipPathUnits.baseVal = 2;
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
-  assert_throws(new TypeError(), function() { clipPathElement.clipPathUnits.baseVal = clipPathElement; });
+  assert_throws_js(TypeError, function() { clipPathElement.clipPathUnits.baseVal = clipPathElement; });
   assert_equals(clipPathElement.clipPathUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
 });
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/constructor.html b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/constructor.html
index 8f16aa1..46a23b0 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/constructor.html
+++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/constructor.html
@@ -41,7 +41,7 @@
 
 test(t => {
   for (const invalidEasing of gInvalidEasings) {
-    assert_throws(new TypeError, () => {
+    assert_throws_js(TypeError, () => {
       new KeyframeEffect(target, null, { easing: invalidEasing });
     }, `TypeError is thrown for easing '${invalidEasing}'`);
   }
@@ -57,7 +57,7 @@
                   `resulting composite for '${composite}'`);
   }
   for (const composite of gBadKeyframeCompositeValueTests) {
-    assert_throws(new TypeError, () => {
+    assert_throws_js(TypeError, () => {
       new KeyframeEffect(target, getKeyframe(composite));
     });
   }
@@ -76,7 +76,7 @@
                   `resulting composite for '${composite}'`);
   }
   for (const composite of gBadKeyframeCompositeValueTests) {
-    assert_throws(new TypeError, () => {
+    assert_throws_js(TypeError, () => {
       new KeyframeEffect(target, getKeyframes(composite));
     });
   }
@@ -92,7 +92,7 @@
                   `resulting composite for '${composite}'`);
   }
   for (const composite of gBadOptionsCompositeValueTests) {
-    assert_throws(new TypeError, () => {
+    assert_throws_js(TypeError, () => {
       new KeyframeEffect(target, {
         left: ['10px', '20px']
       }, { composite: composite });
@@ -117,7 +117,7 @@
 
 for (const subtest of gInvalidKeyframesTests) {
   test(t => {
-    assert_throws(new TypeError, () => {
+    assert_throws_js(TypeError, () => {
       new KeyframeEffect(target, subtest.input);
     });
   }, `KeyframeEffect constructor throws with ${subtest.desc}`);
@@ -169,7 +169,7 @@
 
 for (const subtest of gInvalidKeyframeEffectOptionTests) {
   test(t => {
-    assert_throws(new TypeError, () => {
+    assert_throws_js(TypeError, () => {
       new KeyframeEffect(target, { left: ['10px', '20px'] }, subtest.input);
     });
   }, `Invalid KeyframeEffect option by ${subtest.desc}`);
diff --git a/third_party/blink/web_tests/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt b/third_party/blink/web_tests/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
deleted file mode 100644
index b80817f9..0000000
--- a/third_party/blink/web_tests/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF"
-    },
-    {
-      "name": "LayoutNGBlockFlow (positioned) DIV id='target'",
-      "position": [-1, -1],
-      "bounds": [202, 202],
-      "backfaceVisibility": "hidden",
-      "backgroundColor": "#FFFF00",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow (positioned) DIV id='target'",
-          "rect": [0, 0, 202, 202],
-          "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/linux/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/linux/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
index c2eedd51..f8c749d 100644
--- a/third_party/blink/web_tests/platform/linux/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/linux/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
index 06ab5a8..b17d1832 100644
--- a/third_party/blink/web_tests/platform/linux/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/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 54d7045..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-001-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-001-expected.png
index 889045f5..7c5a5c6 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-001-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-001-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-002-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-002-expected.png
index 889045f5..7c5a5c6 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-002-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-002-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-003-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-003-expected.png
index f0bb734..14313b8 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-003-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-003-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-004-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-004-expected.png
index 3474aa3b..2929dbc 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-004-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-004-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-005-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-005-expected.png
index c7f6a75..ceeab4b 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-005-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-005-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-007-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-007-expected.png
index f3557802..547a7938 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-007-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-010-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-010-expected.png
index 5b8d88e..cbef3f4 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-010-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-010-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 ed28768..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-012-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-012-expected.png
index 889045f5..7c5a5c6 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-012-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-color-012-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 5f88de6..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 1f5a5c9..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/caret/caret-position-expected.png b/third_party/blink/web_tests/platform/linux/editing/caret/caret-position-expected.png
index a8f21e1..9901224 100644
--- a/third_party/blink/web_tests/platform/linux/editing/caret/caret-position-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/caret/caret-position-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 05f4e60..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 d041fb1b..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 a5b0d8ed..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 eaca08b..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 4dbcd65..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 182bdda..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 8aa6b5f..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 8bf53a6..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 70f24f88..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 503d6f6..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 883b470..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 ee7054f..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 1be9719..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 cf7051f..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 9d75a44..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 1793f321..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 2dbc112..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-at-the-edge-of-input-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-input-expected.png
index df2ac00..335360c 100644
--- a/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-input-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/input/caret-at-the-edge-of-input-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 682978f3..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/linux_ltr_composition_underline-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/linux_ltr_composition_underline-expected.png
index 521ea7b..15323c4 100644
--- a/third_party/blink/web_tests/platform/linux/editing/input/linux_ltr_composition_underline-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/input/linux_ltr_composition_underline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/input/linux_rtl_composition_underline-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/linux_rtl_composition_underline-expected.png
index 055f49e..f1d797b 100644
--- a/third_party/blink/web_tests/platform/linux/editing/input/linux_rtl_composition_underline-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/input/linux_rtl_composition_underline-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 96b8184..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/input/reveal-caret-of-multiline-input-expected.png b/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-input-expected.png
index e5b4bb3..98971d2 100644
--- a/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-input-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/input/reveal-caret-of-multiline-input-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 431d57a..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 65f9bea..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/4960120-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/inserting/4960120-1-expected.png
index 4f476896..99eee064 100644
--- a/third_party/blink/web_tests/platform/linux/editing/inserting/4960120-1-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/inserting/4960120-1-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 c36e039..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 56179e02..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 2cfd163..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 5200a41..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 ffec2c61..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 6a2b582a..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 9eb826f..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 04a7b2a..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 6f5e0e3..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 ee0a290..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 84e02a4..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 b4ddb5a..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 0a8352f..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/4806874-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/4806874-expected.png
index 55b1aea1..0354320 100644
--- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/4806874-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/4806874-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 d5d4093..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 9243639..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 00da611..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 ae0bbbe..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 3af33fd..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 cd3863e..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 0e54414b..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 58cdcc0..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 6113992..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 b956429..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/input-field-1-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/input-field-1-expected.png
index 425143ca..9dd1229 100644
--- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/input-field-1-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/input-field-1-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 ac85be2e2..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 74b2fc9..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 0ebcf073..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 0ebcf073..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 0ebcf073..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 0ebcf073..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 0ebcf073..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 31e4557..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/pasting-tabs-expected.png b/third_party/blink/web_tests/platform/linux/editing/pasteboard/pasting-tabs-expected.png
index 3221314..481596b3 100644
--- a/third_party/blink/web_tests/platform/linux/editing/pasteboard/pasting-tabs-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/pasteboard/pasting-tabs-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 9b8910c..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 110f8c0..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 60cdd45..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 448f503..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 9eb59a0e..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 603d295..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 d74bb7b..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 9764d0f..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 94cbb23..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 e90961d..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 89974a8..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 4d32c80..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 b4a881f..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 17a77e73..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 13eada3..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 397299d..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 99909b3..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 c8fd9c3..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 3355e88..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 9c3c7d5c..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 f33e7cf..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 8552c6b..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 61794454..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 1595e4a..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 d420bd2..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 9c5bb4d1..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-box-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/select-box-expected.png
index 49e9317..24e375c 100644
--- a/third_party/blink/web_tests/platform/linux/editing/selection/select-box-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/selection/select-box-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/select-element-paragraph-boundary-expected.png b/third_party/blink/web_tests/platform/linux/editing/selection/select-element-paragraph-boundary-expected.png
index 1145e99..acb2485 100644
--- a/third_party/blink/web_tests/platform/linux/editing/selection/select-element-paragraph-boundary-expected.png
+++ b/third_party/blink/web_tests/platform/linux/editing/selection/select-element-paragraph-boundary-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 fc31e60..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 f22de9e..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 55d291d6..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 42f9ffb..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 b283d64..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 b470200..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 2634071c..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 ee3142c..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 e58dda5..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 8862d7da..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 c91d52f..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 e1f140a..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 23f6ee5..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 16ba5c0c..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 faf1993..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 2ff1def..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 6b82022..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/css/focus-ring-continuations-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-continuations-expected.png
index 402b9e7f..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-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/linux/fast/css/focus-ring-multiline-writingmode-vertical-expected.png
index cc483b9d..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/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 663734f..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 bd28d2d..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 78c6bbac..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 f19eaa5..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 7345674..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/forms/calendar-picker/calendar-picker-appearance-ar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
index 3607f38..6ffa9dd7 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
index cdb6e445..9e93475 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
index cdb6e445..9e93475 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
index 5cc503f..b7f7156 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
index defaa23..98fba3c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
index 504b14ed..e427ba3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
index 4eb5f09..d786f21 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
index d654e454f..06846023 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
index a09836bb..12ff4a1 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
index 7a962db6..6c7c94811 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-expected.png
index 7524ab3..eefe7bd3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
index 92cd9007..7ff558a7 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-expected.png
index b2d8274..31f128e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
index c0f7449..78b296b 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-expected.png
index 1d24c7a..5a3651e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-zoom125-expected.png
index ca86bb4..6bd0ee8 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-zoom125-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-appearance-zoom125-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png
index 3e26046..a0d2fca 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png
index a8eff11..88a20bf1 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
index 01122a32..651f5c70 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/date/date-appearance-basic-expected.png
index 33001f4a..59409ba0 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
index a7dd1b4..c089d9a8 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-basic-expected.png
index 2fb1e73..8d35e14 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-datalist-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-datalist-expected.png
index 83ee64b..999fd4f 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-datalist-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-datalist-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-rtl-expected.png
index 191f0866..037bc66 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
index 79fd0e44..3f865a7 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/plaintext-mode-2-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/plaintext-mode-2-expected.png
index e11df1d1..3851848 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/plaintext-mode-2-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/plaintext-mode-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/search/search-cancel-button-style-sharing-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/search/search-cancel-button-style-sharing-expected.png
index 5d8c033d..c8e40fe 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/search/search-cancel-button-style-sharing-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/search/search-cancel-button-style-sharing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/search/search-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/search/search-rtl-expected.png
index 1e36331..8ab3fa5 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/search/search-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/search/search-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
index b52decc..1b631dfd 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-empty-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
index ab6bbd6..2ce7a3e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-expected.png
index 2ac99a0b..b18bd88 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
index e9e4054..a4cab70 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-long-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-long-expected.png
index 5cb04fc..06756cb 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-long-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-long-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-many-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-many-expected.png
index c5094b2..d41ff3e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-many-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-many-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png
index 8ee0128..5040c932 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
index f96a7027..5f43bad 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png
index 8f2f14d..cbe29f9 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
index 22ea60e..2fe0c64 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-styled-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
index 7932a2c..a8b1d354 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
index daec1ee..b0dd2f3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-transform-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-transform-expected.png
index a641a6dc..89a42a9 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-transform-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png
index dd8702a..65f9478 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
index 9fb1298c..a88f446e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
index 01b8a20..c5d32807 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select/input-select-after-resize-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select/input-select-after-resize-expected.png
index dd37fca2..4a22ffc 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select/input-select-after-resize-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select/input-select-after-resize-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select/listbox-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select/listbox-appearance-basic-expected.png
index 7aa2ac9..36305b9 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select/listbox-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select/listbox-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
index 7193bfe..140c360 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/select/select-listbox-multiple-no-focusring-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
index 9754c939..b47b009 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png
index 331b493..105621c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png
index 1e00bff7..b4f9bdc 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png
index 82405ab..fa233d8 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
index 5a012c5..bf80c77f 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png
index 119c92f6..566cbd4 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
index 4f82d32..057a4444 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
index 46c175d3..de7168c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
index 97b41117..7a9a8d6 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
index b50bf4e..2ac2303 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
index c5c42a8..83a956dd 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
index bb9e4fb..1c646a0 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
index 5c4a892d..79f2138 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
index b8c9e81..2889cf50 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
index c7d35cf..96dcbea 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png
index 62b6959..50e5821 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png
index b70b447..c21a973 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png
index 7802dd36..3f69684 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/tabbing-input-iframe-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/tabbing-input-iframe-expected.png
index 1af15ba..592f17e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/tabbing-input-iframe-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/tabbing-input-iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-focus-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-focus-expected.png
index ccf9ec9..8aed885 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-focus-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-focus-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-readonly-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-readonly-expected.png
index 5c6bc9c8..db542bb 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-readonly-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-readonly-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-selection-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-selection-expected.png
index ae086850..5c05e05 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-selection-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-appearance-selection-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-double-click-selection-gap-bug-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-double-click-selection-gap-bug-expected.png
index ef77e54..9ee947b38 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-double-click-selection-gap-bug-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-double-click-selection-gap-bug-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 bf3eadd..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/input-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png
index 5025fba..47ea05d 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png
index 0b447bb4..84aa484 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-readonly-autoscroll-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-readonly-autoscroll-expected.png
index 852a763..c949284 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-readonly-autoscroll-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-readonly-autoscroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-tab-shows-caret-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-tab-shows-caret-expected.png
index 56f2e58..fc50a38 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-tab-shows-caret-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-tab-shows-caret-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-inside-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-inside-expected.png
index 5694ac9..24a6737 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-inside-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-inside-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-outside-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-outside-expected.png
index 915960d5..112929f 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-outside-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-click-outside-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-double-click-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-double-click-expected.png
index 26886ef..c22dd6c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-double-click-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-double-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-drag-down-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-drag-down-expected.png
index 9bf36b003..c7d90c1 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-drag-down-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-drag-down-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-option-delete-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-option-delete-expected.png
index 2058a93..65442e3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-option-delete-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-option-delete-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-scroll-left-on-blur-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-scroll-left-on-blur-expected.png
index 215285b..d8518dd2 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-scroll-left-on-blur-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-scroll-left-on-blur-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-self-emptying-click-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-self-emptying-click-expected.png
index d4326484..792e4ce 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-self-emptying-click-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/input-text-self-emptying-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/text-appearance-datalist-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/text-appearance-datalist-expected.png
index da94cc20..8eb8343 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/text-appearance-datalist-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/text-appearance-datalist-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-focus-ring-expected.png
index 63034c98..630d1c7 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-focus-ring-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 6fdabe2..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/text/textfield-overflow-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-overflow-expected.png
index 8434a6e3..b02e9b2 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/text/textfield-overflow-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 2220cdf..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/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
index f8d2cf2..6b367c7 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png
index 137d3c1..b8a17842 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrollbar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrollbar-expected.png
index 0e73cb5..92993e3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrollbar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
index 2a66380..d3576118c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-type-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-type-expected.png
index b452e1f..ac329a2a 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-type-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/textarea/textarea-scrolled-type-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png
index c85ab31..4c2811bf 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-edge-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-edge-expected.png
index 24dcd95..c36ec4b 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-edge-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-edge-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-escape-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-escape-expected.png
index 7a411d4..a9b6930b 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-escape-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-escape-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-iframe-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-iframe-expected.png
index df4e380..271cf97 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-iframe-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-rtl-ui-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-rtl-ui-expected.png
index 3da8fff0..2b0601c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-rtl-ui-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-rtl-ui-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png
index 86dc63ae..2cc14fd 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png
index b20a7e7..a09b7c4 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png
index b20a7e7..a09b7c4 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/week/week-appearance-basic-expected.png
index 0545378..3f0a4ee 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/week/week-appearance-basic-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 17a3f34..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 17a3f34..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 8e7fabf..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 1caedaa1..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 8e7fabf..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/multicol/multicol-with-child-renderLayer-for-input-expected.png b/third_party/blink/web_tests/platform/linux/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
index 23b7272..50d556b 100644
--- a/third_party/blink/web_tests/platform/linux/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/multicol/multicol-with-child-renderLayer-for-input-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 57fae63..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/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png b/third_party/blink/web_tests/platform/linux/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
index 449920f..2d011bf 100644
--- a/third_party/blink/web_tests/platform/linux/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/overflow/scrollRevealButton-expected.png b/third_party/blink/web_tests/platform/linux/fast/overflow/scrollRevealButton-expected.png
index 82a01e0..e9561e5 100644
--- a/third_party/blink/web_tests/platform/linux/fast/overflow/scrollRevealButton-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/overflow/scrollRevealButton-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/spatial-navigation/snav-multiple-select-focusring-expected.png b/third_party/blink/web_tests/platform/linux/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
index 76d99c60..0bb43fa 100644
--- a/third_party/blink/web_tests/platform/linux/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-collapsed-border-expected.png b/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-collapsed-border-expected.png
index 7c5397d..dae498c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-expected.png b/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-expected.png
index 7c5397d..dae498c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/table/backgr_layers-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/table/table-row-focus-ring-paint-expected.png b/third_party/blink/web_tests/platform/linux/fast/table/table-row-focus-ring-paint-expected.png
deleted file mode 100644
index 56cc6ff9..0000000
--- a/third_party/blink/web_tests/platform/linux/fast/table/table-row-focus-ring-paint-expected.png
+++ /dev/null
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 5867802..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 7f18143b..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 d7a42826..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 cf10b7d..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 eade9e3..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 750e4cd..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 7f18143b..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 7f18143b..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 0f82d3e..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 ff322c7..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 ca9fb63..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 ff78498b..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 bfd64bd..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 66f9694..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 73eb7d3..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 809ce9d2..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/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png b/third_party/blink/web_tests/platform/linux/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png
index 9fe0f165..59ff0c25 100644
--- a/third_party/blink/web_tests/platform/linux/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png
+++ b/third_party/blink/web_tests/platform/linux/http/tests/webfont/popup-menu-load-webfont-after-open-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 19782520..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/4776765-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/4776765-expected.txt
deleted file mode 100644
index 471630d..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/4776765-expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutBlockFlow DIV",
-          "rect": [4, 40, 792, 68],
-          "reason": "geometry"
-        },
-        {
-          "object": "Caret",
-          "rect": [8, 84, 1, 19],
-          "reason": "caret"
-        },
-        {
-          "object": "Caret",
-          "rect": [8, 64, 1, 19],
-          "reason": "caret"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt
deleted file mode 100644
index 84f9c6c..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow DIV",
-          "rect": [8, 58, 108, 65],
-          "reason": "incremental"
-        },
-        {
-          "object": "LayoutTextControl INPUT id='target'",
-          "rect": [8, 58, 108, 65],
-          "reason": "incremental"
-        },
-        {
-          "object": "LayoutBlockFlow DIV",
-          "rect": [10, 58, 1, 57],
-          "reason": "incremental"
-        }
-      ]
-    }
-  ]
-}
-
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 1e4da398..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/range-focus-by-mouse-then-keydown-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt
deleted file mode 100644
index 0a9d627..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutSlider INPUT",
-          "rect": [6, 6, 137, 24],
-          "reason": "subtree"
-        },
-        {
-          "object": "LayoutBlockFlow DIV id='thumb'",
-          "rect": [66, 10, 17, 16],
-          "reason": "subtree"
-        }
-      ]
-    }
-  ]
-}
-
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 b23bede..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 9036118..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": [4, 4, 65, 30],
+          "rect": [6, 6, 61, 26],
           "reason": "subtree"
         },
         {
           "object": "LayoutButton INPUT",
-          "rect": [4, 4, 65, 30],
+          "rect": [6, 6, 61, 26],
           "reason": "chunk appeared"
         },
         {
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.png
index 5986803..c1171acc 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.png
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.txt
deleted file mode 100644
index b5ab2f54..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/textarea-caret-expected.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [4, 4, 189, 46],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [4, 4, 189, 46],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "LayoutNGBlockFlow HTML",
-          "rect": [8, 8, 181, 38],
-          "reason": "chunk disappeared"
-        },
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [9, 11, 179, 16],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "HorizontalScrollbar",
-          "rect": [9, 30, 179, 15],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [173, 30, 15, 15],
-          "reason": "chunk disappeared"
-        }
-      ]
-    }
-  ]
-}
-
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 9d31229..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": [4, 84, 94, 28],
+          "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 6d61245..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 45796bf..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": [4, 84, 94, 28],
+          "rect": [6, 86, 90, 24],
           "reason": "appeared"
         }
       ]
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-expected.png
deleted file mode 100644
index 3ac4e1d..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt
deleted file mode 100644
index e47548d..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [204, 228, 108, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 228, 108, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [208, 232, 100, 100],
-          "reason": "geometry"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [8, 232, 100, 100],
-          "reason": "geometry"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt
deleted file mode 100644
index 87a4a9a..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 4, 108, 112],
-          "reason": "outline"
-        },
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 84, 108, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [8, 88, 100, 100],
-          "reason": "geometry"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [8, 8, 100, 100],
-          "reason": "geometry"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt
deleted file mode 100644
index 7d0ba3a..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow DIV id='outline'",
-          "rect": [4, 4, 158, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "LayoutNGBlockFlow DIV id='child'",
-          "rect": [58, 8, 100, 50],
-          "reason": "incremental"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt
deleted file mode 100644
index 81c48c3..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow DIV id='outline'",
-          "rect": [4, 4, 158, 108],
-          "reason": "geometry"
-        },
-        {
-          "object": "LayoutNGBlockFlow DIV id='child'",
-          "rect": [58, 8, 100, 50],
-          "reason": "incremental"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
index 56f2e58..fc50a38 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png
index 122b38d..ae21b61 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-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 1afe829..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": [-4, -4],
-      "bounds": [69, 30],
+      "position": [-2, -2],
+      "bounds": [65, 26],
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='root'",
-          "rect": [0, 0, 69, 30],
+          "rect": [0, 0, 65, 26],
           "reason": "full layer"
         },
         {
@@ -24,7 +24,7 @@
         },
         {
           "object": "Caret",
-          "rect": [61, 7, 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 1afe829..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": [-4, -4],
-      "bounds": [69, 30],
+      "position": [-2, -2],
+      "bounds": [65, 26],
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='root'",
-          "rect": [0, 0, 69, 30],
+          "rect": [0, 0, 65, 26],
           "reason": "full layer"
         },
         {
@@ -24,7 +24,7 @@
         },
         {
           "object": "Caret",
-          "rect": [61, 7, 1, 16],
+          "rect": [59, 5, 1, 16],
           "reason": "caret"
         }
       ],
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
index f6191750..08988b1 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
index 87bfc529..0f0ff84b 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
@@ -8,7 +8,7 @@
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='target'",
-          "rect": [4, 4, 69, 30],
+          "rect": [6, 6, 65, 26],
           "reason": "subtree"
         },
         {
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png
index 2a53135..9da92df 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt
index df803624..b76087d 100644
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt
@@ -8,7 +8,7 @@
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='target'",
-          "rect": [4, 4, 69, 30],
+          "rect": [6, 6, 65, 26],
           "reason": "subtree"
         },
         {
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/focus-element-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/focus-element-expected.png
deleted file mode 100644
index 5204b17..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/focus-element-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/focus-element-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/focus-element-expected.txt
deleted file mode 100644
index 17610cf..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/focus-element-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutSVGRect rect id='rect'",
-          "rect": [54, 54, 58, 58],
-          "reason": "style change"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
deleted file mode 100644
index 6d071de..0000000
--- a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF"
-    },
-    {
-      "name": "LayoutNGBlockFlow (positioned) DIV id='target'",
-      "position": [-4, -4],
-      "bounds": [208, 208],
-      "backfaceVisibility": "hidden",
-      "backgroundColor": "#FFFF00",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow (positioned) DIV id='target'",
-          "rect": [0, 0, 208, 208],
-          "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/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 a83b43e..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 ab0ee44..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": [4, 44, 792, 28],
+          "rect": [6, 46, 788, 24],
           "reason": "geometry"
         },
         {
           "object": "LayoutBlockFlow DIV id='editor'",
-          "rect": [4, 44, 792, 28],
+          "rect": [6, 46, 788, 24],
           "reason": "geometry"
         },
         {
           "object": "LayoutBlockFlow DIV id='editor'",
-          "rect": [4, 44, 792, 28],
+          "rect": [6, 46, 788, 24],
           "reason": "geometry"
         },
         {
           "object": "LayoutBlockFlow DIV id='editor'",
-          "rect": [4, 44, 792, 28],
+          "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 577628b..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 2ecc319..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 6e67f19f..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 4495ba2..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 ac714a4..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 21576c1..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 b841d04..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 91ea475..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 8e3e959..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 21aab3a..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/paint/selection/text-selection-with-composition-expected.png b/third_party/blink/web_tests/platform/linux/paint/selection/text-selection-with-composition-expected.png
index 351ead2..ac8e8d36 100644
--- a/third_party/blink/web_tests/platform/linux/paint/selection/text-selection-with-composition-expected.png
+++ b/third_party/blink/web_tests/platform/linux/paint/selection/text-selection-with-composition-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 ed82610..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 b4bfce3..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 6dfdd8c..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/transforms/transformed-focused-text-input-expected.png b/third_party/blink/web_tests/platform/linux/transforms/transformed-focused-text-input-expected.png
index ee3430e..9dfe526e 100644
--- a/third_party/blink/web_tests/platform/linux/transforms/transformed-focused-text-input-expected.png
+++ b/third_party/blink/web_tests/platform/linux/transforms/transformed-focused-text-input-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer-expected.txt
new file mode 100644
index 0000000..f05d8e04
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+PASS Test that player buffering is reflected in CSS classes
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
index a09836bb..12ff4a1 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-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 1d24c7a..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/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png
index 33001f4a..59409ba0 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/date/date-appearance-basic-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 a7dd1b4..c089d9a8 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 9fb1298c..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 01b8a20..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 9dbbe5e..2e1d575 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 dbf7aa6..06a4de5 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 567fa45c..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 13f5ed31..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 4d4da86..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 2d00eeb5..c92484f 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 5fc0e97..e2fdca3 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 379f37d..cdecf04 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 548bd28..747bf667 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 8c86e14..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 3af1f85..7e05441 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 e30821d5..41089acc 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index a62e995..4434197b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 dc270c6..2bfe07ca 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 ff71e6e..2b20cf6 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 3ea2456..adb875e73 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 93b421d..2dd80b9 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 d1f8271..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 2bfaf9f..67456dc 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 cd224f5b..234b3a1d 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/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png
index cdb6e445..9e93475 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 908b8ff..7c9d493 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png
index 3607f38..6ffa9dd7 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png
index 351526d..cb260bf 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png
index 56897a3..4cdc6f5c 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png
index 54bd3fb..fc64bfd 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png
index cdb6e445..9e93475 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/color-scheme/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png
index 4aea0ba..107d891 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/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 0574c760..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 b5beb3f..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 01122a32..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 5d980fa..127b1bc 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/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-disabled-values-expected.png
index d30d0ae4..90d83e0 100644
--- a/third_party/blink/web_tests/platform/linux/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/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/color-scheme/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png
index 41c33c7..c3c43ff 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/color-scheme/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png
index 2549ed8..550b61d 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/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 88f9e6b..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 1a2c0b9..28936ae 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 5b66c07..92f2cea 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index d4e4663..1ffd54c 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 650aa4e..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 921287e..23a4f8c9 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 3c4de99..2d6afc81 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 06efb31..c9b1590e 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 fa1b039..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 a6f7a83..65340f6 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 be08dcf0..dd23962 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 5f7bdfd0..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 281d208..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 97aa31f..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 5f7bdfd0..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 b95f81e..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 41ba647..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 3e6dc80..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 fc4e280..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 ebe1453..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 0acff5e5..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 0edb1acb..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 a4b4734..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 9dbfefc71..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 033a7e2..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 4d96e02..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 4d96e02..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 1b1b7a1..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 d7889ac..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 1cc9be5..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 e818ee37..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 f752bca4..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 e45196c..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 a55bda8d..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 8205c4c..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 282267c..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 c8c4a2e..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 c0914fd..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 c27ac7c9..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 1cd1a0f..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 48c890d..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 995e9aa6..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 274afe5..65cb876 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
index 75ec4c7..1edcf6a 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
index a8ff6f6..d1bee74 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-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-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
index c37a1c9..9a9c04b 100644
--- 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
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
index f25b9e2..9671fbac 100644
--- 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
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
index 939bd7f..9ad2e32 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png
index 023128e..cbfc716 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/focus-rect/textfield-focus-ring-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-disabled-today-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png
index 42c41cc..b0aaaf7 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png
index 0e6ac52..a0567e2 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index a49b3b10..44d14a3 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/linux/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/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 c2454976..c91c9baf 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 88f9e6b..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 88f9e6b..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 0253ef0..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 2c0b9bc..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 639634b..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 70af28c..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 88f9e6b..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 e7c1190..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 9901786..4e636c4 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 d8c43ca..f1d7140 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-24-hour-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png
index 8600fc3c..fd4b5e9 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-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 9f98158..acd592cc 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 db7c072..2cf6439 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 8f0bc0f..500cae6e 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 4ba3609..8690b856 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 0d69bed..a10bc94 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/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
index 23b7272..50d556b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-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 c2eedd51..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 06ab5a8..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 7978363..e83ae7a7 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 9dfead4..5b0b13a 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 81b82ec..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/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 55d2b8e..ac7d7c2 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 a51117e..ea373e99 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 55d2b8e..ac7d7c2 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 18a1801..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/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 8d43fec..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 6b907db..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 a2ad951..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 3aa9bff..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 99b2a7d..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 42120aff..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 13cd15244..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 5dc3c8a..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 9f042bb6..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 8189770..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 6253f73..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
index f19eaa5..8ada27b 100644
--- 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
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
index 7345674..2300b2f 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-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
index 5867802..f45d7fb 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-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
index 7f18143b..35222a8 100644
--- 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
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
index d7a42826..c15fc31 100644
--- 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
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
index cf10b7d..77c04f9 100644
--- 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
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
index eade9e3..8353760a 100644
--- 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
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
index 750e4cd..f3699d6 100644
--- 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
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
index 7f18143b..35222a8 100644
--- 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
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
index 7f18143b..35222a8 100644
--- 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
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
index 0f82d3e..9e084c7 100644
--- 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
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
index ff322c7..7d65c180 100644
--- 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
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
index ca9fb63..358d84c 100644
--- 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
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
index ff78498b..88fb71b 100644
--- 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
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
index bfd64bd..b30847f 100644
--- 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
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
index 66f9694..2a25f58 100644
--- 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
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
index 73eb7d3..d3bdec4c 100644
--- 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
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
index 809ce9d2..b79c81a 100644
--- 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
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 0608b2f..b173d5b 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 182ea97..0087c0b7 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 572c529..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 a171554..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 38539ad..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 ce2654f..9da0039f 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 500cecd..c33abbab 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 d04b601..52783025 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 b60d6fd..16f05a41 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-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index d282d41..1c3b3793 100644
--- a/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
+++ 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
index 28c00d4..0eb7989 100644
--- 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
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 5d1c6ab..3861fd7 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 7f1a8d0..c57383e 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 a7f14b9..4bf32e7 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 1a5877a..19e6713 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 90eee45b..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 2a05116..fce1bc4d 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 017b6db..8a5a9cb 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 2c4eed0..3528094 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 9ba1fb60..88f938f 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 c38d8253..38d9715a 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 1367d79..93b1a99 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 26da072..310190e 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 1f5ef63..f1db816b 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 2c4eed0..3528094 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 ba90e63ac..6a3729a 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-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
deleted file mode 100644
index 6b7d431..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-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/color/color-suggestion-picker-appearance-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
deleted file mode 100644
index a39c79b..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-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 a842f22..dc69334 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 74cb2941..8c7daa5 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 b229d4f..dc9cd6d6 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 51116ef8..09d28bc5 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/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
deleted file mode 100644
index c595fbf..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/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/color-scheme/select/select-inpage-appearance-basic-expected.png
deleted file mode 100644
index 360945f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/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/platform/mac-mac10.10/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/color-scheme/select/select-popup-appearance-basic-expected.png
deleted file mode 100644
index 8ddef69..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/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/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 998ab3d..4c5dd92 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 dfc4b66..99d6595 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 0ff5f25..c7e5d2ec 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 0518c9261..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 3dd9cc8..14239f5 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 62dc6c8..f2404df 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/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
deleted file mode 100644
index 7635df2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
deleted file mode 100644
index 7635df2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
deleted file mode 100644
index c7b3a80..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/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.10/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 81433ee..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/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.10/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 725a64f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
deleted file mode 100644
index 8eae71d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
deleted file mode 100644
index 0c5ec134..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
deleted file mode 100644
index 775feda8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
deleted file mode 100644
index 8f7de7dd..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
deleted file mode 100644
index 02b533a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
deleted file mode 100644
index 9b918a4..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
deleted file mode 100644
index 3b80f048..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
deleted file mode 100644
index ec60f1ed..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
deleted file mode 100644
index 6a54807d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
+++ /dev/null
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 a6350ba..5a7c609 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/focus-ring-border-width-changed-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
deleted file mode 100644
index 4000ec57..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
deleted file mode 100644
index 8a5cce01..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
+++ /dev/null
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
index d861413..f3443bd 100644
--- 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
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 820cf40..9a577676 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 9e585f3..8929106f 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 cb5871f..5c5a031f 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 be2a9f7..fb0000c 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-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-alt-f8-expected.png
deleted file mode 100644
index c595fbf..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/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.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png
deleted file mode 100644
index b59361a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.10/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.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 c595fbf..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 3ad9f14..94ff7be 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 a3d619a..f52ac5a 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 e229d7a..d54aee7 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 96a90b0..838b7797 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 d5e7a23..56c4a9c 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 5f95913c..dddd7ab 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 9b1a2f2a..60fb6957 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 c8af3c1e..3040344 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
index d198bd4f..c0aaa2ea 100644
--- 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
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
index 93c259c4..87dd4fb 100644
--- 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
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 572c529..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
index a171554..1ae0fb7 100644
--- 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
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
index 38539ad..36b7765 100644
--- 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
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 0a829fc..964b6df 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
index 896a5e1..26174cc1 100644
--- 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
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
index 250640b..7dd7b25 100644
--- 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
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
index 440ebf4..59d5a22 100644
--- 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
Binary files differ
diff --git a/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 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
index d282d41..1c3b3793 100644
--- a/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
+++ 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
index 28c00d4..0eb7989 100644
--- 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
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 fe19d60..6cac9c9 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 3bdc209..97f3894 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 5d1c6ab..3861fd7 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
index 3086832d..ff69129 100644
--- 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
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
index cbd5e83..30523a6 100644
--- 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
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
index d578d12..ba80aea 100644
--- 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
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
index 52586bb..4b96d55 100644
--- 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
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
index 82f6ead..2ac28be 100644
--- 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
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 7a6e137..7d235aef 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-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
deleted file mode 100644
index 6b7d431..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
+++ /dev/null
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-with-scrollbar-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
deleted file mode 100644
index a39c79b..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
deleted file mode 100644
index c595fbf..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/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/color-scheme/select/select-inpage-appearance-basic-expected.png
deleted file mode 100644
index 360945f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/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/platform/mac-mac10.11/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/color-scheme/select/select-popup-appearance-basic-expected.png
deleted file mode 100644
index 8ddef69..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/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/platform/mac-mac10.11/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/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 873c8a6..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/suggestion-picker/time-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/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png
deleted file mode 100644
index af0411d6..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
deleted file mode 100644
index 7635df2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
deleted file mode 100644
index 7635df2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
deleted file mode 100644
index c7b3a80..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/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.11/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 81433ee..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/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.11/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 725a64f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
deleted file mode 100644
index 8eae71d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
deleted file mode 100644
index 0c5ec134..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
deleted file mode 100644
index 775feda8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
deleted file mode 100644
index 8f7de7dd..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
deleted file mode 100644
index 02b533a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
deleted file mode 100644
index 9b918a4..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
deleted file mode 100644
index 3b80f048..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
deleted file mode 100644
index ec60f1ed..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
deleted file mode 100644
index 6a54807d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
deleted file mode 100644
index 4000ec57..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
deleted file mode 100644
index 8a5cce01..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png
deleted file mode 100644
index b485630a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-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 c595fbf..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-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 b59361a..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 c595fbf..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.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 d198bd4f..c0aaa2ea 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 93c259c4..87dd4fb 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 572c529..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 a171554..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 38539ad..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 0a829fc..964b6df 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 896a5e1..26174cc1 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 250640b..7dd7b25 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 440ebf4..59d5a22 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.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index d282d41..1c3b3793 100644
--- a/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
+++ 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
index 28c00d4..0eb7989 100644
--- 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
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 fe19d60..6cac9c9 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 3bdc209..97f3894 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 5d1c6ab..3861fd7 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
index 3086832d..ff69129 100644
--- 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
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
index cbd5e83..30523a6 100644
--- 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
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
index d578d12..ba80aea 100644
--- 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
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
index 52586bb..4b96d55 100644
--- 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
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
index 82f6ead..2ac28be 100644
--- 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
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 7a6e137..7d235aef 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 f9f4ea3..a8297fe 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 ecfab63..0f37b64 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 926975b..f9d83e5b 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 b8b163b..b22e96a 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 00cf9b6..96c2a35 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 aa9b200..ea68c5b 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 f9f4ea3..a8297fe 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 09277f36..05027d9e 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 6b7d431..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 e2f2af6..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 a39c79b..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 24e1430..9e97df5 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 a521a57e..a27696e 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 b306c7a..6364b1187 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 12228c1..4949797 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/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
deleted file mode 100644
index c595fbf..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/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/color-scheme/select/select-inpage-appearance-basic-expected.png
deleted file mode 100644
index 360945f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/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/platform/mac-mac10.12/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/color-scheme/select/select-popup-appearance-basic-expected.png
deleted file mode 100644
index 8ddef69..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/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/platform/mac-mac10.12/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/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 873c8a6..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ /dev/null
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 af0411d6..f13b788 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 7635df2..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 2b4efde..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 69e07eda..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 7635df2..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 c7b3a80..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 c0db95e3..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 48b60b72..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 c909ee8..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 81433ee..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 3249e99..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 725a64f..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 8eae71d..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 1a5afee..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 6a44faa..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 aaa198a7..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 aaa198a7..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 0c5ec134..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 775feda8..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 8f7de7dd..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 02b533a..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 c59bac2..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 9b918a4..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 0a04557..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 a04e3077..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 ecd18f6..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 2aa3c46..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 3b80f048..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 3ff1eb7..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 ec60f1ed..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 6a54807d..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 b5f6f33..db33754 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/focus-rect/focus-ring-border-width-changed-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
deleted file mode 100644
index 4000ec57..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
deleted file mode 100644
index 8a5cce01..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png
deleted file mode 100644
index b485630a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png
+++ /dev/null
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 6137c32..b999a61 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 b9d063f7..bb4be81 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 dd554cf..2e51c93 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 81ab101..f0ae309 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 c595fbf..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-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 b59361a..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 c595fbf..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/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 4898a55f..3c9cb48 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 cc9c9fb..44422211 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 879e754..48f7e55 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 26d7fb24..11d2a65 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 6a624f7b..bccefa6 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 d46370f..3aae6baa 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 f74f9bd6..52c5a1f 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 f4f4c4e..89822ea9 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
index 0f2e8a4..de28788 100644
--- 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
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
index 5b00af2..582f9df1 100644
--- 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
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
index c5eb81d..9d9e6f4 100644
--- 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
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
index 62a4faa..84ff2c2 100644
--- 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
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
index dda30aa..4f61399 100644
--- 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
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 6100986..ac4da8c 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
index 670e83d2..357c0b5 100644
--- 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
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
index b5d570880..5c0fc93 100644
--- 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
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
index 3ef206a..3e08fb1 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index d282d41..1c3b3793 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index 28c00d4..0eb7989 100644
--- 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
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 fe19d60..6cac9c9 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 3bdc209..97f3894 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 5d1c6ab..3861fd7 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
index 3086832d..ff69129 100644
--- 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
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
index cbd5e83..30523a6 100644
--- 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
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
index d578d12..ba80aea 100644
--- 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
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
index 52586bb..4b96d55 100644
--- 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
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
index 82f6ead..2ac28be 100644
--- 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
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 d0c7321..f1f9deb 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-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
deleted file mode 100644
index 6897a62..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/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/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
deleted file mode 100644
index 38ead7a..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
deleted file mode 100644
index c595fbf..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png
deleted file mode 100644
index 360945f..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/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/platform/mac-retina/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png
deleted file mode 100644
index 8ddef69..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/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/platform/mac-retina/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/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 873c8a6..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png
deleted file mode 100644
index 5fe505c..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
deleted file mode 100644
index 02d1d4f..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
deleted file mode 100644
index 02d1d4f..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
deleted file mode 100644
index 70f2435a..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/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-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index a9cc243..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/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-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 44f921a..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
deleted file mode 100644
index afebe6b9..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
deleted file mode 100644
index e7579134..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
deleted file mode 100644
index 60907b7c8..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
deleted file mode 100644
index 5d0c1d7a..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
deleted file mode 100644
index 9b9d401a..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
deleted file mode 100644
index c19860fb..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
deleted file mode 100644
index ad4a727..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
deleted file mode 100644
index 5daa1c62..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
deleted file mode 100644
index f6162b5..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
deleted file mode 100644
index 4000ec57..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
deleted file mode 100644
index 8a5cce01..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-expected.png
deleted file mode 100644
index b485630a..0000000
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/focus-rect/textarea-scrolled-focus-ring-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 c595fbf..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-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 b59361a..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 c595fbf..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/fast/table/backgr_layers-opacity-collapsed-border-expected.png b/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-collapsed-border-expected.png
index 1ab574c..b454644 100644
--- a/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-expected.png b/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-expected.png
index 1ab574c..b454644 100644
--- a/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/table/backgr_layers-opacity-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 0f2e8a4..de28788 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 5b00af2..582f9df1 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 c5eb81d..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 62a4faa..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 dda30aa..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 6100986..ac4da8c 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 670e83d2..357c0b5 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 b5d570880..5c0fc93 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 3ef206a..3e08fb1 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 d282d41..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 28c00d4..0eb7989 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 fe19d60..6cac9c9 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index 3bdc209..97f3894 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 5d1c6ab..3861fd7 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 3086832d..ff69129 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 cbd5e83..30523a6 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 d578d12..ba80aea 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 52586bb..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 82f6ead..2ac28be 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 d0c7321..f1f9deb 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 a30c6bf..127675522 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 35e1e05..4a7a9c0 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 4f55c74..9f83e0f1d 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 8450411..6fd3ce4 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 dd7f444..6ba82418 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 578925b..112df38d 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 a30c6bf..127675522 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 ce15cdc..3894df1 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 6897a62..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 33ead96..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 38ead7a..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 a8e42d03..cee441d 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 264d0db5..6e50264 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 b3ff546e..818c6fb 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 ea4f35f..80485fe 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 c595fbf..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 360945f..07ba8a7 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 8a7781a..a0c2044a 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-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index f65645c7..3db17ca0 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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 8ddef69..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 366771a..c6f69bc 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 39a6a79..19b6879 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 9529ca0..42625a3 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 873c8a6..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 927780f..57f5b0d 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 5fe505c..74bdfaf 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 02d1d4f..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 81e5e6b..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 98272ff..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 02d1d4f..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 70f2435a..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 17135b7..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 b693c32..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 ddf7fb4f..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 a9cc243..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 9a4d0ee..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 44f921a..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 afebe6b9..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 cbe8fd9bb..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 ed5e0adb..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 f25dd39..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 f25dd39..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 e7579134..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 60907b7c8..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 5d0c1d7a..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 9b9d401a..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 ba92d40a..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 c19860fb..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 8b89a8a..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 6b0b6267..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 df7729c..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 335a34b..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 ad4a727..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 00717ab..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 5daa1c62..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 890d9ec..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 f6162b5..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 03379cf..a028ece 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/focus-ring-border-radius-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png
index 59657ec..38aa417 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-radius-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/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
index 4000ec57..1a91a2e2 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-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-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
index 1780832..69713ba 100644
--- 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
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
index 8a5cce01..119698a 100644
--- 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
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
index b485630a..b3fff1fc 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png
index 5288c57..79408a3 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/focus-rect/textfield-focus-ring-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 96d2e0f..e03c990 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 f483570..4436c74b 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 847e5fe1..732a03e 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 b4f1798..b94ddb5 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 c595fbf..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 c595fbf..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 7557ee87..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 af12f8db..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 b9dfa45..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 b59361a..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 c595fbf..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 9d2ac467..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 4d7a312d2..7acc8c2 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 4a9e5f62..7068953 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 97e37b3..c36f0b9 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 8b06cf2..f300698 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 7b73d6a..7b31529 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 4d68549..cc1a0a1a 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 904baac..f0e391fd 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 94c8fb4..49da92a 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/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
index 75f9e47..d08bbbb 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png
+++ b/third_party/blink/web_tests/platform/win/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/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/win/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
index 390ccf1..8c20c94 100644
--- a/third_party/blink/web_tests/platform/win/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
+++ b/third_party/blink/web_tests/platform/win/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/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 23491fda..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-001-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-001-expected.png
index 0949c04..7b90e09 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-001-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-001-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-002-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-002-expected.png
index 0949c04..7b90e09 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-002-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-002-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-003-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-003-expected.png
index 60080b16..d2d038f 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-003-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-003-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-004-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-004-expected.png
index 97c9289..af42441 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-004-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-004-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-005-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-005-expected.png
index ffcc6e96c..1e5aaf6 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-005-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-005-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-007-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-007-expected.png
index 20daa99..fdc22d85 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-007-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-007-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-010-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-010-expected.png
index 45df329..14fc2532 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-010-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-010-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 c78276a..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-012-expected.png b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-012-expected.png
index 0949c04..7b90e09 100644
--- a/third_party/blink/web_tests/platform/win/editing/caret/caret-color-012-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/caret/caret-color-012-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 6da9ff3..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 bb7b0d97..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 aa1e4e3..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 4d81bad..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 f022b438..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 db0ad5e..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 38ac9c5..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 d8425be..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 a43ff3d..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 3c9a649..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 b2453d63..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 cac540d..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 402099d6..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 41e90d6..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 a1c4133..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 86f08bd..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 1c08a36b..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 da02949..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 facbf28..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-at-the-edge-of-input-expected.png b/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-input-expected.png
index 8b2edc5..63cf218 100644
--- a/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-input-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/input/caret-at-the-edge-of-input-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 7368ce8..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 e49d45e..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/input/reveal-caret-of-multiline-input-expected.png b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-expected.png
index a9418bc6..f9a69b87 100644
--- a/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/input/reveal-caret-of-multiline-input-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 cad55b3c..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 fe0ce1f..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/4960120-1-expected.png b/third_party/blink/web_tests/platform/win/editing/inserting/4960120-1-expected.png
index 818cea21..5bbdab57 100644
--- a/third_party/blink/web_tests/platform/win/editing/inserting/4960120-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/editing/inserting/4960120-1-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 c829f79..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 cd9f8256..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 2dbc1e9..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 679061d..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 3f4569d..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 4917032..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 6fb791bb..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 012eb18..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 e2d08f9..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 a05cdb8..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 3d894b4..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 c91e889..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 80ee1ebf..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 a0dec37..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 2bfdff2..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 7c01e877..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 89f68ac..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 cf30d7e..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 d2224b73..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 113668a..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 9f1145a..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 ade605a..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 7d089ea..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 aed103c..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 b23668e..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 1774cb0..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 2d5e8c2..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 2d5e8c2..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 2d5e8c2..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 2d5e8c2..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 2d5e8c2..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 91608ae..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 7be9a7b..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 1bace28..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 faf28512..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 b619cf4..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 c175ef3..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 136d48c..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 7efd7125..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 55624f0..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 aeb26889..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 76bbdc67..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 7acaefee..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 1e0d2f6..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 b22b882..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 c7aae968..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 9114bd4..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 9829aa7..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 7ce8b67..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 91a3f7c3..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 06f4518..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 f8f3215..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 d470126..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 148788a..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 b8025d9..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 aae2bc8..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 dc97c81..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 94def5b..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 0444bc3..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 21f18d00c..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 d5fa3eb..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 4a43d81..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 0e29dc1..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 21de320..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 d603eef..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 8f58868..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 a63434d..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 b6ae7be..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 974e54a..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 450ed25..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 c88d55a69..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 6ec8213..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 115a7aa..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 bcb9426..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 238f875..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 494d7d0..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 67020612..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 de7b765..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/css/focus-ring-continuations-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-continuations-expected.png
index 2832c1a0..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-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/win/fast/css/focus-ring-multiline-writingmode-vertical-expected.png
index 835f891..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/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 d5b8ad7..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 2286ce5..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 8440202..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 056ed70b..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 fe0d203..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/forms/calendar-picker/calendar-picker-appearance-ar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
index 230775a..c818ad4 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
index c398e7b..8ff5138 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
index c398e7b..8ff5138 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
index 7a2282a..e943614f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
index 26b914a..7d7372f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
index 89255d8db..a624503 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
index 461c061..3eff05b8 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
index e23c032..ce52675 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
index 1f2015b..087b91c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
index 27bea43f..88acf89 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-expected.png
index 477cf973..b671338 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
index 38f660f..cea2e5d 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-expected.png
index 8e322e7..4e69142 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
index 72d6d1e..ed9113f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-appearance-expected.png
index 41e66fd..e1ddbce 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png
index 28fe91c..f2ad7199 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-one-row-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png
index c86af6b1..d20faf3 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-two-row-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
index 0834d0c..5643173 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/date/date-appearance-basic-expected.png
index 0f61d16..de48939b 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
index 52e4146..86f075a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/month/month-appearance-basic-expected.png
index 9828899..103853c5 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-datalist-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-datalist-expected.png
index 53f3d7f..d924565 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-datalist-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-datalist-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-rtl-expected.png
index d388cef..de0079e4 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
index ac1e57b..cc19ff062 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/plaintext-mode-2-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/plaintext-mode-2-expected.png
index 3db56fe4..645254e6 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/plaintext-mode-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/plaintext-mode-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/range/input-appearance-range-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/range/input-appearance-range-expected.png
index 5acbfa9..87f8474 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/range/input-appearance-range-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/range/input-appearance-range-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/search/search-cancel-button-style-sharing-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/search/search-cancel-button-style-sharing-expected.png
index 284c11a..bcd224e8 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/search/search-cancel-button-style-sharing-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/search/search-cancel-button-style-sharing-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/search/search-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/search/search-rtl-expected.png
index f3fae24..94f069d 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/search/search-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/search/search-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
index deea519..5ab2834 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-empty-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
index ab83686..ef540a21 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-expected.png
index 314c5ca..340fbead 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
index 744df10..6ddffed6 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-long-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-long-expected.png
index 0f6ef958..446e531 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-long-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-long-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-many-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-many-expected.png
index 7b7806bf..6366adb 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-many-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-many-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png
index ba46514..f85bad1 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
index b00ca6b..8b46e3ae 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png
index bfe6d0d..ee5311ba 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
index feb2fa3..2e5b10f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-styled-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
index 1eef93c..597c4a2 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
index d0cece8..83431e5 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-transform-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-transform-expected.png
index c3428d7f..4d9fb9f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-transform-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-transform-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png
index 105b1bef..3612717 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
index 0cdedc7..e6f80ae3 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
index 4352e21..af60cc9 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png
index 9973695..6b75d3b 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/listbox-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
index 3d63910..f6a66920 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
index ede302a..06fcd96 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png
index 51b967a..f1df3a47 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png
index 35b1b55..569ac9e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png
index 5c410b5..9390d81 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
index e4b04f2..a26eb6e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png
index da70d4b..6bc4c931 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
index 0989d13..87782f1 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
index b155af6887..bd9fdd0 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
index 7493f76..24de108 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
index a468c7e..849205c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
index 85acf03..8caf3ac 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
index f6f683e..1ca65b2 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
index f60f2754d..3c3f06cc 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
index 47843e1..0e7f943 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
index 6eaa5d9..c12e74e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png
index c5339b4..b937e6f 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png
index 090ad7864..35102fd 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png
index f0dc60b..423a022 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/tabbing-input-iframe-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/tabbing-input-iframe-expected.png
index 293c4ee..c0f6cbab 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/tabbing-input-iframe-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/tabbing-input-iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-focus-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-focus-expected.png
index 5a45f825..5e86edad 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-focus-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-focus-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-readonly-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-readonly-expected.png
index efc8785..4ae436a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-readonly-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-readonly-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png
index 2238600c..19b0bd0 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-appearance-selection-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-double-click-selection-gap-bug-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-double-click-selection-gap-bug-expected.png
index edc0edd..c05b882 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-double-click-selection-gap-bug-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-double-click-selection-gap-bug-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 85f7f4a..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/input-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png
index cb506711..f4799ac5 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png
index 909a6f4..e14bd58 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-readonly-autoscroll-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-readonly-autoscroll-expected.png
index dc8e1c0..35f0e60e 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-readonly-autoscroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-readonly-autoscroll-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-tab-shows-caret-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-tab-shows-caret-expected.png
index d81ae62c..4eddd520 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-tab-shows-caret-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-tab-shows-caret-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-inside-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-inside-expected.png
index 12fa1f4e..a5979c8 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-inside-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-inside-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-outside-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-outside-expected.png
index 3f12502..2904c82 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-outside-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-click-outside-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-double-click-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-double-click-expected.png
index 398c6d9..914ab22 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-double-click-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-double-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-drag-down-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-drag-down-expected.png
index 44aa5cb..e3eff13 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-drag-down-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-drag-down-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-option-delete-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-option-delete-expected.png
index 6b83143..e71fb6b2 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-option-delete-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-option-delete-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-scroll-left-on-blur-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-scroll-left-on-blur-expected.png
index 1f82a96..a5beb4b 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-scroll-left-on-blur-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-scroll-left-on-blur-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-self-emptying-click-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-self-emptying-click-expected.png
index 3526813..4af88ff3 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-self-emptying-click-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/input-text-self-emptying-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/text-appearance-datalist-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/text-appearance-datalist-expected.png
index 093b919..dc58ef3c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/text-appearance-datalist-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/text-appearance-datalist-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-focus-ring-expected.png
index 1be5a1b4..1872cc3 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-focus-ring-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 eea136f..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/text/textfield-overflow-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-overflow-expected.png
index 6605dd1..9e3dc61 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/text/textfield-overflow-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 bb3eae04..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/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
index 7d2c8c9..56893302 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png
index 8c0701f..f8e4a0d5 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png
index ea01cbba..cc710d6 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrollbar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
index a98fc8c..cbd0e22 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png
index 95a142f..805c5e4a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/textarea/textarea-scrolled-type-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/time/time-appearance-basic-expected.png
index b52f26fe..c6148d9 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/time/time-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/time/time-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-edge-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-edge-expected.png
index 5181280..1bee431 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-edge-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-edge-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-escape-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-escape-expected.png
index 7f709f7..23877999 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-escape-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-escape-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-iframe-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-iframe-expected.png
index 50d77a3..5d5b9f6 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-iframe-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-iframe-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-rtl-ui-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-rtl-ui-expected.png
index 0f52859..f59511c 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-rtl-ui-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-rtl-ui-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png
index d500a57..60ca988b 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png
index 8fae6ad..5893264a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png
index 8fae6ad..5893264a 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/week/week-appearance-basic-expected.png
index d05702ac..d9e24145 100644
--- a/third_party/blink/web_tests/platform/win/fast/forms/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/forms/week/week-appearance-basic-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 d68cdb1..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 95ebe94..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 95ebe94..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 0fa242f..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 990da2a..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 0fa242f..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/overflow/overflow-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-focus-ring-expected.png
index 3759592d..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/overflow/scroll-nested-positioned-layer-in-overflow-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
index fe5067e..ba1993b 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png
index f17ed1f..87607b58 100644
--- a/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/overflow/scrollRevealButton-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png b/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
index fe87334..8c50459 100644
--- a/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-collapsed-border-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-collapsed-border-expected.png
index b10e987..ec6a410 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-collapsed-border-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-collapsed-border-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-expected.png b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-expected.png
index b10e987..ec6a410 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/backgr_layers-opacity-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 56cc6ff9..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 c2a21b1..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 ea41f11..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 40a8797..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 eed1479..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 17bd514..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 26c9618b..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 ea41f11..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 ea41f11..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 7efd2dd..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 5596a8d..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 7e787d8..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 0610304..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 87616cea..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 2385659..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 7fdbc86..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 11a2b72..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/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png b/third_party/blink/web_tests/platform/win/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png
index 3f684b6..4b72106 100644
--- a/third_party/blink/web_tests/platform/win/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png
+++ b/third_party/blink/web_tests/platform/win/http/tests/webfont/popup-menu-load-webfont-after-open-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 ac81c6f..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 471630d..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": [4, 40, 792, 68],
+          "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 84f9c6c..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, 108, 65],
+          "rect": [8, 58, 106, 63],
           "reason": "incremental"
         },
         {
           "object": "LayoutTextControl INPUT id='target'",
-          "rect": [8, 58, 108, 65],
+          "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 c4dbd281..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 400d357..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 0a9d627..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": [6, 6, 137, 24],
+          "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 dcf2bdf..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 1b6a0dc..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 51e05bd..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": [4, 4, 65, 30],
+          "rect": [6, 6, 61, 26],
           "reason": "subtree"
         },
         {
           "object": "LayoutButton INPUT",
-          "rect": [4, 4, 65, 30],
+          "rect": [6, 6, 61, 26],
           "reason": "chunk appeared"
         },
         {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png
index 1eeb7aad..5907532 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.txt
index b5ab2f54..6a86bdd 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/textarea-caret-expected.txt
@@ -8,12 +8,12 @@
       "paintInvalidations": [
         {
           "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [4, 4, 189, 46],
+          "rect": [6, 6, 185, 42],
           "reason": "chunk appeared"
         },
         {
           "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [4, 4, 189, 46],
+          "rect": [6, 6, 185, 42],
           "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 28c4715..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 3cdcd63d..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": [4, 4, 792, 26],
+          "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 5cbf208..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": [4, 84, 91, 28],
+          "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 868f2e93..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 f99d53c..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": [4, 84, 91, 28],
+          "rect": [6, 86, 87, 24],
           "reason": "appeared"
         }
       ]
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 3ac4e1d..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 e47548d..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": [204, 228, 108, 108],
+          "rect": [206, 230, 104, 104],
           "reason": "outline"
         },
         {
           "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 228, 108, 108],
+          "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 87a4a9a..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": [4, 4, 108, 112],
+          "rect": [6, 6, 104, 108],
           "reason": "outline"
         },
         {
           "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 84, 108, 108],
+          "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 7d0ba3a..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": [4, 4, 158, 108],
+          "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 81c48c3..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": [4, 4, 158, 108],
+          "rect": [6, 6, 154, 104],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
index d81ae62c..4eddd520 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png
index 587e921..4a3155e 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/scroll/caret-invalidation-in-overflow-scroll-expected.png
Binary files differ
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 12a8b6e5..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": [-4, -4],
-      "bounds": [76, 30],
+      "position": [-2, -2],
+      "bounds": [72, 26],
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='root'",
-          "rect": [0, 0, 76, 30],
+          "rect": [0, 0, 72, 26],
           "reason": "full layer"
         },
         {
@@ -24,7 +24,7 @@
         },
         {
           "object": "Caret",
-          "rect": [68, 7, 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 12a8b6e5..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": [-4, -4],
-      "bounds": [76, 30],
+      "position": [-2, -2],
+      "bounds": [72, 26],
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='root'",
-          "rect": [0, 0, 76, 30],
+          "rect": [0, 0, 72, 26],
           "reason": "full layer"
         },
         {
@@ -24,7 +24,7 @@
         },
         {
           "object": "Caret",
-          "rect": [68, 7, 1, 16],
+          "rect": [66, 5, 1, 16],
           "reason": "caret"
         }
       ],
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
index 76d7bd21..fd4d900 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
index 6c52857..c49d49b 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
@@ -8,7 +8,7 @@
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='target'",
-          "rect": [4, 4, 76, 30],
+          "rect": [6, 6, 72, 26],
           "reason": "subtree"
         },
         {
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png
index 3d9ff02c..0fed273 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt
index 8cca398..88fd23c 100644
--- a/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt
+++ b/third_party/blink/web_tests/platform/win/paint/invalidation/selection/selection-in-non-composited-scrolling-container-expected.txt
@@ -8,7 +8,7 @@
       "paintInvalidations": [
         {
           "object": "LayoutTextControl INPUT id='target'",
-          "rect": [4, 4, 76, 30],
+          "rect": [6, 6, 72, 26],
           "reason": "subtree"
         },
         {
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 5204b17..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 17610cf..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": [54, 54, 58, 58],
+          "rect": [56, 56, 54, 54],
           "reason": "style change"
         }
       ]
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
index 6d071de..fd365f4 100644
--- 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
@@ -8,14 +8,14 @@
     },
     {
       "name": "LayoutNGBlockFlow (positioned) DIV id='target'",
-      "position": [-4, -4],
-      "bounds": [208, 208],
+      "position": [-2, -2],
+      "bounds": [204, 204],
       "backfaceVisibility": "hidden",
       "backgroundColor": "#FFFF00",
       "paintInvalidations": [
         {
           "object": "LayoutNGBlockFlow (positioned) DIV id='target'",
-          "rect": [0, 0, 208, 208],
+          "rect": [0, 0, 204, 204],
           "reason": "full layer"
         },
         {
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 9b1d21d..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 11b851c..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": [4, 44, 792, 28],
+          "rect": [6, 46, 788, 24],
           "reason": "geometry"
         },
         {
           "object": "LayoutBlockFlow DIV id='editor'",
-          "rect": [4, 44, 792, 28],
+          "rect": [6, 46, 788, 24],
           "reason": "geometry"
         },
         {
           "object": "LayoutBlockFlow DIV id='editor'",
-          "rect": [4, 44, 792, 28],
+          "rect": [6, 46, 788, 24],
           "reason": "geometry"
         },
         {
           "object": "LayoutBlockFlow DIV id='editor'",
-          "rect": [4, 44, 792, 28],
+          "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 468e8b62a..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 57a2095..3230921 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 9a94539..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 a57f052..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 96dc65ec..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 8fa47b9..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 2294974..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 5e067a5..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 e6ec4a43..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 6aef679..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/paint/selection/text-selection-with-composition-expected.png b/third_party/blink/web_tests/platform/win/paint/selection/text-selection-with-composition-expected.png
index e47b70c7..69d6d9e 100644
--- a/third_party/blink/web_tests/platform/win/paint/selection/text-selection-with-composition-expected.png
+++ b/third_party/blink/web_tests/platform/win/paint/selection/text-selection-with-composition-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 8a40803..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 ba16d52..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 c42693e..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/transforms/transformed-focused-text-input-expected.png b/third_party/blink/web_tests/platform/win/transforms/transformed-focused-text-input-expected.png
index 969452b..c193244 100644
--- a/third_party/blink/web_tests/platform/win/transforms/transformed-focused-text-input-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/transformed-focused-text-input-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 1f2015b..087b91c 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 41e66fd..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/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png
index 0f61d16..de48939b 100644
--- a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/date/date-appearance-basic-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 52e4146..86f075a 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 0cdedc7..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 4352e21..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
index 8e2d6618..facf021 100644
--- 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
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
index 6702c07..35f1a7a 100644
--- 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
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 6a2c57cc..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
index f29e1c3..7b57b36 100644
--- 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
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
index 2e39866f..bba0f55 100644
--- 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
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 9059478..d6bb46e1 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
index 5c72747..cadfc196 100644
--- 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
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
index f27d122..bf50fabf 100644
--- 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
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
index cf4ec48..8274fbf 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index 9a8afa20..f69b0a7 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index 2ee0164f..42200ed 100644
--- 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
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
index 9318596..f68dfd23 100644
--- 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
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-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index d2f4d1d..39e4a6e 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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
index 068e2d9..02b8b28 100644
--- 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
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
index 84242ac..06863a7f 100644
--- 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
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
index 360afbf..56ee9b5 100644
--- 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
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
index eadc1e7..52e9db2c 100644
--- 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
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
index d8ea91e..715c121 100644
--- 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
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
index 9e18089..deadfe9 100644
--- 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
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 74cd9fc1..155b11e 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 c398e7b..8ff5138 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 e29ea7a..22422734 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 230775a..c818ad4 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 1f35b39..543de339a7 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 1e7a32c2..7a1bec1 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 ba745d5..0b90e02 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 c398e7b..8ff5138 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 46fd27e..1f1d2d7 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 b4cee53..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 75267c8..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 0834d0c..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 3704244..19455c95 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 31477805..6f754c6 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 7d7eb00..30f985b 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 e40de7d9..dab28ee 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 a13d64c..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
index 7fc4d88..7be838c 100644
--- 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
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
index 3525282..d2dd786 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index b2d4819..37b7919 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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
index 1fd8485..bdcd8d0 100644
--- 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
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 acb8ba0..2e1638e1 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 98df23e..a040587 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 a1a912c1c..5662676 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 21f1956..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 5231e41..811bb964 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 c6cf60e..1e24216d 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 eec2fb87..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 aeb4000..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 50cdd24..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 eec2fb87..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 39be239..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 ba975ee..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 7f92f69..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 e327636..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 4ead2cb..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 494f01b..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 45ad4d0..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 3954a7c..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 d5b877b..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 17da379..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 c0dc228..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 c0dc228..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 8fe499f..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 b5622a9..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 fabf0b9..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 89b2c7a..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 0d1c3a61..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 39302878..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 7cb4a359..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 656bc64..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 5b42dd2..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 593df728..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 d1f64f1..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 00754d3..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 fbd2df4..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 2d61125..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 0fe7412..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 d9be9de..dfdee98 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/focus-ring-zoom-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/focus-rect/focus-ring-zoom-expected.png
index e50f084..6123378 100644
--- 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
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 f0caec4a..809dae20 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 bb9b5d00..816c9b8 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 d73ea55..11fb3f8 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 435f48e..91bf756b 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 a13d64c..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 a13d64c..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 4d20768..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 6835051..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 c0783d93..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 7206b25..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 a13d64c..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 71358c73..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 f61cbf8..372e7e7 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 4b8a6492..2653398 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 2575b1ed..be408012 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 dcf5814..24c6c5ef 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 c594f2e..b43a7d6 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 2c6609ab..d2a09752 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 88a8645..2357afbdf 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 d7532a9..06d02b0 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/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png b/third_party/blink/web_tests/platform/win/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
index 30d68a9..85fc149f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-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 75f9e47..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 390ccf1..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 9a49031..abde38c 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 d695c62..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/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 eea35b4..927041d 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 00e8e06..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/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 750c9094..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 eccfb000..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 38c1f92..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 6df8428..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 c4fcdb06..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 2cd911f0..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 2d5bc60..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 e2f95544..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 2f4e6f97..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 95689b26..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
index 056ed70b..3913cc5 100644
--- 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
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
index fe0d203..56f1cd7 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-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
index c2a21b1..73bbd9f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-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
index ea41f11..1dce990 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-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
index 40a8797..25e150ed 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-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
index eed1479..1f08ccb 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-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
index 17bd514..e7cac614 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-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
index 26c9618b..4beb78f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-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
index ea41f11..1dce990 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-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
index ea41f11..1dce990 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-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
index 7efd2dd..dbdd4c7 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-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
index 5596a8d..fec28cba 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-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
index 7e787d8..771a7e4 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-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
index 0610304..76a7661 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-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
index 87616cea..98e2e37 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-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
index 2385659..0ce36680 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-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
index 7fdbc86..a4b89872 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-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/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-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
index 11a2b72..1274063 100644
--- a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-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/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/win7/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
deleted file mode 100644
index 390ccf1..0000000
--- a/third_party/blink/web_tests/platform/win7/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png
+++ /dev/null
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 1914a07..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/editing/caret/caret-color-001-expected.png b/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-001-expected.png
deleted file mode 100644
index 0949c04..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-001-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-004-expected.png b/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-004-expected.png
deleted file mode 100644
index 97c9289..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-004-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-005-expected.png b/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-005-expected.png
deleted file mode 100644
index ffcc6e96c..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-005-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-010-expected.png b/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-010-expected.png
deleted file mode 100644
index 45df329..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-010-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-011-expected.png b/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-011-expected.png
deleted file mode 100644
index c78276a..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/caret/caret-color-011-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/deleting/5483370-expected.png b/third_party/blink/web_tests/platform/win7/editing/deleting/5483370-expected.png
deleted file mode 100644
index f022b438..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/deleting/5483370-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/deleting/delete-at-paragraph-boundaries-011-expected.png b/third_party/blink/web_tests/platform/win7/editing/deleting/delete-at-paragraph-boundaries-011-expected.png
deleted file mode 100644
index db0ad5e..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/deleting/delete-at-paragraph-boundaries-011-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/deleting/delete-line-016-expected.png b/third_party/blink/web_tests/platform/win7/editing/deleting/delete-line-016-expected.png
deleted file mode 100644
index a43ff3d..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/deleting/delete-line-016-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/deleting/merge-no-br-expected.png b/third_party/blink/web_tests/platform/win7/editing/deleting/merge-no-br-expected.png
deleted file mode 100644
index 402099d6..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/deleting/merge-no-br-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/execCommand/5142012-1-expected.png b/third_party/blink/web_tests/platform/win7/editing/execCommand/5142012-1-expected.png
deleted file mode 100644
index 86f08bd..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/execCommand/5142012-1-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/execCommand/format-block-with-trailing-br-expected.png b/third_party/blink/web_tests/platform/win7/editing/execCommand/format-block-with-trailing-br-expected.png
deleted file mode 100644
index 1c08a36b..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/execCommand/format-block-with-trailing-br-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/input/caret-at-the-edge-of-contenteditable-expected.png b/third_party/blink/web_tests/platform/win7/editing/input/caret-at-the-edge-of-contenteditable-expected.png
deleted file mode 100644
index facbf28..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/input/caret-at-the-edge-of-contenteditable-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/input/caret-at-the-edge-of-input-expected.png b/third_party/blink/web_tests/platform/win7/editing/input/caret-at-the-edge-of-input-expected.png
deleted file mode 100644
index 8b2edc5..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/input/caret-at-the-edge-of-input-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/input/reveal-caret-of-multiline-input-expected.png b/third_party/blink/web_tests/platform/win7/editing/input/reveal-caret-of-multiline-input-expected.png
deleted file mode 100644
index a9418bc6..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/input/reveal-caret-of-multiline-input-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/inserting/5058163-2-expected.png b/third_party/blink/web_tests/platform/win7/editing/inserting/5058163-2-expected.png
deleted file mode 100644
index 2dbc1e9..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/inserting/5058163-2-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/inserting/insert-text-at-tabspan-001-expected.png b/third_party/blink/web_tests/platform/win7/editing/inserting/insert-text-at-tabspan-001-expected.png
deleted file mode 100644
index 012eb18..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/inserting/insert-text-at-tabspan-001-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/inserting/insert-text-at-tabspan-003-expected.png b/third_party/blink/web_tests/platform/win7/editing/inserting/insert-text-at-tabspan-003-expected.png
deleted file mode 100644
index e2d08f9..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/inserting/insert-text-at-tabspan-003-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/4631972-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/4631972-expected.png
deleted file mode 100644
index 80ee1ebf..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/4631972-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/4947130-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/4947130-expected.png
deleted file mode 100644
index a0dec37..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/4947130-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/5601583-1-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/5601583-1-expected.png
deleted file mode 100644
index 113668a..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/5601583-1-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/bad-placeholder-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/bad-placeholder-expected.png
deleted file mode 100644
index 9f1145a..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/bad-placeholder-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/copy-standalone-image-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/copy-standalone-image-expected.png
deleted file mode 100644
index ade605a..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/copy-standalone-image-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png
deleted file mode 100644
index 7d089ea..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/drag-selected-image-to-contenteditable-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/input-field-1-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/input-field-1-expected.png
deleted file mode 100644
index aed103c..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/input-field-1-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/paste-line-endings-001-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/paste-line-endings-001-expected.png
deleted file mode 100644
index 2d5e8c2..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/paste-line-endings-001-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/paste-line-endings-002-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/paste-line-endings-002-expected.png
deleted file mode 100644
index 2d5e8c2..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/paste-line-endings-002-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/pasteboard/quirks-mode-br-1-expected.png b/third_party/blink/web_tests/platform/win7/editing/pasteboard/quirks-mode-br-1-expected.png
deleted file mode 100644
index 1bace28..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/pasteboard/quirks-mode-br-1-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/caret-ltr-right-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/caret-ltr-right-expected.png
deleted file mode 100644
index 76bbdc67..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/caret-ltr-right-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-2-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-2-expected.png
deleted file mode 100644
index 7acaefee..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-2-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-2-left-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-2-left-expected.png
deleted file mode 100644
index 1e0d2f6..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-2-left-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-expected.png
deleted file mode 100644
index b22b882..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-right-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-right-expected.png
deleted file mode 100644
index c7aae968..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/caret-rtl-right-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/contains-boundaries-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/contains-boundaries-expected.png
deleted file mode 100644
index 9829aa7..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/contains-boundaries-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/move-backwords-by-word-001-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/move-backwords-by-word-001-expected.png
deleted file mode 100644
index f8f3215..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/move-backwords-by-word-001-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/move-by-line-002-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/move-by-line-002-expected.png
deleted file mode 100644
index d470126..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/move-by-line-002-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/replaced-boundaries-2-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/replaced-boundaries-2-expected.png
deleted file mode 100644
index 94def5b..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/replaced-boundaries-2-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/replaced-boundaries-3-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/replaced-boundaries-3-expected.png
deleted file mode 100644
index 0444bc3..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/replaced-boundaries-3-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/select-box-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/select-box-expected.png
deleted file mode 100644
index 21f18d00c..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/select-box-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/wrapped-line-caret-1-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/wrapped-line-caret-1-expected.png
deleted file mode 100644
index 21de320..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/wrapped-line-caret-1-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/selection/wrapped-line-caret-2-expected.png b/third_party/blink/web_tests/platform/win7/editing/selection/wrapped-line-caret-2-expected.png
deleted file mode 100644
index d603eef..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/selection/wrapped-line-caret-2-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/style/4916887-expected.png b/third_party/blink/web_tests/platform/win7/editing/style/4916887-expected.png
deleted file mode 100644
index 8f58868..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/style/4916887-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-delete-001-expected.png b/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-delete-001-expected.png
deleted file mode 100644
index 115a7aa..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-delete-001-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-delete-003-expected.png b/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-delete-003-expected.png
deleted file mode 100644
index bcb9426..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-delete-003-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-type-after-expected.png b/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-type-after-expected.png
deleted file mode 100644
index 238f875..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/list-type-after-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/table-type-before-expected.png b/third_party/blink/web_tests/platform/win7/editing/unsupported-content/table-type-before-expected.png
deleted file mode 100644
index de7b765..0000000
--- a/third_party/blink/web_tests/platform/win7/editing/unsupported-content/table-type-before-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/css/focus-ring-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/platform/win7/fast/css/focus-ring-multiline-writingmode-vertical-expected.png
deleted file mode 100644
index 835f891..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/css/focus-ring-multiline-writingmode-vertical-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/dom/52776-expected.png b/third_party/blink/web_tests/platform/win7/fast/dom/52776-expected.png
deleted file mode 100644
index 056ed70b..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/dom/52776-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/dom/focus-contenteditable-expected.png b/third_party/blink/web_tests/platform/win7/fast/dom/focus-contenteditable-expected.png
deleted file mode 100644
index fe0d203..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/dom/focus-contenteditable-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
index a29cea8..38689fe 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-ar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
index ecc79f0..04790ed 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
index ecc79f0..04790ed 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
index aaf76b52..f654efa 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-minimum-date-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
index 38a2db3..88b1083 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-ar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
index bcd4d14..a7e8fb9 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-required-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
index 62ec2ae..4b1ea18 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
index a96e4cb..9eeb1e5 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom125-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
index 95f6cd63..5c7d0d6 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/calendar-picker-appearance-zoom200-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-expected.png
index c5023b20..0c268ed0 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
index a5f420c..6a753643 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/month-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-expected.png
index 8f70c3d..a0d6b39 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
index b6bae74..d97314c 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/calendar-picker/week-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/color/color-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/color/color-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 41e66fd..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/color/color-suggestion-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
deleted file mode 100644
index 0834d0c..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/month/month-appearance-basic-expected.png
index 031bbe6..9c10dbe 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/search/search-cancel-button-style-sharing-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/search/search-cancel-button-style-sharing-expected.png
deleted file mode 100644
index 284c11a..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/search/search-cancel-button-style-sharing-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/search/search-rtl-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/search/search-rtl-expected.png
deleted file mode 100644
index f3fae24..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/search/search-rtl-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
deleted file mode 100644
index deea519..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-empty-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
deleted file mode 100644
index ab83686..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-empty-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-expected.png
deleted file mode 100644
index 314c5ca..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
deleted file mode 100644
index 744df10..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-many-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-many-expected.png
deleted file mode 100644
index 7b7806bf..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-many-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
deleted file mode 100644
index b00ca6b..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
deleted file mode 100644
index feb2fa3..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-styled-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
index ff6582d..bd8c0ae 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-styled-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
deleted file mode 100644
index d0cece8..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
deleted file mode 100644
index 0cdedc7..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
index d3f39c70..5c041a44 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select/listbox-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select/listbox-appearance-basic-expected.png
deleted file mode 100644
index 9973695..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select/listbox-appearance-basic-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
deleted file mode 100644
index 3d63910..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/select/select-listbox-multiple-no-focusring-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
deleted file mode 100644
index ede302a..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/select/select-listbox-multiple-no-focusring-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
index 8597eb6f..344b240 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
index fd533b1..118bec2 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
index 54e2057..6c1c6492 100644
--- a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
deleted file mode 100644
index f60f2754d..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/tabbing-input-iframe-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/tabbing-input-iframe-expected.png
deleted file mode 100644
index 293c4ee..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/tabbing-input-iframe-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-focus-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-focus-expected.png
deleted file mode 100644
index 5a45f825..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-focus-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-readonly-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-readonly-expected.png
deleted file mode 100644
index efc8785..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-readonly-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-selection-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-selection-expected.png
deleted file mode 100644
index 2238600c..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-appearance-selection-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-placeholder-visibility-3-expected.png
deleted file mode 100644
index 909a6f4..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-placeholder-visibility-3-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-tab-shows-caret-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-tab-shows-caret-expected.png
deleted file mode 100644
index d81ae62c..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-tab-shows-caret-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-double-click-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-double-click-expected.png
deleted file mode 100644
index 398c6d9..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-double-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-drag-down-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-drag-down-expected.png
deleted file mode 100644
index 44aa5cb..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-drag-down-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-option-delete-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-option-delete-expected.png
deleted file mode 100644
index 6b83143..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-option-delete-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-scroll-left-on-blur-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-scroll-left-on-blur-expected.png
deleted file mode 100644
index 1f82a96..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/input-text-scroll-left-on-blur-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-focus-ring-expected.png
deleted file mode 100644
index 1be5a1b4..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-focus-ring-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-outline-expected.png
deleted file mode 100644
index eea136f..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-outline-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-overflow-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-overflow-expected.png
deleted file mode 100644
index 6605dd1..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/text/textfield-overflow-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
deleted file mode 100644
index 7d2c8c9..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/textarea/textarea-scrollbar-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/textarea/textarea-scrollbar-expected.png
deleted file mode 100644
index ea01cbba..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/textarea/textarea-scrollbar-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/time/time-appearance-basic-expected.png
deleted file mode 100644
index b52f26fe..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/time/time-appearance-basic-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-appearance-escape-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-appearance-escape-expected.png
deleted file mode 100644
index 7f709f7..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-appearance-escape-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-appearance-wrap-expected.png
deleted file mode 100644
index d500a57..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-appearance-wrap-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-device-emulation-expected.png
deleted file mode 100644
index 8fae6ad..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/forms/validation-bubble-device-emulation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/inline/25277-2-expected.png b/third_party/blink/web_tests/platform/win7/fast/inline/25277-2-expected.png
deleted file mode 100644
index 95ebe94..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/inline/25277-2-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-expected.png b/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-expected.png
deleted file mode 100644
index 0fa242f..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-with-layers-2-expected.png b/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-with-layers-2-expected.png
deleted file mode 100644
index 990da2a..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-with-layers-2-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-with-layers-expected.png b/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-with-layers-expected.png
deleted file mode 100644
index 0fa242f..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/inline/continuation-outlines-with-layers-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png b/third_party/blink/web_tests/platform/win7/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
deleted file mode 100644
index fe5067e..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/spatial-navigation/snav-multiple-select-focusring-expected.png b/third_party/blink/web_tests/platform/win7/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
deleted file mode 100644
index fe87334..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/spatial-navigation/snav-multiple-select-focusring-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/table/table-row-focus-ring-paint-expected.png b/third_party/blink/web_tests/platform/win7/fast/table/table-row-focus-ring-paint-expected.png
deleted file mode 100644
index 56cc6ff9..0000000
--- a/third_party/blink/web_tests/platform/win7/fast/table/table-row-focus-ring-paint-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-2-and-click-expected.png
deleted file mode 100644
index 40a8797..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-2-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-6-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-6-and-click-expected.png
deleted file mode 100644
index ea41f11..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-6-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-8-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-8-and-click-expected.png
deleted file mode 100644
index 7efd2dd..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-add-summary-8-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-1-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-1-and-click-expected.png
deleted file mode 100644
index 7e787d8..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-1-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-2-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-2-and-click-expected.png
deleted file mode 100644
index 0610304..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-2-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-3-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-3-and-click-expected.png
deleted file mode 100644
index 87616cea..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-3-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-5-and-click-expected.png b/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-5-and-click-expected.png
deleted file mode 100644
index 7fdbc86..0000000
--- a/third_party/blink/web_tests/platform/win7/html/details_summary/details-remove-summary-5-and-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png b/third_party/blink/web_tests/platform/win7/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png
deleted file mode 100644
index 3f684b6..0000000
--- a/third_party/blink/web_tests/platform/win7/http/tests/webfont/popup-menu-load-webfont-after-open-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/images/feature-policy-oversized-images-responsive-image-expected.txt b/third_party/blink/web_tests/platform/win7/images/feature-policy-oversized-images-responsive-image-expected.txt
deleted file mode 100644
index c8ca17d..0000000
--- a/third_party/blink/web_tests/platform/win7/images/feature-policy-oversized-images-responsive-image-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
-CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
-CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
-CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/4776765-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/4776765-expected.png
deleted file mode 100644
index ac81c6f..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/4776765-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/4776765-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/4776765-expected.txt
deleted file mode 100644
index 471630d..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/4776765-expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutBlockFlow DIV",
-          "rect": [4, 40, 792, 68],
-          "reason": "geometry"
-        },
-        {
-          "object": "Caret",
-          "rect": [8, 84, 1, 19],
-          "reason": "caret"
-        },
-        {
-          "object": "Caret",
-          "rect": [8, 64, 1, 19],
-          "reason": "caret"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt
deleted file mode 100644
index 84f9c6c..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/clip/caret-ancestor-clip-change-expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow DIV",
-          "rect": [8, 58, 108, 65],
-          "reason": "incremental"
-        },
-        {
-          "object": "LayoutTextControl INPUT id='target'",
-          "rect": [8, 58, 108, 65],
-          "reason": "incremental"
-        },
-        {
-          "object": "LayoutBlockFlow DIV",
-          "rect": [10, 58, 1, 57],
-          "reason": "incremental"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png
deleted file mode 100644
index 400d357..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt
deleted file mode 100644
index 0a9d627..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/range-focus-by-mouse-then-keydown-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutSlider INPUT",
-          "rect": [6, 6, 137, 24],
-          "reason": "subtree"
-        },
-        {
-          "object": "LayoutBlockFlow DIV id='thumb'",
-          "rect": [66, 10, 17, 16],
-          "reason": "subtree"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png
deleted file mode 100644
index 1b6a0dc..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt
deleted file mode 100644
index 51e05bd..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutButton INPUT",
-          "rect": [4, 4, 65, 30],
-          "reason": "subtree"
-        },
-        {
-          "object": "LayoutButton INPUT",
-          "rect": [4, 4, 65, 30],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "InlineTextBox 'Submit'",
-          "rect": [16, 10, 41, 18],
-          "reason": "subtree"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/textarea-caret-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/textarea-caret-expected.png
deleted file mode 100644
index 1eeb7aad..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/textarea-caret-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/textarea-caret-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/textarea-caret-expected.txt
deleted file mode 100644
index b5ab2f54..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/forms/textarea-caret-expected.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [4, 4, 189, 46],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [4, 4, 189, 46],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "LayoutNGBlockFlow HTML",
-          "rect": [8, 8, 181, 38],
-          "reason": "chunk disappeared"
-        },
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [9, 11, 179, 16],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "HorizontalScrollbar",
-          "rect": [9, 30, 179, 15],
-          "reason": "chunk appeared"
-        },
-        {
-          "object": "LayoutTextControl TEXTAREA id='editor'",
-          "rect": [173, 30, 15, 15],
-          "reason": "chunk disappeared"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-enable-continuations-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-enable-continuations-expected.png
deleted file mode 100644
index 868f2e93..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-enable-continuations-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-enable-continuations-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-enable-continuations-expected.txt
deleted file mode 100644
index f99d53c..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-enable-continuations-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN id='outer'",
-          "rect": [4, 84, 91, 28],
-          "reason": "appeared"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-expected.png
deleted file mode 100644
index 3ac4e1d..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt
deleted file mode 100644
index e47548d..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [204, 228, 108, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 228, 108, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [208, 232, 100, 100],
-          "reason": "geometry"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [8, 232, 100, 100],
-          "reason": "geometry"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt
deleted file mode 100644
index 87a4a9a..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 4, 108, 112],
-          "reason": "outline"
-        },
-        {
-          "object": "NGPhysicalBoxFragment LayoutInline SPAN",
-          "rect": [4, 84, 108, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [8, 88, 100, 100],
-          "reason": "geometry"
-        },
-        {
-          "object": "LayoutNGBlockFlow (relative positioned) DIV id='block'",
-          "rect": [8, 8, 100, 100],
-          "reason": "geometry"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt
deleted file mode 100644
index 7d0ba3a..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/outline-become-affected-by-descendant-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow DIV id='outline'",
-          "rect": [4, 4, 158, 108],
-          "reason": "outline"
-        },
-        {
-          "object": "LayoutNGBlockFlow DIV id='child'",
-          "rect": [58, 8, 100, 50],
-          "reason": "incremental"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt
deleted file mode 100644
index 81c48c3..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/outline/outline-become-not-affected-by-descendant-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow DIV id='outline'",
-          "rect": [4, 4, 158, 108],
-          "reason": "geometry"
-        },
-        {
-          "object": "LayoutNGBlockFlow DIV id='child'",
-          "rect": [58, 8, 100, 50],
-          "reason": "incremental"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
deleted file mode 100644
index d81ae62c..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/renderer-destruction-by-invalidateSelection-crash-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt
deleted file mode 100644
index 12a8b6e5..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/scroll/invalidate-caret-in-composited-scrolling-container-expected.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF"
-    },
-    {
-      "name": "LayoutTextControl INPUT id='root'",
-      "position": [-4, -4],
-      "bounds": [76, 30],
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutTextControl INPUT id='root'",
-          "rect": [0, 0, 76, 30],
-          "reason": "full layer"
-        },
-        {
-          "object": "LayoutTextControl INPUT id='root'",
-          "rect": [0, 0, 68, 22],
-          "reason": "full layer"
-        },
-        {
-          "object": "Caret",
-          "rect": [68, 7, 1, 16],
-          "reason": "caret"
-        }
-      ],
-      "transform": 1
-    }
-  ],
-  "transforms": [
-    {
-      "id": 1,
-      "transform": [
-        [1, 0, 0, 0],
-        [0, 1, 0, 0],
-        [0, 0, 1, 0],
-        [8, 8, 0, 1]
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
deleted file mode 100644
index 76d7bd21..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
deleted file mode 100644
index 6c52857..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/selection/selection-in-composited-scrolling-container-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutTextControl INPUT id='target'",
-          "rect": [4, 4, 76, 30],
-          "reason": "subtree"
-        },
-        {
-          "object": "LayoutBlockFlow DIV",
-          "rect": [10, 11, 64, 16],
-          "reason": "paint property change"
-        },
-        {
-          "object": "LayoutBlockFlow DIV",
-          "rect": [10, 11, 63, 16],
-          "reason": "paint property change"
-        },
-        {
-          "object": "InlineTextBox 'test test test'",
-          "rect": [25, 11, 26, 16],
-          "reason": "selection"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/focus-element-expected.png b/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/focus-element-expected.png
deleted file mode 100644
index 5204b17..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/focus-element-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/focus-element-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/focus-element-expected.txt
deleted file mode 100644
index 17610cf..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/focus-element-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF",
-      "paintInvalidations": [
-        {
-          "object": "LayoutSVGRect rect id='rect'",
-          "rect": [54, 54, 58, 58],
-          "reason": "style change"
-        }
-      ]
-    }
-  ]
-}
-
diff --git a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt b/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
deleted file mode 100644
index 6d071de..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/invalidation/svg/transform-focus-ring-repaint-expected.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [800, 600],
-      "contentsOpaque": true,
-      "backgroundColor": "#FFFFFF"
-    },
-    {
-      "name": "LayoutNGBlockFlow (positioned) DIV id='target'",
-      "position": [-4, -4],
-      "bounds": [208, 208],
-      "backfaceVisibility": "hidden",
-      "backgroundColor": "#FFFF00",
-      "paintInvalidations": [
-        {
-          "object": "LayoutNGBlockFlow (positioned) DIV id='target'",
-          "rect": [0, 0, 208, 208],
-          "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/win7/paint/markers/document-markers-font-64px-expected.png b/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-font-64px-expected.png
deleted file mode 100644
index 9a94539..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-font-64px-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-zoom-125-expected.png b/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-zoom-125-expected.png
deleted file mode 100644
index 96dc65ec..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-zoom-125-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-zoom-175-expected.png b/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-zoom-175-expected.png
deleted file mode 100644
index 2294974..0000000
--- a/third_party/blink/web_tests/platform/win7/paint/markers/document-markers-zoom-175-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/svg/custom/focus-ring-text-expected.png b/third_party/blink/web_tests/platform/win7/svg/custom/focus-ring-text-expected.png
deleted file mode 100644
index ba16d52..0000000
--- a/third_party/blink/web_tests/platform/win7/svg/custom/focus-ring-text-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/transforms/transformed-focused-text-input-expected.png b/third_party/blink/web_tests/platform/win7/transforms/transformed-focused-text-input-expected.png
deleted file mode 100644
index 969452b..0000000
--- a/third_party/blink/web_tests/platform/win7/transforms/transformed-focused-text-input-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer-expected.txt b/third_party/blink/web_tests/platform/win7/virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer-expected.txt
new file mode 100644
index 0000000..f05d8e04
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+PASS Test that player buffering is reflected in CSS classes
+Harness: the test ran to completion.
+
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 a96e4cb..9eeb1e5 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
index 41e66fd..e1ddbce 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png
index 0f61d16..de48939b 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/date/date-appearance-basic-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
index 52e4146..86f075a 100644
--- 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
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
index 0cdedc7..e6f80ae3 100644
--- 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
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 d3f39c70..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 0dc836e..7a30881b 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 c5453222..8e1712f 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
index 6a2c57cc..fc30771 100644
--- 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
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
index f29e1c3..7b57b36 100644
--- 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
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
index 2e39866f..bba0f55 100644
--- 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
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 7e481f54..dff9944 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 9a6c4e8..7897d1522 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 2959bf5..0bde5dd 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 c986cabd..9b4482b 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/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index 9a8afa20..f69b0a7 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-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
index 2ee0164f..42200ed 100644
--- 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
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
index 9318596..f68dfd23 100644
--- 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
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-hover-focused-unselected-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
index d2f4d1d..39e4a6e 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-multiple-hover-focused-unselected-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
index 068e2d9..02b8b28 100644
--- 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
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
index 84242ac..06863a7f 100644
--- 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
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
index 360afbf..56ee9b5 100644
--- 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
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 cc110ff..e96daa3 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
index d8ea91e..715c121 100644
--- 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
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
index 9e18089..deadfe9 100644
--- 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
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 74cd9fc1..155b11e 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 ecc79f0..04790ed 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 1faae974..2d51477 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 a29cea8..38689fe 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 d9f3b541..87b07c7f 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 05ce319d..49dafc24 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 bc3ca2f..1ce7020 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 ecc79f0..04790ed 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 aa60b3f..33cd91b 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/color/color-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
deleted file mode 100644
index b4cee53..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/color/color-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/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/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
deleted file mode 100644
index 0834d0c..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/color/color-suggestion-picker-appearance-with-scrollbar-expected.png
+++ /dev/null
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 f76e055..076b265 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 ae91373..c9e7d02 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 9789699c..c714557 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 6e96194e..979cf6a5 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/password/password-with-reveal-button-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
deleted file mode 100644
index a13d64c..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/password/password-with-reveal-button-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/select/select-inpage-appearance-basic-expected.png
deleted file mode 100644
index 7fc4d88..0000000
--- a/third_party/blink/web_tests/platform/win7/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/platform/win7/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png
deleted file mode 100644
index 1fd8485..0000000
--- a/third_party/blink/web_tests/platform/win7/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/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 12d5f92d4..9ce1ae6 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/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 21f1956..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png
deleted file mode 100644
index c6cf60e..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
deleted file mode 100644
index eec2fb87..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-click-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
deleted file mode 100644
index eec2fb87..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
deleted file mode 100644
index 39be239..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/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/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 4ead2cb..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/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/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 45ad4d0..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
deleted file mode 100644
index 3954a7c..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hex-format-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
deleted file mode 100644
index 8fe499f..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
deleted file mode 100644
index b5622a9..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-left-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
deleted file mode 100644
index fabf0b9..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
deleted file mode 100644
index 89b2c7a..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-imperfect-match-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
deleted file mode 100644
index 39302878..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-picker-appearance-set-value-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
deleted file mode 100644
index d1f64f1..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-one-row-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
deleted file mode 100644
index fbd2df4..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-value-attribute-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
deleted file mode 100644
index 0fe7412..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color/color-suggestion-picker-appearance-zoom200-expected.png
+++ /dev/null
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 b91f20b..fe6ef6b 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 b1f4489..0b5c81ca6 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 bc83ec0f..73205d45 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 604a185a..28f8b26 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 90030f4..6923ddc 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/password/password-alt-f8-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/password/password-alt-f8-expected.png
deleted file mode 100644
index a13d64c..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/password/password-alt-f8-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/password/password-eye-icon-zoom-4x-expected.png
deleted file mode 100644
index 7206b25..0000000
--- a/third_party/blink/web_tests/platform/win7/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/win7/virtual/controls-refresh/password/password-mismatched_glyph-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/password/password-mismatched_glyph-expected.png
deleted file mode 100644
index a13d64c..0000000
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/password/password-mismatched_glyph-expected.png
+++ /dev/null
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 4e6e0c57..0d3726e 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/feature-policy-oversized-images-edge-cases-expected.txt b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/feature-policy-oversized-images-edge-cases-expected.txt
new file mode 100644
index 0000000..8ce3e04
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/feature-policy-oversized-images-edge-cases-expected.txt
@@ -0,0 +1 @@
+CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
diff --git a/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/feature-policy-oversized-images-responsive-image-expected.txt b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/feature-policy-oversized-images-responsive-image-expected.txt
new file mode 100644
index 0000000..bc6ee3552
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/exotic-color-space/images/feature-policy-oversized-images-responsive-image-expected.txt
@@ -0,0 +1,2 @@
+CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
+CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/feature-policy-oversized-images-edge-cases-expected.txt b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/feature-policy-oversized-images-edge-cases-expected.txt
new file mode 100644
index 0000000..8ce3e04
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/feature-policy-oversized-images-edge-cases-expected.txt
@@ -0,0 +1 @@
+CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
diff --git a/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/feature-policy-oversized-images-responsive-image-expected.txt b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/feature-policy-oversized-images-responsive-image-expected.txt
new file mode 100644
index 0000000..bc6ee3552
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/gpu-rasterization/images/feature-policy-oversized-images-responsive-image-expected.txt
@@ -0,0 +1,2 @@
+CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
+CONSOLE ERROR: Feature policy violation: oversized-images is not allowed in this document.
diff --git a/third_party/blink/web_tests/platform/win7/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png b/third_party/blink/web_tests/platform/win7/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
index 30d68a9..85fc149f 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/layout_ng_block_frag/fast/multicol/multicol-with-child-renderLayer-for-input-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
index 75f9e47..d08bbbb 100644
--- 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
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
index 390ccf1..8c20c94 100644
--- 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
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 5337ccc..f02c68e 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
index d695c62..c44af57 100644
--- 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
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 4db2bb33..254e4b2 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
index 00e8e06..fa4c58a4 100644
--- 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
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 17ea8ce..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 a3e5f6a..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 dd55830..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 127dd3f5..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 81363b1..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 d26588d..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 19a743c..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 75f383d..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/rtl-caret-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/rtl-caret-expected.png
index 1acf9a40..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 bb21541a..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
index 056ed70b..3913cc5 100644
--- 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
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
index fe0d203..56f1cd7 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-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
index c2a21b1..73bbd9f 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-1-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-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
index ea41f11..1dce990 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-10-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-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
index 40a8797..25e150ed 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-2-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-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
index eed1479..1f08ccb 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-3-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-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
index 17bd514..e7cac614 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-4-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-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
index 26c9618b..4beb78f 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-5-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-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
index ea41f11..1dce990 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-6-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-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
index ea41f11..1dce990 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-7-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-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
index 7efd2dd..dbdd4c7 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-8-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-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
index 5596a8d..fec28cba 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-add-summary-9-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-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
index 7e787d8..771a7e4 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-1-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-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
index 0610304..76a7661 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-2-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-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
index 87616cea..98e2e37 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-3-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-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
index 2385659..0ce36680 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-4-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-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
index 7fdbc86..a4b89872 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-5-and-click-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/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-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
index 11a2b72..1274063 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/web-components-v0-disabled/html/details_summary/details-remove-summary-6-and-click-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/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius-expected.png
index fde7fff4..060657b0 100644
--- a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-radius-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-width-changed-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-expected.png
index 88cc66c..094f334 100644
--- a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-border-width-changed-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-multiline-writingmode-vertical-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/focus-ring-multiline-writingmode-vertical-expected.png
index 5a18605..83f4872 100644
--- 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
Binary files differ
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
index 379d924..ed760f9 100644
--- 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
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png
index 33c832a..4e20550 100644
--- a/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png
+++ b/third_party/blink/web_tests/virtual/controls-refresh/focus-rect/textfield-focus-ring-expected.png
Binary files differ
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index df4c632..7dfaa6c 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -234,6 +234,9 @@
   "content/browser/webrtc/resources/resources.grd": {
     "includes": [2240],
   },
+  "content/dev_ui_content_resources.grd": {
+    "includes": [2250],
+  },
   # END chrome/ WebUI resources section
 
   # START chrome/ miscellaneous section.
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index c006ce30..2fe29b4 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -32708,6 +32708,7 @@
   <int value="79" label="NEAR_OOM_INFOBAR_ANDROID"/>
   <int value="80" label="INSTALLABLE_AMBIENT_BADGE_INFOBAR_DELEGATE"/>
   <int value="81" label="PAGE_LOAD_CAPPING_INFOBAR_DELEGATE"/>
+  <int value="82" label="DOWNLOAD_PROGRESS_INFOBAR_ANDROID"/>
   <int value="83" label="AR_CORE_UPGRADE_ANDROID"/>
   <int value="84" label="BLOATED_RENDERER_INFOBAR_DELEGATE"/>
   <int value="85" label="SUPERVISED_USERS_DEPRECATED_INFOBAR_DELEGATE"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index d406d75..20cccc4 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -11041,7 +11041,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfAuthenticateUser"
     enum="AuthPolicyErrorType" expires_after="2020-06-07">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to authenticate a user to an Active Directory domain.
@@ -11051,7 +11050,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfAutoMachinePasswordChange"
     enum="AuthPolicyErrorType" expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>Result from automatic background machine password renewal.</summary>
 </histogram>
@@ -11059,7 +11057,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfAutoTgtRenewal"
     enum="AuthPolicyErrorType">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from automatic background ticket-granting-ticket renewal.
@@ -11069,7 +11066,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfGetUserKerberosFiles"
     enum="AuthPolicyErrorType" expires_after="2020-06-07">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result of an attempt to get an Active Directory user's Kerberos
@@ -11080,7 +11076,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfGetUserStatus"
     enum="AuthPolicyErrorType">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result of an attempt to get the status of an Active Directory user's
@@ -11091,7 +11086,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfJoinADDomain" enum="AuthPolicyErrorType"
     expires_after="2020-04-05">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to join a machine to an Active Directory domain.
@@ -11101,7 +11095,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfRefreshDevicePolicy"
     enum="AuthPolicyErrorType" expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to fetch device policy from an Active Directory
@@ -11112,7 +11105,6 @@
 <histogram name="AuthPolicy.ErrorTypeOfRefreshUserPolicy"
     enum="AuthPolicyErrorType" expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to fetch user policy from an Active Directory domain
@@ -11123,7 +11115,6 @@
 <histogram name="AuthPolicy.FailedTriesOfKinit" units="units"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of times 'kinit' failed until the next try succeeded or the method
@@ -11136,7 +11127,6 @@
 <histogram name="AuthPolicy.FailedTriesOfSmbClient" units="units"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of times 'smbclient' failed until it the next try succeeded or the
@@ -11148,7 +11138,6 @@
 <histogram name="AuthPolicy.NumGposToDownload" units="units"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of group policy objects attached to a specific user or machine on an
@@ -11160,7 +11149,6 @@
 <histogram name="AuthPolicy.TimeToAuthenticateUser" units="ms"
     expires_after="2020-06-07">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to authenticate a user to an Active Directory domain.
@@ -11171,7 +11159,6 @@
 <histogram name="AuthPolicy.TimeToGetUserKerberosFiles" units="ms"
     expires_after="2020-06-07">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to get the Kerberos ticket-granting-ticket and
@@ -11183,7 +11170,6 @@
 <histogram name="AuthPolicy.TimeToGetUserStatus" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to get status information of an Active Directory user.
@@ -11194,7 +11180,6 @@
 <histogram name="AuthPolicy.TimeToJoinADDomain" units="ms"
     expires_after="2020-04-05">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to join a machine to an Active Directory domain. Domain
@@ -11206,7 +11191,6 @@
 <histogram name="AuthPolicy.TimeToRefreshDevicePolicy" units="ms"
     expires_after="2020-06-07">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to fetch device policy from an Active Directory domain
@@ -11218,7 +11202,6 @@
 <histogram name="AuthPolicy.TimeToRefreshUserPolicy" units="ms"
     expires_after="2020-06-07">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to fetch user policy from an Active Directory domain
@@ -11230,7 +11213,6 @@
 <histogram name="AuthPolicy.TimeToRunKinit" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'kinit' (request Kerberos ticket-granting-
@@ -11243,7 +11225,6 @@
 <histogram name="AuthPolicy.TimeToRunKlist" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'klist' (print Kerberos ticket-granting-ticket
@@ -11256,7 +11237,6 @@
 <histogram name="AuthPolicy.TimeToRunKpasswd" units="ms"
     expires_after="2020-05-10">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'kpasswd' (change Active Directory password).
@@ -11269,7 +11249,6 @@
 <histogram name="AuthPolicy.TimeToRunNetAdsGpo" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'net ads gpo list' (list Active Directory group
@@ -11281,7 +11260,6 @@
 <histogram name="AuthPolicy.TimeToRunNetAdsInfo" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'net ads info' (query Active Directory
@@ -11292,7 +11270,6 @@
 
 <histogram name="AuthPolicy.TimeToRunNetAdsJoin" units="ms" expires_after="M82">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'net ads join' (join machine to an Active
@@ -11304,7 +11281,6 @@
 <histogram name="AuthPolicy.TimeToRunNetAdsSearch" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'net ads search' (query information about an
@@ -11316,7 +11292,6 @@
 <histogram name="AuthPolicy.TimeToRunNetAdsWorkgroup" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'net ads workgroup' (query Active Directory
@@ -11328,7 +11303,6 @@
 <histogram name="AuthPolicy.TimeToRunSmbclient" units="ms"
     expires_after="2020-06-21">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to call 'smbclient' (download policy from an Active
@@ -63827,7 +63801,6 @@
 <histogram name="Kerberos.AcquireKerberosTgtTime" units="ms"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Time in milliseconds to acquire a Kerberos ticket. The value is recorded no
@@ -63838,7 +63811,6 @@
 <histogram name="Kerberos.DailyActiveUsers" enum="KerberosUserType"
     expires_after="2021-05-31">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Type of the Chrome OS login user (primary user) who requests Kerberos
@@ -63851,7 +63823,6 @@
 <histogram name="Kerberos.NumberOfAccounts.Managed" units="units"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of managed Kerberos accounts owned by the current Chrome OS user. A
@@ -63863,7 +63834,6 @@
 <histogram name="Kerberos.NumberOfAccounts.RememberedPassword" units="units"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of Kerberos accounts owned by the current Chrome OS user that use the
@@ -63876,7 +63846,6 @@
 <histogram name="Kerberos.NumberOfAccounts.Total" units="units"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Total number of Kerberos accounts owned by the current Chrome OS user.
@@ -63887,7 +63856,6 @@
 <histogram name="Kerberos.NumberOfAccounts.Unmanaged" units="units"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of unmanaged Kerberos accounts owned by the current Chrome OS user.
@@ -63899,7 +63867,6 @@
 <histogram name="Kerberos.NumberOfAccounts.UseLoginPassword" units="units"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Number of Kerberos accounts owned by the current Chrome OS user that use the
@@ -63912,7 +63879,6 @@
 <histogram name="Kerberos.Result.AcquireKerberosTgt" enum="KerberosErrorType"
     expires_after="2021-05-31">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to acquire a Kerberos ticket. This happens whenever a
@@ -63923,7 +63889,6 @@
 <histogram name="Kerberos.Result.AddAccount" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to add a new Kerberos account, either through the
@@ -63934,7 +63899,6 @@
 <histogram name="Kerberos.Result.ClearAccounts" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to clear Kerberos accounts, usually through toggling
@@ -63946,7 +63910,6 @@
 <histogram name="Kerberos.Result.GetKerberosFiles" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to retrieve a Kerberos ticket from the Kerberos
@@ -63958,7 +63921,6 @@
 <histogram name="Kerberos.Result.ListAccounts" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to list Kerberos accounts, usually through opening
@@ -63969,7 +63931,6 @@
 <histogram name="Kerberos.Result.RemoveAccount" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to remove a new Kerberos account through the Kerberos
@@ -63980,7 +63941,6 @@
 <histogram name="Kerberos.Result.SetConfig" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to set Kerberos configuration. This happens right
@@ -63991,7 +63951,6 @@
 <histogram name="Kerberos.Result.ValidateConfig" enum="KerberosErrorType"
     expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Result from an attempt to validate Kerberos configuration. This happens when
@@ -64003,7 +63962,6 @@
 <histogram name="Kerberos.ValidateConfigErrorCode"
     enum="KerberosConfigErrorCode" expires_after="M83">
   <owner>fsandrade@chromium.org</owner>
-  <owner>ljusten@chromium.org</owner>
   <owner>tomdobro@chromium.org</owner>
   <summary>
     Error code from an attempt validate Kerberos configuration. Contains more
@@ -177903,9 +177861,22 @@
   <suffix name="MediaLauncherActivity"
       label="CustomTab opened by MediaLauncherActivity."/>
   <suffix name="Other" label="CustomTab opened by other apps."/>
-  <suffix name="TWA" label="CustomTab opened by Trusted Web Activity."/>
-  <suffix name="WebApk" label="CustomTab opened by WebApk."/>
-  <suffix name="Webapp" label="CustomTab opened by Webapp."/>
+  <suffix name="TWA"
+      label="CustomTab opened by Trusted Web Activity. (obsolete)">
+    <obsolete>
+      Deprecated as of 2020-01
+    </obsolete>
+  </suffix>
+  <suffix name="WebApk" label="CustomTab opened by WebApk. (obsolete)">
+    <obsolete>
+      Deprecated as of 2020-01
+    </obsolete>
+  </suffix>
+  <suffix name="Webapp" label="CustomTab opened by Webapp. (obsolete)">
+    <obsolete>
+      Deprecated as of 2020-01
+    </obsolete>
+  </suffix>
   <affected-histogram name="CustomTab.SessionDuration"/>
 </histogram_suffixes>
 
@@ -187182,6 +187153,7 @@
   <suffix name="Net.UrlRequestContext"
       label="Only counting memory used by URL requests and associated http
              cache."/>
+  <suffix name="NumberOfNodes" label=""/>
   <suffix name="OmniboxSuggestions"
       label="Only counting memory used by Omnibox suggestions provider."/>
   <suffix name="SiteStorage.IndexDB"
@@ -187226,6 +187198,22 @@
 </histogram_suffixes>
 
 <histogram_suffixes name="ProcessMemoryAllocatorTiny2" separator=".">
+  <suffix name="NumberOfAdSubframes" label=""/>
+  <suffix name="NumberOfAudioHandler" label=""/>
+  <suffix name="NumberOfContextLifecycleStateObserver" label=""/>
+  <suffix name="NumberOfDetachedScriptStates" label=""/>
+  <suffix name="NumberOfDocuments" label=""/>
+  <suffix name="NumberOfFrames" label=""/>
+  <suffix name="NumberOfJSEventListener" label=""/>
+  <suffix name="NumberOfLayoutObjects" label=""/>
+  <suffix name="NumberOfMediaKeys" label=""/>
+  <suffix name="NumberOfMediaKeySession" label=""/>
+  <suffix name="NumberOfResourceFetcher" label=""/>
+  <suffix name="NumberOfResources" label=""/>
+  <suffix name="NumberOfRTCPeerConnection" label=""/>
+  <suffix name="NumberOfUACSSResource" label=""/>
+  <suffix name="NumberOfV8PerContextData" label=""/>
+  <suffix name="NumberOfWorkerGlobalScope" label=""/>
   <suffix name="ServiceDiscardableManager"
       label="Only counting memory used by the gpu discardable cache."/>
   <suffix name="ServiceDiscardableManager.AvgImageSize"
diff --git a/ui/base/webui/web_ui_util.h b/ui/base/webui/web_ui_util.h
index 138061c..77e20e2 100644
--- a/ui/base/webui/web_ui_util.h
+++ b/ui/base/webui/web_ui_util.h
@@ -20,6 +20,11 @@
 
 namespace webui {
 
+struct LocalizedString {
+  const char* name;
+  int id;
+};
+
 // Convenience routine to convert SkBitmap object to data url
 // so that it can be used in WebUI.
 UI_BASE_EXPORT std::string GetBitmapDataUrl(const SkBitmap& bitmap);
diff --git a/ui/base/x/x11_drag_drop_client.cc b/ui/base/x/x11_drag_drop_client.cc
index 939b3fd..0d499eb5 100644
--- a/ui/base/x/x11_drag_drop_client.cc
+++ b/ui/base/x/x11_drag_drop_client.cc
@@ -12,6 +12,9 @@
 
 namespace {
 
+constexpr int kWillAcceptDrop = 1;
+constexpr int kWantFurtherPosEvents = 2;
+
 // The lowest XDND protocol version that we understand.
 //
 // The XDND protocol specification says that we must support all versions
@@ -139,7 +142,62 @@
   return operations;
 }
 
+void XDragDropClient::CompleteXdndPosition(XID source_window,
+                                           const gfx::Point& screen_point) {
+  int drag_operation = GetDragOperation(screen_point);
+
+  // Sends an XdndStatus message back to the source_window. l[2,3]
+  // theoretically represent an area in the window where the current action is
+  // the same as what we're returning, but I can't find any implementation that
+  // actually making use of this. A client can return (0, 0) and/or set the
+  // first bit of l[1] to disable the feature, and it appears that gtk neither
+  // sets this nor respects it if set.
+  XEvent xev = PrepareXdndClientMessage(kXdndStatus, source_window);
+  xev.xclient.data.l[1] =
+      (drag_operation != 0) ? (kWantFurtherPosEvents | kWillAcceptDrop) : 0;
+  xev.xclient.data.l[4] = ui::DragOperationToAtom(drag_operation);
+  SendXClientEvent(source_window, &xev);
+}
+
+void XDragDropClient::ProcessMouseMove(const gfx::Point& screen_point,
+                                       unsigned long event_time) {
+  if (source_state() != SourceState::kOther)
+    return;
+
+  // Find the current window the cursor is over.
+  XID dest_window = FindWindowFor(screen_point);
+
+  if (source_current_window() != dest_window) {
+    if (source_current_window() != x11::None)
+      SendXdndLeave(source_current_window());
+
+    set_source_current_window(dest_window);
+    waiting_on_status_ = false;
+    next_position_message_.reset();
+    status_received_since_enter_ = false;
+    negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
+
+    if (source_current_window() != x11::None) {
+      std::vector<Atom> targets;
+      RetrieveTargets(&targets);
+      SendXdndEnter(source_current_window(), targets);
+    }
+  }
+
+  if (source_current_window() != x11::None) {
+    if (waiting_on_status_) {
+      next_position_message_ =
+          std::make_unique<std::pair<gfx::Point, unsigned long>>(screen_point,
+                                                                 event_time);
+    } else {
+      SendXdndPosition(dest_window, screen_point, event_time);
+    }
+  }
+}
+
 void XDragDropClient::OnXdndEnter(const XClientMessageEvent& event) {
+  DVLOG(1) << "OnXdndEnter, version " << ((event.data.l[1] & 0xff000000) >> 24);
+
   int version = (event.data.l[1] & 0xff000000) >> 24;
   if (version < kMinXdndVersion) {
     // This protocol version is not documented in the XDND standard (last
@@ -159,10 +217,21 @@
   // Make sure that we've run ~X11DragContext() before creating another one.
   ResetDragContext();
   auto* source_client = GetForWindow(event.data.l[0]);
-  set_target_current_context(std::make_unique<XDragContext>(
+  target_current_context_ = std::make_unique<XDragContext>(
       xwindow_, event, source_client,
       (source_client ? source_client->GetFormatMap()
-                     : ui::SelectionFormatMap())));
+                     : ui::SelectionFormatMap()));
+
+  if (!target_current_context()->source_client()) {
+    // The window doesn't have a DesktopDragDropClientAuraX11, which means it's
+    // created by some other process.  Listen for messages on it.
+    OnBeginForeignDrag(event.data.l[0]);
+  }
+
+  // In the Windows implementation, we immediately call DesktopDropTargetWin::
+  // Translate().  The XDND specification demands that we wait until we receive
+  // an XdndPosition message before we use XConvertSelection or send an
+  // XdndStatus message.
 }
 
 void XDragDropClient::OnXdndPosition(const XClientMessageEvent& event) {
@@ -184,20 +253,187 @@
       gfx::Point(x_root_window, y_root_window));
 }
 
-void XDragDropClient::OnXdndStatus(const XClientMessageEvent& event) {}
+void XDragDropClient::OnXdndStatus(const XClientMessageEvent& event) {
+  DVLOG(1) << "OnXdndStatus";
+
+  XID source_window = event.data.l[0];
+
+  if (source_window != source_current_window())
+    return;
+
+  if (source_state() != SourceState::kPendingDrop &&
+      source_state() != SourceState::kOther) {
+    return;
+  }
+
+  waiting_on_status_ = false;
+  status_received_since_enter_ = true;
+
+  if (event.data.l[1] & 1) {
+    Atom atom_operation = event.data.l[4];
+    negotiated_operation_ = ui::AtomToDragOperation(atom_operation);
+  } else {
+    negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
+  }
+
+  if (source_state() == SourceState::kPendingDrop) {
+    // We were waiting on the status message so we could send the XdndDrop.
+    if (negotiated_operation_ == ui::DragDropTypes::DRAG_NONE) {
+      EndMoveLoop();
+      return;
+    }
+    set_source_state(SourceState::kDropped);
+    SendXdndDrop(source_window);
+    return;
+  }
+
+  UpdateCursor(negotiated_operation_);
+
+  // Note: event.data.[2,3] specify a rectangle. It is a request by the other
+  // window to not send further XdndPosition messages while the cursor is
+  // within it. However, it is considered advisory and (at least according to
+  // the spec) the other side must handle further position messages within
+  // it. GTK+ doesn't bother with this, so neither should we.
+
+  if (next_position_message_.get()) {
+    // We were waiting on the status message so we could send off the next
+    // position message we queued up.
+    gfx::Point p = next_position_message_->first;
+    unsigned long event_time = next_position_message_->second;
+    next_position_message_.reset();
+
+    SendXdndPosition(source_window, p, event_time);
+  }
+}
 
 void XDragDropClient::OnXdndLeave(const XClientMessageEvent& event) {
+  DVLOG(1) << "OnXdndLeave";
+  OnBeforeDragLeave();
   ResetDragContext();
 }
 
-void XDragDropClient::OnXdndDrop(const XClientMessageEvent& event) {}
+void XDragDropClient::OnXdndDrop(const XClientMessageEvent& event) {
+  DVLOG(1) << "OnXdndDrop";
 
-void XDragDropClient::OnXdndFinished(const XClientMessageEvent& event) {}
+  XID source_window = event.data.l[0];
+
+  int drag_operation = PerformDrop();
+
+  XEvent xev = PrepareXdndClientMessage(kXdndFinished, source_window);
+  xev.xclient.data.l[1] = (drag_operation != 0) ? 1 : 0;
+  xev.xclient.data.l[2] = ui::DragOperationToAtom(drag_operation);
+  SendXClientEvent(source_window, &xev);
+}
+
+void XDragDropClient::OnXdndFinished(const XClientMessageEvent& event) {
+  DVLOG(1) << "OnXdndFinished";
+  XID source_window = event.data.l[0];
+  if (source_current_window() != source_window)
+    return;
+
+  // Clear |negotiated_operation_| if the drag was rejected.
+  if ((event.data.l[1] & 1) == 0)
+    negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
+
+  // Clear |source_current_window_| to avoid sending XdndLeave upon ending the
+  // move loop.
+  set_source_current_window(x11::None);
+  EndMoveLoop();
+}
+
+void XDragDropClient::OnSelectionNotify(const XSelectionEvent& xselection) {
+  DVLOG(1) << "OnSelectionNotify";
+  if (target_current_context_)
+    target_current_context_->OnSelectionNotify(xselection);
+
+  // ICCCM requires us to delete the property passed into SelectionNotify.
+  if (xselection.property != x11::None)
+    XDeleteProperty(xdisplay_, xwindow_, xselection.property);
+}
+
+void XDragDropClient::InitDrag(int operation) {
+  waiting_on_status_ = false;
+  next_position_message_.reset();
+  status_received_since_enter_ = false;
+  drag_operation_ = operation;
+  negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
+}
+
+void XDragDropClient::UpdateModifierState(int flags) {
+  const int kModifiers = ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN |
+                         ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN |
+                         ui::EF_LEFT_MOUSE_BUTTON | ui::EF_MIDDLE_MOUSE_BUTTON |
+                         ui::EF_RIGHT_MOUSE_BUTTON;
+  current_modifier_state_ = flags & kModifiers;
+}
 
 void XDragDropClient::ResetDragContext() {
+  if (!target_current_context())
+    return;
+  if (!target_current_context()->source_client())
+    OnEndForeignDrag();
+
   target_current_context_.reset();
 }
 
+void XDragDropClient::StopRepeatMouseMoveTimer() {
+  repeat_mouse_move_timer_.Stop();
+}
+
+void XDragDropClient::StartEndMoveLoopTimer() {
+  end_move_loop_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1000),
+                             this, &XDragDropClient::EndMoveLoop);
+}
+
+void XDragDropClient::StopEndMoveLoopTimer() {
+  end_move_loop_timer_.Stop();
+}
+
+void XDragDropClient::HandleMouseReleased() {
+  StopRepeatMouseMoveTimer();
+
+  if (source_state() != SourceState::kOther) {
+    // The user has previously released the mouse and is clicking in
+    // frustration.
+    EndMoveLoop();
+    return;
+  }
+
+  if (source_current_window() != x11::None) {
+    if (waiting_on_status()) {
+      if (status_received_since_enter()) {
+        // If we are waiting for an XdndStatus message, we need to wait for it
+        // to complete.
+        set_source_state(SourceState::kPendingDrop);
+
+        // Start timer to end the move loop if the target takes too long to send
+        // the XdndStatus and XdndFinished messages.
+        StartEndMoveLoopTimer();
+        return;
+      }
+
+      EndMoveLoop();
+      return;
+    }
+
+    if (negotiated_operation() != ui::DragDropTypes::DRAG_NONE) {
+      // Start timer to end the move loop if the target takes too long to send
+      // an XdndFinished message. It is important that StartEndMoveLoopTimer()
+      // is called before SendXdndDrop() because SendXdndDrop()
+      // sends XdndFinished synchronously if the drop target is a Chrome
+      // window.
+      StartEndMoveLoopTimer();
+
+      // We have negotiated an action with the other end.
+      set_source_state(SourceState::kDropped);
+      SendXdndDrop(source_current_window());
+      return;
+    }
+  }
+
+  EndMoveLoop();
+}
+
 XEvent XDragDropClient::PrepareXdndClientMessage(const char* message,
                                                  XID recipient) const {
   XEvent xev;
@@ -294,6 +530,26 @@
   SendXClientEvent(dest_window, &xev);
 }
 
+void XDragDropClient::SendXdndPosition(XID dest_window,
+                                       const gfx::Point& screen_point,
+                                       unsigned long event_time) {
+  waiting_on_status_ = true;
+
+  XEvent xev = PrepareXdndClientMessage(kXdndPosition, dest_window);
+  xev.xclient.data.l[2] = (screen_point.x() << 16) | screen_point.y();
+  xev.xclient.data.l[3] = event_time;
+  xev.xclient.data.l[4] = ui::DragOperationToAtom(drag_operation_);
+  SendXClientEvent(dest_window, &xev);
+
+  // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html and
+  // the Xdnd protocol both recommend that drag events should be sent
+  // periodically.
+  repeat_mouse_move_timer_.Start(
+      FROM_HERE, base::TimeDelta::FromMilliseconds(350),
+      base::BindOnce(&XDragDropClient::ProcessMouseMove, base::Unretained(this),
+                     screen_point, event_time));
+}
+
 void XDragDropClient::SendXdndLeave(XID dest_window) {
   XEvent xev = PrepareXdndClientMessage(kXdndLeave, dest_window);
   SendXClientEvent(dest_window, &xev);
diff --git a/ui/base/x/x11_drag_drop_client.h b/ui/base/x/x11_drag_drop_client.h
index 51825bd87..cfcfdd7 100644
--- a/ui/base/x/x11_drag_drop_client.h
+++ b/ui/base/x/x11_drag_drop_client.h
@@ -8,6 +8,7 @@
 #include <vector>
 
 #include "base/component_export.h"
+#include "base/timer/timer.h"
 #include "ui/base/dragdrop/drag_drop_types.h"
 #include "ui/base/x/selection_utils.h"
 #include "ui/base/x/x11_drag_context.h"
@@ -30,8 +31,10 @@
   // Handling XdndPosition can be paused while waiting for more data; this is
   // called either synchronously from OnXdndPosition, or asynchronously after
   // we've received data requested from the other window.
-  virtual void CompleteXdndPosition(XID source_window,
-                                    const gfx::Point& screen_point) = 0;
+  void CompleteXdndPosition(XID source_window, const gfx::Point& screen_point);
+
+  void ProcessMouseMove(const gfx::Point& screen_point,
+                        unsigned long event_time);
 
   int current_modifier_state() const { return current_modifier_state_; }
 
@@ -40,24 +43,61 @@
   // processes.
   std::vector<Atom> GetOfferedDragOperations() const;
 
-  virtual void OnXdndEnter(const XClientMessageEvent& event);
-  virtual void OnXdndPosition(const XClientMessageEvent& event);
-  virtual void OnXdndStatus(const XClientMessageEvent& event);
-  virtual void OnXdndLeave(const XClientMessageEvent& event);
-  virtual void OnXdndDrop(const XClientMessageEvent& event);
-  virtual void OnXdndFinished(const XClientMessageEvent& event);
+  // These methods handle the various X11 client messages from the platform.
+  void OnXdndEnter(const XClientMessageEvent& event);
+  void OnXdndPosition(const XClientMessageEvent& event);
+  void OnXdndStatus(const XClientMessageEvent& event);
+  void OnXdndLeave(const XClientMessageEvent& event);
+  void OnXdndDrop(const XClientMessageEvent& event);
+  void OnXdndFinished(const XClientMessageEvent& event);
+
+  // Called when XSelection data has been copied to our process.
+  void OnSelectionNotify(const XSelectionEvent& xselection);
 
  protected:
+  enum class SourceState {
+    // |source_current_window_| will receive a drop once we receive an
+    // XdndStatus from it.
+    kPendingDrop,
+
+    // The move looped will be ended once we receive XdndFinished from
+    // |source_current_window_|. We should not send XdndPosition to
+    // |source_current_window_| while in this state.
+    kDropped,
+
+    // There is no drag in progress or there is a drag in progress and the
+    // user has not yet released the mouse.
+    kOther,
+  };
+
   XDragDropClient(Display* xdisplay, XID xwindow);
   virtual ~XDragDropClient();
 
+  XDragDropClient(const XDragDropClient&) = delete;
+  XDragDropClient& operator=(const XDragDropClient&) = delete;
+
   // We maintain a mapping of live XDragDropClient objects to their X11 windows,
   // so that we'd able to short circuit sending X11 messages to windows in our
   // process.
   static XDragDropClient* GetForWindow(XID window);
 
-  XDragDropClient(const XDragDropClient&) = delete;
-  XDragDropClient& operator=(const XDragDropClient&) = delete;
+  // Handlers and callbacks that the subclass should implement.
+  virtual std::unique_ptr<XTopmostWindowFinder> CreateWindowFinder() = 0;
+  virtual SelectionFormatMap GetFormatMap() const = 0;
+  virtual void RetrieveTargets(std::vector<Atom>* targets) const = 0;
+  virtual int GetDragOperation(const gfx::Point& screen_point) = 0;
+  // Drops data at the current location and returns the resulting operation.
+  virtual int PerformDrop() = 0;
+  // Called when data from another application enters the window.
+  virtual void OnBeginForeignDrag(XID window) = 0;
+  // Called when data from another application is about to leave the window.
+  virtual void OnEndForeignDrag() = 0;
+  virtual void UpdateCursor(
+      DragDropTypes::DragOperation negotiated_operation) = 0;
+  // Called just before the drag leaves the window.
+  virtual void OnBeforeDragLeave() = 0;
+  // Called to end the move loop that is maintained by the subclass.
+  virtual void EndMoveLoop() = 0;
 
   Display* xdisplay() const { return xdisplay_; }
   XID xwindow() const { return xwindow_; }
@@ -70,12 +110,35 @@
   XDragContext* target_current_context() {
     return target_current_context_.get();
   }
-  void set_target_current_context(std::unique_ptr<XDragContext> context) {
-    target_current_context_ = std::move(context);
+
+  SourceState source_state() const { return source_state_; }
+  void set_source_state(SourceState state) { source_state_ = state; }
+
+  bool waiting_on_status() const { return waiting_on_status_; }
+  int drag_operation() const { return drag_operation_; }
+  DragDropTypes::DragOperation negotiated_operation() const {
+    return negotiated_operation_;
+  }
+  bool status_received_since_enter() const {
+    return status_received_since_enter_;
   }
 
-  // Resets the drag context.  Overrides should call this implementation.
-  virtual void ResetDragContext();
+  // Resets the drag state so the object is ready to handle the drag.
+  void InitDrag(int operation);
+
+  void UpdateModifierState(int flags);
+
+  // Resets the drag context.
+  void ResetDragContext();
+
+  void StopRepeatMouseMoveTimer();
+
+  // Start timer to end the move loop if the target is too slow to respond after
+  // the mouse is released.
+  void StartEndMoveLoopTimer();
+  void StopEndMoveLoopTimer();
+
+  void HandleMouseReleased();
 
   // Creates an XEvent and fills it in with values typical for XDND messages:
   // the type of event is set to ClientMessage, the format is set to 32 (longs),
@@ -88,25 +151,17 @@
   // Virtual for testing.
   virtual XID FindWindowFor(const gfx::Point& screen_point);
 
-  virtual std::unique_ptr<XTopmostWindowFinder> CreateWindowFinder() = 0;
-
   // Sends |xev| to |xid|, optionally short circuiting the round trip to the X
   // server.
   virtual void SendXClientEvent(XID xid, XEvent* xev);
 
   void SendXdndEnter(XID dest_window, const std::vector<Atom>& targets);
+  void SendXdndPosition(XID dest_window,
+                        const gfx::Point& screen_point,
+                        unsigned long event_time);
   void SendXdndLeave(XID dest_window);
   void SendXdndDrop(XID dest_window);
 
-  virtual SelectionFormatMap GetFormatMap() const = 0;
-
-  // The operation bitfield as requested by StartDragAndDrop.
-  int drag_operation_ = 0;
-
-  // The modifier state for the most recent mouse move.  Used to bypass an
-  // asynchronous roundtrip through the X11 server.
-  int current_modifier_state_ = 0;
-
  private:
   Display* const xdisplay_;
   const XID xwindow_;
@@ -114,7 +169,45 @@
   // Target side information.
   std::unique_ptr<XDragContext> target_current_context_;
 
+  // Source side information.
   XID source_current_window_ = x11::None;
+  SourceState source_state_ = SourceState::kOther;
+
+  // The operation bitfield as requested by StartDragAndDrop.
+  int drag_operation_ = 0;
+
+  // The modifier state for the most recent mouse move.  Used to bypass an
+  // asynchronous roundtrip through the X11 server.
+  int current_modifier_state_ = 0;
+
+  // We offer the other window a list of possible operations,
+  // XdndActionsList. This is the requested action from the other window. This
+  // is DRAG_NONE if we haven't sent out an XdndPosition message yet, haven't
+  // yet received an XdndStatus or if the other window has told us that there's
+  // no action that we can agree on.
+  DragDropTypes::DragOperation negotiated_operation_ = DragDropTypes::DRAG_NONE;
+
+  // In the Xdnd protocol, we aren't supposed to send another XdndPosition
+  // message until we have received a confirming XdndStatus message.
+  bool waiting_on_status_ = false;
+
+  // If we would send an XdndPosition message while we're waiting for an
+  // XdndStatus response, we need to cache the latest details we'd send.
+  std::unique_ptr<std::pair<gfx::Point, unsigned long>> next_position_message_;
+
+  // Reprocesses the most recent mouse move event if the mouse has not moved
+  // in a while in case the window stacking order has changed and
+  // |source_current_window_| needs to be updated.
+  base::OneShotTimer repeat_mouse_move_timer_;
+
+  // Ends the move loop if the target is too slow to respond after the mouse is
+  // released.
+  base::OneShotTimer end_move_loop_timer_;
+
+  // When the mouse is released, we need to wait for the last XdndStatus message
+  // only if we have previously received a status message from
+  // |source_current_window_|.
+  bool status_received_since_enter_ = false;
 };
 
 }  // namespace ui
diff --git a/ui/file_manager/BUILD.gn b/ui/file_manager/BUILD.gn
index 10e11de..cdb9cca 100644
--- a/ui/file_manager/BUILD.gn
+++ b/ui/file_manager/BUILD.gn
@@ -49,6 +49,7 @@
     "gallery/js/image_editor:closure_compile",
     "image_loader:closure_compile",
     "integration_tests:closure_compile",
+    "integration_tests/file_manager:closure_compile",
     "video_player/js:closure_compile",
     "video_player/js/cast:closure_compile",
   ]
diff --git a/ui/file_manager/file_manager/foreground/js/quick_view_controller.js b/ui/file_manager/file_manager/foreground/js/quick_view_controller.js
index 92e0d3e..ff5a074e 100644
--- a/ui/file_manager/file_manager/foreground/js/quick_view_controller.js
+++ b/ui/file_manager/file_manager/foreground/js/quick_view_controller.js
@@ -293,7 +293,7 @@
    * @private
    */
   getAvailableTasks_(entry) {
-    return this.taskController_.getFileTasks().then(tasks => {
+    return this.taskController_.getEntryFileTasks(entry).then(tasks => {
       return tasks.getTaskItems();
     });
   }
@@ -332,7 +332,11 @@
                   values[1]));
           return this.onMetadataLoaded_(entry, items, tasks);
         })
-        .catch(console.error);
+        .catch(error => {
+          if (error) {
+            console.error(error.stack || error);
+          }
+        });
   }
 
   /**
diff --git a/ui/file_manager/file_manager/foreground/js/task_controller.js b/ui/file_manager/file_manager/foreground/js/task_controller.js
index 7a157cb0..bd671a1 100644
--- a/ui/file_manager/file_manager/foreground/js/task_controller.js
+++ b/ui/file_manager/file_manager/foreground/js/task_controller.js
@@ -481,18 +481,26 @@
   }
 
   /**
+   * Return the tasks for the FileEntry |entry|.
+   *
+   * @param {FileEntry} entry
+   * @return {!Promise<!FileTasks>}
+   */
+  getEntryFileTasks(entry) {
+    return this.metadataModel_.get([entry], ['contentMimeType']).then(props => {
+      return FileTasks.create(
+          this.volumeManager_, this.metadataModel_, this.directoryModel_,
+          this.ui_, [entry], [props[0].contentMimeType || null],
+          this.taskHistory_, this.namingController_, this.crostini_);
+    });
+  }
+
+  /**
    * @param {FileEntry} entry
    */
   executeEntryTask(entry) {
-    this.metadataModel_.get([entry], ['contentMimeType']).then(props => {
-      FileTasks
-          .create(
-              this.volumeManager_, this.metadataModel_, this.directoryModel_,
-              this.ui_, [entry], [props[0].contentMimeType || null],
-              this.taskHistory_, this.namingController_, this.crostini_)
-          .then(tasks => {
-            tasks.executeDefault();
-          });
+    this.getEntryFileTasks(entry).then(tasks => {
+      tasks.executeDefault();
     });
   }
 }
diff --git a/ui/file_manager/integration_tests/file_manager/BUILD.gn b/ui/file_manager/integration_tests/file_manager/BUILD.gn
new file mode 100644
index 0000000..b74d924c
--- /dev/null
+++ b/ui/file_manager/integration_tests/file_manager/BUILD.gn
@@ -0,0 +1,19 @@
+# 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.
+
+import("//third_party/closure_compiler/compile_js.gni")
+
+js_type_check("closure_compile") {
+  testonly = true
+  deps = [ ":background" ]
+}
+
+js_library("background") {
+  testonly = true
+  deps = [
+    "//ui/file_manager/base/js:volume_manager_types",
+    "//ui/file_manager/integration_tests:remote_call",
+    "//ui/file_manager/integration_tests:test_util",
+  ]
+}
diff --git a/ui/file_manager/integration_tests/file_manager/background.js b/ui/file_manager/integration_tests/file_manager/background.js
index 14b9ee3..a512dfe 100644
--- a/ui/file_manager/integration_tests/file_manager/background.js
+++ b/ui/file_manager/integration_tests/file_manager/background.js
@@ -43,7 +43,7 @@
 /**
  * Basic entry set for the local volume.
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const BASIC_LOCAL_ENTRY_SET = [
@@ -73,7 +73,7 @@
  * TODO(sashab): Merge items from COMPLEX_DRIVE_ENTRY_SET into here (so all
  *               tests run with read-only files) once crbug.com/850834 is fixed.
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const BASIC_DRIVE_ENTRY_SET = [
@@ -129,7 +129,7 @@
  * More complex entry set for Drive that includes entries with varying
  * permissions (such as read-only entries).
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const COMPLEX_DRIVE_ENTRY_SET = [
@@ -141,7 +141,7 @@
  * More complex entry set for DocumentsProvider that includes entries with
  * arying permissions (such as read-only entries).
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const COMPLEX_DOCUMENTS_PROVIDER_ENTRY_SET = [
@@ -152,7 +152,7 @@
 /**
  * Nested entry set (directories inside each other).
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const NESTED_ENTRY_SET = [
@@ -165,7 +165,7 @@
  * Expected list of preset entries in fake test volumes. This should be in sync
  * with FakeTestVolume::PrepareTestEntries in the test harness.
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const BASIC_FAKE_ENTRY_SET = [
@@ -177,7 +177,7 @@
  * Expected files shown in "Recent". Directories (e.g. 'photos') are not in this
  * list as they are not expected in "Recent".
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const RECENT_ENTRY_SET = [
@@ -190,7 +190,7 @@
  * "available offline". Google Documents, Google Spreadsheets, and the files
  * cached locally are "available offline".
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const OFFLINE_ENTRY_SET = [
@@ -203,7 +203,7 @@
  * Expected files shown in "Shared with me", which should be the entries labeled
  * with "shared-with-me".
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const SHARED_WITH_ME_ENTRY_SET = [
@@ -217,7 +217,7 @@
  *
  * TODO(sashab): Add support for capabilities of Shared Drive roots.
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const SHARED_DRIVE_ENTRY_SET = [
@@ -235,10 +235,10 @@
  * Entry set for Drive that includes Computers, including nested computers with
  * files and nested "USB and External Devices" with nested devices.
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
-let COMPUTERS_ENTRY_SET = [
+const COMPUTERS_ENTRY_SET = [
   ENTRIES.hello,
   ENTRIES.computerA,
   ENTRIES.computerAFile,
@@ -248,7 +248,7 @@
 /**
  * Basic entry set for the android volume.
  *
- * @type {Array<TestEntryInfo>}
+ * @type {!Array<TestEntryInfo>}
  * @const
  */
 const BASIC_ANDROID_ENTRY_SET = [
@@ -296,12 +296,12 @@
 /**
  * Opens a file dialog and waits for closing it.
  *
- * @param {Object} dialogParams Dialog parameters to be passed to chrome.
- *     fileSystem.chooseEntry() API.
+ * @param {chrome.fileSystem.AcceptsOption} dialogParams Dialog parameters to be
+ *     passed to chrome. fileSystem.chooseEntry() API.
  * @param {string} volumeName Volume name passed to the selectVolume remote
- *     funciton.
+ *     function.
  * @param {Array<TestEntryInfo>} expectedSet Expected set of the entries.
- * @param {function(appId:string):Promise} closeDialog Function to close the
+ * @param {function(string):Promise} closeDialog Function to close the
  *     dialog.
  * @param {boolean} useBrowserOpen Whether to launch the select file dialog via
  *     a browser OpenFile() call.
@@ -350,9 +350,9 @@
  *
  * @param {?string} initialRoot Root path to be used as a default current
  *     directory during initialization. Can be null, for no default path.
- * @param {!Array<TestEntryInfo>>} initialLocalEntries List of initial
+ * @param {!Array<TestEntryInfo>} initialLocalEntries List of initial
  *     entries to load in Downloads (defaults to a basic entry set).
- * @param {!Array<TestEntryInfo>>} initialDriveEntries List of initial
+ * @param {!Array<TestEntryInfo>} initialDriveEntries List of initial
  *     entries to load in Google Drive (defaults to a basic entry set).
  * @param {Object} appState App state to be passed with on opening the Files
  *     app.
@@ -379,7 +379,7 @@
 
 /**
  * Returns the name of the given file list entry.
- * @param {Array<string>} file An entry in a file list.
+ * @param {Array<string>} fileListEntry An entry in a file list.
  * @return {string} Name of the file.
  */
 function getFileName(fileListEntry) {
@@ -388,7 +388,7 @@
 
 /**
  * Returns the size of the given file list entry.
- * @param {Array<string>} An entry in a file list.
+ * @param {Array<string>} fileListEntry An entry in a file list.
  * @return {string} Size of the file.
  */
 function getFileSize(fileListEntry) {
@@ -397,7 +397,7 @@
 
 /**
  * Returns the type of the given file list entry.
- * @param {Array<string>} An entry in a file list.
+ * @param {Array<string>} fileListEntry An entry in a file list.
  * @return {string} Type of the file.
  */
 function getFileType(fileListEntry) {
@@ -473,7 +473,7 @@
     },
     // Request the test case name.
     paths => {
-      const roots = JSON.parse(paths);
+      const roots = /** @type {getRootPathsResult} */ (JSON.parse(paths));
       RootPath.DOWNLOADS = roots.downloads;
       RootPath.DRIVE = roots.drive;
       RootPath.ANDROID_FILES = roots.android_files;
@@ -555,7 +555,8 @@
  *     /My files/Downloads/photos to item that should navigate to.
  * @param {string=} shortcutToPath For shortcuts it navigates to a different
  *   breadcrumbs path, like /My Drive/ShortcutName.
- *   @return {string} the final selector used to click on the desired tree item.
+ *   @return {!Promise<string>} the final selector used to click on the desired
+ * tree item.
  */
 async function navigateWithDirectoryTree(
     appId, breadcrumbsPath, shortcutToPath) {
@@ -603,7 +604,7 @@
 /**
  * Mounts crostini volume by clicking on the fake crostini root.
  * @param {string} appId Files app windowId.
- * @param {!Array<TestEntryInfo>>} initialEntries List of initial entries to
+ * @param {!Array<TestEntryInfo>} initialEntries List of initial entries to
  *     load in Crostini (defaults to a basic entry set).
  */
 async function mountCrostini(appId, initialEntries = BASIC_CROSTINI_ENTRY_SET) {
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 b5803727..12fe08ea 100644
--- a/ui/file_manager/integration_tests/file_manager/quick_view.js
+++ b/ui/file_manager/integration_tests/file_manager/quick_view.js
@@ -1352,6 +1352,7 @@
       const getTextContent = 'window.document.body.textContent';
       const text = await remoteCall.callRemoteTestUtil(
           'deepExecuteScriptInWebView', appId, [webView, getTextContent]);
+      // Check: the content of ENTRIES.hello should be shown.
       if (!text || !text[0].includes('This is a sample file')) {
         return pending(caller, 'Waiting for <webview> content.');
       }
@@ -1367,6 +1368,7 @@
       const getTextContent = 'window.document.body.textContent';
       const text = await remoteCall.callRemoteTestUtil(
           'deepExecuteScriptInWebView', appId, [webView, getTextContent]);
+      // Check: the content of ENTRIES.tallText should be shown.
       if (!text || !text[0].includes('42 tall text')) {
         return pending(caller, 'Waiting for <webview> content.');
       }
@@ -1450,6 +1452,7 @@
       const getTextContent = 'window.document.body.textContent';
       const text = await remoteCall.callRemoteTestUtil(
           'deepExecuteScriptInWebView', appId, [webView, getTextContent]);
+      // Check: the content of ENTRIES.hello should be shown.
       if (!text || !text[0].includes('This is a sample file')) {
         return pending(caller, 'Waiting for <webview> content.');
       }
@@ -1465,6 +1468,7 @@
       const getTextContent = 'window.document.body.textContent';
       const text = await remoteCall.callRemoteTestUtil(
           'deepExecuteScriptInWebView', appId, [webView, getTextContent]);
+      // Check: the content of ENTRIES.tallText should be shown.
       if (!text || !text[0].includes('42 tall text')) {
         return pending(caller, 'Waiting for <webview> content.');
       }
diff --git a/ui/file_manager/integration_tests/file_manager/tasks.js b/ui/file_manager/integration_tests/file_manager/tasks.js
index 48456fb..87fc6ba 100644
--- a/ui/file_manager/integration_tests/file_manager/tasks.js
+++ b/ui/file_manager/integration_tests/file_manager/tasks.js
@@ -6,22 +6,24 @@
 
 /**
  * Fake task.
- *
- * @param {boolean} isDefault Whether the task is default or not.
- * @param {string} taskId Task ID.
- * @param {string} title Title of the task.
- * @param {boolean=} opt_isGenericFileHandler Whether the task is a generic
- *     file handler.
- * @constructor
  */
-function FakeTask(isDefault, taskId, title, opt_isGenericFileHandler) {
-  this.driveApp = false;
-  this.iconUrl = 'chrome://theme/IDR_DEFAULT_FAVICON';  // Dummy icon
-  this.isDefault = isDefault;
-  this.taskId = taskId;
-  this.title = title;
-  this.isGenericFileHandler = opt_isGenericFileHandler || false;
-  Object.freeze(this);
+class FakeTask {
+  /**
+   * @param {boolean} isDefault Whether the task is default or not.
+   * @param {string} taskId Task ID.
+   * @param {string} title Title of the task.
+   * @param {boolean=} opt_isGenericFileHandler Whether the task is a generic
+   *     file handler.
+   */
+  constructor(isDefault, taskId, title, opt_isGenericFileHandler) {
+    this.driveApp = false;
+    this.iconUrl = 'chrome://theme/IDR_DEFAULT_FAVICON';  // Dummy icon
+    this.isDefault = isDefault;
+    this.taskId = taskId;
+    this.title = title;
+    this.isGenericFileHandler = opt_isGenericFileHandler || false;
+    Object.freeze(this);
+  }
 }
 
 /**
diff --git a/ui/file_manager/integration_tests/remote_call.js b/ui/file_manager/integration_tests/remote_call.js
index 3e33256..479ae797 100644
--- a/ui/file_manager/integration_tests/remote_call.js
+++ b/ui/file_manager/integration_tests/remote_call.js
@@ -21,722 +21,700 @@
 
 /**
  * Class to manipulate the window in the remote extension.
- *
- * @param {string} extensionId ID of extension to be manipulated.
- * @constructor
  */
-function RemoteCall(extensionId) {
-  this.extensionId_ = extensionId;
+class RemoteCall {
+  /**
+   * @param {string} extensionId ID of extension to be manipulated.
+   */
+  constructor(extensionId) {
+    this.extensionId_ = extensionId;
+
+    /**
+     * Tristate holding the cached result of isStepByStepEnabled_().
+     * @type {?boolean}
+     */
+    this.cachedStepByStepEnabled_ = null;
+  }
 
   /**
-   * Tristate holding the cached result of isStepByStepEnabled_().
-   * @type {?boolean}
+   * Checks whether step by step tests are enabled or not.
+   * @private
+   * @return {!Promise<boolean>}
    */
-  this.cachedStepByStepEnabled_ = null;
-}
-
-/**
- * Checks whether step by step tests are enabled or not.
- * @private
- * @return {!Promise<boolean>}
- */
-RemoteCall.prototype.isStepByStepEnabled_ = async function() {
-  if (this.cachedStepByStepEnabled_ === null) {
-    this.cachedStepByStepEnabled_ = await new Promise((fulfill) => {
-      chrome.commandLinePrivate.hasSwitch(
-          'enable-file-manager-step-by-step-tests', fulfill);
-    });
-  }
-  return this.cachedStepByStepEnabled_;
-};
-
-/**
- * Calls a remote test util in the Files app's extension. See:
- * registerRemoteTestUtils in test_util_base.js.
- *
- * @param {string} func Function name.
- * @param {?string} appId App window Id or null for functions not requiring a
- *     window.
- * @param {Array<*>} args Array of arguments.
- * @param {function(*)=} opt_callback Callback handling the function's result.
- * @return {!Promise} Promise to be fulfilled with the result of the remote
- *     utility.
- */
-RemoteCall.prototype.callRemoteTestUtil =
-    async function(func, appId, args, opt_callback) {
-  const stepByStep = await this.isStepByStepEnabled_();
-  let finishCurrentStep;
-  if (stepByStep) {
-    while (window.currentStep) {
-      await window.currentStep;
+  async isStepByStepEnabled_() {
+    if (this.cachedStepByStepEnabled_ === null) {
+      this.cachedStepByStepEnabled_ = await new Promise((fulfill) => {
+        chrome.commandLinePrivate.hasSwitch(
+            'enable-file-manager-step-by-step-tests', fulfill);
+      });
     }
-    window.currentStep = new Promise(resolve => {
-      finishCurrentStep = () => {
-        window.currentStep = null;
-        resolve();
-      };
-    });
-    console.info('Executing: ' + func + ' on ' + appId + ' with args: ');
-    console.info(args);
-    if (window.autostep !== true) {
-      await new Promise((onFulfilled) => {
-        console.info('Type step() to continue...');
-        /** @type {?function()} */
-        window.step = function() {
-          window.step = null;
-          onFulfilled();
+    return this.cachedStepByStepEnabled_;
+  }
+
+  /**
+   * Calls a remote test util in the Files app's extension. See:
+   * registerRemoteTestUtils in test_util_base.js.
+   *
+   * @param {string} func Function name.
+   * @param {?string} appId App window Id or null for functions not requiring a
+   *     window.
+   * @param {?Array<*>=} args Array of arguments.
+   * @param {function(*)=} opt_callback Callback handling the function's result.
+   * @return {!Promise} Promise to be fulfilled with the result of the remote
+   *     utility.
+   */
+  async callRemoteTestUtil(func, appId, args, opt_callback) {
+    const stepByStep = await this.isStepByStepEnabled_();
+    let finishCurrentStep;
+    if (stepByStep) {
+      while (window.currentStep) {
+        await window.currentStep;
+      }
+      window.currentStep = new Promise(resolve => {
+        finishCurrentStep = () => {
+          window.currentStep = null;
+          resolve();
         };
       });
-    } else {
-      console.info('Auto calling step() ...');
-    }
-  }
-  const response = await new Promise((onFulfilled) => {
-    chrome.runtime.sendMessage(
-        this.extensionId_, {func: func, appId: appId, args: args}, {},
-        onFulfilled);
-  });
-
-  if (stepByStep) {
-    console.info('Returned value:');
-    console.info(JSON.stringify(response));
-    finishCurrentStep();
-  }
-  if (opt_callback) {
-    opt_callback(response);
-  }
-  return response;
-};
-
-/**
- * Waits until a window having the given ID prefix appears.
- * @param {string} windowIdPrefix ID prefix of the requested window.
- * @return {Promise} promise Promise to be fulfilled with a found window's ID.
- */
-RemoteCall.prototype.waitForWindow = function(windowIdPrefix) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const windows = await this.callRemoteTestUtil('getWindows', null, []);
-    for (const id in windows) {
-      if (id.indexOf(windowIdPrefix) === 0) {
-        return id;
+      console.info('Executing: ' + func + ' on ' + appId + ' with args: ');
+      console.info(args);
+      if (window.autostep !== true) {
+        await new Promise((onFulfilled) => {
+          console.info('Type step() to continue...');
+          /** @type {?function()} */
+          window.step = function() {
+            window.step = null;
+            onFulfilled();
+          };
+        });
+      } else {
+        console.info('Auto calling step() ...');
       }
     }
-    return pending(
-        caller, 'Window with the prefix %s is not found.', windowIdPrefix);
-  });
-};
+    const response = await new Promise((onFulfilled) => {
+      chrome.runtime.sendMessage(
+          this.extensionId_, {func: func, appId: appId, args: args}, {},
+          onFulfilled);
+    });
 
-/**
- * Closes a window and waits until the window is closed.
- *
- * @param {string} appId App window Id.
- * @return {Promise} promise Promise to be fulfilled with the result (true:
- *     success, false: failed).
- */
-RemoteCall.prototype.closeWindowAndWait = async function(appId) {
-  const caller = getCaller();
-
-  // Closes the window.
-  if (!await this.callRemoteTestUtil('closeWindow', null, [appId])) {
-    // Returns false when the closing is failed.
-    return false;
+    if (stepByStep) {
+      console.info('Returned value:');
+      console.info(JSON.stringify(response));
+      finishCurrentStep();
+    }
+    if (opt_callback) {
+      opt_callback(response);
+    }
+    return response;
   }
 
-  return repeatUntil(async () => {
-    const windows = await this.callRemoteTestUtil('getWindows', null, []);
-    for (const id in windows) {
-      if (id === appId) {
-        // Window is still available. Continues waiting.
-        return pending(
-            caller, 'Window with the prefix %s is not found.', appId);
-      }
-    }
-    // Window is not available. Closing is done successfully.
-    return true;
-  });
-};
-
-/**
- * Waits until the window turns to the given size.
- * @param {string} appId App window Id.
- * @param {number} width Requested width in pixels.
- * @param {number} height Requested height in pixels.
- */
-RemoteCall.prototype.waitForWindowGeometry = function(appId, width, height) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const windows = await this.callRemoteTestUtil('getWindows', null, []);
-    if (!windows[appId]) {
-      return pending(caller, 'Window %s is not found.', appId);
-    }
-    if (windows[appId].outerWidth !== width ||
-        windows[appId].outerHeight !== height) {
-      return pending(
-          caller, 'Expected window size is %j, but it is %j',
-          {width: width, height: height}, windows[appId]);
-    }
-  });
-};
-
-/**
- * Waits for the specified element appearing in the DOM.
- * @param {string} appId App window Id.
- * @param {string|!Array<string>} query Query to specify the element.
- *     If query is an array, |query[0]| specifies the first
- *     element(s), |query[1]| specifies elements inside the shadow DOM of
- *     the first element, and so on.
- * @return {Promise} Promise to be fulfilled when the element appears.
- */
-RemoteCall.prototype.waitForElement = function(appId, query) {
-  return this.waitForElementStyles(appId, query, []);
-};
-
-/**
- * Waits for the specified element appearing in the DOM.
- * @param {string} appId App window Id.
- * @param {string|!Array<string>} query Query to specify the element.
- *     If query is an array, |query[0]| specifies the first
- *     element(s), |query[1]| specifies elements inside the shadow DOM of
- *     the first element, and so on.
- * @param {!Array<string>} styleNames List of CSS property name to be
- *     obtained. NOTE: Causes element style re-calculation.
- *     TODO(lucmult): Add a typedef for the returned object.
- * @return {Promise} Promise to be fulfilled when the element appears.
- */
-RemoteCall.prototype.waitForElementStyles = function(appId, query, styleNames) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const elements = await this.callRemoteTestUtil(
-        'deepQueryAllElements', appId, [query, styleNames]);
-    if (elements.length > 0) {
-      return elements[0];
-    }
-    return pending(caller, 'Element %s is not found.', query);
-  });
-};
-
-/**
- * Waits for a remote test function to return a specific result.
- *
- * @param {string} funcName Name of remote test function to be executed.
- * @param {string} appId App window Id.
- * @param {function(Object): boolean|Object} expectedResult An value to be
- *     checked against the return value of |funcName| or a callback that
- *     receives the return value of |funcName| and returns true if the result
- *     is the expected value.
- * @param {?Array<*>} args Arguments to be provided to |funcName| when executing
- *     it.
- * @return {Promise} Promise to be fulfilled when the |expectedResult| is
- *     returned from |funcName| execution.
- */
-RemoteCall.prototype.waitFor = function(funcName, appId, expectedResult, args) {
-  const caller = getCaller();
-  args = args || [];
-  return repeatUntil(async () => {
-    const result = await this.callRemoteTestUtil(funcName, appId, args);
-    if (typeof expectedResult === 'function' && expectedResult(result)) {
-      return result;
-    }
-    if (expectedResult === result) {
-      return result;
-    }
-    const msg = 'waitFor: Waiting for ' +
-        `${funcName} to return ${expectedResult}, ` +
-        `but got ${JSON.stringify(result)}.`;
-    return pending(caller, msg);
-  });
-};
-
-/**
- * Waits for the specified element leaving from the DOM.
- * @param {string} appId App window Id.
- * @param {string|!Array<string>} query Query to specify the element.
- *     If query is an array, |query[0]| specifies the first
- *     element(s), |query[1]| specifies elements inside the shadow DOM of
- *     the first element, and so on.
- * @return {Promise} Promise to be fulfilled when the element is lost.
- */
-RemoteCall.prototype.waitForElementLost = function(appId, query) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const elements =
-        await this.callRemoteTestUtil('deepQueryAllElements', appId, [query]);
-    if (elements.length > 0) {
-      return pending(caller, 'Elements %j is still exists.', elements);
-    }
-    return true;
-  });
-};
-
-/**
- * Sends a fake key down event.
- * @param {string} appId App window Id.
- * @param {string|!Array<string>} query Query to specify the element.
- *     If query is an array, |query[0]| specifies the first
- *     element(s), |query[1]| specifies elements inside the shadow DOM of
- *     the first element, and so on.
- * @param {string} key DOM UI Events Key value.
- * @param {boolean} ctrlKey Control key flag.
- * @param {boolean} shiftKey Shift key flag.
- * @param {boolean} altKey Alt key flag.
- * @return {Promise} Promise to be fulfilled or rejected depending on the
- *     result.
- */
-RemoteCall.prototype.fakeKeyDown =
-    async function(appId, query, key, ctrlKey, shiftKey, altKey) {
-  const result = await this.callRemoteTestUtil(
-      'fakeKeyDown', appId, [query, key, ctrlKey, shiftKey, altKey]);
-  if (result) {
-    return true;
-  } else {
-    throw new Error('Fail to fake key down.');
-  }
-};
-
-/**
- * Gets file entries just under the volume.
- *
- * @param {VolumeManagerCommon.VolumeType} volumeType Volume type.
- * @param {Array<string>} names File name list.
- * @return {Promise} Promise to be fulfilled with file entries or rejected
- *     depending on the result.
- */
-RemoteCall.prototype.getFilesUnderVolume = function(volumeType, names) {
-  return this.callRemoteTestUtil(
-      'getFilesUnderVolume', null, [volumeType, names]);
-};
-
-/**
- * Waits for a single file.
- * @param {VolumeManagerCommon.VolumeType} volumeType Volume type.
- * @param {string} name File name.
- * @return {!Promise} Promise to be fulfilled when the file had found.
- */
-RemoteCall.prototype.waitForAFile = function(volumeType, name) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    if ((await this.getFilesUnderVolume(volumeType, [name])).length === 1) {
-      return true;
-    }
-    return pending(caller, '"' + name + '" is not found.');
-  });
-};
-
-/**
- * Shorthand for clicking an element.
- * @param {string} appId App window Id.
- * @param {string|!Array<string>} query Query to specify the element.
- *     If query is an array, |query[0]| specifies the first
- *     element(s), |query[1]| specifies elements inside the shadow DOM of
- *     the first element, and so on.
- * @param {{shift: boolean, alt: boolean, ctrl: boolean}=} opt_keyModifiers
- *     Object
- * @return {Promise} Promise to be fulfilled with the clicked element.
- */
-RemoteCall.prototype.waitAndClickElement =
-    async function(appId, query, opt_keyModifiers) {
-  const element = await this.waitForElement(appId, query);
-  const result = await this.callRemoteTestUtil(
-      'fakeMouseClick', appId, [query, opt_keyModifiers]);
-  chrome.test.assertTrue(result, 'mouse click failed.');
-  return element;
-};
-
-/**
- * Shorthand for right-clicking an element.
- * @param {string} appId App window Id.
- * @param {string|!Array<string>} query Query to specify the element.
- *     If query is an array, |query[0]| specifies the first
- *     element(s), |query[1]| specifies elements inside the shadow DOM of
- *     the first element, and so on.
- * @param {{shift: boolean, alt: boolean, ctrl: boolean}=} opt_keyModifiers
- *     Object
- * @return {Promise} Promise to be fulfilled with the clicked element.
- */
-RemoteCall.prototype.waitAndRightClick =
-    async function(appId, query, opt_keyModifiers) {
-  const element = await this.waitForElement(appId, query);
-  const result = await this.callRemoteTestUtil(
-      'fakeMouseRightClick', appId, [query, opt_keyModifiers]);
-  chrome.test.assertTrue(result, 'mouse right-click failed.');
-  return element;
-};
-
-/**
- * Shorthand for focusing an element.
- * @param {string} appId App window Id.
- * @param {!Array<string>} query Query to specify the element to be focused.
- * @return {Promise} Promise to be fulfilled with the focused element.
- */
-RemoteCall.prototype.focus = async function(appId, query) {
-  const element = await this.waitForElement(appId, query);
-  const result = await this.callRemoteTestUtil('focus', appId, query);
-  chrome.test.assertTrue(result, 'focus failed.');
-  return element;
-};
-
-/**
- * Simulate Click in the UI in the middle of the element.
- * @param{string} appId App window ID contains the element. NOTE: The click is
- * simulated on most recent window in the window system.
- * @param {string|!Array<string>} query Query to the element to be clicked.
- * @return {!Promise} A promise fulfilled after the click event.
- */
-RemoteCall.prototype.simulateUiClick = async function(appId, query) {
-  const element = /* @type {!Object} */ (
-      await this.waitForElementStyles(appId, query, ['display']));
-  chrome.test.assertTrue(!!element, 'element for simulateUiClick not found');
-
-  // Find the middle of the element.
-  const x =
-      Math.floor(element['renderedLeft'] + (element['renderedWidth'] / 2));
-  const y =
-      Math.floor(element['renderedTop'] + (element['renderedHeight'] / 2));
-
-  return sendTestMessage({name: 'simulateClick', 'clickX': x, 'clickY': y});
-};
-
-/**
- * Class to manipulate the window in the remote extension.
- *
- * @extends {RemoteCall}
- * @constructor
- */
-function RemoteCallFilesApp() {
-  RemoteCall.apply(this, arguments);
-}
-
-RemoteCallFilesApp.prototype.__proto__ = RemoteCall.prototype;
-
-/**
- * Waits for the file list turns to the given contents.
- * @param {string} appId App window Id.
- * @param {Array<Array<string>>} expected Expected contents of file list.
- * @param {{orderCheck:?boolean, ignoreLastModifiedTime:?boolean}=} opt_options
- *     Options of the comparison. If orderCheck is true, it also compares the
- *     order of files. If ignoreLastModifiedTime is true, it compares the file
- *     without its last modified time.
- * @return {Promise} Promise to be fulfilled when the file list turns to the
- *     given contents.
- */
-RemoteCallFilesApp.prototype.waitForFiles = function(
-    appId, expected, opt_options) {
-  const options = opt_options || {};
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const files = await this.callRemoteTestUtil('getFileList', appId, []);
-    if (!options.orderCheck) {
-      files.sort();
-      expected.sort();
-    }
-    for (let i = 0; i < Math.min(files.length, expected.length); i++) {
-      // Change the value received from the UI to match when comparing.
-      if (options.ignoreFileSize) {
-        files[i][1] = expected[i][1];
-      }
-      if (options.ignoreLastModifiedTime) {
-        if (expected[i].length < 4) {
-          // expected sometimes doesn't include the modified time at all, so
-          // just remove from the data from UI.
-          files[i].splice(3, 1);
-        } else {
-          files[i][3] = expected[i][3];
+  /**
+   * Waits until a window having the given ID prefix appears.
+   * @param {string} windowIdPrefix ID prefix of the requested window.
+   * @return {Promise} promise Promise to be fulfilled with a found window's ID.
+   */
+  waitForWindow(windowIdPrefix) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const windows = await this.callRemoteTestUtil('getWindows', null, []);
+      for (const id in windows) {
+        if (id.indexOf(windowIdPrefix) === 0) {
+          return id;
         }
       }
-    }
-    if (!chrome.test.checkDeepEq(expected, files)) {
       return pending(
-          caller, 'waitForFiles: expected: %j actual %j.', expected, files);
+          caller, 'Window with the prefix %s is not found.', windowIdPrefix);
+    });
+  }
+
+  /**
+   * Closes a window and waits until the window is closed.
+   *
+   * @param {string} appId App window Id.
+   * @return {Promise} promise Promise to be fulfilled with the result (true:
+   *     success, false: failed).
+   */
+  async closeWindowAndWait(appId) {
+    const caller = getCaller();
+
+    // Closes the window.
+    if (!await this.callRemoteTestUtil('closeWindow', null, [appId])) {
+      // Returns false when the closing is failed.
+      return false;
     }
-  });
-};
 
-/**
- * Waits until the number of files in the file list is changed from the given
- * number.
- * TODO(hirono): Remove the function.
- *
- * @param {string} appId App window Id.
- * @param {number} lengthBefore Number of items visible before.
- * @return {Promise} Promise to be fulfilled with the contents of files.
- */
-RemoteCallFilesApp.prototype.waitForFileListChange = function(
-    appId, lengthBefore) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const files = await this.callRemoteTestUtil('getFileList', appId, []);
-    files.sort();
-
-    const notReadyRows =
-        files.filter((row) => row.filter((cell) => cell == '...').length);
-
-    if (notReadyRows.length === 0 && files.length !== lengthBefore &&
-        files.length !== 0) {
-      return files;
-    } else {
-      return pending(
-          caller, 'The number of file is %d. Not changed.', lengthBefore);
-    }
-  });
-};
-
-/**
- * Waits until the given taskId appears in the executed task list.
- * @param {string} appId App window Id.
- * @param {string} taskId Task ID to watch.
- * @return {Promise} Promise to be fulfilled when the task appears in the
- *     executed task list.
- */
-RemoteCallFilesApp.prototype.waitUntilTaskExecutes = function(appId, taskId) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const executedTasks =
-        await this.callRemoteTestUtil('getExecutedTasks', appId, []);
-    if (executedTasks.indexOf(taskId) === -1) {
-      return pending(caller, 'Executed task is %j', executedTasks);
-    }
-  });
-};
-
-/**
- * Check if the next tabforcus'd element has the given ID or not.
- * @param {string} appId App window Id.
- * @param {string} elementId String of 'id' attribute which the next tabfocus'd
- *     element should have.
- * @return {Promise} Promise to be fulfilled with the result.
- */
-RemoteCallFilesApp.prototype.checkNextTabFocus =
-    async function(appId, elementId) {
-  const result = await sendTestMessage({name: 'dispatchTabKey'});
-  chrome.test.assertEq(result, 'tabKeyDispatched', 'Tab key dispatch failure');
-
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const element =
-        await this.callRemoteTestUtil('getActiveElement', appId, []);
-    if (element && element.attributes['id'] === elementId) {
+    return repeatUntil(async () => {
+      const windows = await this.callRemoteTestUtil('getWindows', null, []);
+      for (const id in windows) {
+        if (id === appId) {
+          // Window is still available. Continues waiting.
+          return pending(
+              caller, 'Window with the prefix %s is not found.', appId);
+        }
+      }
+      // Window is not available. Closing is done successfully.
       return true;
+    });
+  }
+
+  /**
+   * Waits until the window turns to the given size.
+   * @param {string} appId App window Id.
+   * @param {number} width Requested width in pixels.
+   * @param {number} height Requested height in pixels.
+   */
+  waitForWindowGeometry(appId, width, height) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const windows = await this.callRemoteTestUtil('getWindows', null, []);
+      if (!windows[appId]) {
+        return pending(caller, 'Window %s is not found.', appId);
+      }
+      if (windows[appId].outerWidth !== width ||
+          windows[appId].outerHeight !== height) {
+        return pending(
+            caller, 'Expected window size is %j, but it is %j',
+            {width: width, height: height}, windows[appId]);
+      }
+    });
+  }
+
+  /**
+   * Waits for the specified element appearing in the DOM.
+   * @param {string} appId App window Id.
+   * @param {string|!Array<string>} query Query to specify the element.
+   *     If query is an array, |query[0]| specifies the first
+   *     element(s), |query[1]| specifies elements inside the shadow DOM of
+   *     the first element, and so on.
+   * @return {Promise} Promise to be fulfilled when the element appears.
+   */
+  waitForElement(appId, query) {
+    return this.waitForElementStyles(appId, query, []);
+  }
+
+  /**
+   * Waits for the specified element appearing in the DOM.
+   * @param {string} appId App window Id.
+   * @param {string|!Array<string>} query Query to specify the element.
+   *     If query is an array, |query[0]| specifies the first
+   *     element(s), |query[1]| specifies elements inside the shadow DOM of
+   *     the first element, and so on.
+   * @param {!Array<string>} styleNames List of CSS property name to be
+   *     obtained. NOTE: Causes element style re-calculation.
+   *     TODO(lucmult): Add a typedef for the returned object.
+   * @return {Promise} Promise to be fulfilled when the element appears.
+   */
+  waitForElementStyles(appId, query, styleNames) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const elements = await this.callRemoteTestUtil(
+          'deepQueryAllElements', appId, [query, styleNames]);
+      if (elements.length > 0) {
+        return elements[0];
+      }
+      return pending(caller, 'Element %s is not found.', query);
+    });
+  }
+
+  /**
+   * Waits for a remote test function to return a specific result.
+   *
+   * @param {string} funcName Name of remote test function to be executed.
+   * @param {string} appId App window Id.
+   * @param {function(Object):boolean|boolean|Object} expectedResult An value to
+   *     be checked against the return value of |funcName| or a callback that
+   *     receives the return value of |funcName| and returns true if the result
+   *     is the expected value.
+   * @param {?Array<*>=} args Arguments to be provided to |funcName| when
+   *     executing it.
+   * @return {Promise} Promise to be fulfilled when the |expectedResult| is
+   *     returned from |funcName| execution.
+   */
+  waitFor(funcName, appId, expectedResult, args) {
+    const caller = getCaller();
+    args = args || [];
+    return repeatUntil(async () => {
+      const result = await this.callRemoteTestUtil(funcName, appId, args);
+      if (typeof expectedResult === 'function' && expectedResult(result)) {
+        return result;
+      }
+      if (expectedResult === result) {
+        return result;
+      }
+      const msg = 'waitFor: Waiting for ' +
+          `${funcName} to return ${expectedResult}, ` +
+          `but got ${JSON.stringify(result)}.`;
+      return pending(caller, msg);
+    });
+  }
+
+  /**
+   * Waits for the specified element leaving from the DOM.
+   * @param {string} appId App window Id.
+   * @param {string|!Array<string>} query Query to specify the element.
+   *     If query is an array, |query[0]| specifies the first
+   *     element(s), |query[1]| specifies elements inside the shadow DOM of
+   *     the first element, and so on.
+   * @return {Promise} Promise to be fulfilled when the element is lost.
+   */
+  waitForElementLost(appId, query) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const elements =
+          await this.callRemoteTestUtil('deepQueryAllElements', appId, [query]);
+      if (elements.length > 0) {
+        return pending(caller, 'Elements %j is still exists.', elements);
+      }
+      return true;
+    });
+  }
+
+  /**
+   * Sends a fake key down event.
+   * @param {string} appId App window Id.
+   * @param {string|!Array<string>} query Query to specify the element.
+   *     If query is an array, |query[0]| specifies the first
+   *     element(s), |query[1]| specifies elements inside the shadow DOM of
+   *     the first element, and so on.
+   * @param {string} key DOM UI Events Key value.
+   * @param {boolean} ctrlKey Control key flag.
+   * @param {boolean} shiftKey Shift key flag.
+   * @param {boolean} altKey Alt key flag.
+   * @return {Promise} Promise to be fulfilled or rejected depending on the
+   *     result.
+   */
+  async fakeKeyDown(appId, query, key, ctrlKey, shiftKey, altKey) {
+    const result = await this.callRemoteTestUtil(
+        'fakeKeyDown', appId, [query, key, ctrlKey, shiftKey, altKey]);
+    if (result) {
+      return true;
+    } else {
+      throw new Error('Fail to fake key down.');
     }
-    return pending(
-        caller,
-        'Waiting for active element with id: "' + elementId +
-            '", but current is: "' + element.attributes['id'] + '"');
-  });
-};
-
-/**
- * Waits until the current directory is changed.
- * @param {string} appId App window Id.
- * @param {string} expectedPath Path to be changed to.
- * @return {Promise} Promise to be fulfilled when the current directory is
- *     changed to expectedPath.
- */
-RemoteCallFilesApp.prototype.waitUntilCurrentDirectoryIsChanged = function(
-    appId, expectedPath) {
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const path = await this.callRemoteTestUtil('getBreadcrumbPath', appId, []);
-    if (path !== expectedPath) {
-      return pending(caller, 'Expected path is %s got %s', expectedPath, path);
-    }
-  });
-};
-
-/**
- * Expands tree item.
- * @param {string} appId App window Id.
- * @param {string} query Query to the <tree-item> element.
- */
-RemoteCallFilesApp.prototype.expandTreeItemInDirectoryTree =
-    async function(appId, query) {
-  await this.waitForElement(appId, query);
-  const elements = await this.callRemoteTestUtil(
-      'queryAllElements', appId, [`${query}[expanded]`]);
-  // If it's already expanded just set the focus on directory tree.
-  if (elements.length > 0) {
-    return this.callRemoteTestUtil('focus', appId, ['#directory-tree']);
   }
 
-  // We must wait until <tree-item> has attribute [has-children=true]
-  // otherwise it won't expand. We must also to account for the case
-  // :not([expanded]) to ensure it has NOT been expanded by some async
-  // operation since the [expanded] checks above.
-  const expandIcon =
-      query + ':not([expanded]) > .tree-row[has-children=true] > .expand-icon';
-  await this.waitAndClickElement(appId, expandIcon);
-  // Wait for the expansion to finish.
-  await this.waitForElement(appId, query + '[expanded]');
-  // Force the focus on directory tree.
-  await this.callRemoteTestUtil('focus', appId, ['#directory-tree']);
-};
-
-/**
- * Expands directory tree for specified path.
- */
-RemoteCallFilesApp.prototype.expandDirectoryTreeFor = function(
-    appId, path, volumeType = 'downloads') {
-  return this.expandDirectoryTreeForInternal_(
-      appId, path.split('/'), 0, volumeType);
-};
-
-/**
- * Internal function for expanding directory tree for specified path.
- */
-RemoteCallFilesApp.prototype.expandDirectoryTreeForInternal_ =
-    async function(appId, components, index, volumeType) {
-  if (index >= components.length - 1) {
-    return;
+  /**
+   * Gets file entries just under the volume.
+   *
+   * @param {VolumeManagerCommon.VolumeType} volumeType Volume type.
+   * @param {Array<string>} names File name list.
+   * @return {Promise} Promise to be fulfilled with file entries or rejected
+   *     depending on the result.
+   */
+  getFilesUnderVolume(volumeType, names) {
+    return this.callRemoteTestUtil(
+        'getFilesUnderVolume', null, [volumeType, names]);
   }
 
-  // First time we should expand the root/volume first.
-  if (index === 0) {
-    await this.expandVolumeInDirectoryTree(appId, volumeType);
-    return this.expandDirectoryTreeForInternal_(
-        appId, components, index + 1, volumeType);
-  }
-  const path = '/' + components.slice(1, index + 1).join('/');
-  await this.expandTreeItemInDirectoryTree(
-      appId, `[full-path-for-testing="${path}"]`);
-  await this.expandDirectoryTreeForInternal_(
-      appId, components, index + 1, volumeType);
-};
-
-/**
- * Expands download volume in directory tree.
- */
-RemoteCallFilesApp.prototype.expandDownloadVolumeInDirectoryTree = function(
-    appId) {
-  return this.expandVolumeInDirectoryTree(appId, 'downloads');
-};
-
-/**
- * Expands download volume in directory tree.
- */
-RemoteCallFilesApp.prototype.expandVolumeInDirectoryTree = function(
-    appId, volumeType) {
-  return this.expandTreeItemInDirectoryTree(
-      appId, `[volume-type-for-testing="${volumeType}"]`);
-};
-
-/**
- * Navigates to specified directory on the specified volume by using directory
- * tree.
- * DEPRECATED: Use background.js:navigateWithDirectoryTree instead
- * crbug.com/996626.
- */
-RemoteCallFilesApp.prototype.navigateWithDirectoryTree =
-    async function(appId, path, rootLabel, volumeType = 'downloads') {
-  await this.expandDirectoryTreeFor(appId, path, volumeType);
-
-  // Select target path.
-  await this.callRemoteTestUtil(
-      'fakeMouseClick', appId, [`[full-path-for-testing="${path}"]`]);
-
-  // Entries within Drive starts with /root/ but it isn't displayed in the
-  // breadcrubms used by waitUntilCurrentDirectoryIsChanged.
-  path = path.replace(/^\/root/, '')
-             .replace(/^\/team_drives/, '')
-             .replace(/^\/Computers/, '');
-
-  // TODO(lucmult): Remove this once MyFilesVolume is rolled out.
-  // Remove /Downloads duplication when MyFilesVolume is enabled.
-  if (volumeType == 'downloads' && path.startsWith('/Downloads') &&
-      rootLabel.endsWith('/Downloads')) {
-    rootLabel = rootLabel.replace('/Downloads', '');
+  /**
+   * Waits for a single file.
+   * @param {VolumeManagerCommon.VolumeType} volumeType Volume type.
+   * @param {string} name File name.
+   * @return {!Promise} Promise to be fulfilled when the file had found.
+   */
+  waitForAFile(volumeType, name) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      if ((await this.getFilesUnderVolume(volumeType, [name])).length === 1) {
+        return true;
+      }
+      return pending(caller, '"' + name + '" is not found.');
+    });
   }
 
-  // Wait until the Files app is navigated to the path.
-  return this.waitUntilCurrentDirectoryIsChanged(appId, `/${rootLabel}${path}`);
-};
+  /**
+   * Shorthand for clicking an element.
+   * @param {string} appId App window Id.
+   * @param {string|!Array<string>} query Query to specify the element.
+   *     If query is an array, |query[0]| specifies the first
+   *     element(s), |query[1]| specifies elements inside the shadow DOM of
+   *     the first element, and so on.
+   * @param {{shift: boolean, alt: boolean, ctrl: boolean}=} opt_keyModifiers
+   *     Object
+   * @return {Promise} Promise to be fulfilled with the clicked element.
+   */
+  async waitAndClickElement(appId, query, opt_keyModifiers) {
+    const element = await this.waitForElement(appId, query);
+    const result = await this.callRemoteTestUtil(
+        'fakeMouseClick', appId, [query, opt_keyModifiers]);
+    chrome.test.assertTrue(result, 'mouse click failed.');
+    return element;
+  }
+
+  /**
+   * Shorthand for right-clicking an element.
+   * @param {string} appId App window Id.
+   * @param {string|!Array<string>} query Query to specify the element.
+   *     If query is an array, |query[0]| specifies the first
+   *     element(s), |query[1]| specifies elements inside the shadow DOM of
+   *     the first element, and so on.
+   * @param {{shift: boolean, alt: boolean, ctrl: boolean}=} opt_keyModifiers
+   *     Object
+   * @return {Promise} Promise to be fulfilled with the clicked element.
+   */
+  async waitAndRightClick(appId, query, opt_keyModifiers) {
+    const element = await this.waitForElement(appId, query);
+    const result = await this.callRemoteTestUtil(
+        'fakeMouseRightClick', appId, [query, opt_keyModifiers]);
+    chrome.test.assertTrue(result, 'mouse right-click failed.');
+    return element;
+  }
+
+  /**
+   * Shorthand for focusing an element.
+   * @param {string} appId App window Id.
+   * @param {!Array<string>} query Query to specify the element to be focused.
+   * @return {Promise} Promise to be fulfilled with the focused element.
+   */
+  async focus(appId, query) {
+    const element = await this.waitForElement(appId, query);
+    const result = await this.callRemoteTestUtil('focus', appId, query);
+    chrome.test.assertTrue(result, 'focus failed.');
+    return element;
+  }
+
+  /**
+   * Simulate Click in the UI in the middle of the element.
+   * @param{string} appId App window ID contains the element. NOTE: The click is
+   * simulated on most recent window in the window system.
+   * @param {string|!Array<string>} query Query to the element to be clicked.
+   * @return {!Promise} A promise fulfilled after the click event.
+   */
+  async simulateUiClick(appId, query) {
+    const element = /* @type {!Object} */ (
+        await this.waitForElementStyles(appId, query, ['display']));
+    chrome.test.assertTrue(!!element, 'element for simulateUiClick not found');
+
+    // Find the middle of the element.
+    const x =
+        Math.floor(element['renderedLeft'] + (element['renderedWidth'] / 2));
+    const y =
+        Math.floor(element['renderedTop'] + (element['renderedHeight'] / 2));
+
+    return sendTestMessage({name: 'simulateClick', 'clickX': x, 'clickY': y});
+  }
+}
 
 /**
  * Class to manipulate the window in the remote extension.
- *
- * @extends {RemoteCall}
- * @constructor
  */
-function RemoteCallGallery() {
-  RemoteCall.apply(this, arguments);
+class RemoteCallFilesApp extends RemoteCall {
+  /**
+   * Waits for the file list turns to the given contents.
+   * @param {string} appId App window Id.
+   * @param {Array<Array<string>>} expected Expected contents of file list.
+   * @param {{orderCheck:?boolean, ignoreLastModifiedTime:?boolean}=}
+   *     opt_options Options of the comparison. If orderCheck is true, it also
+   *     compares the order of files. If ignoreLastModifiedTime is true, it
+   *     compares the file without its last modified time.
+   * @return {Promise} Promise to be fulfilled when the file list turns to the
+   *     given contents.
+   */
+  waitForFiles(appId, expected, opt_options) {
+    const options = opt_options || {};
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const files = await this.callRemoteTestUtil('getFileList', appId, []);
+      if (!options.orderCheck) {
+        files.sort();
+        expected.sort();
+      }
+      for (let i = 0; i < Math.min(files.length, expected.length); i++) {
+        // Change the value received from the UI to match when comparing.
+        if (options.ignoreFileSize) {
+          files[i][1] = expected[i][1];
+        }
+        if (options.ignoreLastModifiedTime) {
+          if (expected[i].length < 4) {
+            // expected sometimes doesn't include the modified time at all, so
+            // just remove from the data from UI.
+            files[i].splice(3, 1);
+          } else {
+            files[i][3] = expected[i][3];
+          }
+        }
+      }
+      if (!chrome.test.checkDeepEq(expected, files)) {
+        return pending(
+            caller, 'waitForFiles: expected: %j actual %j.', expected, files);
+      }
+    });
+  }
+
+  /**
+   * Waits until the number of files in the file list is changed from the given
+   * number.
+   * TODO(hirono): Remove the function.
+   *
+   * @param {string} appId App window Id.
+   * @param {number} lengthBefore Number of items visible before.
+   * @return {Promise} Promise to be fulfilled with the contents of files.
+   */
+  waitForFileListChange(appId, lengthBefore) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const files = await this.callRemoteTestUtil('getFileList', appId, []);
+      files.sort();
+
+      const notReadyRows =
+          files.filter((row) => row.filter((cell) => cell == '...').length);
+
+      if (notReadyRows.length === 0 && files.length !== lengthBefore &&
+          files.length !== 0) {
+        return files;
+      } else {
+        return pending(
+            caller, 'The number of file is %d. Not changed.', lengthBefore);
+      }
+    });
+  }
+
+  /**
+   * Waits until the given taskId appears in the executed task list.
+   * @param {string} appId App window Id.
+   * @param {string} taskId Task ID to watch.
+   * @return {Promise} Promise to be fulfilled when the task appears in the
+   *     executed task list.
+   */
+  waitUntilTaskExecutes(appId, taskId) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const executedTasks =
+          await this.callRemoteTestUtil('getExecutedTasks', appId, []);
+      if (executedTasks.indexOf(taskId) === -1) {
+        return pending(caller, 'Executed task is %j', executedTasks);
+      }
+    });
+  }
+
+  /**
+   * Check if the next tabforcus'd element has the given ID or not.
+   * @param {string} appId App window Id.
+   * @param {string} elementId String of 'id' attribute which the next
+   *     tabfocus'd element should have.
+   * @return {Promise} Promise to be fulfilled with the result.
+   */
+  async checkNextTabFocus(appId, elementId) {
+    const result = await sendTestMessage({name: 'dispatchTabKey'});
+    chrome.test.assertEq(
+        result, 'tabKeyDispatched', 'Tab key dispatch failure');
+
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const element =
+          await this.callRemoteTestUtil('getActiveElement', appId, []);
+      if (element && element.attributes['id'] === elementId) {
+        return true;
+      }
+      return pending(
+          caller,
+          'Waiting for active element with id: "' + elementId +
+              '", but current is: "' + element.attributes['id'] + '"');
+    });
+  }
+
+  /**
+   * Waits until the current directory is changed.
+   * @param {string} appId App window Id.
+   * @param {string} expectedPath Path to be changed to.
+   * @return {Promise} Promise to be fulfilled when the current directory is
+   *     changed to expectedPath.
+   */
+  waitUntilCurrentDirectoryIsChanged(appId, expectedPath) {
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const path =
+          await this.callRemoteTestUtil('getBreadcrumbPath', appId, []);
+      if (path !== expectedPath) {
+        return pending(
+            caller, 'Expected path is %s got %s', expectedPath, path);
+      }
+    });
+  }
+
+  /**
+   * Expands tree item.
+   * @param {string} appId App window Id.
+   * @param {string} query Query to the <tree-item> element.
+   */
+  async expandTreeItemInDirectoryTree(appId, query) {
+    await this.waitForElement(appId, query);
+    const elements = await this.callRemoteTestUtil(
+        'queryAllElements', appId, [`${query}[expanded]`]);
+    // If it's already expanded just set the focus on directory tree.
+    if (elements.length > 0) {
+      return this.callRemoteTestUtil('focus', appId, ['#directory-tree']);
+    }
+
+    // We must wait until <tree-item> has attribute [has-children=true]
+    // otherwise it won't expand. We must also to account for the case
+    // :not([expanded]) to ensure it has NOT been expanded by some async
+    // operation since the [expanded] checks above.
+    const expandIcon = query +
+        ':not([expanded]) > .tree-row[has-children=true] > .expand-icon';
+    await this.waitAndClickElement(appId, expandIcon);
+    // Wait for the expansion to finish.
+    await this.waitForElement(appId, query + '[expanded]');
+    // Force the focus on directory tree.
+    await this.callRemoteTestUtil('focus', appId, ['#directory-tree']);
+  }
+
+  /**
+   * Expands directory tree for specified path.
+   */
+  expandDirectoryTreeFor(appId, path, volumeType = 'downloads') {
+    return this.expandDirectoryTreeForInternal_(
+        appId, path.split('/'), 0, volumeType);
+  }
+
+  /**
+   * Internal function for expanding directory tree for specified path.
+   */
+  async expandDirectoryTreeForInternal_(appId, components, index, volumeType) {
+    if (index >= components.length - 1) {
+      return;
+    }
+
+    // First time we should expand the root/volume first.
+    if (index === 0) {
+      await this.expandVolumeInDirectoryTree(appId, volumeType);
+      return this.expandDirectoryTreeForInternal_(
+          appId, components, index + 1, volumeType);
+    }
+    const path = '/' + components.slice(1, index + 1).join('/');
+    await this.expandTreeItemInDirectoryTree(
+        appId, `[full-path-for-testing="${path}"]`);
+    await this.expandDirectoryTreeForInternal_(
+        appId, components, index + 1, volumeType);
+  }
+
+  /**
+   * Expands download volume in directory tree.
+   */
+  expandDownloadVolumeInDirectoryTree(appId) {
+    return this.expandVolumeInDirectoryTree(appId, 'downloads');
+  }
+
+  /**
+   * Expands download volume in directory tree.
+   */
+  expandVolumeInDirectoryTree(appId, volumeType) {
+    return this.expandTreeItemInDirectoryTree(
+        appId, `[volume-type-for-testing="${volumeType}"]`);
+  }
+
+  /**
+   * Navigates to specified directory on the specified volume by using directory
+   * tree.
+   * DEPRECATED: Use background.js:navigateWithDirectoryTree instead
+   * crbug.com/996626.
+   */
+  async navigateWithDirectoryTree(
+      appId, path, rootLabel, volumeType = 'downloads') {
+    await this.expandDirectoryTreeFor(appId, path, volumeType);
+
+    // Select target path.
+    await this.callRemoteTestUtil(
+        'fakeMouseClick', appId, [`[full-path-for-testing="${path}"]`]);
+
+    // Entries within Drive starts with /root/ but it isn't displayed in the
+    // breadcrubms used by waitUntilCurrentDirectoryIsChanged.
+    path = path.replace(/^\/root/, '')
+               .replace(/^\/team_drives/, '')
+               .replace(/^\/Computers/, '');
+
+    // TODO(lucmult): Remove this once MyFilesVolume is rolled out.
+    // Remove /Downloads duplication when MyFilesVolume is enabled.
+    if (volumeType == 'downloads' && path.startsWith('/Downloads') &&
+        rootLabel.endsWith('/Downloads')) {
+      rootLabel = rootLabel.replace('/Downloads', '');
+    }
+
+    // Wait until the Files app is navigated to the path.
+    return this.waitUntilCurrentDirectoryIsChanged(
+        appId, `/${rootLabel}${path}`);
+  }
 }
 
-RemoteCallGallery.prototype.__proto__ = RemoteCall.prototype;
-
 /**
- * Waits until the expected image is shown.
- *
- * @param {string} appId App window Id.
- * @param {number} width Expected width of the image.
- * @param {number} height Expected height of the image.
- * @param {string|null} name Expected name of the image.
- * @return {Promise} Promsie to be fulfilled when the check is passed.
+ * Class to manipulate the window in the remote extension.
  */
-RemoteCallGallery.prototype.waitForSlideImage = function(
-    appId, width, height, name) {
-  const expected = {};
-  if (width) {
-    expected.width = width;
-  }
-  if (height) {
-    expected.height = height;
-  }
-  if (name) {
-    expected.name = name;
+class RemoteCallGallery extends RemoteCall {
+  /**
+   * Waits until the expected image is shown.
+   *
+   * @param {string} appId App window Id.
+   * @param {number} width Expected width of the image.
+   * @param {number} height Expected height of the image.
+   * @param {string|null} name Expected name of the image.
+   * @return {Promise} Promsie to be fulfilled when the check is passed.
+   */
+  waitForSlideImage(appId, width, height, name) {
+    const expected = {};
+    if (width) {
+      expected.width = width;
+    }
+    if (height) {
+      expected.height = height;
+    }
+    if (name) {
+      expected.name = name;
+    }
+
+    const caller = getCaller();
+    return repeatUntil(async () => {
+      const query = '.gallery[mode="slide"] .image-container > .image';
+      const [nameBox, image] = await Promise.all([
+        this.waitForElement(appId, '#rename-input'),
+        this.waitForElementStyles(appId, query, ['any'])
+      ]);
+      const actual = {};
+      if (width && image) {
+        actual.width = image.imageWidth;
+      }
+      if (height && image) {
+        actual.height = image.imageHeight;
+      }
+      if (name && nameBox) {
+        actual.name = nameBox.value;
+      }
+
+      if (!chrome.test.checkDeepEq(expected, actual)) {
+        return pending(
+            caller, 'Slide mode state, expected is %j, actual is %j.', expected,
+            actual);
+      }
+      return actual;
+    });
   }
 
-  const caller = getCaller();
-  return repeatUntil(async () => {
-    const query = '.gallery[mode="slide"] .image-container > .image';
-    const [nameBox, image] = await Promise.all([
-      this.waitForElement(appId, '#rename-input'),
-      this.waitForElementStyles(appId, query, ['any'])
-    ]);
-    const actual = {};
-    if (width && image) {
-      actual.width = image.imageWidth;
-    }
-    if (height && image) {
-      actual.height = image.imageHeight;
-    }
-    if (name && nameBox) {
-      actual.name = nameBox.value;
-    }
+  async changeNameAndWait(appId, newName) {
+    await this.callRemoteTestUtil('changeName', appId, [newName]);
+    return this.waitForSlideImage(appId, 0, 0, newName);
+  }
 
-    if (!chrome.test.checkDeepEq(expected, actual)) {
-      return pending(
-          caller, 'Slide mode state, expected is %j, actual is %j.', expected,
-          actual);
-    }
-    return actual;
-  });
-};
+  /**
+   * Waits for the "Press Enter" message.
+   *
+   * @param {string} appId App window Id.
+   * @return {Promise} Promise to be fulfilled when the element appears.
+   */
+  async waitForPressEnterMessage(appId) {
+    const element = await this.waitForElement(appId, '.prompt-wrapper .prompt');
+    chrome.test.assertEq('Press Enter when done', element.text.trim());
+  }
 
-RemoteCallGallery.prototype.changeNameAndWait = async function(appId, newName) {
-  await this.callRemoteTestUtil('changeName', appId, [newName]);
-  return this.waitForSlideImage(appId, 0, 0, newName);
-};
-
-/**
- * Waits for the "Press Enter" message.
- *
- * @param {string} appId App window Id.
- * @return {Promise} Promise to be fulfilled when the element appears.
- */
-RemoteCallGallery.prototype.waitForPressEnterMessage = async function(appId) {
-  const element = await this.waitForElement(appId, '.prompt-wrapper .prompt');
-  chrome.test.assertEq('Press Enter when done', element.text.trim());
-};
-
-/**
- * Shorthand for selecting an image in thumbnail mode.
- * @param {string} appId App window Id.
- * @param {string} name File name to be selected.
- * @return {!Promise<boolean>} A promise which will be resolved with true if the
- *     thumbnail has clicked. This method does not guarantee whether the
- *     thumbnail has actually selected or not.
- */
-RemoteCallGallery.prototype.selectImageInThumbnailMode = function(appId, name) {
-  return this.callRemoteTestUtil(
-      'fakeMouseClick', appId,
-      ['.thumbnail-view > ul > li[title="' + name + '"] > .selection.frame']);
-};
+  /**
+   * Shorthand for selecting an image in thumbnail mode.
+   * @param {string} appId App window Id.
+   * @param {string} name File name to be selected.
+   * @return {!Promise<boolean>} A promise which will be resolved with true if
+   *     the thumbnail has clicked. This method does not guarantee whether the
+   *     thumbnail has actually selected or not.
+   */
+  selectImageInThumbnailMode(appId, name) {
+    return this.callRemoteTestUtil(
+        'fakeMouseClick', appId,
+        ['.thumbnail-view > ul > li[title="' + name + '"] > .selection.frame']);
+  }
+}
diff --git a/ui/file_manager/integration_tests/test_util.js b/ui/file_manager/integration_tests/test_util.js
index 0e583f76..194e3ab3 100644
--- a/ui/file_manager/integration_tests/test_util.js
+++ b/ui/file_manager/integration_tests/test_util.js
@@ -312,10 +312,24 @@
 };
 Object.freeze(SharedOption);
 
-/**
- * @enum {string}
- */
 
+/**
+ * @typedef {{
+ *   downloads: string,
+ *   drive: string,
+ *   android_files: string,
+ * }}
+ *
+ */
+let getRootPathsResult;
+
+/**
+ * @typedef {{
+ *   DOWNLOADS: string,
+ *   DRIVE: string,
+ *   ANDROID_FILES: string,
+ * }}
+ */
 const RootPath = {
   DOWNLOADS: '/must-be-filled-in-test-setup',
   DRIVE: '/must-be-filled-in-test-setup',
@@ -408,41 +422,44 @@
  * in file_manager_browsertest_base.cc
  * TODO(sashab): Remove this, rename TestEntryInfoOptions to TestEntryInfo and
  * set the defaults in the record definition above.
- *
- * @constructor
- * @param {TestEntryInfoOptions} options Parameters to create the TestEntryInfo.
  */
-function TestEntryInfo(options) {
-  this.type = options.type;
-  this.sourceFileName = options.sourceFileName || '';
-  this.targetPath = options.targetPath;
-  this.teamDriveName = options.teamDriveName || '';
-  this.computerName = options.computerName || '';
-  this.mimeType = options.mimeType || '';
-  this.sharedOption = options.sharedOption || SharedOption.NONE;
-  this.lastModifiedTime = options.lastModifiedTime;
-  this.nameText = options.nameText;
-  this.sizeText = options.sizeText;
-  this.typeText = options.typeText;
-  this.capabilities = options.capabilities;
-  this.folderFeature = options.folderFeature;
-  this.pinned = !!options.pinned;
-  Object.freeze(this);
+class TestEntryInfo {
+  /**
+   * @param {TestEntryInfoOptions} options Parameters to create the
+   *     TestEntryInfo.
+   */
+  constructor(options) {
+    this.type = options.type;
+    this.sourceFileName = options.sourceFileName || '';
+    this.targetPath = options.targetPath;
+    this.teamDriveName = options.teamDriveName || '';
+    this.computerName = options.computerName || '';
+    this.mimeType = options.mimeType || '';
+    this.sharedOption = options.sharedOption || SharedOption.NONE;
+    this.lastModifiedTime = options.lastModifiedTime;
+    this.nameText = options.nameText;
+    this.sizeText = options.sizeText;
+    this.typeText = options.typeText;
+    this.capabilities = options.capabilities;
+    this.folderFeature = options.folderFeature;
+    this.pinned = !!options.pinned;
+    Object.freeze(this);
+  }
+
+  static getExpectedRows(entries) {
+    return entries.map(function(entry) {
+      return entry.getExpectedRow();
+    });
+  }
+
+  /**
+   * Obtains a expected row contents of the file in the file list.
+   */
+  getExpectedRow() {
+    return [this.nameText, this.sizeText, this.typeText, this.lastModifiedTime];
+  }
 }
 
-TestEntryInfo.getExpectedRows = function(entries) {
-  return entries.map(function(entry) {
-    return entry.getExpectedRow();
-  });
-};
-
-/**
- * Obtains a expected row contents of the file in the file list.
- */
-TestEntryInfo.prototype.getExpectedRow = function() {
-  return [this.nameText, this.sizeText, this.typeText, this.lastModifiedTime];
-};
-
 /**
  * Filesystem entries used by the test cases.
  * TODO(sashab): Rename 'nameText', 'sizeText' and 'typeText' to
diff --git a/ui/views/examples/BUILD.gn b/ui/views/examples/BUILD.gn
index 69e1615..d2223b73 100644
--- a/ui/views/examples/BUILD.gn
+++ b/ui/views/examples/BUILD.gn
@@ -194,7 +194,7 @@
 }
 
 copy("copy_content_resources") {
-  deps = [ "//content:resources" ]
+  deps = [ "//content:content_resources" ]
   sources = [ "$root_gen_dir/content/content_resources.pak" ]
   outputs = [ "$root_out_dir/content_resources.pak" ]
 }
diff --git a/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.cc b/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.cc
index 3612fd57..4629ba8 100644
--- a/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.cc
+++ b/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.cc
@@ -55,9 +55,6 @@
 
 namespace {
 
-constexpr int kWillAcceptDrop = 1;
-constexpr int kWantFurtherPosEvents = 2;
-
 // Triggers the XDS protocol.
 const char kXdndActionDirectSave[] = "XdndActionDirectSave";
 
@@ -78,25 +75,6 @@
 // URL indicating the location where the source should save the file.
 const char kXdndDirectSave0[] = "XdndDirectSave0";
 
-// Message sent from an XDND target to the source in respose to an XdndDrop.
-// The message must be sent whether the target acceepts the drop or not.
-const char kXdndFinished[] = "XdndFinished";
-
-// Message sent by the XDND source when the cursor position changes.
-// The source will also send an XdndPosition event right after the XdndEnter
-// event, to tell the target about the initial cursor position and the desired
-// drop action.
-// The time stamp in the XdndPosition must be used when requesting selection
-// information.
-// After the target optionally acquires selection information, it must tell the
-// source if it can accept the drop via an XdndStatus message.
-const char kXdndPosition[] = "XdndPosition";
-
-// Message sent by the XDND target in response to an XdndPosition message.
-// The message informs the source if the target will accept the drop, and what
-// action will be taken if the drop is accepted.
-const char kXdndStatus[] = "XdndStatus";
-
 int XGetModifiers() {
   XDisplay* display = gfx::GetXDisplay();
 
@@ -137,6 +115,60 @@
 // |drag_widget_|'s opacity.
 constexpr float kDragWidgetOpacity = .75f;
 
+// Returns true if |image| has any visible regions (defined as having a pixel
+// with alpha > 32).
+bool IsValidDragImage(const gfx::ImageSkia& image) {
+  if (image.isNull())
+    return false;
+
+  // Because we need a GL context per window, we do a quick check so that we
+  // don't make another context if the window would just be displaying a mostly
+  // transparent image.
+  const SkBitmap* in_bitmap = image.bitmap();
+  for (int y = 0; y < in_bitmap->height(); ++y) {
+    uint32_t* in_row = in_bitmap->getAddr32(0, y);
+
+    for (int x = 0; x < in_bitmap->width(); ++x) {
+      if (SkColorGetA(in_row[x]) > kMinAlpha)
+        return true;
+    }
+  }
+
+  return false;
+}
+
+std::unique_ptr<views::Widget> CreateDragWidget(
+    const gfx::ImageSkia& image,
+    const gfx::Vector2d& drag_widget_offset) {
+  auto widget = std::make_unique<views::Widget>();
+  views::Widget::InitParams params(views::Widget::InitParams::TYPE_DRAG);
+  if (ui::IsCompositingManagerPresent())
+    params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
+  else
+    params.opacity = views::Widget::InitParams::WindowOpacity::kOpaque;
+  params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+  params.accept_events = false;
+
+  gfx::Point location =
+      display::Screen::GetScreen()->GetCursorScreenPoint() - drag_widget_offset;
+  params.bounds = gfx::Rect(location, image.size());
+  widget->set_focus_on_creation(false);
+  widget->set_frame_type(views::Widget::FrameType::kForceNative);
+  widget->Init(std::move(params));
+  if (params.opacity == views::Widget::InitParams::WindowOpacity::kTranslucent)
+    widget->SetOpacity(kDragWidgetOpacity);
+  widget->GetNativeWindow()->SetName("DragWindow");
+
+  views::ImageView* image_view = new views::ImageView();
+  image_view->SetImage(image);
+  image_view->SetBoundsRect(gfx::Rect(image.size()));
+  widget->SetContentsView(image_view);
+  widget->Show();
+  widget->GetNativeWindow()->layer()->SetFillsBoundsOpaquely(false);
+
+  return widget;
+}
+
 }  // namespace
 
 namespace views {
@@ -168,78 +200,30 @@
   move_loop_ = CreateMoveLoop(this);
 }
 
-void DesktopDragDropClientAuraX11::OnXdndEnter(
-    const XClientMessageEvent& event) {
-  DVLOG(1) << "OnXdndEnter, version " << ((event.data.l[1] & 0xff000000) >> 24);
+void DesktopDragDropClientAuraX11::OnBeginForeignDrag(XID window) {
+  DCHECK(target_current_context());
+  DCHECK(!target_current_context()->source_client());
 
-  XDragDropClient::OnXdndEnter(event);
-  // If the XDragDropClient::OnXdndEnter had failed, we don't have the drag
-  // context and should quit.
-  if (!target_current_context())
-    return;
-
-  if (!target_current_context()->source_client()) {
-    // The window doesn't have a DesktopDragDropClientAuraX11, which means it's
-    // created by some other process.  Listen for messages on it.
-    ui::PlatformEventSource::GetInstance()->AddPlatformEventDispatcher(this);
-    source_window_events_ = std::make_unique<ui::XScopedEventSelector>(
-        event.data.l[0], PropertyChangeMask);
-  }
-
-  // In the Windows implementation, we immediately call DesktopDropTargetWin::
-  // Translate().  The XDND specification demands that we wait until we receive
-  // an XdndPosition message before we use XConvertSelection or send an
-  // XdndStatus message.
+  ui::PlatformEventSource::GetInstance()->AddPlatformEventDispatcher(this);
+  source_window_events_ =
+      std::make_unique<ui::XScopedEventSelector>(window, PropertyChangeMask);
 }
 
-void DesktopDragDropClientAuraX11::OnXdndLeave(
-    const XClientMessageEvent& event) {
-  DVLOG(1) << "OnXdndLeave";
+void DesktopDragDropClientAuraX11::OnEndForeignDrag() {
+  DCHECK(target_current_context());
+  DCHECK(!target_current_context()->source_client());
 
+  ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
+}
+
+void DesktopDragDropClientAuraX11::OnBeforeDragLeave() {
   NotifyDragLeave();
-
-  // XDragDropClient::OnXdndLeave will reset the drag context, so do that as the
-  // last thing.
-  XDragDropClient::OnXdndLeave(event);
 }
 
-void DesktopDragDropClientAuraX11::OnXdndStatus(
-    const XClientMessageEvent& event) {
-  DVLOG(1) << "OnXdndStatus";
-
-  XID source_window = event.data.l[0];
-
-  if (source_window != source_current_window())
-    return;
-
-  if (source_state_ != SourceState::kPendingDrop &&
-      source_state_ != SourceState::kOther) {
-    return;
-  }
-
-  waiting_on_status_ = false;
-  status_received_since_enter_ = true;
-
-  if (event.data.l[1] & 1) {
-    ::Atom atom_operation = event.data.l[4];
-    negotiated_operation_ = ui::AtomToDragOperation(atom_operation);
-  } else {
-    negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
-  }
-
-  if (source_state_ == SourceState::kPendingDrop) {
-    // We were waiting on the status message so we could send the XdndDrop.
-    if (negotiated_operation_ == ui::DragDropTypes::DRAG_NONE) {
-      move_loop_->EndMoveLoop();
-      return;
-    }
-    source_state_ = SourceState::kDropped;
-    SendXdndDrop(source_window);
-    return;
-  }
-
+void DesktopDragDropClientAuraX11::UpdateCursor(
+    ui::DragDropTypes::DragOperation negotiated_operation) {
   ui::CursorType cursor_type = ui::CursorType::kNull;
-  switch (negotiated_operation_) {
+  switch (negotiated_operation) {
     case ui::DragDropTypes::DRAG_NONE:
       cursor_type = ui::CursorType::kDndNone;
       break;
@@ -254,101 +238,13 @@
       break;
   }
   move_loop_->UpdateCursor(cursor_manager_->GetInitializedCursor(cursor_type));
-
-  // Note: event.data.[2,3] specify a rectangle. It is a request by the other
-  // window to not send further XdndPosition messages while the cursor is
-  // within it. However, it is considered advisory and (at least according to
-  // the spec) the other side must handle further position messages within
-  // it. GTK+ doesn't bother with this, so neither should we.
-
-  if (next_position_message_.get()) {
-    // We were waiting on the status message so we could send off the next
-    // position message we queued up.
-    gfx::Point p = next_position_message_->first;
-    unsigned long event_time = next_position_message_->second;
-    next_position_message_.reset();
-
-    SendXdndPosition(source_window, p, event_time);
-  }
-}
-
-void DesktopDragDropClientAuraX11::OnXdndFinished(
-    const XClientMessageEvent& event) {
-  DVLOG(1) << "OnXdndFinished";
-  XID source_window = event.data.l[0];
-  if (source_current_window() != source_window)
-    return;
-
-  // Clear |negotiated_operation_| if the drag was rejected.
-  if ((event.data.l[1] & 1) == 0)
-    negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
-
-  // Clear |source_current_window_| to avoid sending XdndLeave upon ending the
-  // move loop.
-  set_source_current_window(x11::None);
-  move_loop_->EndMoveLoop();
-}
-
-void DesktopDragDropClientAuraX11::OnXdndDrop(
-    const XClientMessageEvent& event) {
-  DVLOG(1) << "OnXdndDrop";
-
-  XID source_window = event.data.l[0];
-
-  int drag_operation = ui::DragDropTypes::DRAG_NONE;
-  if (target_window_) {
-    aura::client::DragDropDelegate* delegate =
-        aura::client::GetDragDropDelegate(target_window_);
-    if (delegate) {
-      auto data(std::make_unique<ui::OSExchangeData>(
-          std::make_unique<ui::OSExchangeDataProviderAuraX11>(
-              xwindow(), target_current_context()->fetched_targets())));
-
-      ui::DropTargetEvent drop_event(
-          *data.get(), gfx::PointF(target_window_location_),
-          gfx::PointF(target_window_root_location_),
-          target_current_context()->GetDragOperation());
-      if (target_current_context()->source_client()) {
-        drop_event.set_flags(target_current_context()
-                                 ->source_client()
-                                 ->current_modifier_state());
-      } else {
-        drop_event.set_flags(XGetModifiers());
-      }
-
-      if (!IsDragDropInProgress()) {
-        UMA_HISTOGRAM_COUNTS_1M("Event.DragDrop.ExternalOriginDrop", 1);
-      }
-
-      drag_operation = delegate->OnPerformDrop(drop_event, std::move(data));
-    }
-
-    target_window_->RemoveObserver(this);
-    target_window_ = nullptr;
-  }
-
-  XEvent xev = PrepareXdndClientMessage(kXdndFinished, source_window);
-  xev.xclient.data.l[1] = (drag_operation != 0) ? 1 : 0;
-  xev.xclient.data.l[2] = ui::DragOperationToAtom(drag_operation);
-  SendXClientEvent(source_window, &xev);
-}
-
-void DesktopDragDropClientAuraX11::OnSelectionNotify(
-    const XSelectionEvent& xselection) {
-  DVLOG(1) << "OnSelectionNotify";
-  if (target_current_context())
-    target_current_context()->OnSelectionNotify(xselection);
-
-  // ICCCM requires us to delete the property passed into SelectionNotify.
-  if (xselection.property != x11::None)
-    XDeleteProperty(xdisplay(), xwindow(), xselection.property);
 }
 
 int DesktopDragDropClientAuraX11::StartDragAndDrop(
     std::unique_ptr<ui::OSExchangeData> data,
     aura::Window* root_window,
     aura::Window* source_window,
-    const gfx::Point& screen_location,
+    const gfx::Point& /*screen_location*/,
     int operation,
     ui::DragDropTypes::DragEventSource source) {
   UMA_HISTOGRAM_ENUMERATION("Event.DragDrop.Start", source,
@@ -357,12 +253,8 @@
   set_source_current_window(x11::None);
   DCHECK(!g_current_drag_drop_client);
   g_current_drag_drop_client = this;
-  waiting_on_status_ = false;
-  next_position_message_.reset();
-  status_received_since_enter_ = false;
-  source_state_ = SourceState::kOther;
-  drag_operation_ = operation;
-  negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
+  set_source_state(SourceState::kOther);
+  InitDrag(operation);
 
   const ui::OSExchangeData::Provider* provider = &data->provider();
   source_provider_ = static_cast<const ui::OSExchangeDataProviderAuraX11*>(
@@ -382,8 +274,9 @@
 
   gfx::ImageSkia drag_image = source_provider_->GetDragImage();
   if (IsValidDragImage(drag_image)) {
-    CreateDragWidget(drag_image);
+    drag_image_size_ = drag_image.size();
     drag_widget_offset_ = source_provider_->GetDragImageOffset();
+    drag_widget_ = CreateDragWidget(drag_image, drag_widget_offset_);
   }
 
   // Chrome expects starting drag and drop to release capture.
@@ -405,7 +298,7 @@
                                              ui::CursorType::kGrabbing));
 
   if (alive) {
-    if (negotiated_operation_ == ui::DragDropTypes::DRAG_NONE) {
+    if (negotiated_operation() == ui::DragDropTypes::DRAG_NONE) {
       UMA_HISTOGRAM_ENUMERATION("Event.DragDrop.Cancel", source,
                                 ui::DragDropTypes::DRAG_EVENT_SOURCE_COUNT);
     } else {
@@ -416,11 +309,10 @@
 
     source_provider_ = nullptr;
     g_current_drag_drop_client = nullptr;
-    drag_operation_ = 0;
     XDeleteProperty(xdisplay(), xwindow(), gfx::GetAtom(kXdndActionList));
     XDeleteProperty(xdisplay(), xwindow(), gfx::GetAtom(kXdndDirectSave0));
 
-    return negotiated_operation_;
+    return negotiated_operation();
   }
   UMA_HISTOGRAM_ENUMERATION("Event.DragDrop.Cancel", source,
                             ui::DragDropTypes::DRAG_EVENT_SOURCE_COUNT);
@@ -479,61 +371,15 @@
     drag_widget_->StackAtTop();
   }
 
-  const int kModifiers = ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN |
-                         ui::EF_ALT_DOWN | ui::EF_COMMAND_DOWN |
-                         ui::EF_LEFT_MOUSE_BUTTON |
-                         ui::EF_MIDDLE_MOUSE_BUTTON |
-                         ui::EF_RIGHT_MOUSE_BUTTON;
-  current_modifier_state_ = flags & kModifiers;
+  UpdateModifierState(flags);
 
-  repeat_mouse_move_timer_.Stop();
+  StopRepeatMouseMoveTimer();
   ProcessMouseMove(screen_point,
                    (event_time - base::TimeTicks()).InMilliseconds());
 }
 
 void DesktopDragDropClientAuraX11::OnMouseReleased() {
-  repeat_mouse_move_timer_.Stop();
-
-  if (source_state_ != SourceState::kOther) {
-    // The user has previously released the mouse and is clicking in
-    // frustration.
-    move_loop_->EndMoveLoop();
-    return;
-  }
-
-  if (source_current_window() != x11::None) {
-    if (waiting_on_status_) {
-      if (status_received_since_enter_) {
-        // If we are waiting for an XdndStatus message, we need to wait for it
-        // to complete.
-        source_state_ = SourceState::kPendingDrop;
-
-        // Start timer to end the move loop if the target takes too long to send
-        // the XdndStatus and XdndFinished messages.
-        StartEndMoveLoopTimer();
-        return;
-      }
-
-      move_loop_->EndMoveLoop();
-      return;
-    }
-
-    if (negotiated_operation_ != ui::DragDropTypes::DRAG_NONE) {
-      // Start timer to end the move loop if the target takes too long to send
-      // an XdndFinished message. It is important that StartEndMoveLoopTimer()
-      // is called before SendXdndDrop() because SendXdndDrop()
-      // sends XdndFinished synchronously if the drop target is a Chrome
-      // window.
-      StartEndMoveLoopTimer();
-
-      // We have negotiated an action with the other end.
-      source_state_ = SourceState::kDropped;
-      SendXdndDrop(source_current_window());
-      return;
-    }
-  }
-
-  move_loop_->EndMoveLoop();
+  XDragDropClient::HandleMouseReleased();
 }
 
 void DesktopDragDropClientAuraX11::OnMoveLoopEnded() {
@@ -542,8 +388,8 @@
     set_source_current_window(x11::None);
   }
   ResetDragContext();
-  repeat_mouse_move_timer_.Stop();
-  end_move_loop_timer_.Stop();
+  StopRepeatMouseMoveTimer();
+  StopEndMoveLoopTimer();
 }
 
 std::unique_ptr<X11MoveLoop> DesktopDragDropClientAuraX11::CreateMoveLoop(
@@ -551,48 +397,6 @@
   return base::WrapUnique(new X11WholeScreenMoveLoop(this));
 }
 
-void DesktopDragDropClientAuraX11::ProcessMouseMove(
-    const gfx::Point& screen_point,
-    unsigned long event_time) {
-  if (source_state_ != SourceState::kOther)
-    return;
-
-  // Find the current window the cursor is over.
-  ::Window dest_window = FindWindowFor(screen_point);
-
-  if (source_current_window() != dest_window) {
-    if (source_current_window() != x11::None)
-      SendXdndLeave(source_current_window());
-
-    set_source_current_window(dest_window);
-    waiting_on_status_ = false;
-    next_position_message_.reset();
-    status_received_since_enter_ = false;
-    negotiated_operation_ = ui::DragDropTypes::DRAG_NONE;
-
-    if (source_current_window() != x11::None) {
-      std::vector<Atom> targets;
-      source_provider_->RetrieveTargets(&targets);
-      SendXdndEnter(source_current_window(), targets);
-    }
-  }
-
-  if (source_current_window() != x11::None) {
-    if (waiting_on_status_) {
-      next_position_message_ =
-          std::make_unique<std::pair<gfx::Point, unsigned long>>(screen_point,
-                                                                 event_time);
-    } else {
-      SendXdndPosition(dest_window, screen_point, event_time);
-    }
-  }
-}
-
-void DesktopDragDropClientAuraX11::StartEndMoveLoopTimer() {
-  end_move_loop_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(1000),
-                             this, &DesktopDragDropClientAuraX11::EndMoveLoop);
-}
-
 void DesktopDragDropClientAuraX11::EndMoveLoop() {
   move_loop_->EndMoveLoop();
 }
@@ -622,6 +426,7 @@
   if (!*delegate)
     return;
 
+  DCHECK(target_current_context());
   *data = std::make_unique<OSExchangeData>(
       std::make_unique<ui::OSExchangeDataProviderAuraX11>(
           xwindow(), target_current_context()->fetched_targets()));
@@ -672,8 +477,7 @@
                           : ui::SelectionFormatMap();
 }
 
-void DesktopDragDropClientAuraX11::CompleteXdndPosition(
-    ::Window source_window,
+int DesktopDragDropClientAuraX11::GetDragOperation(
     const gfx::Point& screen_point) {
   int drag_operation = ui::DragDropTypes::DRAG_NONE;
   std::unique_ptr<ui::OSExchangeData> data;
@@ -685,102 +489,49 @@
   UMA_HISTOGRAM_BOOLEAN("Event.DragDrop.AcceptDragUpdate",
                         drag_operation != ui::DragDropTypes::DRAG_NONE);
 
-  // Sends an XdndStatus message back to the source_window. l[2,3]
-  // theoretically represent an area in the window where the current action is
-  // the same as what we're returning, but I can't find any implementation that
-  // actually making use of this. A client can return (0, 0) and/or set the
-  // first bit of l[1] to disable the feature, and it appears that gtk neither
-  // sets this nor respects it if set.
-  XEvent xev = PrepareXdndClientMessage(kXdndStatus, source_window);
-  xev.xclient.data.l[1] = (drag_operation != 0) ?
-      (kWantFurtherPosEvents | kWillAcceptDrop) : 0;
-  xev.xclient.data.l[4] = ui::DragOperationToAtom(drag_operation);
-  SendXClientEvent(source_window, &xev);
+  return drag_operation;
 }
 
-void DesktopDragDropClientAuraX11::SendXdndPosition(
-    ::Window dest_window,
-    const gfx::Point& screen_point,
-    unsigned long event_time) {
-  waiting_on_status_ = true;
+int DesktopDragDropClientAuraX11::PerformDrop() {
+  DCHECK(target_current_context());
 
-  XEvent xev = PrepareXdndClientMessage(kXdndPosition, dest_window);
-  xev.xclient.data.l[2] = (screen_point.x() << 16) | screen_point.y();
-  xev.xclient.data.l[3] = event_time;
-  xev.xclient.data.l[4] = ui::DragOperationToAtom(drag_operation_);
-  SendXClientEvent(dest_window, &xev);
+  int drag_operation = ui::DragDropTypes::DRAG_NONE;
+  if (target_window_) {
+    aura::client::DragDropDelegate* delegate =
+        aura::client::GetDragDropDelegate(target_window_);
+    if (delegate) {
+      auto data(std::make_unique<ui::OSExchangeData>(
+          std::make_unique<ui::OSExchangeDataProviderAuraX11>(
+              xwindow(), target_current_context()->fetched_targets())));
 
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html and
-  // the Xdnd protocol both recommend that drag events should be sent
-  // periodically.
-  repeat_mouse_move_timer_.Start(
-      FROM_HERE, base::TimeDelta::FromMilliseconds(350),
-      base::BindOnce(&DesktopDragDropClientAuraX11::ProcessMouseMove,
-                     base::Unretained(this), screen_point, event_time));
-}
+      ui::DropTargetEvent drop_event(
+          *data.get(), gfx::PointF(target_window_location_),
+          gfx::PointF(target_window_root_location_),
+          target_current_context()->GetDragOperation());
+      if (target_current_context()->source_client()) {
+        drop_event.set_flags(target_current_context()
+                                 ->source_client()
+                                 ->current_modifier_state());
+      } else {
+        drop_event.set_flags(XGetModifiers());
+      }
 
-void DesktopDragDropClientAuraX11::CreateDragWidget(
-    const gfx::ImageSkia& image) {
-  Widget* widget = new Widget;
-  Widget::InitParams params(Widget::InitParams::TYPE_DRAG);
-  if (ui::IsCompositingManagerPresent())
-    params.opacity = Widget::InitParams::WindowOpacity::kTranslucent;
-  else
-    params.opacity = Widget::InitParams::WindowOpacity::kOpaque;
-  params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
-  params.accept_events = false;
+      if (!IsDragDropInProgress()) {
+        UMA_HISTOGRAM_COUNTS_1M("Event.DragDrop.ExternalOriginDrop", 1);
+      }
 
-  gfx::Point location = display::Screen::GetScreen()->GetCursorScreenPoint() -
-                        drag_widget_offset_;
-  params.bounds = gfx::Rect(location, image.size());
-  widget->set_focus_on_creation(false);
-  widget->set_frame_type(Widget::FrameType::kForceNative);
-  widget->Init(std::move(params));
-  if (params.opacity == Widget::InitParams::WindowOpacity::kTranslucent)
-    widget->SetOpacity(kDragWidgetOpacity);
-  widget->GetNativeWindow()->SetName("DragWindow");
-
-  drag_image_size_ = image.size();
-  ImageView* image_view = new ImageView();
-  image_view->SetImage(image);
-  image_view->SetBoundsRect(gfx::Rect(drag_image_size_));
-  widget->SetContentsView(image_view);
-  widget->Show();
-  widget->GetNativeWindow()->layer()->SetFillsBoundsOpaquely(false);
-
-  drag_widget_.reset(widget);
-}
-
-bool DesktopDragDropClientAuraX11::IsValidDragImage(
-    const gfx::ImageSkia& image) {
-  if (image.isNull())
-    return false;
-
-  // Because we need a GL context per window, we do a quick check so that we
-  // don't make another context if the window would just be displaying a mostly
-  // transparent image.
-  const SkBitmap* in_bitmap = image.bitmap();
-  for (int y = 0; y < in_bitmap->height(); ++y) {
-    uint32_t* in_row = in_bitmap->getAddr32(0, y);
-
-    for (int x = 0; x < in_bitmap->width(); ++x) {
-      if (SkColorGetA(in_row[x]) > kMinAlpha)
-        return true;
+      drag_operation = delegate->OnPerformDrop(drop_event, std::move(data));
     }
-  }
 
-  return false;
+    target_window_->RemoveObserver(this);
+    target_window_ = nullptr;
+  }
+  return drag_operation;
 }
 
-void DesktopDragDropClientAuraX11::ResetDragContext() {
-  if (!target_current_context())
-    return;
-  if (!target_current_context()->source_client()) {
-    ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
-  }
-
-  // XDragDropClient::ResetDragContext will reset target_current_context().
-  XDragDropClient::ResetDragContext();
+void DesktopDragDropClientAuraX11::RetrieveTargets(
+    std::vector<Atom>* targets) const {
+  source_provider_->RetrieveTargets(targets);
 }
 
 std::unique_ptr<ui::XTopmostWindowFinder>
diff --git a/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.h b/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.h
index 1ae62c62..68c3776 100644
--- a/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.h
+++ b/ui/views/widget/desktop_aura/desktop_drag_drop_client_aurax11.h
@@ -9,16 +9,13 @@
 #include <set>
 #include <vector>
 
-#include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "base/timer/timer.h"
 #include "ui/aura/client/drag_drop_client.h"
 #include "ui/aura/window_observer.h"
 #include "ui/base/cursor/cursor.h"
 #include "ui/base/dragdrop/drag_drop_types.h"
 #include "ui/base/x/x11_drag_drop_client.h"
-#include "ui/events/event_constants.h"
 #include "ui/events/platform/platform_event_dispatcher.h"
 #include "ui/events/x/x11_window_event_manager.h"
 #include "ui/gfx/geometry/point.h"
@@ -35,7 +32,6 @@
 }
 
 namespace gfx {
-class ImageSkia;
 class Point;
 }
 
@@ -64,22 +60,12 @@
   DesktopDragDropClientAuraX11(
       aura::Window* root_window,
       views::DesktopNativeCursorManager* cursor_manager,
-      ::Display* xdisplay,
-      ::Window xwindow);
+      Display* xdisplay,
+      XID xwindow);
   ~DesktopDragDropClientAuraX11() override;
 
   void Init();
 
-  // These methods handle the various X11 client messages from the platform.
-  void OnXdndEnter(const XClientMessageEvent& event) override;
-  void OnXdndLeave(const XClientMessageEvent& event) override;
-  void OnXdndStatus(const XClientMessageEvent& event) override;
-  void OnXdndFinished(const XClientMessageEvent& event) override;
-  void OnXdndDrop(const XClientMessageEvent& event) override;
-
-  // Called when XSelection data has been copied to our process.
-  void OnSelectionNotify(const XSelectionEvent& xselection);
-
   // Overridden from aura::client::DragDropClient:
   int StartDragAndDrop(std::unique_ptr<ui::OSExchangeData> data,
                        aura::Window* root_window,
@@ -107,43 +93,18 @@
   void OnMoveLoopEnded() override;
 
  protected:
-  // The following methods are virtual for the sake of testing.
+  // Getter for tests.
+  Widget* drag_widget() { return drag_widget_.get(); }
 
-  // Creates a move loop.
+  // Creates a move loop.  Virtual for testing.
   virtual std::unique_ptr<X11MoveLoop> CreateMoveLoop(
       X11MoveLoopDelegate* delegate);
 
- protected:
-  Widget* drag_widget() { return drag_widget_.get(); }
-
  private:
-  enum class SourceState {
-    // |source_current_window_| will receive a drop once we receive an
-    // XdndStatus from it.
-    kPendingDrop,
-
-    // The move looped will be ended once we receive XdndFinished from
-    // |source_current_window_|. We should not send XdndPosition to
-    // |source_current_window_| while in this state.
-    kDropped,
-
-    // There is no drag in progress or there is a drag in progress and the
-    // user has not yet released the mouse.
-    kOther,
-  };
-
-  // Processes a mouse move at |screen_point|.
-  void ProcessMouseMove(const gfx::Point& screen_point,
-                        unsigned long event_time);
-
-  // Start timer to end the move loop if the target is too slow to respond after
-  // the mouse is released.
-  void StartEndMoveLoopTimer();
-
   // Ends the move loop.
-  void EndMoveLoop();
+  void EndMoveLoop() override;
 
-  // When we receive an position x11 message, we need to translate that into
+  // When we receive a position X11 message, we need to translate that into
   // the underlying aura::Window representation, as moves internal to the X11
   // window can cause internal drag leave and enter messages.
   void DragTranslate(const gfx::Point& root_window_location,
@@ -151,8 +112,8 @@
                      std::unique_ptr<ui::DropTargetEvent>* event,
                      aura::client::DragDropDelegate** delegate);
 
-  // Called when we need to notify the current aura::Window that we're no
-  // longer dragging over it.
+  // Notifies |target_window_|'s drag delegate that we're no longer dragging,
+  // then unsubscribes |target_window_| from ourselves and forgets it.
   void NotifyDragLeave();
 
   // This returns a representation of the data we're offering in this
@@ -163,21 +124,15 @@
   // Handling XdndPosition can be paused while waiting for more data; this is
   // called either synchronously from OnXdndPosition, or asynchronously after
   // we've received data requested from the other window.
-  void CompleteXdndPosition(::Window source_window,
-                            const gfx::Point& screen_point) override;
+  int GetDragOperation(const gfx::Point& screen_point) override;
+  int PerformDrop() override;
+  void OnBeginForeignDrag(XID window) override;
+  void OnEndForeignDrag() override;
+  void UpdateCursor(
+      ui::DragDropTypes::DragOperation negotiated_operation) override;
+  void OnBeforeDragLeave() override;
 
-  void SendXdndPosition(::Window dest_window,
-                        const gfx::Point& screen_point,
-                        unsigned long event_time);
-
-  // Creates a widget for the user to drag around.
-  void CreateDragWidget(const gfx::ImageSkia& image);
-
-  // Returns true if |image| has any visible regions (defined as having a pixel
-  // with alpha > 32).
-  bool IsValidDragImage(const gfx::ImageSkia& image);
-
-  void ResetDragContext() override;
+  void RetrieveTargets(std::vector<Atom>* targets) const override;
 
   std::unique_ptr<ui::XTopmostWindowFinder> CreateWindowFinder() override;
 
@@ -205,45 +160,14 @@
   gfx::Point target_window_location_;
   gfx::Point target_window_root_location_;
 
-  // In the Xdnd protocol, we aren't supposed to send another XdndPosition
-  // message until we have received a confirming XdndStatus message.
-  bool waiting_on_status_ = false;
-
-  // If we would send an XdndPosition message while we're waiting for an
-  // XdndStatus response, we need to cache the latest details we'd send.
-  std::unique_ptr<std::pair<gfx::Point, unsigned long>> next_position_message_;
-
-  // Reprocesses the most recent mouse move event if the mouse has not moved
-  // in a while in case the window stacking order has changed and
-  // |source_current_window_| needs to be updated.
-  base::OneShotTimer repeat_mouse_move_timer_;
-
-  // When the mouse is released, we need to wait for the last XdndStatus message
-  // only if we have previously received a status message from
-  // |source_current_window_|.
-  bool status_received_since_enter_ = false;
-
   // Source side information.
   ui::OSExchangeDataProviderAuraX11 const* source_provider_ = nullptr;
-  SourceState source_state_ = SourceState::kOther;
 
   // The current drag-drop client that has an active operation. Since we have
   // multiple root windows and multiple DesktopDragDropClientAuraX11 instances
   // it is important to maintain only one drag and drop operation at any time.
   static DesktopDragDropClientAuraX11* g_current_drag_drop_client;
 
-  // We offer the other window a list of possible operations,
-  // XdndActionsList. This is the requested action from the other window. This
-  // is DRAG_NONE if we haven't sent out an XdndPosition message yet, haven't
-  // yet received an XdndStatus or if the other window has told us that there's
-  // no action that we can agree on.
-  ui::DragDropTypes::DragOperation negotiated_operation_ =
-      ui::DragDropTypes::DRAG_NONE;
-
-  // Ends the move loop if the target is too slow to respond after the mouse is
-  // released.
-  base::OneShotTimer end_move_loop_timer_;
-
   // Widget that the user drags around. May be NULL.
   std::unique_ptr<Widget> drag_widget_;
 
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
index 0939beb..457df89 100644
--- a/weblayer/BUILD.gn
+++ b/weblayer/BUILD.gn
@@ -213,7 +213,8 @@
     "//components/user_prefs",
     "//components/version_info",
     "//components/web_cache/browser",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/public/app:both",
     "//content/public/browser",
diff --git a/weblayer/browser/content_browser_client_impl.cc b/weblayer/browser/content_browser_client_impl.cc
index 084eebb..b55e8fe2 100644
--- a/weblayer/browser/content_browser_client_impl.cc
+++ b/weblayer/browser/content_browser_client_impl.cc
@@ -38,6 +38,7 @@
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "weblayer/browser/browser_main_parts_impl.h"
+#include "weblayer/browser/browser_process.h"
 #include "weblayer/browser/i18n_util.h"
 #include "weblayer/browser/profile_impl.h"
 #include "weblayer/browser/ssl_error_handler.h"
@@ -340,6 +341,7 @@
   std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
   throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
       handle, std::make_unique<SSLCertReporterImpl>(),
+      BrowserProcess::GetInstance()->GetNetworkTimeTracker(),
       base::BindOnce(&HandleSSLError), base::BindOnce(&IsInHostedApp)));
   return throttles;
 }
diff --git a/weblayer/browser/ssl_error_handler.cc b/weblayer/browser/ssl_error_handler.cc
index 091dddf..637bb8c7bd 100644
--- a/weblayer/browser/ssl_error_handler.cc
+++ b/weblayer/browser/ssl_error_handler.cc
@@ -191,6 +191,7 @@
     const net::SSLInfo& ssl_info,
     const GURL& request_url,
     std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+    network_time::NetworkTimeTracker* network_time_tracker,
     base::OnceCallback<
         void(std::unique_ptr<security_interstitials::SecurityInterstitialPage>)>
         blocking_page_ready_callback) {
@@ -208,10 +209,8 @@
 
     const base::Time now = base::Time::NowFromSystemTime();
 
-    network_time::NetworkTimeTracker* tracker =
-        BrowserProcess::GetInstance()->GetNetworkTimeTracker();
     ssl_errors::ClockState clock_state =
-        ssl_errors::GetClockState(now, tracker);
+        ssl_errors::GetClockState(now, network_time_tracker);
 
     if (clock_state == ssl_errors::CLOCK_STATE_FUTURE ||
         clock_state == ssl_errors::CLOCK_STATE_PAST) {
diff --git a/weblayer/browser/ssl_error_handler.h b/weblayer/browser/ssl_error_handler.h
index 0eae1de..0ae1572 100644
--- a/weblayer/browser/ssl_error_handler.h
+++ b/weblayer/browser/ssl_error_handler.h
@@ -18,6 +18,10 @@
 
 class SSLCertReporter;
 
+namespace network_time {
+class NetworkTimeTracker;
+}
+
 namespace weblayer {
 
 using BlockingPageReadyCallback = base::OnceCallback<void(
@@ -35,13 +39,13 @@
 // |blocking_page_ready_callback|.
 // |blocking_page_ready_callback| is guaranteed not to be called
 // synchronously.
-void HandleSSLError(
-    content::WebContents* web_contents,
-    int cert_error,
-    const net::SSLInfo& ssl_info,
-    const GURL& request_url,
-    std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
-    BlockingPageReadyCallback blocking_page_ready_callback);
+void HandleSSLError(content::WebContents* web_contents,
+                    int cert_error,
+                    const net::SSLInfo& ssl_info,
+                    const GURL& request_url,
+                    std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
+                    network_time::NetworkTimeTracker* network_time_tracker,
+                    BlockingPageReadyCallback blocking_page_ready_callback);
 
 // Pass true to simulate the OS reporting that SSL errors are due to captive
 // portals.
diff --git a/weblayer/shell/BUILD.gn b/weblayer/shell/BUILD.gn
index 6154a8c..6035f3b 100644
--- a/weblayer/shell/BUILD.gn
+++ b/weblayer/shell/BUILD.gn
@@ -154,6 +154,7 @@
     "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
     "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
     "$root_gen_dir/content/content_resources.pak",
+    "$root_gen_dir/content/dev_ui_content_resources.pak",
     "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
     "$root_gen_dir/net/net_resources.pak",
     "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
@@ -169,7 +170,8 @@
   deps = [
     "//components/resources",
     "//components/strings",
-    "//content:resources",
+    "//content:content_resources",
+    "//content:dev_ui_content_resources",
     "//content/app/resources",
     "//content/browser/tracing:resources",
     "//mojo/public/js:resources",