diff --git a/DEPS b/DEPS
index b833793..9ab3b50 100644
--- a/DEPS
+++ b/DEPS
@@ -167,11 +167,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': 'c594e62698138bb25baa5ac110e65b14b22dfbec',
+  'skia_revision': '634d15032d37902e654fcc39ebcaa23b5fb9df90',
   # 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': 'f18342d89ff29fa2cbd6a8d94fbfbc9c1e1c6694',
+  'v8_revision': 'ecd11dd17ccbb4a845c904c7bdb76d24b7008adf',
   # 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.
@@ -179,11 +179,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '2d0e5b554d4ffbca76730d0e7308e665675446df',
+  'angle_revision': '0b9ebe58e3802b58953a4ef0884d5fd8f308ed70',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': 'a27dfcf868bf646d3ad6ea2f74d2ee9e3e4a3378',
+  'swiftshader_revision': '8cde4063d097a1f1631fd4766146ad59b1a630a9',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
@@ -862,7 +862,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '0fba1fdff3250e471876eb489d79b6a420f9d8e7',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'ac6afeb999e9691fb643819671c4e68d04375883',
       'condition': 'checkout_linux',
   },
 
@@ -1280,7 +1280,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '3dbb965bdf7677a988ffc30418d64329a5de129c',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '0e17af90d4c9b2e6514eaf9c44dcf77a74be8a27',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1470,7 +1470,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '2701c130839edbeb226735b0775966b6423d9e83',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'af0aa0977370eba9262094b8276ae69b9b7ee600',
+    Var('webrtc_git') + '/src.git' + '@' + '2f6e525099a0d5186e6b5b130aa26b78158d5aa7',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1532,7 +1532,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@43253cb0a39145eedfe4d2cfb8234671aea0366d',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@8f91a46b0230ea1b142d33d92c5c4be342174536',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
index 6071e69..61a155a 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java
@@ -37,7 +37,6 @@
 import com.android.webview.chromium.WebViewDelegateFactory.WebViewDelegate;
 
 import org.chromium.android_webview.AwConsoleMessage;
-import org.chromium.android_webview.AwContents;
 import org.chromium.android_webview.AwContentsClient;
 import org.chromium.android_webview.AwContentsClientBridge;
 import org.chromium.android_webview.AwGeolocationPermissions;
@@ -50,6 +49,7 @@
 import org.chromium.android_webview.permission.AwPermissionRequest;
 import org.chromium.android_webview.permission.Resource;
 import org.chromium.base.Callback;
+import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.TraceEvent;
 import org.chromium.base.metrics.ScopedSysTraceEvent;
@@ -720,7 +720,7 @@
             String message, String url) {
         // Note we must unwrap the Context here due to JsDialogHelper only using instanceof to
         // check if a Context is an Activity.
-        Context activityContext = AwContents.activityFromContext(mContext);
+        Context activityContext = ContextUtils.activityFromContext(mContext);
         if (activityContext == null) {
             Log.w(TAG, "Unable to create JsDialog without an Activity");
             return false;
diff --git a/android_webview/java/src/org/chromium/android_webview/AwAutofillUMA.java b/android_webview/java/src/org/chromium/android_webview/AwAutofillUMA.java
index 7f3d6f2..4491855 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwAutofillUMA.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwAutofillUMA.java
@@ -7,6 +7,7 @@
 import android.content.Context;
 
 import org.chromium.autofill.mojom.SubmissionSource;
+import org.chromium.base.ContextUtils;
 import org.chromium.base.metrics.RecordHistogram;
 
 import java.util.concurrent.TimeUnit;
@@ -181,7 +182,7 @@
 
     public AwAutofillUMA(Context context) {
         RecordHistogram.recordBooleanHistogram(UMA_AUTOFILL_WEBVIEW_CREATED_BY_ACTIVITY_CONTEXT,
-                AwContents.activityFromContext(context) != null);
+                ContextUtils.activityFromContext(context) != null);
     }
 
     public void onFormSubmitted(int submissionSource) {
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index ae0537c..41b2047d 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -6,7 +6,6 @@
 
 import android.annotation.SuppressLint;
 import android.annotation.TargetApi;
-import android.app.Activity;
 import android.content.ComponentCallbacks2;
 import android.content.Context;
 import android.content.Intent;
@@ -1171,7 +1170,7 @@
         if (wrapper != null) return wrapper;
 
         try (ScopedSysTraceEvent e = ScopedSysTraceEvent.scoped("AwContents.getWindowAndroid")) {
-            boolean contextWrapsActivity = activityFromContext(context) != null;
+            boolean contextWrapsActivity = ContextUtils.activityFromContext(context) != null;
             if (contextWrapsActivity) {
                 ActivityWindowAndroid activityWindow;
                 try (ScopedSysTraceEvent e2 =
@@ -1529,11 +1528,6 @@
         AwContentsJni.get().setShouldDownloadFavicons();
     }
 
-    public static Activity activityFromContext(Context context) {
-        try (ScopedSysTraceEvent e = ScopedSysTraceEvent.scoped("AwContents.activityFromContext")) {
-            return ContextUtils.activityFromContext(context);
-        }
-    }
     /**
      * Disables contents of JS-to-Java bridge objects to be inspectable using
      * Object.keys() method and "for .. in" loops. This is intended for applications
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
index 8f7d1f3..3b3fc7c 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
@@ -25,6 +25,7 @@
 import org.chromium.android_webview.permission.AwPermissionRequest;
 import org.chromium.android_webview.safe_browsing.AwSafeBrowsingResponse;
 import org.chromium.base.Callback;
+import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.ScopedSysTraceEvent;
@@ -242,7 +243,7 @@
         intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
 
         // Check whether the context is activity context.
-        if (AwContents.activityFromContext(context) == null) {
+        if (ContextUtils.activityFromContext(context) == null) {
             Log.w(TAG, "Cannot call startActivity on non-activity context.");
             return false;
         }
diff --git a/android_webview/java/src/org/chromium/android_webview/ResourcesContextWrapperFactory.java b/android_webview/java/src/org/chromium/android_webview/ResourcesContextWrapperFactory.java
index da6d957..3a242f8e 100644
--- a/android_webview/java/src/org/chromium/android_webview/ResourcesContextWrapperFactory.java
+++ b/android_webview/java/src/org/chromium/android_webview/ResourcesContextWrapperFactory.java
@@ -10,6 +10,8 @@
 import android.content.Intent;
 import android.view.LayoutInflater;
 
+import org.chromium.base.ContextUtils;
+
 import java.lang.ref.WeakReference;
 import java.util.WeakHashMap;
 
@@ -110,7 +112,7 @@
 
         @Override
         public void startActivity(Intent intent) {
-            if (AwContents.activityFromContext(this) == null) {
+            if (ContextUtils.activityFromContext(this) == null) {
                 // FLAG_ACTIVITY_NEW_TASK is needed to start activities from a non-activity
                 // context.
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
diff --git a/android_webview/support_library/boundary_interfaces/AndroidManifest.xml b/android_webview/support_library/boundary_interfaces/AndroidManifest.xml
deleted file mode 100644
index b11a3e8..0000000
--- a/android_webview/support_library/boundary_interfaces/AndroidManifest.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.chromium.support_lib_boundary">
-  <!-- This AndroidManifest file only exists to provide package name needed by
-       gradle script to build these interfaces as part of AndroidX. -->
-</manifest>
diff --git a/android_webview/support_library/boundary_interfaces/build.gradle b/android_webview/support_library/boundary_interfaces/build.gradle
index 6bf1a277..4fbc108 100644
--- a/android_webview/support_library/boundary_interfaces/build.gradle
+++ b/android_webview/support_library/boundary_interfaces/build.gradle
@@ -5,27 +5,21 @@
 // This file is to build WebView boundary interfaces as part of the AndroidX webkit library.
 // It is not meant to be used or build any targets in chromium project.
 
+import androidx.build.SdkHelperKt
 import androidx.build.SupportConfig
 
 plugins {
-    id('AndroidXPlugin')
-    id('com.android.library')
+    id('java-library')
 }
 
 dependencies {
     api("androidx.annotation:annotation:1.1.0")
+    implementation fileTree(dir: "${SdkHelperKt.getSdkPath(project.rootDir)}/platforms/$SupportConfig.COMPILE_SDK_VERSION/",
+            include: "android.jar")
 }
 
-android {
-    // COMPILE_SDK_VERSION provided by AndroidX build scripts to build all AndroidX modules.
-    compileSdkVersion SupportConfig.COMPILE_SDK_VERSION
-
-    sourceSets {
-        main.manifest.srcFile 'AndroidManifest.xml'
-        main.java.srcDirs += ['src']
-    }
-
-    buildTypes.all {
-        consumerProguardFiles 'proguard.flags'
+sourceSets {
+    main {
+        java.srcDirs = ['src']
     }
 }
diff --git a/ash/app_list/app_list_controller_impl.cc b/ash/app_list/app_list_controller_impl.cc
index f77d49d9..de51cf9 100644
--- a/ash/app_list/app_list_controller_impl.cc
+++ b/ash/app_list/app_list_controller_impl.cc
@@ -655,7 +655,7 @@
   // expected if it's enabled and we're still in tablet mode.
   // https://crbug.com/900956.
   const bool should_be_shown = IsTabletMode();
-  if (should_be_shown == GetTargetVisibility())
+  if (should_be_shown == presenter_.GetTargetVisibility())
     return;
 
   if (should_be_shown)
@@ -734,10 +734,18 @@
 void AppListControllerImpl::OnHomeLauncherAnimationComplete(
     bool shown,
     int64_t display_id) {
+  animation_or_drag_to_visible_home_launcher_in_progress_ = false;
   CloseAssistantUi(shown ? AssistantExitPoint::kLauncherOpen
                          : AssistantExitPoint::kLauncherClose);
 }
 
+void AppListControllerImpl::OnHomeLauncherTargetPositionChanged(
+    bool showing,
+    int64_t display_id) {
+  animation_or_drag_to_visible_home_launcher_in_progress_ = showing;
+  OnVisibilityWillChange(showing, display_id);
+}
+
 void AppListControllerImpl::ShowHomeScreenView() {
   DCHECK(IsTabletMode());
 
@@ -1237,8 +1245,11 @@
   const bool is_home_launcher = IsTabletMode();
 
   bool real_visibility = visible;
-  if (is_home_launcher) {
-    // HomeLauncher is only visible when no other app windows are visible.
+  // HomeLauncher is only visible when no other app windows are visible,
+  // unless we are in the process of animating to (or dragging) the home
+  // launcher.
+  if (is_home_launcher &&
+      !animation_or_drag_to_visible_home_launcher_in_progress_) {
     real_visibility &= !HasVisibleWindows();
   }
 
@@ -1277,8 +1288,11 @@
   const bool is_home_launcher = IsTabletMode();
 
   bool real_target_visibility = visible;
-  if (is_home_launcher) {
-    // HomeLauncher is only visible when no other app windows are visible.
+  // HomeLauncher is only visible when no other app windows are visible,
+  // unless we are in the process of animating to (or dragging) the home
+  // launcher.
+  if (is_home_launcher &&
+      !animation_or_drag_to_visible_home_launcher_in_progress_) {
     real_target_visibility &= !HasVisibleWindows();
   }
 
diff --git a/ash/app_list/app_list_controller_impl.h b/ash/app_list/app_list_controller_impl.h
index 1cab331..593b75a 100644
--- a/ash/app_list/app_list_controller_impl.h
+++ b/ash/app_list/app_list_controller_impl.h
@@ -260,6 +260,8 @@
 
   // HomeLauncherGestureHandlerObserver:
   void OnHomeLauncherAnimationComplete(bool shown, int64_t display_id) override;
+  void OnHomeLauncherTargetPositionChanged(bool showing,
+                                           int64_t display_id) override;
 
   // HomeScreenDelegate:
   void ShowHomeScreenView() override;
@@ -375,6 +377,12 @@
   // Whether to immediately dismiss the AppListView.
   bool should_dismiss_immediately_ = false;
 
+  // Whether the home launcher is in the process of being animated into view.
+  // This becomes true at the start of the animation (or the drag), becomes
+  // false once it ends and stays false until the next animation or drag
+  // showing the home launcher.
+  bool animation_or_drag_to_visible_home_launcher_in_progress_ = false;
+
   // The last target visibility change and its display id.
   bool last_target_visible_ = false;
   int64_t last_target_visible_display_id_ = display::kInvalidDisplayId;
diff --git a/ash/app_list/app_list_presenter_delegate_unittest.cc b/ash/app_list/app_list_presenter_delegate_unittest.cc
index ab1c431..4a3fa475 100644
--- a/ash/app_list/app_list_presenter_delegate_unittest.cc
+++ b/ash/app_list/app_list_presenter_delegate_unittest.cc
@@ -2515,6 +2515,10 @@
     GetAppListTestHelper()->WaitUntilIdle();
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 
@@ -3075,13 +3079,12 @@
   EnableTabletMode(true);
   GetAppListTestHelper()->CheckVisibility(true);
   std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT);
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
 
   // Press home button.
   PressHomeButton();
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   GetAppListTestHelper()->CheckVisibility(true);
 }
 
diff --git a/ash/assistant/test/assistant_ash_test_base.cc b/ash/assistant/test/assistant_ash_test_base.cc
index 36c2a60..ece0294 100644
--- a/ash/assistant/test/assistant_ash_test_base.cc
+++ b/ash/assistant/test/assistant_ash_test_base.cc
@@ -37,7 +37,7 @@
   DCHECK(controller_);
 
   // At this point our Assistant service is ready for use.
-  // Indicate this by changing status from NOT_READY to STOPPED.
+  // Indicate this by changing status from NOT_READY to READY.
   AssistantState::Get()->NotifyStatusChanged(mojom::AssistantState::READY);
 
   DisableAnimations();
diff --git a/ash/display/screen_orientation_controller.cc b/ash/display/screen_orientation_controller.cc
index 1ba237f..4a83a3c 100644
--- a/ash/display/screen_orientation_controller.cc
+++ b/ash/display/screen_orientation_controller.cc
@@ -218,11 +218,11 @@
       user_rotation_(display::Display::ROTATE_0),
       current_rotation_(display::Display::ROTATE_0) {
   Shell::Get()->tablet_mode_controller()->AddObserver(this);
-  SplitViewController::Get()->AddObserver(this);
+  SplitViewController::Get(Shell::GetPrimaryRootWindow())->AddObserver(this);
 }
 
 ScreenOrientationController::~ScreenOrientationController() {
-  SplitViewController::Get()->RemoveObserver(this);
+  SplitViewController::Get(Shell::GetPrimaryRootWindow())->RemoveObserver(this);
   Shell::Get()->tablet_mode_controller()->RemoveObserver(this);
   AccelerometerReader::GetInstance()->RemoveObserver(this);
   Shell::Get()->window_tree_host_manager()->RemoveObserver(this);
@@ -599,7 +599,8 @@
   if (!ScreenOrientationProviderSupported())
     return;
 
-  if (SplitViewController::Get()->InTabletSplitViewMode()) {
+  if (SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->InTabletSplitViewMode()) {
     // While split view is enabled, ignore rotation lock set by windows.
     LockRotationToOrientation(user_locked_orientation_);
     return;
diff --git a/ash/display/screen_orientation_controller_unittest.cc b/ash/display/screen_orientation_controller_unittest.cc
index dace31f..776c6a8 100644
--- a/ash/display/screen_orientation_controller_unittest.cc
+++ b/ash/display/screen_orientation_controller_unittest.cc
@@ -150,6 +150,10 @@
     return test_api.UserLockedOrientation();
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   DISALLOW_COPY_AND_ASSIGN(ScreenOrientationControllerTest);
 };
@@ -343,13 +347,13 @@
   Lock(child_window2.get(), OrientationLockType::kPortrait);
   ASSERT_TRUE(RotationLocked());
 
-  SplitViewController::Get()->SnapWindow(focus_window1.get(),
-                                         SplitViewController::LEFT);
-  SplitViewController::Get()->SnapWindow(focus_window1.get(),
-                                         SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(focus_window1.get(),
+                                      SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(focus_window1.get(),
+                                      SplitViewController::RIGHT);
   EXPECT_FALSE(RotationLocked());
 
-  SplitViewController::Get()->EndSplitView();
+  split_view_controller()->EndSplitView();
   EXPECT_TRUE(RotationLocked());
 }
 
diff --git a/ash/home_screen/drag_window_from_shelf_controller.cc b/ash/home_screen/drag_window_from_shelf_controller.cc
index 949de782..bbd89c8 100644
--- a/ash/home_screen/drag_window_from_shelf_controller.cc
+++ b/ash/home_screen/drag_window_from_shelf_controller.cc
@@ -116,7 +116,8 @@
 
   drag_started_ = false;
   OverviewController* overview_controller = Shell::Get()->overview_controller();
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   const bool in_overview = overview_controller->InOverviewSession();
   const bool in_splitview = split_view_controller->InSplitViewMode();
 
@@ -189,7 +190,8 @@
 
   // If the dragged window is one of the snapped window in splitview, it needs
   // to be detached from splitview before start dragging.
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   split_view_controller->OnWindowDragStarted(window_);
   // Note SplitViewController::OnWindowDragStarted() may open overview.
   OverviewController* overview_controller = Shell::Get()->overview_controller();
@@ -217,7 +219,8 @@
         /*snap=*/snap_position != SplitViewController::NONE);
   }
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   if (split_view_controller->InSplitViewMode() ||
       snap_position != SplitViewController::NONE) {
     split_view_controller->OnWindowDragEnded(window_, snap_position,
@@ -340,7 +343,8 @@
     base::Optional<float> velocity_y) const {
   return velocity_y.has_value() && *velocity_y < 0 &&
          std::abs(*velocity_y) >= kVelocityToHomeScreenThreshold &&
-         !SplitViewController::Get()->InSplitViewMode();
+         !SplitViewController::Get(Shell::GetPrimaryRootWindow())
+              ->InSplitViewMode();
 }
 
 SplitViewController::SnapPosition
@@ -364,7 +368,9 @@
   if (ShouldGoToHomeScreen(velocity_y))
     return false;
 
-  const bool in_splitview = SplitViewController::Get()->InSplitViewMode();
+  const bool in_splitview =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->InSplitViewMode();
   if (!in_splitview && ShouldRestoreToOriginalBounds(location_in_screen)) {
     return false;
   }
diff --git a/ash/home_screen/home_launcher_gesture_handler.cc b/ash/home_screen/home_launcher_gesture_handler.cc
index 76cdea27..a44f9c0 100644
--- a/ash/home_screen/home_launcher_gesture_handler.cc
+++ b/ash/home_screen/home_launcher_gesture_handler.cc
@@ -157,7 +157,8 @@
 // Returns the window of the widget of the split view divider. May be nullptr if
 // split view is not active.
 aura::Window* GetDividerWindow() {
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   if (!split_view_controller->InSplitViewMode())
     return nullptr;
   return split_view_controller->split_view_divider()
@@ -181,7 +182,8 @@
     return nullptr;
 
   aura::Window* window = nullptr;
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   const bool is_in_splitview = split_view_controller->InSplitViewMode();
   const bool is_in_overview =
       Shell::Get()->overview_controller()->InOverviewSession();
@@ -536,9 +538,11 @@
   }
 
   // Explicitly exit split view if two windows are snapped.
-  if (is_final_state_show && SplitViewController::Get()->state() ==
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  if (is_final_state_show && split_view_controller->state() ==
                                  SplitViewController::State::kBothSnapped) {
-    SplitViewController::Get()->EndSplitView();
+    split_view_controller->EndSplitView();
   }
 
   if (is_final_state_show) {
@@ -800,7 +804,8 @@
     return Shell::Get()->home_screen_controller()->IsHomeScreenVisible();
   }
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   overview_active_on_gesture_start_ =
       Shell::Get()->overview_controller()->InOverviewSession();
   const bool split_view_active = split_view_controller->InSplitViewMode();
diff --git a/ash/home_screen/home_launcher_gesture_handler_unittest.cc b/ash/home_screen/home_launcher_gesture_handler_unittest.cc
index 90df8f3b..a0b2521 100644
--- a/ash/home_screen/home_launcher_gesture_handler_unittest.cc
+++ b/ash/home_screen/home_launcher_gesture_handler_unittest.cc
@@ -75,6 +75,10 @@
     GetGestureHandler()->OnPressEvent(mode, press_location);
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   DISALLOW_COPY_AND_ASSIGN(HomeLauncherGestureHandlerTest);
 };
@@ -307,10 +311,9 @@
   // Snap one window and leave overview mode open with the other window.
   OverviewController* overview_controller = Shell::Get()->overview_controller();
   overview_controller->StartOverview();
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
   ASSERT_TRUE(overview_controller->InOverviewSession());
-  ASSERT_TRUE(split_view_controller->InSplitViewMode());
+  ASSERT_TRUE(split_view_controller()->InSplitViewMode());
 
   const int window2_initial_translation =
       window2->transform().To2dTranslation().y();
@@ -331,7 +334,7 @@
   EXPECT_EQ(window2_initial_translation,
             window2->transform().To2dTranslation().y());
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
 
   // Tests that after releasing on the top half, overivew and splitview have
   // both been exited, and both windows are minimized to show the home launcher.
@@ -339,7 +342,7 @@
   GetGestureHandler()->OnReleaseEvent(gfx::Point(0, 100),
                                       /*velocity_y=*/base::nullopt);
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window1.get())->IsMinimized());
   EXPECT_TRUE(WindowState::Get(window2.get())->IsMinimized());
 }
@@ -353,10 +356,10 @@
   auto window2 = CreateWindowForTesting();
 
   // Snap two windows to start.
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
-  ASSERT_TRUE(split_view_controller->InSplitViewMode());
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+  ASSERT_TRUE(split_view_controller()->InSplitViewMode());
 
   // Make |window1| the most recent used window. It should be the main window in
   // HomeLauncherGestureHandler.
@@ -376,14 +379,14 @@
                                       /*velocity_y=*/base::nullopt);
   EXPECT_EQ(window1->transform(), gfx::Transform());
   EXPECT_EQ(window2->transform(), gfx::Transform());
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
 
   // Tests that after releasing on the bottom half, splitview has been ended,
   // and the two windows have been minimized to show the home launcher.
   DoPress(Mode::kSlideUpToShow);
   GetGestureHandler()->OnReleaseEvent(gfx::Point(0, 100),
                                       /*velocity_y=*/base::nullopt);
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window1.get())->IsMinimized());
   EXPECT_TRUE(WindowState::Get(window2.get())->IsMinimized());
 }
@@ -466,9 +469,9 @@
   // Test in splitview, depends on the drag position, the active dragged window
   // might be different.
   auto window2 = CreateWindowForTesting();
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   EXPECT_EQ(GetGestureHandler()->GetActiveWindow(), window1.get());
@@ -481,7 +484,7 @@
   GetGestureHandler()->OnReleaseEvent(shelf_bounds.bottom_right(),
                                       /*velocity_y=*/base::nullopt);
   EXPECT_FALSE(GetGestureHandler()->GetActiveWindow());
-  split_view_controller->EndSplitView();
+  split_view_controller()->EndSplitView();
 
   // In overview, drag from shelf is a no-op.
   Shell::Get()->overview_controller()->StartOverview();
@@ -515,9 +518,9 @@
   EXPECT_TRUE(window3->IsVisible());
 
   // In splitview mode, the snapped windows will stay visible during dragging.
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   EXPECT_EQ(GetGestureHandler()->GetActiveWindow(), window1.get());
@@ -579,11 +582,11 @@
 
   // In splitview + overview case, drag from shelf in the overview side of the
   // screen also does nothing.
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
   overview_controller->StartOverview();
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
   EXPECT_FALSE(GetGestureHandler()->OnPressEvent(
       Mode::kDragWindowToHomeOrOverview, shelf_bounds.bottom_right()));
@@ -648,9 +651,8 @@
   EXPECT_TRUE(overview_controller->InOverviewSession());
   GetGestureHandler()->OnReleaseEvent(gfx::Point(0, 200), base::nullopt);
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window1.get()));
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window1.get()));
   EXPECT_FALSE(window2->IsVisible());
 }
 
@@ -753,9 +755,9 @@
 
   // The same thing should happen if splitview mode is active.
   auto window2 = CreateWindowForTesting();
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   GetGestureHandler()->OnScrollEvent(gfx::Point(0, 200), 0.f, 1.f);
@@ -764,7 +766,7 @@
   GetGestureHandler()->OnReleaseEvent(gfx::Point(0, 400), base::nullopt);
   EXPECT_TRUE(window->layer()->GetTargetTransform().IsIdentity());
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_EQ(split_view_controller->left_window(), window.get());
+  EXPECT_EQ(split_view_controller()->left_window(), window.get());
 }
 
 // Test that in kDragWindowToHomeOrOverview mode, if overview is active and
@@ -813,59 +815,59 @@
 
   auto window1 = CreateWindowForTesting();
   auto window2 = CreateWindowForTesting();
-  SplitViewController* split_view_controller = SplitViewController::Get();
   OverviewController* overview_controller = Shell::Get()->overview_controller();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
 
   // If the window is only dragged for a small distance:
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   GetGestureHandler()->OnScrollEvent(gfx::Point(100, 200), 0.f, 1.f);
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
   GetGestureHandler()->OnReleaseEvent(gfx::Point(100, 350), base::nullopt);
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window1.get()));
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window2.get()));
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window1.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window2.get()));
 
   // If the window is dragged for a long distance:
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   GetGestureHandler()->OnScrollEvent(gfx::Point(100, 200), 0.f, 1.f);
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
   GetGestureHandler()->OnReleaseEvent(gfx::Point(100, 200), base::nullopt);
   EXPECT_TRUE(overview_controller->InOverviewSession());
   EXPECT_TRUE(overview_controller->overview_session()->IsWindowInOverview(
       window1.get()));
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
-  EXPECT_FALSE(split_view_controller->IsWindowInSplitView(window1.get()));
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window2.get()));
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->IsWindowInSplitView(window1.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window2.get()));
   overview_controller->EndOverview();
 
   // If the window is flung with a small velocity:
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   GetGestureHandler()->OnScrollEvent(gfx::Point(100, 200), 0.f, 1.f);
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
   GetGestureHandler()->OnReleaseEvent(
       gfx::Point(100, 350),
       base::make_optional(
           -DragWindowFromShelfController::kVelocityToOverviewThreshold + 10));
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window1.get()));
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window2.get()));
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window1.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window2.get()));
 
   // If the window is flung with a large velocity:
   GetGestureHandler()->OnPressEvent(Mode::kDragWindowToHomeOrOverview,
                                     shelf_bounds.bottom_left());
   GetGestureHandler()->OnScrollEvent(gfx::Point(100, 200), 0.f, 1.f);
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
   GetGestureHandler()->OnReleaseEvent(
       gfx::Point(100, 350),
@@ -874,9 +876,9 @@
   EXPECT_TRUE(overview_controller->InOverviewSession());
   EXPECT_TRUE(overview_controller->overview_session()->IsWindowInOverview(
       window1.get()));
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
-  EXPECT_FALSE(split_view_controller->IsWindowInSplitView(window1.get()));
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window2.get()));
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->IsWindowInSplitView(window1.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window2.get()));
   overview_controller->EndOverview();
 }
 
diff --git a/ash/home_screen/home_screen_controller.cc b/ash/home_screen/home_screen_controller.cc
index cbdbb11..02bbb255 100644
--- a/ash/home_screen/home_screen_controller.cc
+++ b/ash/home_screen/home_screen_controller.cc
@@ -87,9 +87,11 @@
     return true;
   }
 
-  if (SplitViewController::Get()->InSplitViewMode()) {
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  if (split_view_controller->InSplitViewMode()) {
     // End split view mode.
-    SplitViewController::Get()->EndSplitView(
+    split_view_controller->EndSplitView(
         SplitViewController::EndReason::kHomeLauncherPressed);
     return true;
   }
diff --git a/ash/home_screen/home_screen_controller_unittest.cc b/ash/home_screen/home_screen_controller_unittest.cc
index 8bfd6c11..f081a7f 100644
--- a/ash/home_screen/home_screen_controller_unittest.cc
+++ b/ash/home_screen/home_screen_controller_unittest.cc
@@ -6,11 +6,16 @@
 
 #include <memory>
 
+#include "ash/app_list/app_list_controller_impl.h"
+#include "ash/home_screen/home_screen_delegate.h"
+#include "ash/public/cpp/test/shell_test_api.h"
 #include "ash/shell.h"
 #include "ash/test/ash_test_base.h"
+#include "ash/wm/overview/overview_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "ash/wm/window_state.h"
 #include "base/macros.h"
+#include "ui/aura/window.h"
 
 namespace ash {
 namespace {
@@ -49,5 +54,25 @@
   ASSERT_FALSE(WindowState::Get(w2.get())->IsMinimized());
 }
 
+// Tests that the home screen is visible after rotating the screen in overview
+// mode.
+TEST_F(HomeScreenControllerTest,
+       HomeScreenVisibleAfterDisplayUpdateInOverview) {
+  Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
+  OverviewController* overview_controller = Shell::Get()->overview_controller();
+  overview_controller->StartOverview();
+
+  // Trigger a display configuration change, this simulates screen rotation.
+  Shell::Get()->app_list_controller()->OnDisplayConfigurationChanged();
+
+  // End overview mode, the home launcher should be visible.
+  overview_controller->EndOverview();
+  ShellTestApi().WaitForOverviewAnimationState(
+      OverviewAnimationState::kExitAnimationComplete);
+
+  EXPECT_TRUE(
+      home_screen_controller()->delegate()->GetHomeScreenWindow()->IsVisible());
+}
+
 }  // namespace
 }  // namespace ash
diff --git a/ash/magnifier/docked_magnifier_controller_impl.cc b/ash/magnifier/docked_magnifier_controller_impl.cc
index e8f983b..cb5b7f7 100644
--- a/ash/magnifier/docked_magnifier_controller_impl.cc
+++ b/ash/magnifier/docked_magnifier_controller_impl.cc
@@ -625,16 +625,15 @@
   Shell* shell = Shell::Get();
   auto* overview_controller = shell->overview_controller();
   if (overview_controller->InOverviewSession()) {
-    auto* split_view_controller = SplitViewController::Get();
-    if (split_view_controller->InSplitViewMode()) {
-      // In this case, we're in a single-split-view mode, i.e. a window is
-      // snapped to one side of the split view, while the other side has
-      // overview active. We need to exit split view as well as exiting overview
-      // mode, otherwise we'll be in an invalid state.
+    // |OverviewController::EndOverview| fails (returning false) in certain
+    // cases involving tablet split view mode. We can guarantee success by
+    // ensuring that tablet split view mode is not in session.
+    auto* split_view_controller =
+        SplitViewController::Get(Shell::GetPrimaryRootWindow());
+    if (split_view_controller->InTabletSplitViewMode()) {
       split_view_controller->EndSplitView(
           SplitViewController::EndReason::kNormal);
     }
-
     overview_controller->EndOverview();
   }
 
diff --git a/ash/magnifier/docked_magnifier_controller_impl_unittest.cc b/ash/magnifier/docked_magnifier_controller_impl_unittest.cc
index 9e04c3f..58b6c998 100644
--- a/ash/magnifier/docked_magnifier_controller_impl_unittest.cc
+++ b/ash/magnifier/docked_magnifier_controller_impl_unittest.cc
@@ -72,6 +72,10 @@
     return Shell::Get()->docked_magnifier_controller();
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
   PrefService* user1_pref_service() {
     return Shell::Get()->session_controller()->GetUserPrefServiceForUser(
         AccountId::FromUserEmail(kUser1Email));
@@ -410,20 +414,19 @@
       CreateTestWindowInShell(SK_ColorWHITE, 100, gfx::Rect(0, 0, 200, 200)));
   WindowState::Get(window.get())->Maximize();
 
-  auto* split_view_controller = SplitViewController::Get();
-  EXPECT_EQ(split_view_controller->state(),
+  EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::State::kNoSnap);
-  EXPECT_EQ(split_view_controller->InSplitViewMode(), false);
+  EXPECT_EQ(split_view_controller()->InSplitViewMode(), false);
 
   // Simulate going into split view, by enabling overview mode, and snapping
   // a window to the left.
   auto* overview_controller = Shell::Get()->overview_controller();
   overview_controller->StartOverview();
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT);
-  EXPECT_EQ(split_view_controller->state(),
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
+  EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::State::kLeftSnapped);
-  EXPECT_EQ(split_view_controller->left_window(), window.get());
+  EXPECT_EQ(split_view_controller()->left_window(), window.get());
   EXPECT_TRUE(overview_controller->InOverviewSession());
 
   // Enable the docked magnifier and expect that both overview and split view
@@ -432,9 +435,9 @@
   controller()->SetEnabled(true);
   EXPECT_TRUE(controller()->GetEnabled());
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_EQ(split_view_controller->state(),
+  EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::State::kNoSnap);
-  EXPECT_EQ(split_view_controller->InSplitViewMode(), false);
+  EXPECT_EQ(split_view_controller()->InSplitViewMode(), false);
   const display::Display& display = display_manager()->GetDisplayAt(0);
   const int magnifier_height = GetMagnifierHeight(display.bounds().height());
   gfx::Rect work_area = display.bounds();
@@ -460,12 +463,12 @@
   overview_controller->StartOverview();
   EXPECT_TRUE(overview_controller->InOverviewSession());
 
-  auto* split_view_controller = SplitViewController::Get();
-  EXPECT_EQ(split_view_controller->InSplitViewMode(), false);
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(split_view_controller->InSplitViewMode(), true);
-  EXPECT_EQ(split_view_controller->state(),
+  EXPECT_EQ(split_view_controller()->InSplitViewMode(), false);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+  EXPECT_EQ(split_view_controller()->InSplitViewMode(), true);
+  EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::State::kBothSnapped);
 
   // Snapping both windows should exit overview mode.
@@ -476,8 +479,8 @@
   // updated display's work area.
   controller()->SetEnabled(true);
   EXPECT_TRUE(controller()->GetEnabled());
-  EXPECT_EQ(split_view_controller->InSplitViewMode(), true);
-  EXPECT_EQ(split_view_controller->state(),
+  EXPECT_EQ(split_view_controller()->InSplitViewMode(), true);
+  EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::State::kBothSnapped);
   const display::Display& display = display_manager()->GetDisplayAt(0);
   const int magnifier_height = GetMagnifierHeight(display.bounds().height());
diff --git a/ash/metrics/histogram_macros.cc b/ash/metrics/histogram_macros.cc
index 8f3e126..2d43e8f3 100644
--- a/ash/metrics/histogram_macros.cc
+++ b/ash/metrics/histogram_macros.cc
@@ -6,6 +6,7 @@
 #include "ash/shell.h"
 #include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
+#include "ui/aura/window.h"
 
 namespace ash {
 
@@ -16,8 +17,12 @@
 }
 
 bool IsInSplitView() {
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  return split_view_controller && split_view_controller->InSplitViewMode();
+  const aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  return std::any_of(
+      root_windows.cbegin(), root_windows.cend(),
+      [](const aura::Window* root_window) {
+        return SplitViewController::Get(root_window)->InSplitViewMode();
+      });
 }
 
 }  // namespace ash
diff --git a/ash/public/mojom/assistant_state_controller.mojom b/ash/public/mojom/assistant_state_controller.mojom
index c52356b..34538e4 100644
--- a/ash/public/mojom/assistant_state_controller.mojom
+++ b/ash/public/mojom/assistant_state_controller.mojom
@@ -11,6 +11,12 @@
   NOT_READY = 0,
   // The Assistant service is ready.
   READY,
+  // The Assistant service is ready.
+  // TODO(b/142428671): This is set when the Assistant backend signals it is
+  // ready to handle queries, where |READY| is signaled when it is started.
+  // If this signal turns out to be reliable it should replace |READY| and be
+  // renamed to |READY|.
+  NEW_READY,
 };
 
 enum AssistantAllowedState {
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 3e19435..73c9210 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -59,6 +59,7 @@
 #include "ash/wm/overlay_layout_manager.h"
 #include "ash/wm/root_window_layout_manager.h"
 #include "ash/wm/splitview/split_view_controller.h"
+#include "ash/wm/splitview/split_view_utils.h"
 #include "ash/wm/stacking_controller.h"
 #include "ash/wm/switchable_windows.h"
 #include "ash/wm/system_modal_container_layout_manager.h"
@@ -783,13 +784,13 @@
 
 void RootWindowController::Init(RootWindowType root_window_type) {
   aura::Window* root_window = GetRootWindow();
-  // Create |split_view_controller_| for the primary display only.
-  // TODO(crbug.com/970013): If the
-  // |ash::features::kMultiDisplayOverviewAndSplitView| feature flag is enabled,
-  // create |split_view_controller_| for every display.
+  // If the |ash::features::kMultiDisplayOverviewAndSplitView| feature flag is
+  // enabled, create |split_view_controller_| for every display. Otherwise,
+  // create |split_view_controller_| for the primary display only.
   display::Screen* screen = display::Screen::GetScreen();
-  if (screen->GetDisplayNearestWindow(root_window).id() ==
-      screen->GetPrimaryDisplay().id()) {
+  if (AreMultiDisplayOverviewAndSplitViewEnabled() ||
+      screen->GetDisplayNearestWindow(root_window).id() ==
+          screen->GetPrimaryDisplay().id()) {
     split_view_controller_ = std::make_unique<SplitViewController>(root_window);
   }
   Shell* shell = Shell::Get();
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index b98a8d2..c24ed7d 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -330,12 +330,11 @@
     Shell::Get()->app_list_controller()->RemoveObserver(this);
   if (Shell::Get()->overview_controller())
     Shell::Get()->overview_controller()->RemoveObserver(this);
-  SplitViewController::Get()->RemoveObserver(this);
 }
 
 void ShelfLayoutManager::InitObservers() {
   Shell::Get()->AddShellObserver(this);
-  SplitViewController::Get()->AddObserver(this);
+  SplitViewController::Get(shelf_widget_->GetNativeWindow())->AddObserver(this);
   Shell::Get()->overview_controller()->AddObserver(this);
   Shell::Get()->app_list_controller()->AddObserver(this);
   Shell::Get()
@@ -364,6 +363,9 @@
   // DesksController could be null when virtual desks feature is not enabled.
   if (DesksController::Get())
     DesksController::Get()->RemoveObserver(this);
+
+  SplitViewController::Get(shelf_widget_->GetNativeWindow())
+      ->RemoveObserver(this);
 }
 
 bool ShelfLayoutManager::IsVisible() const {
@@ -628,8 +630,9 @@
     return SHELF_BACKGROUND_LOGIN;
   }
 
-  const bool in_split_view_mode = SplitViewController::Get() &&
-                                  SplitViewController::Get()->InSplitViewMode();
+  const bool in_split_view_mode =
+      SplitViewController::Get(shelf_widget_->GetNativeWindow())
+          ->InSplitViewMode();
   const bool maximized =
       in_split_view_mode ||
       state_.window_state == WorkspaceWindowState::kFullscreen ||
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 1b5f203..b6e483d 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">በ<ph name="LOGOUT_TIME_LEFT" /> ውስጥ በራስ-ሰር ዘግተው እንዲወጡ ይደረጋሉ።</translation>
 <translation id="6064337552080329342">ይቅርታ፣ የይለፍ ቃልዎ ሊረጋገጥ አልቻለም። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="607652042414456612">ኮምፒውተርዎ አቅራቢያ ባሉ የብሉቱዝ መሣሪያዎች ሊገኝ የሚችል ነው፣ እና በ<ph name="ADDRESS" /> አድራሻ እንደ «<ph name="NAME" />» ሆኖ ይታያል</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" />ን በመሙላት ላይ</translation>
 <translation id="612734058257491180">የGoogle ረዳቱ በእንግዳ ክፍለ-ጊዜ ውስጥ አይገኝም።</translation>
 <translation id="615957422585914272">የማያ ገጽ ላይ ቁልፍ ሰሌዳ አሳይ</translation>
 <translation id="6164005077879661055">ይህ ክትትል የሚደረግበት ተጠቃሚ አንዴ ከተወገደ በኋላ ሁሉም ከዚህ ክትትል የሚደረግበት ተጠቃሚ ጋር የተጎዳኙ ፋይሎች እና አካባቢያዊ ውሂብ እስከመጨረሻው ይሰረዛሉ። አስተዳዳሪው የዚህ ክትትል የሚደረግበት ተጠቃሚ የጎበኛቸው ድር ጣቢያዎች እና ቅንብሮች <ph name="MANAGEMENT_URL" /> ላይ ሊያዩት ይችላሉ።</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">የእርስዎን ማሳወቂያዎች ለማየት መሣሪያውን ይክፈቱ</translation>
 <translation id="7649070708921625228">እገዛ</translation>
 <translation id="7654687942625752712">የሚነገር ግብረመልስን ለማሰናከል ለአምስት ሰከንዶች ሁለቱንም የድምፅ ቁልፎች ተጭነው ያይዙ።</translation>
-<translation id="7692480393933218409">የተገናኙ የUSB-C መሣሪያዎችን ኃይል በመሙላት ላይ</translation>
 <translation id="7705524343798198388">ቪ ፒ ኤን</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ማሳወቂያ}one{# ማሳወቂያዎች}other{# ማሳወቂያዎች}}</translation>
 <translation id="7749443890790263709">የተደረሰባቸው የዴስኮች ከፍተኛ ብዛት።</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 1594c16e..bc0f402 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">سيتم تسجيل خروجك تلقائيًا في غضون <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">عذرًا، ولكن لا يمكن التحقق من كلمة مرورك. يُرجى إعادة المحاولة.</translation>
 <translation id="607652042414456612">يمكن لأجهزة بلوتوث القريبة اكتشاف جهاز الكمبيوتر وسيظهر كـ "<ph name="NAME" />" بالعنوان <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">جارٍ شحن <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">‏لا يتوفر "مساعد Google" في جلسة ضيف.</translation>
 <translation id="615957422585914272">إظهار لوحة مفاتيح على الشاشة</translation>
 <translation id="6164005077879661055">سيتم حذف جميع الملفات والبيانات المحلية المقترنة بالمستخدم الذي يخضع للإشراف نهائيًا بمجرد 
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">إلغاء قفل الجهاز لعرض الإشعارات</translation>
 <translation id="7649070708921625228">مساعدة</translation>
 <translation id="7654687942625752712">اضغط مع الاستمرار على مفتاحي مستوى الصوت لمدة خمس ثوانٍ لإيقاف التعليقات والملاحظات المنطوقة.</translation>
-<translation id="7692480393933218409">‏جارٍ شحن أجهزة USB-C المتصلة</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{إشعار واحد}zero{# إشعار}two{إشعاران (#)}few{# إشعارات}many{# إشعارًا}other{# إشعار}}</translation>
 <translation id="7749443890790263709">تم تجاوز أقصى عدد مسموح به من محطات الإرساء.</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index 7422e34..53d3855 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Ще излезете автоматично след <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">За съжаление, паролата ви не можа да бъде потвърдена. Моля, опитайте отново.</translation>
 <translation id="607652042414456612">Компютърът ви е откриваем за устройства с Bluetooth наблизо и ще се показва като „<ph name="NAME" />“ с адрес <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Зарежда се <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google Асистент не се поддържа по време на сесия като гост.</translation>
 <translation id="615957422585914272">Показване на екранната клавиатура</translation>
 <translation id="6164005077879661055">Всички файлове и локални данни, свързани с контролирания потребител, ще бъдат изтрити за постоянно, щом той бъде премахнат. Посетените уебсайтове и настройките за него може все още да се виждат от мениджъра на адрес <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Отключете устройството, за да прегледате известията си</translation>
 <translation id="7649070708921625228">Помощ</translation>
 <translation id="7654687942625752712">Натиснете и двата бутона за силата на звука и ги задръжте за пет секунди, за да деактивирате обратната връзка с говор.</translation>
-<translation id="7692480393933218409">Свързаните устройства с USB-C се зареждат</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 известие}other{# известия}}</translation>
 <translation id="7749443890790263709">Достигнат е максималният брой работни кътове.</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index 588d6fa..78e201f 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">আপনি <ph name="LOGOUT_TIME_LEFT" /> এর মধ্যে স্বয়ংক্রিয়ভাবে প্রস্থান করুন হবেন৷</translation>
 <translation id="6064337552080329342">আপনার পাসওয়ার্ড যাচাই করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।</translation>
 <translation id="607652042414456612">আপনার কম্পিউটার কাছাকাছি ব্লুটুথ ডিভাইসে খুঁজে পাওয়া সম্ভব এবং ঠিকানা <ph name="ADDRESS" /> সমেত "<ph name="NAME" />" হিসাবে প্রদর্শিত হবে</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> চার্জ হচ্ছে</translation>
 <translation id="612734058257491180">Google অ্যাসিস্ট্যান্ট কোনও গেস্ট সেশনে উপলভ্য নয়।</translation>
 <translation id="615957422585914272">অন-স্ক্রিন কীবোর্ড প্রদর্শন করুন</translation>
 <translation id="6164005077879661055">একবার এই তত্ত্বাবধানে থাকা ব্যবহারকারী সরানো হলে এর সঙ্গে সংশ্লিষ্ট সমস্ত ফাইল এবং
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">আপনার বিজ্ঞপ্তিগুলি দেখতে ডিভাইস আনলক করুন</translation>
 <translation id="7649070708921625228">সহায়তা</translation>
 <translation id="7654687942625752712">পড়ে শোনানো বিকল্প চালু করতে পাঁচ সেকেন্ডের জন্য ভলিউম কীগুলি প্রেস করে ধরে রাখুন।</translation>
-<translation id="7692480393933218409">সংযুক্ত USB-C ডিভাইসগুলি চার্জ হচ্ছে</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{১টি বিজ্ঞপ্তি}one{#টি বিজ্ঞপ্তি}other{#টি বিজ্ঞপ্তি}}</translation>
 <translation id="7749443890790263709">সর্বাধিক সংখ্যক ডেস্ক যোগ করা হয়ে গেছে।</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index 9646f619..72e9b2f 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Es tancarà la sessió automàticament d'aquí a <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">No s'ha pogut verificar la contrasenya. Torna-ho a provar.</translation>
 <translation id="607652042414456612">El vostre ordinador està visible als dispositius Bluetooth propers i apareixerà com a "<ph name="NAME" />" amb l'adreça <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237">S'està carregant: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">L'Assistent de Google no està disponible a les sessions de convidat.</translation>
 <translation id="615957422585914272">Mostra el teclat en pantalla</translation>
 <translation id="6164005077879661055">Tots els fitxers i les dades locals associats amb l'usuari supervisat se suprimiran permanentment quan aquest usuari supervisat se suprimeixi. És possible que el gestor encara pugui veure els llocs web visitats i la configuració d'aquest usuari supervisat a la pàgina <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Desbloqueja el dispositiu per veure les notificacions</translation>
 <translation id="7649070708921625228">Ajuda</translation>
 <translation id="7654687942625752712">Mantén premudes les dues tecles de volum durant cinc segons per desactivar els avisos de veu.</translation>
-<translation id="7692480393933218409">S'estan carregant els dispositius USB-C connectats</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificació}other{# notificacions}}</translation>
 <translation id="7749443890790263709">S'ha assolit el nombre màxim d'escriptoris.</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index c917d7d..87a8aac 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Za <ph name="LOGOUT_TIME_LEFT" /> budete automaticky odhlášeni.</translation>
 <translation id="6064337552080329342">Litujeme, heslo se nepodařilo ověřit. Zkuste to znovu.</translation>
 <translation id="607652042414456612">Váš počítač mohou objevit okolní zařízení Bluetooth, ve kterých se bude zobrazovat s názvem „<ph name="NAME" />“ a adresou <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> – nabíjení</translation>
 <translation id="612734058257491180">Asistent Google v relaci hosta není k dispozici.</translation>
 <translation id="615957422585914272">Zobrazit softwarovou klávesnici</translation>
 <translation id="6164005077879661055">Po odebrání dozorovaného uživatele budou trvale smazány všechny soubory a místní data, která jsou k němu přiřazena. Navštívené weby a nastavení tohoto dozorovaného uživatele může správce i nadále zobrazit na adrese <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Chcete-li zobrazit oznámení, odemkněte zařízení</translation>
 <translation id="7649070708921625228">Nápověda</translation>
 <translation id="7654687942625752712">Hlasovou odezvu vypnete podržením obou tlačítek hlasitosti po dobu pěti sekund.</translation>
-<translation id="7692480393933218409">Nabíjení připojených zařízení USB Type-C</translation>
 <translation id="7705524343798198388">Síť VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 oznámení}few{# oznámení}many{# oznámení}other{# oznámení}}</translation>
 <translation id="7749443890790263709">Byl dosažen maximální počet ploch.</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 4a158990..10dcb86 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Du bliver automatisk logget ud om <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Din adgangskode blev ikke bekræftet. Prøv igen.</translation>
 <translation id="607652042414456612">Din computer kan registreres af Bluetooth-enheder i nærheden, og den vil blive vist som "<ph name="NAME" />" med adressen <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Oplader <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google Assistent er ikke tilgængelig i en gæstesession.</translation>
 <translation id="615957422585914272">Vis skærmtastatur</translation>
 <translation id="6164005077879661055">Alle filer og lokale data, der er knyttet til den administrerede bruger, 
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Lås enheden op for at se dine notifikationer</translation>
 <translation id="7649070708921625228">Hjælp</translation>
 <translation id="7654687942625752712">Tryk på begge lydstyrketaster, og hold dem nede i fem sekunder for at deaktivere oplæsning.</translation>
-<translation id="7692480393933218409">Oplader tilsluttede USB-C-enheder</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notifikation}one{# notifikation}other{# notifikationer}}</translation>
 <translation id="7749443890790263709">Det maksimale antal skriveborde er nået.</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 1772c8b..0ba20cb 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Sie werden in <ph name="LOGOUT_TIME_LEFT" /> automatisch abgemeldet.</translation>
 <translation id="6064337552080329342">Ihr Passwort konnte nicht bestätigt werden. Bitte versuchen Sie es noch einmal.</translation>
 <translation id="607652042414456612">Ihr Computer kann von Bluetooth-Geräten in der näheren Umgebung erkannt werden. Er erscheint als "<ph name="NAME" />" mit der Adresse <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> wird aufgeladen</translation>
 <translation id="612734058257491180">In Gastsitzungen ist Google Assistant nicht verfügbar.</translation>
 <translation id="615957422585914272">Bildschirmtastatur anzeigen</translation>
 <translation id="6164005077879661055">Durch das Entfernen des betreuten Nutzers werden alle mit ihm verknüpften Dateien und lokalen Daten endgültig gelöscht. Besuchte Websites und Einstellungen des betreuten Nutzers kann der Manager möglicherweise weiterhin unter <ph name="MANAGEMENT_URL" /> einsehen.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Gerät entsperren, um Benachrichtigungen zu sehen</translation>
 <translation id="7649070708921625228">Hilfe</translation>
 <translation id="7654687942625752712">Sie können gesprochenes Feedback deaktivieren, indem Sie die beiden Lautstärketasten fünf Sekunden lang gedrückt halten.</translation>
-<translation id="7692480393933218409">Verbundene USB-C-Geräte werden geladen</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 Benachrichtigung}other{# Benachrichtigungen}}</translation>
 <translation id="7749443890790263709">Maximale Anzahl von Arbeitsbereichen erreicht.</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index c4e43c6..1d6e48d 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Θα αποσυνδεθείτε αυτόματα σε <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Λυπούμαστε, δεν ήταν δυνατή η επαλήθευση του κωδικού πρόσβασης. Δοκιμάστε ξανά.</translation>
 <translation id="607652042414456612">Ο υπολογιστής σας μπορεί να εντοπιστεί από κοντινές συσκευές Bluetooth και θα εμφανίζεται ως "<ph name="NAME" />" με διεύθυνση <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Φόρτιση <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Ο Βοηθός Google δεν είναι διαθέσιμος σε περιόδους σύνδεσης επισκέπτη.</translation>
 <translation id="615957422585914272">Εμφάνιση πληκτρολογίου οθόνης</translation>
 <translation id="6164005077879661055">Όλα τα αρχεία και τα τοπικά δεδομένα που σχετίζονται με το χρήστη υπό επίβλεψη θα διαγραφούν οριστικά μόλις καταργηθεί ο χρήστης υπό επίβλεψη. Οι ιστοσελίδες που έχει επισκεφτεί και οι ρυθμίσεις που έχει επιλέξει ενδεχομένως να εξακολουθούν να εμφανίζονται στο διαχειριστή στη διεύθυνση <ph name="MANAGEMENT_URL" /> .</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Ξεκλειδώστε τη συσκευή για να δείτε τις ειδοποιήσεις σας</translation>
 <translation id="7649070708921625228">Βοήθεια</translation>
 <translation id="7654687942625752712">Πατήστε παρατεταμένα και τα δύο πλήκτρα έντασης ήχου για πέντε δευτερόλεπτα, για να απενεργοποιήσετε τα εκφωνημένα σχόλια.</translation>
-<translation id="7692480393933218409">Φόρτιση συνδεδεμένων συσκευών USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ειδοποίηση}other{# ειδοποιήσεις}}</translation>
 <translation id="7749443890790263709">Συμπληρώθηκε ο μέγιστος αριθμός γραφείων.</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index 1b0077f..124fae8b 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">You will automatically be signed out in <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Sorry, your password couldn't be verified. Please try again.</translation>
 <translation id="607652042414456612">Your computer is discoverable to nearby Bluetooth devices and will appear as "<ph name="NAME" />" with address <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Charging <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">The Google Assistant is not available in a guest session.</translation>
 <translation id="615957422585914272">Show on-screen keyboard</translation>
 <translation id="6164005077879661055">All files and local data associated with the supervised user will be permanently deleted once this supervised user is removed. Visited websites and settings for this supervised user may still be visible by the manager at <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Unlock device to view your notifications</translation>
 <translation id="7649070708921625228">Help</translation>
 <translation id="7654687942625752712">Press and hold both volume keys for five seconds to disable spoken feedback.</translation>
-<translation id="7692480393933218409">Charging connected USB-C devices</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notification}other{# notifications}}</translation>
 <translation id="7749443890790263709">Maximum number of desks reached.</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index 2891376..deba803 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">Saldrás de la sesión automáticamente en <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">No es posible verificar tu contraseña. Vuelve a intentarlo.</translation>
 <translation id="607652042414456612">La computadora es visible para dispositivos Bluetooth cercanos y aparecerá como "<ph name="NAME" />" con la dirección <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237">Cargando <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">El Asistente de Google no está disponible en las sesiones de invitado.</translation>
 <translation id="615957422585914272">Mostrar el teclado en pantalla</translation>
 <translation id="6164005077879661055">Todos los archivos y los datos locales asociados al usuario supervisado se eliminarán de forma permanente una vez que se elimine este usuario supervisado. Es posible que el administrador pueda seguir viendo la configuración y los sitios web visitados de este usuario supervisado en <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Desbloquea el dispositivo para ver tus notificaciones</translation>
 <translation id="7649070708921625228">Ayuda</translation>
 <translation id="7654687942625752712">Mantén presionadas las teclas de volumen durante cinco segundos para inhabilitar los comentarios por voz.</translation>
-<translation id="7692480393933218409">Cargando dispositivos USB-C conectados</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificación}other{# notificaciones}}</translation>
 <translation id="7749443890790263709">Se alcanzó la cantidad máxima de escritorios.</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index f795667..2d762a60 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">Tu sesión se cerrará automáticamente en <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">No se ha podido verificar tu contraseña. Vuelve a intentarlo.</translation>
 <translation id="607652042414456612">Tu ordenador es visible para dispositivos Bluetooth cercanos y aparecerá como "<ph name="NAME" />" con la dirección <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Cargando <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">El Asistente de Google no está disponible en las sesiones de invitado.</translation>
 <translation id="615957422585914272">Mostrar teclado en pantalla</translation>
 <translation id="6164005077879661055">Todos los archivos y datos locales asociados al usuario supervisado se eliminarán de forma permanente una vez que se haya eliminado este usuario supervisado. Es posible que el administrador pueda seguir viendo la configuración y los sitios web visitados de este usuario supervisado en la página <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Desbloquear el dispositivo para ver las notificaciones</translation>
 <translation id="7649070708921625228">Ayuda</translation>
 <translation id="7654687942625752712">Mantén pulsadas ambas teclas de volumen durante cinco segundos para inhabilitar los mensajes de voz.</translation>
-<translation id="7692480393933218409">Cargando los dispositivos USB tipo C conectados</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificación}other{# notificaciones}}</translation>
 <translation id="7749443890790263709">Has alcanzado el número máximo de escritorios.</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index fb7e84f..23cb6d69 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">Teid logitakse automaatselt välja <ph name="LOGOUT_TIME_LEFT" /> pärast.</translation>
 <translation id="6064337552080329342">Kahjuks ei õnnestunud teie parooli kinnitada. Proovige uuesti.</translation>
 <translation id="607652042414456612">Lähedal olevad Bluetoothi seadmed saavad teie arvuti tuvastada ja see kuvatakse nimega „<ph name="NAME" />” ja aadressiga <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Laadimine: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google'i assistent ei ole külastajaseansis saadaval.</translation>
 <translation id="615957422585914272">Ekraanil kuvatava klaviatuuri kuvamine</translation>
 <translation id="6164005077879661055">Kõik jälgitava kasutajaga seotud failid ja kohalikud andmed kustutatakse jäädavalt kohe, kui jälgitav kasutaja eemaldatakse. Selle jälgitava kasutaja külastatud veebisaite ja seadeid näeb haldur endiselt aadressil <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Märguannete vaatamiseks avage seade</translation>
 <translation id="7649070708921625228">Abi</translation>
 <translation id="7654687942625752712">Suulise tagasiside keelamiseks hoidke mõlemat helitugevuse nuppu viis sekundit all.</translation>
-<translation id="7692480393933218409">Ühendatud C-tüüpi USB-seadmete laadimine</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 märguanne}other{# märguannet}}</translation>
 <translation id="7749443890790263709">Töölaudade maksimaalne arv on täis.</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 3044d106..dd29bd2 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">به صورت خودکار در عرض <ph name="LOGOUT_TIME_LEFT" /> از سیستم خارج می‌شوید.</translation>
 <translation id="6064337552080329342">متأسفانه، گذرواژه شما تأیید نشد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="607652042414456612">رایانه شما توسط دستگاه‌های بلوتوث نزدیک قابل شناسایی است و با نام «<ph name="NAME" />» و آدرس <ph name="ADDRESS" /> نشان داده می‌شود</translation>
-<translation id="6106745654298855237">در حال شارژ کردن <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">‏«دستیار Google» در جلسه مهمان دردسترس نیست.</translation>
 <translation id="615957422585914272">نمایش صفحه‌کلید روی صفحه</translation>
 <translation id="6164005077879661055">با حذف این کاربر نظارت‌شده، کلیه فایل‌ها و داده‌های محلی مربوط به کاربر نظارت‌شده برای همیشه حذف خواهند شد. وب‌سایت‌های بازدید شده و تنظیمات این کاربر نظارت‌شده همچنان برای مدیر در <ph name="MANAGEMENT_URL" /> قابل مشاهده خواهد بود.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">برای مشاهده اعلان‌هایتان، قفل دستگاه را باز کنید</translation>
 <translation id="7649070708921625228">راهنما</translation>
 <translation id="7654687942625752712">برای غیرفعال کردن بازخورد گفتاری، هردو کلید تنظیم صدا را پنج ثانیه فشار دهید و نگه‌دارید.</translation>
-<translation id="7692480393933218409">‏در حال شارژ کردن دستگاه‌های USB-C متصل</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{۱ اعلان}one{# اعلان}other{# اعلان}}</translation>
 <translation id="7749443890790263709">به حداکثر تعداد میز رسیده‌اید.</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 897ce764..523e5f91 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Sinut kirjataan ulos automaattisesti, aikaa jäljellä <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Salasanasi vahvistaminen epäonnistui. Yritä uudelleen.</translation>
 <translation id="607652042414456612">Lähellä olevat Bluetooth-laitteet voivat löytää tietokoneesi. Tietokoneesi nimi on <ph name="NAME" /> ja osoite <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Ladataan laitetta <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google Assistantia ei voi käyttää Vierailija-käyttökerralla.</translation>
 <translation id="615957422585914272">Näytä ruutunäppäimistö</translation>
 <translation id="6164005077879661055">Kaikki valvottuun käyttäjään yhdistetyt tiedostot ja paikalliset tiedot poistetaan
@@ -449,7 +448,6 @@
 <translation id="7647488630410863958">Katso ilmoitukset avaamalla laitteesi lukitus.</translation>
 <translation id="7649070708921625228">Ohje</translation>
 <translation id="7654687942625752712">Poista äänipalaute käytöstä painamalla molempia äänenvoimakkuuspainikkeita viiden sekunnin ajan.</translation>
-<translation id="7692480393933218409">Ladataan yhdistettyjä C-tyypin USB-laitteita</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ilmoitus}other{# ilmoitusta}}</translation>
 <translation id="7749443890790263709">Työpöytiä on enimmäismäärä.</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 8cae673..cb4fb96 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Awtomatiko kang masa-sign out sa loob ng <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Paumanhin, hindi ma-verify ang iyong password. Pakisubukang muli.</translation>
 <translation id="607652042414456612">Ang iyong computer ay katuklas-tuklas sa mga kalapit na Bluetooth device at lalabas bilang "<ph name="NAME" />" na may address na <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">China-charge ang <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Hindi available ang Google Assistant sa session ng bisita.</translation>
 <translation id="615957422585914272">Ipakita ang on-screen na keyboard</translation>
 <translation id="6164005077879661055">Permanenteng matatanggal ang lahat ng file at lokal na data na kaugnay ng pinangangasiwaang user sa oras na alisin ang pinangangasiwaang user na ito. Maaari pa ring makita ng manager ang mga nabisitang website at setting para sa pinangangasiwaang user na ito sa <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">I-unlock ang device upang tingnan ang iyong mga notification</translation>
 <translation id="7649070708921625228">Tulong</translation>
 <translation id="7654687942625752712">Pindutin nang matagal ang parehong volume key sa loob ng limang segundo para i-disable ang pasalitang feedback.</translation>
-<translation id="7692480393933218409">China-charge ang mga nakakonektang USB-C device</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notification}one{# notification}other{# na notification}}</translation>
 <translation id="7749443890790263709">Naabot ang maximum na bilang ng desk.</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 4194312..ecdb0bf 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Vous allez être déconnecté automatiquement dans <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Mot de passe incorrect. Veuillez réessayer.</translation>
 <translation id="607652042414456612">Votre ordinateur est visible par les appareils Bluetooth situés à proximité sous le nom "<ph name="NAME" />", associé à l'adresse <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> en charge</translation>
 <translation id="612734058257491180">L'Assistant Google n'est pas disponible dans une session Invité.</translation>
 <translation id="615957422585914272">Afficher le clavier à l'écran</translation>
 <translation id="6164005077879661055">Tous les fichiers et les données locales associés à l'utilisateur supervisé seront définitivement supprimés en même temps que cet utilisateur. Le gestionnaire peut toujours accéder aux sites Web consultés par l'utilisateur supervisé et aux paramètres de celui-ci à l'adresse <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Déverrouiller l'appareil pour consulter vos notifications</translation>
 <translation id="7649070708921625228">Aide</translation>
 <translation id="7654687942625752712">Appuyez pendant cinq secondes sur les deux touches de volume pour désactiver les commentaires audio.</translation>
-<translation id="7692480393933218409">Charge des appareils USB de type C connectés</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notification}one{# notification}other{# notifications}}</translation>
 <translation id="7749443890790263709">Vous avez atteint le nombre maximal de bureaux.</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 22aadcd..0afd4bfd5 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">તમે આપમેળે <ph name="LOGOUT_TIME_LEFT" /> માંથી સાઇન આઉટ થઇ જશો.</translation>
 <translation id="6064337552080329342">માફ કરશો, તમારો પાસવર્ડ ચકાસી શકાયો નથી. કૃપા કરીને ફરી પ્રયાસ કરો.</translation>
 <translation id="607652042414456612">નજીકનાં Bluetooth ડિવાઇસ માટે તમારું કમ્પ્યુટર શોધવાયોગ્ય છે અને તે સરનામાં <ph name="ADDRESS" /> સાથે "<ph name="NAME" />" તરીકે દેખાશે</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> ને ચાર્જ કરી રહ્યાં છે</translation>
 <translation id="612734058257491180">અતિથિ સત્રમાં Google આસિસ્ટંટ ઉપલબ્ધ હોતું નથી.</translation>
 <translation id="615957422585914272">ઑન-સ્ક્રીન કીબોર્ડ બતાવો</translation>
 <translation id="6164005077879661055">એકવાર આ નિરીક્ષણ કરેલ વપરાશકર્તાને દૂર કરવામાં આવે પછી નિરીક્ષણ કરેલ વપરાશકર્તા સાથે સંકળાયેલી બધી ફાઇલો અને સ્થાનિક ડેટા કાયમી રૂપે કાઢી નાંખવામાં આવશે. નિરીક્ષણ કરેલ વપરાશકર્તા માટે મુલાકાત લીધેલી વેબસાઇટ્સ અને સેટિંગ્સ <ph name="MANAGEMENT_URL" /> પરના સંચાલકને હજી પણ દૃશ્યમાન હોઈ શકે છે.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">તમારી સૂચનાઓ જોવા માટે ડિવાઇસને અનલૉક કરો</translation>
 <translation id="7649070708921625228">સહાય</translation>
 <translation id="7654687942625752712">બોલાયેલ પ્રતિસાદ બંધ કરવા પાંચ સેકન્ડ માટે બન્ને વૉલ્યૂમ કીને દબાવી રાખો.</translation>
-<translation id="7692480393933218409">કનેક્ટ કરેલા USB-C ઉપકરણોને ચાર્જ કરી રહ્યાં છે</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 નોટિફિકેશન}one{# નોટિફિકેશન}other{# નોટિફિકેશન}}</translation>
 <translation id="7749443890790263709">ડેસ્કની મહત્તમ સંખ્યા પર પહોંચી ગયા.</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 42f0a37..e013d56b 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">आप <ph name="LOGOUT_TIME_LEFT" /> में अपने आप प्रस्थान कर जाएंगे.</translation>
 <translation id="6064337552080329342">माफ़ करें, आपके पासवर्ड की पुष्टि नहीं की जा सकी. कृपया फिर से कोशिश करें.</translation>
 <translation id="607652042414456612">आपका कंप्यूर आस-पास के ब्लूटूथ डिवाइस के लिए खोजे जाने योग्य है और वह "<ph name="NAME" />" के रूप में <ph name="ADDRESS" /> पते के साथ दिखाई देगा</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> चार्ज हो रहा है</translation>
 <translation id="612734058257491180">Google Assistant की सुविधा मेहमान के तौर पर ब्राउज़ करने के सेशन में उपलब्ध नहीं है.</translation>
 <translation id="615957422585914272">ऑन-स्क्रीन कीबोर्ड दिखाएं</translation>
 <translation id="6164005077879661055">'निगरानी में रखे गए इस उपयोगकर्ता' को हटाने के बाद, निगरानी में रखे गए उपयोगकर्ता से जुड़ीं सभी फ़ाइलें और 'स्थानीय डेटा' हमेशा के लिए मिट जाएंगे. 'निगरानी में रखे गए इस उपयोगकर्ता' की देखी गईं वेबसाइटें और सेटिंग <ph name="MANAGEMENT_URL" /> पर प्रबंधक को अब भी दिखेंगी.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">अपने नोटिफ़िकेशन देखने के लिए डिवाइस अनलॉक करें</translation>
 <translation id="7649070708921625228">सहायता</translation>
 <translation id="7654687942625752712">कंप्यूटर का बोलकर दिया गया जवाब बंद करने के लिए दोनों वॉल्यूम की पांच सेकंड तक दबाकर रखें.</translation>
-<translation id="7692480393933218409">कनेक्ट किए गए USB-C डिवाइस चार्ज कर रहा है</translation>
 <translation id="7705524343798198388">वीपीएन</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{एक सूचना}one{# सूचनाएं}other{# सूचनाएं}}</translation>
 <translation id="7749443890790263709">ज़्यादा से ज़्यादा इतने ही डेस्क जोड़े जा सकते हैं.</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index 237a560..9b520bc 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Automatski ćete se odjaviti za <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Nije bilo moguće potvrditi zaporku. Pokušajte ponovo.</translation>
 <translation id="607652042414456612">Vaše računalo mogu otkriti Bluetooth uređaji u blizini i prikazivat će se kao "<ph name="NAME" />" s adresom <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237">Puni se putem: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google asistent nije dostupan u gostujućoj sesiji.</translation>
 <translation id="615957422585914272">Prikaži tipkovnicu na zaslonu</translation>
 <translation id="6164005077879661055">Sve datoteke i lokalni podaci povezani sa zaštićenim korisnikom trajno će se izbrisati kada se taj korisnik ukloni. Web-lokacije koje je taj korisnik posjetio i njegove postavke mogu i dalje biti vidljive upravitelju na adresi <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Otključajte uređaj da biste vidjeli obavijesti</translation>
 <translation id="7649070708921625228">Pomoć</translation>
 <translation id="7654687942625752712">Pritisnite i zadržite tipke za glasnoću pet sekundi da biste onemogućili govorne povratne informacije.</translation>
-<translation id="7692480393933218409">Punjenje povezanih USB-C uređaja</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 obavijest}one{# obavijest}few{# obavijesti}other{# obavijesti}}</translation>
 <translation id="7749443890790263709">Dosegnut je maksimalan broj radnih površina.</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index b234897..482d28a 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">A rendszer automatikusan kijelentkezteti Önt <ph name="LOGOUT_TIME_LEFT" /> idő múlva.</translation>
 <translation id="6064337552080329342">Sajnáljuk, jelszavát nem sikerült megerősíteni. Próbálkozzon újra.</translation>
 <translation id="607652042414456612">Számítógépét felfedezhetik a közeli Bluetooth-eszközök. Számítógépe „<ph name="NAME" />” néven, <ph name="ADDRESS" /> címmel lesz látható</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> töltése folyamatban</translation>
 <translation id="612734058257491180">A Google Segéd nem áll rendelkezésre Vendég-munkafolyamatban.</translation>
 <translation id="615957422585914272">A képernyő-billentyűzet megjelenítése</translation>
 <translation id="6164005077879661055">Amikor ezt a felügyelt felhasználót eltávolítják, minden hozzá tartozó fájl és helyi adat véglegesen törlődik. A felügyelt felhasználó felkeresett webhelyeit és beállításait a kezelő továbbra is láthatja a következő címen: <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Az eszköz zárolásának feloldása az értesítések megtekintéséhez</translation>
 <translation id="7649070708921625228">Súgó</translation>
 <translation id="7654687942625752712">A hangos visszajelzés kikapcsolásához öt másodpercig tartsa lenyomva mindkét hangerőgombot.</translation>
-<translation id="7692480393933218409">C típusú USB-vel kompatibilis eszközök töltése</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 értesítés}other{# értesítés}}</translation>
 <translation id="7749443890790263709">Elérte az asztalok maximális számát.</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index c26b51d..f0d7917 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Anda akan dikeluarkan secara otomatis dalam <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Maaf, sandi Anda tidak dapat diverifikasi. Harap coba lagi.</translation>
 <translation id="607652042414456612">Komputer Anda dapat ditemukan pada perangkat Bluetooth terdekat dan akan muncul sebagai "<ph name="NAME" />" dengan alamat <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Mengisi daya <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Asisten Google tidak tersedia dalam sesi tamu.</translation>
 <translation id="615957422585914272">Tampilkan keyboard di layar</translation>
 <translation id="6164005077879661055">Semua file dan data lokal yang terkait dengan pengguna yang dilindungi akan dihapus secara permanen setelah pengguna yang dilindungi ini dihapus. Situs web yang dikunjungi dan setelan untuk pengguna yang dilindungi ini mungkin tetap dapat dilihat oleh pengelola di <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Buka kunci perangkat untuk melihat notifikasi</translation>
 <translation id="7649070708921625228">Bantuan</translation>
 <translation id="7654687942625752712">Tekan dan tahan kedua tombol volume selama 5 detik untuk menonaktifkan masukan lisan.</translation>
-<translation id="7692480393933218409">Mengisi daya perangkat USB-C yang tersambung</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notifikasi}other{# notifikasi}}</translation>
 <translation id="7749443890790263709">Jumlah halaman kerja maksimum tercapai.</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 5d8acca1..c3a96a4 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">Verrai disconnesso automaticamente tra <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Impossibile verificare la password. Riprova.</translation>
 <translation id="607652042414456612">Il tuo computer è rilevabile per i dispositivi Bluetooth nelle vicinanze e verrà visualizzato come "<ph name="NAME" />" con l'indirizzo <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">In carica: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">L'Assistente Google non è disponibile in una sessione Ospite.</translation>
 <translation id="615957422585914272">Mostra tastiera sullo schermo</translation>
 <translation id="6164005077879661055">Tutti i file e i dati locali associati all'utente controllato verranno eliminati definitivamente in seguito alla rimozione dell'utente. Le impostazioni e i siti web visitati relativi all'utente controllato potrebbero essere ancora visibili al gestore all'indirizzo <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Sblocca il dispositivo per visualizzare le notifiche</translation>
 <translation id="7649070708921625228">Guida</translation>
 <translation id="7654687942625752712">Tieni premuti entrambi i tasti del volume per cinque secondi per disattivare la funzione di lettura vocale.</translation>
-<translation id="7692480393933218409">Dispositivi USB-C collegati in carica</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notifica}other{# notifiche}}</translation>
 <translation id="7749443890790263709">Numero massimo di desktop raggiunto.</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index 4526d21..bf64513 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -344,7 +344,6 @@
 <translation id="6062360702481658777">תצא באופן אוטומטי בעוד <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">מצטערים, אי אפשר לאמת את הסיסמה שלך. צריך לנסות שוב.</translation>
 <translation id="607652042414456612">‏מכשירי Bluetooth קרובים יכולים לאתר את המחשב שלך, והוא יופיע כ-"<ph name="NAME" />" עם הכתובת <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">טעינה של <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">‏Google Assistant אינו זמין בגלישה כאורח.</translation>
 <translation id="615957422585914272">הצג מקלדת במסך</translation>
 <translation id="6164005077879661055">כל הקבצים והנתונים המקומיים המשויכים למשתמש בפיקוח יימחקו לצמיתות לאחר שמשתמש בפיקוח זה יוסר. המנהל עדיין יוכל לראות את האתרים שבהם משתמש בפיקוח זה ביקר, ואת ההגדרות שלו, בכתובת <ph name="MANAGEMENT_URL" />.</translation>
@@ -396,6 +395,7 @@
 <translation id="6820676911989879663">הגיע הזמן להפסקה</translation>
 <translation id="683971173229319003">Search+L</translation>
 <translation id="6857811139397017780">הפעל את <ph name="NETWORKSERVICE" /></translation>
+<translation id="6878400149835617132">קיצור הדרך מושבת</translation>
 <translation id="6910714959251846841">‏כדי להתקין את העדכון הזה צריך לבצע Powerwash של המכשיר. אפשר לקרוא מידע נוסף על העדכון האחרון של <ph name="SYSTEM_APP_NAME" />.</translation>
 <translation id="6911468394164995108">הצטרף לרשת אחרת...</translation>
 <translation id="6919251195245069855">לא ניתן היה לזהות את הכרטיס החכם שלך. יש לנסות שוב.</translation>
@@ -446,7 +446,6 @@
 <translation id="7647488630410863958">בטל את נעילת המכשיר כדי להציג את ההודעות</translation>
 <translation id="7649070708921625228">עזרה</translation>
 <translation id="7654687942625752712">כדי להשבית את קורא המסך הקולי, צריך ללחוץ על שני לחצני עוצמת הקול למשך חמש שניות.</translation>
-<translation id="7692480393933218409">‏טעינת מכשירים מחוברים עם יציאת USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{הודעה אחת}two{2 הודעות}many{# הודעות}other{# הודעות}}</translation>
 <translation id="7749443890790263709">הגעת למספר המקסימלי של שולחנות עבודה.</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index ec62bf92..7cb118aa5 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">あと <ph name="LOGOUT_TIME_LEFT" />で自動的にログアウトします。</translation>
 <translation id="6064337552080329342">パスワードを確認できませんでした。もう一度お試しください。</translation>
 <translation id="607652042414456612">お使いのパソコンは近くの Bluetooth デバイスで検出可能です。名前「<ph name="NAME" />」、アドレス「<ph name="ADDRESS" />」のデバイスとして表示されます</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> を充電しています</translation>
 <translation id="612734058257491180">Google アシスタントは、ゲスト セッションではご利用いただけません。</translation>
 <translation id="615957422585914272">画面キーボードを表示する</translation>
 <translation id="6164005077879661055">この監視対象ユーザーを削除すると、このユーザーに関連付けられたすべてのファイルとローカル データも完全に削除されます。この監視対象ユーザーがアクセスしたウェブサイトやこのユーザーの設定は引き続き、管理者が <ph name="MANAGEMENT_URL" /> で見ることができます。</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">デバイスのロックを解除して通知を確認してください</translation>
 <translation id="7649070708921625228">ヘルプ</translation>
 <translation id="7654687942625752712">音声フィードバックを無効にするには、音量大と音量小の両方のボタンを 5 秒間押し続けてください。</translation>
-<translation id="7692480393933218409">接続された USB-C デバイスを充電しています</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 件の通知}other{# 件の通知}}</translation>
 <translation id="7749443890790263709">デスクの数が上限に達しました。</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index f2ef0716..614f05b 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777"><ph name="LOGOUT_TIME_LEFT" /> ನಲ್ಲಿ ನಿಮ್ಮನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೈನ್‌ಔಟ್‌ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="6064337552080329342">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="607652042414456612">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಸಮೀಪದಲ್ಲಿರುವ ಬ್ಲೂಟೂತ್‌‌ ಸಾಧನಗಳು ಅನ್ವೇಷಿಸಬಹುದಾಗಿದೆ ಮತ್ತು <ph name="ADDRESS" /> ವಿಳಾಸದೊಂದಿಗೆ "<ph name="NAME" />" ರೂಪದಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ</translation>
 <translation id="612734058257491180">Google ಅಸಿಸ್ಟೆಂಟ್‌ ಅತಿಥಿ ಸೆಶನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="615957422585914272">ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ತೋರಿಸು</translation>
 <translation id="6164005077879661055">ಈ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರನ್ನು ಒಮ್ಮೆ ತೆಗೆದುಹಾಕಿದರೆ, ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಎಲ್ಲ ಫೈಲ್‌ಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ. ಈ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರಿಗಾಗಿ ಭೇಟಿ ನೀಡಲಾದ ವೆಬ್‌ಸೈಟ್‌ಗಳು ಮತ್ತು ಸೆಟ್ಟಿಂಗ್‌ಗಳು <ph name="MANAGEMENT_URL" /> ನಲ್ಲಿ ನಿರ್ವಾಹಕರಿಗೆ ಈಗಲೂ ಗೋಚರಿಸಬಹುದು.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">ನಿಮ್ಮ ಅಧಿಸೂಚನೆಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="7649070708921625228">ಸಹಾಯ</translation>
 <translation id="7654687942625752712">ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, ಎರಡೂ ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಐದು ಸೆಕೆಂಡ್‌ಗಳ ಕಾಲ ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ.</translation>
-<translation id="7692480393933218409">ಸಂಪರ್ಕಿತ USB-C ಸಾಧನಗಳನ್ನು ಚಾರ್ಜ್ ಮಾಡುತ್ತಿದೆ</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ಅಧಿಸೂಚನೆ}one{# ಅಧಿಸೂಚನೆಗಳು}other{# ಅಧಿಸೂಚನೆಗಳು}}</translation>
 <translation id="7749443890790263709">ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಡೆಸ್ಕ್‌ಗಳನ್ನು ತಲುಪಲಾಗಿದೆ.</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index f61536f..1e985f52 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777"><ph name="LOGOUT_TIME_LEFT" /> 후 자동으로 로그아웃됩니다.</translation>
 <translation id="6064337552080329342">비밀번호가 일치하지 않습니다. 다시 시도해 주세요.</translation>
 <translation id="607652042414456612">내 컴퓨터가 근처 블루투스 기기에서 검색할 수 있도록 설정되어 있으며 주소(<ph name="ADDRESS" />)와 함께 '<ph name="NAME" />'(으)로 표시됩니다.</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> 충전 중</translation>
 <translation id="612734058257491180">게스트 세션에서는 Google 어시스턴트를 사용할 수 없습니다.</translation>
 <translation id="615957422585914272">터치 키보드 표시</translation>
 <translation id="6164005077879661055">관리 대상 사용자를 제거하면 해당 관리 대상 사용자와 연결되어 있는 모든 파일 및 로컬 데이터가 영구적으로 삭제됩니다. 하지만 관리자는 관리 대상 사용자의 방문한 웹사이트 및 설정을 <ph name="MANAGEMENT_URL" /> 페이지에서 계속 볼 수 있습니다.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">기기를 잠금 해제하여 알림 보기</translation>
 <translation id="7649070708921625228">도움말</translation>
 <translation id="7654687942625752712">음성 피드백을 사용 중지하려면 두 볼륨 키를 5초 동안 길게 누르세요.</translation>
-<translation id="7692480393933218409">연결된 USB-C 기기 충전 중</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{알림 1개}other{알림 #개}}</translation>
 <translation id="7749443890790263709">최대 데스크 개수에 도달했습니다.</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index a2a25db..88dedc43 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Būsite automatiškai atjungti po <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Deja, slaptažodžio patvirtinti nepavyko. Bandykite dar kartą.</translation>
 <translation id="607652042414456612">Jūsų kompiuterį galima aptikti netoliese esančiais „Bluetooth“ įrenginiais ir jis rodomas kaip „<ph name="NAME" />“ su adresu <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Įkraunama naudojant <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">„Google Assistant“ nepasiekiamas svečio sesijoje.</translation>
 <translation id="615957422585914272">Rodyti ekrano klaviatūrą</translation>
 <translation id="6164005077879661055">Visi failai ir su prižiūrimu naudotoju susiję duomenys bus ištrinti visam laikui, kai bus pašalintas šis prižiūrimas naudotojas. Valdytojas vis tiek gali peržiūrėti šio prižiūrimo naudotojo aplankytas svetaines ir nustatymus adresu <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Atrakinkite įrenginį, kad galėtumėte peržiūrėti pranešimus</translation>
 <translation id="7649070708921625228">Žinynas</translation>
 <translation id="7654687942625752712">Paspauskite ir penkias sekundes palaikykite garsumo klavišus, kad išjungtumėte ekrano skaitymo balsu funkciją.</translation>
-<translation id="7692480393933218409">Įkraunami prijungti USB-C įrenginiai</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 pranešimas}one{# pranešimas}few{# pranešimai}many{# pranešimo}other{# pranešimų}}</translation>
 <translation id="7749443890790263709">Pasiektas didžiausias pultų skaičius.</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index f0cd95f4..fa56f64d 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Jūs tiksiet automātiski izrakstīts pēc šāda laika: <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Diemžēl jūsu paroli nevarēja verificēt. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="607652042414456612">Tuvumā esošas Bluetooth ierīces var uztvert jūsu datoru; tā nosaukums ir “<ph name="NAME" />”, adrese — <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237">Uzlāde: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google asistents nav pieejams viesa sesijā.</translation>
 <translation id="615957422585914272">Rādīt ekrāna tastatūru</translation>
 <translation id="6164005077879661055">Visi faili un lokālie dati, kas ir saistīti ar uzraudzīto lietotāju, tiks neatgriezeniski dzēsti, tiklīdz uzraudzītais lietotājs tiks noņemts. Iespējams, pārzinis joprojām varēs skatīt šī uzraudzītā lietotāja apmeklētās vietnes un iestatījumus (vietnē <ph name="MANAGEMENT_URL" />).</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Atbloķējiet ierīci, lai skatītu paziņojumus.</translation>
 <translation id="7649070708921625228">Palīdzība</translation>
 <translation id="7654687942625752712">Lai atspējotu balss komentārus, nospiediet un piecas sekundes turiet abas skaļuma pogas.</translation>
-<translation id="7692480393933218409">Notiek pievienoto USB-C ierīču uzlāde</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 paziņojums}zero{# paziņojumu}one{# paziņojums}other{# paziņojumi}}</translation>
 <translation id="7749443890790263709">Sasniegts maksimālais darbvietu skaits.</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 0e8f77d1ca..f2b22e5cf 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -87,7 +87,7 @@
 <translation id="2126242104232412123">പുതിയ ഡെസ്‌ക്</translation>
 <translation id="2127372758936585790">കുറഞ്ഞ തോതിൽ വൈദ്യുതി പ്രവഹിക്കുന്ന ചാർജർ</translation>
 <translation id="2135456203358955318">ഡോക്ക് ചെയ്‌ത മാഗ്‌നിഫയർ</translation>
-<translation id="2144487987174258011">Adobe Flash Player അപ്‌ഡേറ്റ് ചെയ്യാൻ പുനരാരംഭിക്കുക</translation>
+<translation id="2144487987174258011">Adobe Flash Player അപ്‌ഡേറ്റ് ചെയ്യാൻ റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="2148902151539191989">മടങ്ങുക</translation>
 <translation id="2208323208084708176">ഏകീകൃത ഡെസ്‌ക്‌ടോപ്പ് മോഡ്</translation>
 <translation id="2220572644011485463">പിൻ അല്ലെങ്കിൽ പാസ്‌വേഡ്</translation>
@@ -151,7 +151,7 @@
 <translation id="3081696990447829002">മെനു വികസിപ്പിക്കുക</translation>
 <translation id="3087734570205094154">താഴെ</translation>
 <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation>
-<translation id="3126069444801937830">അപ്‌ഡേറ്റ് ചെയ്യുന്നതിന് പുനരാരംഭിക്കുക</translation>
+<translation id="3126069444801937830">അപ്‌ഡേറ്റ് ചെയ്യുന്നതിന് റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="3139942575505304791">ഡെസ്‌ക് 1</translation>
 <translation id="315116470104423982">മൊബൈല്‍ ഡാറ്റ</translation>
 <translation id="3151786313568798007">ഓറിയന്റേഷൻ</translation>
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">നിങ്ങൾ <ph name="LOGOUT_TIME_LEFT" />-നുള്ളിൽ സ്വയമേവ സൈൻ ഔട്ട് ചെയ്യും.</translation>
 <translation id="6064337552080329342">ക്ഷമിക്കണം, നിങ്ങളുടെ പാസ്‌വേഡ് പരിശോധിച്ചുറപ്പിക്കാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="607652042414456612">നിങ്ങളുടെ കമ്പ്യൂട്ടർ സമീപത്തുള്ള Bluetooth ഉപകരണങ്ങൾക്ക് കണ്ടെത്താനാകുന്നതാണ് ഒപ്പം അത് <ph name="ADDRESS" /> എന്ന വിലാസത്തിൽ "<ph name="NAME" />" എന്നതായി ദൃശ്യമാകും.</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> ചാർജ് ചെയ്യുന്നു</translation>
 <translation id="612734058257491180">അതിഥി സെഷനിൽ Google അസി‌സ്‌റ്റന്റ് ലഭ്യമല്ല.</translation>
 <translation id="615957422585914272">ഓൺ-സ്‌ക്രീൻ കീബോർഡ് ദൃശ്യമാക്കുക</translation>
 <translation id="6164005077879661055">മേൽനോട്ടത്തിലുള്ള ഉപയോക്താവിനെ നീക്കംചെയ്‌താൽ, മേൽനോട്ടത്തിലുള്ള ഉപയോക്താവുമായി ബന്ധപ്പെടുത്തിയിട്ടുള്ള എല്ലാ ഫയലുകളും പ്രാദേശിക ഡാറ്റയും ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും. മേൽനോട്ടത്തിലുള്ള ഈ ഉപയോക്താവിനായി സന്ദർശിച്ച വെബ്‌സൈറ്റുകളും ക്രമീകരണങ്ങളും <ph name="MANAGEMENT_URL" />-ൽ മാനേജർക്ക് തുടർന്നും കാണാനായേക്കും.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">നിങ്ങളുടെ അറിയിപ്പുകൾ കാണാൻ ഉപകരണം അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="7649070708921625228">സഹായം</translation>
 <translation id="7654687942625752712">സംഭാഷണ ഫീഡ്‌ബാക്ക് പ്രവർത്തനരഹിതമാക്കാൻ രണ്ട് വോളിയം കീകളും രണ്ട് സെക്കൻഡ് നേരത്തേക്ക് അമർത്തിപ്പിടിക്കുക.</translation>
-<translation id="7692480393933218409">കണക്‌റ്റുചെയ്‌ത USB-C ഉപകരണങ്ങൾ ചാർജ് ചെയ്യുന്നു</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{ഒരു അറിയിപ്പ്}other{# അറിയിപ്പുകൾ}}</translation>
 <translation id="7749443890790263709">ഡെസ്‌ക്കുകളുടെ പരമാവധി എണ്ണത്തിൽ എത്തിയിരിക്കുന്നു.</translation>
@@ -553,7 +551,7 @@
 <translation id="9084606467167974638">മെനുവിൻ്റെ സ്ഥാനം മാറ്റുക</translation>
 <translation id="9089416786594320554">ഇൻപുട്ട്  രീതികൾ</translation>
 <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> ഡിസ്‌പ്ലേ നീക്കംചെയ്‌തു</translation>
-<translation id="9151726767154816831">അപ്‌ഡേറ്റ് ചെയ്യാൻ, പുനരാരംഭിച്ച് പവർവാഷ് ചെയ്യുക</translation>
+<translation id="9151726767154816831">അപ്‌ഡേറ്റ് ചെയ്യാൻ, റീസ്റ്റാർട്ട് ചെയ്ത് powerwash ചെയ്യുക</translation>
 <translation id="9179259655489829027">സൈൻ ഇൻ ചെയ്‌ത ഏതൊരു ഉപയോക്താവിനെ പാസ്‌വേഡ് ഇല്ലാതെ തന്നെ വേഗത്തിൽ ആക്‌സസ് ചെയ്യാൻ ഈ ഫീച്ചർ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾക്ക് വിശ്വാസമുള്ള അക്കൗണ്ടുകളിൽ മാത്രം ഈ ഫീച്ചർ ഉപയോഗിക്കുക.</translation>
 <translation id="9193626018745640770">ഒരു അജ്ഞാത റിസീവറിൽ കാസ്‌റ്റ് ചെയ്യുന്നു</translation>
 <translation id="9194617393863864469">മറ്റൊരു ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യുക...</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 1da02cb..5196ee5 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">तुम्हाला <ph name="LOGOUT_TIME_LEFT" /> मधून स्वयंचलितपणे साइन आउट केले जाईल.</translation>
 <translation id="6064337552080329342">सॉरी, तुमच्या पासवर्डची पडताळणी होऊ शकत नाही. कृपया नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="607652042414456612">तुमचा कॉंप्युटर जवळपासच्या ब्लूटूथ डिव्हाइसवर शोधता येऊ शकतो आणि <ph name="ADDRESS" /> पत्त्यासह "<ph name="NAME" />" म्हणून दिसेल</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> चार्ज करीत आहे</translation>
 <translation id="612734058257491180">अतिथी सत्रामध्ये Google असिस्टंट उपलब्ध नाही.</translation>
 <translation id="615957422585914272">ऑन-स्‍क्रीन कीबोर्ड दर्शवा</translation>
 <translation id="6164005077879661055">एकदा हा पर्यवेक्षित वापरकर्ता काढल्यानंतर पर्यवेक्षित वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटवला जाईल. या पर्यवेक्षित वापरकर्त्यासाठी भेट दिलेल्या वेबसाइट आणि सेटिंग्ज तरीही <ph name="MANAGEMENT_URL" /> वर व्यवस्थापकाद्वारे दृश्यमान असू शकतात.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">आपल्या सूचना पाहण्यासाठी डिव्हाइस अनलॉक करा</translation>
 <translation id="7649070708921625228">मदत</translation>
 <translation id="7654687942625752712">वाचिक फीडबॅक बंद करण्यासाठी दोन्ही व्हॉल्युम की पाच सेकंदांसाठी दाबा आणि धरून ठेवा.</translation>
-<translation id="7692480393933218409">कनेक्ट केलेले USB-C डिव्‍हाइसेस चार्ज करीत आहे</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{एक सूचना}other{# सूचना}}</translation>
 <translation id="7749443890790263709">डेस्कची कमाल मर्यादा गाठली आहे.</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 7feacc7..3d9dd1a 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">Anda akan dilog keluar secara automatik dalam masa <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Maaf, kata laluan anda tidak dapat disahkan. Sila cuba semula.</translation>
 <translation id="607652042414456612">Komputer anda boleh ditemui oleh peranti Bluetooth yang berdekatan sebagai "<ph name="NAME" />" dengan alamat <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Mengecas <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google Assistant tidak tersedia dalam sesi tetamu.</translation>
 <translation id="615957422585914272">Paparkan papan kekunci pada skrin</translation>
 <translation id="6164005077879661055">Semua fail dan data setempat yang dikaitkan dengan pengguna diselia akan dipadamkan secara kekal apabila pengguna diselia ini dialih keluar. Tapak web yang dilawati dan tetapan untuk pengguna diselia ini masih boleh dilihat oleh pengurus di <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Buka kunci peranti untuk melihat pemberitahuan anda</translation>
 <translation id="7649070708921625228">Bantuan</translation>
 <translation id="7654687942625752712">Tekan dan tahan kedua-dua kekunci kelantangan selama lima saat untuk melumpuhkan maklum balas yang dituturkan.</translation>
-<translation id="7692480393933218409">Mengecas peranti USB-C yang disambungkan</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 pemberitahuan}other{# pemberitahuan}}</translation>
 <translation id="7749443890790263709">Bilangan maksimum meja dicapai.</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index e038b59b..0f5ef3d5 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Je wordt automatisch uitgelogd over <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Je wachtwoord kan niet worden geverifieerd. Probeer het opnieuw.</translation>
 <translation id="607652042414456612">Je computer is vindbaar voor Bluetooth-apparaten in de buurt en wordt weergegeven als '<ph name="NAME" />' met adres <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> wordt opgeladen</translation>
 <translation id="612734058257491180">De Google Assistent is niet beschikbaar in een gastsessie.</translation>
 <translation id="615957422585914272">Schermtoetsenbord weergeven</translation>
 <translation id="6164005077879661055">Alle bestanden en lokale gegevens gekoppeld aan de gebruiker met beperkte rechten worden permanent verwijderd zodra de gebruiker met beperkte rechten is verwijderd. Bezochte websites en instellingen voor deze gebruiker met beperkte rechten kunnen nog steeds zichtbaar zijn voor de beheerder op <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Ontgrendel het apparaat om je meldingen weer te geven</translation>
 <translation id="7649070708921625228">Hulp</translation>
 <translation id="7654687942625752712">Houd beide volumetoetsen gedurende vijf seconden ingedrukt om gesproken feedback uit te schakelen.</translation>
-<translation id="7692480393933218409">De aangesloten USB-C-apparaten worden opgeladen</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{Eén melding}other{# meldingen}}</translation>
 <translation id="7749443890790263709">Maximum aantal bureaus bereikt.</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index 021763a..28968f6 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Du logges automatisk av om <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Beklager, men passordet ditt kunne ikke bekreftes. Prøv på nytt.</translation>
 <translation id="607652042414456612">Datamaskinen din kan registreres av Bluetooth-enheter i nærheten, og vises med navnet «<ph name="NAME" />» og adressen <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Lader <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google-assistenten er ikke tilgjengelig i gjesteøkter.</translation>
 <translation id="615957422585914272">Vis skjermtastaturet</translation>
 <translation id="6164005077879661055">Alle filer og lokale data tilknyttet den administrerte brukeren slettes permanent når den administrerte brukeren fjernes. Besøkte nettsteder og innstillinger for denne administrerte brukeren kan fortsatt ses av administratoren på <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Lås opp enheten for å se varslene dine</translation>
 <translation id="7649070708921625228">Hjelp</translation>
 <translation id="7654687942625752712">Trykk og hold på begge volumknappene i fem sekunder for å slå av taletilbakemelding.</translation>
-<translation id="7692480393933218409">Lader de tilkoblede USB-C-enhetene</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 varsel}other{# varsler}}</translation>
 <translation id="7749443890790263709">Maksimalt antall skrivebord er nådd.</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 446f886..5f061b5 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Zostaniesz automatycznie wylogowany za <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Nie udało się zweryfikować Twojego hasła. Spróbuj ponownie.</translation>
 <translation id="607652042414456612">Twój komputer jest wykrywalny na urządzenia Bluetooth znajdujących się w pobliżu. Będzie prezentowany jako „<ph name="NAME" />” z adresem <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Ładowanie: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Asystent Google jest niedostępny w sesji gościa.</translation>
 <translation id="615957422585914272">Pokaż klawiaturę ekranową</translation>
 <translation id="6164005077879661055">W chwili usunięcia użytkownika nadzorowanego wszystkie powiązane z nim pliki i dane lokalne zostaną trwale usunięte. Lista stron, na które wszedł ten użytkownik, oraz jego ustawienia mogą być wciąż widoczne dla menedżera na <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Odblokuj urządzenie, by zobaczyć swoje powiadomienia</translation>
 <translation id="7649070708921625228">Pomoc</translation>
 <translation id="7654687942625752712">Naciśnij i przytrzymaj przez pięć sekund oba klawisze głośności, by wyłączyć komunikaty głosowe.</translation>
-<translation id="7692480393933218409">Ładowanie urządzeń podłączonych do portu USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 powiadomienie}few{# powiadomienia}many{# powiadomień}other{# powiadomienia}}</translation>
 <translation id="7749443890790263709">Osiągnięto maksymalną liczbę biurek.</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 051fc16c..bcfac3d 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -31,7 +31,7 @@
 <translation id="1302880136325416935">Mostrar configurações de Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1316069254387866896">Sempre mostrar estante</translation>
 <translation id="1341651618736211726">Botão flutuante</translation>
-<translation id="1346748346194534595">Para a direita</translation>
+<translation id="1346748346194534595">À direita</translation>
 <translation id="1351937230027495976">Recolher menu</translation>
 <translation id="1383876407941801731">Pesquisar</translation>
 <translation id="1419738280318246476">Desbloqueie o dispositivo para executar a ação de notificação</translation>
@@ -39,7 +39,7 @@
 <translation id="1426410128494586442">Sim</translation>
 <translation id="1455242230282523554">Mostrar configurações de idioma</translation>
 <translation id="1460620680449458626">O som está desativado.</translation>
-<translation id="1467432559032391204">Para a esquerda</translation>
+<translation id="1467432559032391204">À esquerda</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
 <translation id="1516740043221086139">O "Não perturbe" está ativado.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar configurações de notificação. As notificações estão desativadas para um app}one{Mostrar configurações de notificação. As notificações estão desativadas para # app}other{Mostrar configurações de notificação. As notificações estão desativadas para # apps}}</translation>
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Você sairá automaticamente em <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Não foi possível verificar sua senha. Tente novamente.</translation>
 <translation id="607652042414456612">Seu computador pode ser detectado por dispositivos Bluetooth próximos e aparecerá como "<ph name="NAME" />", com o endereço <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Carregando <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">O Google Assistente não está disponível em uma sessão de visitante.</translation>
 <translation id="615957422585914272">Mostrar teclado na tela</translation>
 <translation id="6164005077879661055">Todos os arquivos e dados locais associados ao usuário supervisionado serão
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Desbloquear dispositivo para ver as notificações</translation>
 <translation id="7649070708921625228">Ajuda</translation>
 <translation id="7654687942625752712">Pressione as duas teclas de volumes e as mantenha pressionadas por cinco segundos para desativar o feedback falado.</translation>
-<translation id="7692480393933218409">Carregando dispositivos USB-C conectados</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificação}one{# notificação}other{# notificações}}</translation>
 <translation id="7749443890790263709">O número máximo de áreas de trabalho foi atingido.</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index b60410f..a8e65046 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">A sessão será terminada automaticamente dentro de <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Lamentamos, mas não foi possível validar a sua palavra-passe. Tente novamente.</translation>
 <translation id="607652042414456612">O seu computador é detetável para os dispositivos Bluetooth nas proximidades e aparecerá como "<ph name="NAME" />" com o endereço <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">A carregar <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">O Assistente Google não está disponível em sessões de convidado.</translation>
 <translation id="615957422585914272">Mostrar teclado no ecrã</translation>
 <translation id="6164005077879661055">Todos os ficheiros e dados locais associados ao utilizador supervisionado serão definitivamente eliminados depois de este utilizador supervisionado ser removido. Os Sites visitados e as definições deste utilizador supervisionado poderão continuar visíveis para o gestor em <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Desbloquear o dispositivo para ver as notificações</translation>
 <translation id="7649070708921625228">Ajuda</translation>
 <translation id="7654687942625752712">Prima sem soltar ambas as teclas de volume durante cinco segundos para desativar os comentários de voz.</translation>
-<translation id="7692480393933218409">A carregar os dispositivos USB-C ligados</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificação}other{# notificações}}</translation>
 <translation id="7749443890790263709">Atingiu o número máximo de espaços de trabalho.</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index c0022eb6..bc30ba2 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Veți fi deconectat(ă) automat peste <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Ne pare rău, parola nu a putut fi confirmată. Încearcă din nou.</translation>
 <translation id="607652042414456612">Computerul poate fi detectat de dispozitivele Bluetooth din apropiere și va apărea ca „<ph name="NAME" />” cu adresa <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Se încarcă <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Asistentul Google nu este disponibil într-o sesiune pentru invitați.</translation>
 <translation id="615957422585914272">Afișați tastatura pe ecran</translation>
 <translation id="6164005077879661055">Toate fișierele și datele locale asociate acestui utilizator monitorizat vor fi șterse definitiv după eliminarea acestui utilizator monitorizat. Site-urile web accesate și setările acestui utilizator monitorizat pot fi în continuare vizibile pentru manager la <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Deblochează dispozitivul pentru a vedea notificările</translation>
 <translation id="7649070708921625228">Ajutor</translation>
 <translation id="7654687942625752712">Apasă lung ambele taste de volum timp de cinci secunde ca să dezactivezi feedbackul rostit.</translation>
-<translation id="7692480393933218409">Se încarcă dispozitivele USB-C conectate</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{O notificare}few{# notificări}other{# de notificări}}</translation>
 <translation id="7749443890790263709">S-a atins numărul maxim de desktopuri.</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index f658674..997d308 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Выход из системы будет выполнен автоматически через <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Не удалось подтвердить пароль. Повторите попытку.</translation>
 <translation id="607652042414456612">Расположенные поблизости устройства Bluetooth видят ваш компьютер под именем <ph name="NAME" /> с адресом <ph name="ADDRESS" />.</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> заряжается</translation>
 <translation id="612734058257491180">В рамках гостевого сеанса Google Ассистент недоступен.</translation>
 <translation id="615957422585914272">Показывать экранную клавиатуру</translation>
 <translation id="6164005077879661055">После удаления контролируемого профиля все файлы и локальные данные, связанные с ним, будут удалены. Посещенные страницы и настройки этого профиля будут видны его менеджеру на странице: <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Чтобы просмотреть уведомления, разблокируйте устройство</translation>
 <translation id="7649070708921625228">Справка</translation>
 <translation id="7654687942625752712">Чтобы отключить озвучивание текста на экране, удерживайте обе кнопки громкости в течение пяти секунд.</translation>
-<translation id="7692480393933218409">Подключенные устройства USB-C заряжаются</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 уведомление}one{# уведомление}few{# уведомления}many{# уведомлений}other{# уведомления}}</translation>
 <translation id="7749443890790263709">Достигнуто максимально допустимое количество рабочих столов.</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index 55d651a87..e6cc5aa 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Odhlásenie prebehne automaticky o <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Vaše heslo sa nepodarilo overiť. Skúste to znova.</translation>
 <translation id="607652042414456612">Váš počítač je viditeľný pre zariadenia Bluetooth v blízkosti a zobrazí sa ako <ph name="NAME" /> s adresou <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Nabíja sa zariadenie <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Asistent Google nie je k dispozícii v relácii hosťa.</translation>
 <translation id="615957422585914272">Zobraziť klávesnicu na obrazovke</translation>
 <translation id="6164005077879661055">Všetky súbory a miestne údaje spojené s týmto kontrolovaným používateľom budú po jeho odstránení natrvalo odstránené. Správca bude môcť naďalej zobraziť navštívené webové stránky a nastavenia tohto používateľa na adrese <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Ak si chcete zobraziť upozornenia, odomknite zariadenie</translation>
 <translation id="7649070708921625228">Pomocník</translation>
 <translation id="7654687942625752712">Ak chcete deaktivovať hovorenú spätnú väzbu, pridržte päť sekúnd obidva klávesy hlasitosti.</translation>
-<translation id="7692480393933218409">Nabíjajú sa pripojené zariadenia USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 upozornenie}few{# upozornenia}many{# notifications}other{# upozornení}}</translation>
 <translation id="7749443890790263709">Dosiahli ste maximálny počet pracovných prostredí.</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index efd6375b..c54f3dc4 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Samodejno boste odjavljeni čez <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Gesla ni bilo mogoče preveriti. Poskusite znova.</translation>
 <translation id="607652042414456612">Vaš računalnik je viden bližnjim napravam Bluetooth in bo videti kot »<ph name="NAME" />« z naslovom <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Polnjenje: <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Pomočnik Google ni na voljo v gostujoči seji.</translation>
 <translation id="615957422585914272">Pokaži zaslonsko tipkovnico</translation>
 <translation id="6164005077879661055">Vse datoteke in lokalni podatki, povezani z zaščitenim uporabnikom, bodo trajno izbrisani, ko ga odstranite. Obiskana spletna mesta in nastavitve tega uporabnika bodo morda še vedno vidna upravitelju na <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Če si želite ogledati obvestila, odklenite napravo</translation>
 <translation id="7649070708921625228">Pomoč</translation>
 <translation id="7654687942625752712">Če želite onemogočiti glasovni odziv, pridržite obe tipki za glasnost za pet sekund.</translation>
-<translation id="7692480393933218409">Polnjenje povezanih naprav USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 obvestilo}one{# obvestilo}two{# obvestili}few{# obvestila}other{# obvestil}}</translation>
 <translation id="7749443890790263709">Doseženo je največje dovoljeno število namizij.</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index af83bd7..84aca44 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Аутоматски ћете бити одјављени за <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Жао нам је, верификација лозинке није успела. Пробајте поново.</translation>
 <translation id="607652042414456612">Оближњи Bluetooth уређаји могу да открију рачунар и он ће се приказивати као „<ph name="NAME" />“ са адресом <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Пуњење уређаја <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google помоћник није доступан у сесији госта.</translation>
 <translation id="615957422585914272">Прикажи тастатуру на екрану</translation>
 <translation id="6164005077879661055">Све датотеке и локални подаци повезани са корисником под надзором ће бити трајно избрисани када уклоните овог корисника под надзором. Менаџер ће можда и даље моћи да види посећене веб-сајтове и подешавања за овог корисника под надзором на <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Откључајте уређај да бисте прегледали обавештења</translation>
 <translation id="7649070708921625228">Помоћ</translation>
 <translation id="7654687942625752712">Притисните оба тастера за јачину звука и задржите их пет секунди да бисте онемогућили повратни говор.</translation>
-<translation id="7692480393933218409">Пуњење повезаних уређаја са USB прикључком типа C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 обавештење}one{# обавештење}few{# обавештења}other{# обавештења}}</translation>
 <translation id="7749443890790263709">Достигли сте максималан број радних површина.</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index f2076e7..f8cd981 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Du loggas ut automatiskt om <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Lösenordet kunde inte verifieras. Försök igen.</translation>
 <translation id="607652042414456612">Din dator kan upptäckas av Bluetooth-enheter som finns i närheten och den visas som <ph name="NAME" /> med adressen <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Laddar <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google-assistenten är inte tillgänglig i en gästsession.</translation>
 <translation id="615957422585914272">Visa skärmtangentbordet</translation>
 <translation id="6164005077879661055">Alla filer och lokala data som är kopplade till den hanterade användaren tas bort permanent när den hanterade användaren tas bort. Besökta webbplatser och inställningar för den hanterade användaren kan fortfarande vara synliga för den som hanterar användaren på <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Lås upp enheten om du vill visa aviseringarna</translation>
 <translation id="7649070708921625228">Hjälp</translation>
 <translation id="7654687942625752712">Inaktivera talad feedback genom att hålla båda volymknapparna nedtryckta i fem sekunder.</translation>
-<translation id="7692480393933218409">Laddar anslutna USB-C-enheter</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 avisering}other{# aviseringar}}</translation>
 <translation id="7749443890790263709">Det högsta tillåtna antalet skrivbord har uppnåtts.</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 568dafb2..42bd2bd 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Utaondolewa kwenye akaunti kiotomatiki baada ya <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Samahani, tumeshindwa kuthibitisha nenosiri lako. Tafadhali jaribu tena.</translation>
 <translation id="607652042414456612">Kompyuta yako inaweza kutambuliwa na vifaa vyenye Bluetooth vilivyo karibu na itaonekana kama  "<ph name="NAME" />" ikiwa na anwani ya <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Inachaji <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Programu ya Mratibu wa Google haipatikani katika kipindi cha mgeni.</translation>
 <translation id="615957422585914272">Onyesha kibodi ya skrini</translation>
 <translation id="6164005077879661055">Faili zote na data ya ndani zinazohusishwa na mtumiaji anayesimamiwa zitafutwa kabisa mtumiaji huyu anayesimamiwa atakapoondolewa. Tovuti zilizotembelewa na mipangilio ya mtumiaji huyu anayesimamiwa inaweza bado kuonekana na msimamizi katika <ph name="MANAGEMENT_URL" />.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Fungua kifaa ili uone arifa zako</translation>
 <translation id="7649070708921625228">Usaidizi</translation>
 <translation id="7654687942625752712">Bonyeza na ushikilie vitufe vyote viwili vya sauti kwa sekunde tano ili uzime maelezo yanayotamkwa.</translation>
-<translation id="7692480393933218409">Kinachaji vifaa vilivyounganishwa vya USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{Arifa 1}other{Arifa #}}</translation>
 <translation id="7749443890790263709">Umefikia idadi ya juu zaidi ya violesura.</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 849c63a..8c97b0d0 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777"><ph name="LOGOUT_TIME_LEFT" /> இல் தானாகவே வெளியேற்றப்படுவீர்கள்.</translation>
 <translation id="6064337552080329342">கடவுச்சொல்லைச் சரிபார்க்க முடியவில்லை. மீண்டும் முயலவும்.</translation>
 <translation id="607652042414456612">உங்கள் கம்ப்யூட்டர் அருகிலுள்ள Bluetooth சாதனங்களால் கண்டறியப்படும், மேலும் <ph name="ADDRESS" /> என்ற முகவரியுடன் "<ph name="NAME" />" என்ற பெயரில் தோன்றும்</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> சார்ஜ் ஏற்றப்படுகிறது</translation>
 <translation id="612734058257491180">விருந்தினர் அமர்வில் Google அசிஸ்டண்ட்டைப் பயன்படுத்த இயலாது.</translation>
 <translation id="615957422585914272">ஸ்கிரீன் கீபோர்டைக் காட்டு</translation>
 <translation id="6164005077879661055">இந்தக் மேற்பார்வையிடப்படும் பயனர் அகற்றப்பட்டவுடன் மேற்பார்வையிடப்படும் பயனருடன் தொடர்புடைய எல்லா கோப்புகளும், அகத் தரவும் நிரந்தரமாக நீக்கப்படும். இந்தக் மேற்பார்வையிடப்படும் பயனர் பார்வையிட்ட இணையதளங்களையும் அமைப்புகளையும் <ph name="MANAGEMENT_URL" /> இல் இன்னும் நிர்வாகியால் பார்க்க முடியும்.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">அறிவிப்புகளைப் பார்க்க, சாதனத்தைத் திறக்கவும்</translation>
 <translation id="7649070708921625228">உதவி</translation>
 <translation id="7654687942625752712">பேச்சுவடிவ கருத்தை முடக்க, ஐந்து வினாடிகளுக்கு இரண்டு ஒலியளவு விசைகளையும் அழுத்திப் பிடித்திருக்கவும்.</translation>
-<translation id="7692480393933218409">இணைக்கப்பட்ட USB-C சாதனங்களுக்குச் சார்ஜ் ஏற்றப்படுகிறது</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 அறிவிப்பு}other{# அறிவிப்புகள்}}</translation>
 <translation id="7749443890790263709">டெஸ்க்குகளின் எண்ணிக்கை அதிகபட்ச வரம்பை எட்டிவிட்டது.</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 863942dc..f0768583 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -346,7 +346,6 @@
 <translation id="6062360702481658777">మీరు <ph name="LOGOUT_TIME_LEFT" />లో స్వయంచాలకంగా సైన్ అవుట్ చేయబడతారు.</translation>
 <translation id="6064337552080329342">క్షమించండి, మీ పాస్‌వర్డ్ ధృవీకరించబడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="607652042414456612">మీ కంప్యూటర్ సమీప బ్లూటూత్ పరికరాల్లో కనుగొనబడుతుంది మరియు చిరునామా <ph name="ADDRESS" />తో "<ph name="NAME" />" లాగా కనిపిస్తుంది</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" />ని ఛార్జ్ చేస్తోంది</translation>
 <translation id="612734058257491180">అతిథి సెషన్‌లో Google అసిస్టెంట్ పని చేయదు.</translation>
 <translation id="615957422585914272">స్క్రీన్‌పై కీబోర్డ్‌ను చూపు</translation>
 <translation id="6164005077879661055">ఈ పర్యవేక్షించబడే వినియోగదారు తీసివేయబడినప్పుడు, పర్యవేక్షించబడే వినియోగదారుతో అనుబంధించబడిన అన్ని ఫైల్‌లు మరియు స్థానిక డేటా శాశ్వతంగా తొలగించబడతాయి. ఈ పర్యవేక్షించబడే వినియోగదారు సందర్శించిన వెబ్‌సైట్‌లు మరియు వీరి సెట్టింగ్‌లు ఇప్పటికీ <ph name="MANAGEMENT_URL" />లో నిర్వాహకునికి కనిపించవచ్చు.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">మీ నోటిఫికేషన్‌లను వీక్షించడానికి పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="7649070708921625228">సహాయం</translation>
 <translation id="7654687942625752712">ప్రసంగ రూప ప్రతిస్పందనను నిలిపివేయడానికి ఒకేసారి రెండు వాల్యూమ్ కీలను ఐదు సెకన్ల పాటు నొక్కి, పట్టుకోండి.</translation>
-<translation id="7692480393933218409">కనెక్ట్ చేసిన USB-C పరికరాలను ఛార్జ్ చేస్తోంది</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 నోటిఫికేషన్‌}other{# నోటిఫికేషన్‌లు}}</translation>
 <translation id="7749443890790263709">గరిష్ట డెస్క్‌ల సంఖ్యను చేరుకుంది.</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 81e09f2c..91b7571 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">คุณจะออกจากระบบโดยอัตโนมัติใน <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="6064337552080329342">ขออภัย ยืนยันรหัสผ่านไม่ได้ โปรดลองอีกครั้ง</translation>
 <translation id="607652042414456612">ค้นพบคอมพิวเตอร์ของคุณอยู่ใกล้กับอุปกรณ์บลูทูธและจะปรากฏเป็น "<ph name="NAME" />" พร้อมด้วยที่อยู่ <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">กำลังชาร์จ<ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">ใช้ Google Assistant ในเซสชันผู้เยี่ยมชมไม่ได้</translation>
 <translation id="615957422585914272">แสดงแป้นพิมพ์บนหน้าจอ</translation>
 <translation id="6164005077879661055">ไฟล์และข้อมูลในตัวเครื่องทั้งหมดที่เกี่ยวข้องกับผู้ใช้ภายใต้การดูแลจะถูกลบออกอย่างถาวรเมื่อผู้ใช้ภายใต้การดูแลนี้ถูกลบ เว็บไซต์ที่เข้าชมและการตั้งค่าสำหรับผู้ใช้ภายใต้การดูแลนี้อาจจะยังคงมองเห็นได้โดยผู้จัดการที่ <ph name="MANAGEMENT_URL" /></translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">ปลดล็อกอุปกรณ์เพื่อดูการแจ้งเตือน</translation>
 <translation id="7649070708921625228">ช่วยเหลือ</translation>
 <translation id="7654687942625752712">กดแป้นปรับระดับเสียงค้างไว้ 5 วินาทีเพื่อปิดใช้การอธิบายและอ่านออกเสียง</translation>
-<translation id="7692480393933218409">กำลังชาร์จอุปกรณ์ USB-C ที่เชื่อมต่ออยู่</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{การแจ้งเตือน 1 รายการ}other{การแจ้งเตือน # รายการ}}</translation>
 <translation id="7749443890790263709">มีพื้นที่ทำงานครบตามจำนวนสูงสุดแล้ว</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 81773bad..04c398d 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -346,7 +346,6 @@
 <translation id="6064337552080329342">Maalesef şifreniz doğrulanamadı. Lütfen tekrar deneyin.</translation>
 <translation id="607652042414456612">Bilgisayarınız yakındaki Bluetooth cihazlar tarafından keşfedilebilir durumdadır. Ayrıca,
 <ph name="ADDRESS" /> adresine sahip "<ph name="NAME" />" olarak görünecek</translation>
-<translation id="6106745654298855237"><ph name="POWER_SOURCE" /> şarj ediyor</translation>
 <translation id="612734058257491180">Google Asistan, misafir oturumunda kullanılamaz.</translation>
 <translation id="615957422585914272">Dokunmatik klavyeyi göster</translation>
 <translation id="6164005077879661055">Denetlenen bu kullanıcı kaldırıldığında denetlenen kullanıcıyla ilişkilendirilmiş tüm dosyalar ve yerel veriler kalıcı olarak silinir. Yönetici, denetlenen bu kullanıcıya ilişkin ziyaret edilen web sayfaları ve ayarları <ph name="MANAGEMENT_URL" /> adresinden görüntülemeye devam edebilir.</translation>
@@ -448,7 +447,6 @@
 <translation id="7647488630410863958">Bildirimlerinizi görüntülemek için cihazınızın kilidini açın</translation>
 <translation id="7649070708921625228">Yardım</translation>
 <translation id="7654687942625752712">Sesli geri bildirimi beş saniyeliğine devre dışı bırakmak için her iki ses ayarı tuşunu basılı tutun.</translation>
-<translation id="7692480393933218409">Bağlı USB-C cihazlar şarj ediliyor</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 bildirim}other{# bildirim}}</translation>
 <translation id="7749443890790263709">Maksimum masa sayısına ulaşıldı.</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 5c10de2b..f700a60 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Ви автоматично вийдете за <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">На жаль, не вдалося підтвердити ваш пароль. Повторіть спробу.</translation>
 <translation id="607652042414456612">Ваш комп’ютер видимий для пристроїв Bluetooth поблизу та відображатиметься з назвою "<ph name="NAME" />" та адресою <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Заряджає <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Google Асистент недоступний під час сеансу в режимі "Гість".</translation>
 <translation id="615957422585914272">Показувати екранну клавіатуру</translation>
 <translation id="6164005077879661055">Усі файли та локальні дані, пов’язані з контрольованим користувачем, буде назавжди видалено, якщо вилучити цього контрольованого користувача. Менеджер усе одно може бачити веб-сайти, які відвідував цей контрольований користувач, і його налаштування на сторінці <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Розблокуйте пристрій, щоб переглянути сповіщення</translation>
 <translation id="7649070708921625228">Довідка</translation>
 <translation id="7654687942625752712">Утримуйте обидві клавіші гучності впродовж п’яти секунд, щоб вимкнути голосові підказки.</translation>
-<translation id="7692480393933218409">Заряджає пристрої, під’єднанї до порту USB-C</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 cповіщення}one{# сповіщення}few{# сповіщення}many{# сповіщень}other{# сповіщення}}</translation>
 <translation id="7749443890790263709">Ви додали максимальну кількість робочих столів.</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index ca3ee4c..74393a5 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">Bạn sẽ tự động được đăng xuất sau <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="6064337552080329342">Rất tiếc, chúng tôi không thể xác minh được mật khẩu của bạn. Vui lòng thử lại.</translation>
 <translation id="607652042414456612">Máy tính của bạn có thể phát hiện thiết bị Bluetooth gần đó và hiện thị dưới tên "<ph name="NAME" />" với địa chỉ là <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">Đang sạc <ph name="POWER_SOURCE" /></translation>
 <translation id="612734058257491180">Bạn không thể dùng Trợ lý Google trong phiên khách.</translation>
 <translation id="615957422585914272">Hiển thị bàn phím ảo</translation>
 <translation id="6164005077879661055">Tất cả các tệp và dữ liệu trên máy được liên kết với người dùng được giám sát sẽ vĩnh viễn bị xóa khi người dùng được giám sát này bị xóa. Các trang web đã truy cập và các cài đặt của người dùng được giám sát này có thể vẫn hiển thị với người quản lý tại <ph name="MANAGEMENT_URL" />.</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">Mở khóa thiết bị để xem thông báo của bạn</translation>
 <translation id="7649070708921625228">Trợ giúp</translation>
 <translation id="7654687942625752712">Nhấn và giữ cả hai phím âm lượng trong 5 giây để tắt tính năng phản hồi bằng giọng nói.</translation>
-<translation id="7692480393933218409">Đang sạc thiết bị USB-C được kết nối</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 thông báo}other{# thông báo}}</translation>
 <translation id="7749443890790263709">Đã đạt đến số lượng không gian làm việc tối đa.</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 0c0cda3..46b52cb4 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">您将在<ph name="LOGOUT_TIME_LEFT" />后自动退出。</translation>
 <translation id="6064337552080329342">抱歉,系统无法验证您的密码。请重试。</translation>
 <translation id="607652042414456612">附近的蓝牙设备可检测到您的计算机(名称将显示为“<ph name="NAME" />”,地址为<ph name="ADDRESS" />)</translation>
-<translation id="6106745654298855237">正在为“<ph name="POWER_SOURCE" />”充电</translation>
 <translation id="612734058257491180">无法在访客会话中使用 Google 助理。</translation>
 <translation id="615957422585914272">显示屏幕键盘</translation>
 <translation id="6164005077879661055">删除该受监管用户后,与其相关联的所有文件和本地数据都会被永久删除,但管理员仍可以在 <ph name="MANAGEMENT_URL" /> 上查看该用户的设置和访问过的网站。</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">解锁设备即可查看您的通知</translation>
 <translation id="7649070708921625228">帮助</translation>
 <translation id="7654687942625752712">同时按住两个音量键 5 秒钟,即可停用语音反馈。</translation>
-<translation id="7692480393933218409">正在为已连接的 USB-C 设备充电</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 条通知}other{# 条通知}}</translation>
 <translation id="7749443890790263709">已达到桌面数量上限。</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 6aff48a4..cc2716d7 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -345,7 +345,6 @@
 <translation id="6062360702481658777">你將於 <ph name="LOGOUT_TIME_LEFT" />後自動登出。</translation>
 <translation id="6064337552080329342">很抱歉!系統無法驗證你的密碼,請再試一次。</translation>
 <translation id="607652042414456612">你的電腦已開放附近的藍牙裝置搜尋,顯示名稱為「<ph name="NAME" />」,位址則是 <ph name="ADDRESS" /></translation>
-<translation id="6106745654298855237">正在為「<ph name="POWER_SOURCE" />」充電</translation>
 <translation id="612734058257491180">Google 助理不支援訪客工作階段。</translation>
 <translation id="615957422585914272">顯示螢幕小鍵盤</translation>
 <translation id="6164005077879661055">將這位受監管的使用者移除後,系統即會永久刪除所有與該使用者相關的檔案和本機資料。管理員仍可前往 <ph name="MANAGEMENT_URL" /> 查看這位受監管使用者的網頁瀏覽記錄和設定。</translation>
@@ -447,7 +446,6 @@
 <translation id="7647488630410863958">解鎖裝置即可查看通知</translation>
 <translation id="7649070708921625228">說明</translation>
 <translation id="7654687942625752712">同時按住音量調高和調低鍵五秒,即可停用互動朗讀。</translation>
-<translation id="7692480393933218409">正在為連接的 USB-C 裝置充電</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 則通知}other{# 則通知}}</translation>
 <translation id="7749443890790263709">桌面數量已達上限。</translation>
diff --git a/ash/system/message_center/arc/arc_notification_content_view.cc b/ash/system/message_center/arc/arc_notification_content_view.cc
index 87e1187..fb6b9ee 100644
--- a/ash/system/message_center/arc/arc_notification_content_view.cc
+++ b/ash/system/message_center/arc/arc_notification_content_view.cc
@@ -797,6 +797,13 @@
   }
 }
 
+void ArcNotificationContentView::OnWidgetActivationChanged(
+    views::Widget* widget,
+    bool active) {
+  if (item_)
+    item_->OnWindowActivated(active);
+}
+
 void ArcNotificationContentView::OnItemDestroying() {
   item_->RemoveObserver(this);
   item_ = nullptr;
diff --git a/ash/system/message_center/arc/arc_notification_content_view.h b/ash/system/message_center/arc/arc_notification_content_view.h
index caaa5712f..1c88cc06 100644
--- a/ash/system/message_center/arc/arc_notification_content_view.h
+++ b/ash/system/message_center/arc/arc_notification_content_view.h
@@ -116,6 +116,7 @@
 
   // views::WidgetObserver:
   void OnWidgetClosing(views::Widget* widget) override;
+  void OnWidgetActivationChanged(views::Widget* widget, bool active) override;
 
   // ArcNotificationItem::Observer
   void OnItemDestroying() override;
diff --git a/ash/system/message_center/arc/arc_notification_item.h b/ash/system/message_center/arc/arc_notification_item.h
index ea7daae..668b65a 100644
--- a/ash/system/message_center/arc/arc_notification_item.h
+++ b/ash/system/message_center/arc/arc_notification_item.h
@@ -56,6 +56,9 @@
   // Called when the user wants to toggle expansio of notification. This is
   // called from ArcNotificationContentView.
   virtual void ToggleExpansion() = 0;
+  // Called when the notification is activated i.e. starts accepting input for
+  // inline reply. Called from ArcNotificationContentView.
+  virtual void OnWindowActivated(bool activated) = 0;
 
   // Called from ArcNotificationManager when the remote input textbox on
   // notification is activated or deactivated.
diff --git a/ash/system/message_center/arc/arc_notification_item_impl.cc b/ash/system/message_center/arc/arc_notification_item_impl.cc
index a3618983..213665d37 100644
--- a/ash/system/message_center/arc/arc_notification_item_impl.cc
+++ b/ash/system/message_center/arc/arc_notification_item_impl.cc
@@ -209,6 +209,10 @@
   manager_->SendNotificationToggleExpansionOnChrome(notification_key_);
 }
 
+void ArcNotificationItemImpl::OnWindowActivated(bool activated) {
+  manager_->SendNotificationActivatedInChrome(notification_key_, activated);
+}
+
 void ArcNotificationItemImpl::OnRemoteInputActivationChanged(bool activated) {
   for (auto& observer : observers_)
     observer.OnRemoteInputActivationChanged(activated);
diff --git a/ash/system/message_center/arc/arc_notification_item_impl.h b/ash/system/message_center/arc/arc_notification_item_impl.h
index bc3c09c..f652460 100644
--- a/ash/system/message_center/arc/arc_notification_item_impl.h
+++ b/ash/system/message_center/arc/arc_notification_item_impl.h
@@ -39,6 +39,7 @@
   void OpenSettings() override;
   void OpenSnooze() override;
   void ToggleExpansion() override;
+  void OnWindowActivated(bool activated) override;
   void OnRemoteInputActivationChanged(bool activated) override;
   void AddObserver(Observer* observer) override;
   void RemoveObserver(Observer* observer) override;
diff --git a/ash/system/message_center/arc/arc_notification_manager.cc b/ash/system/message_center/arc/arc_notification_manager.cc
index b5ed366..511d6491 100644
--- a/ash/system/message_center/arc/arc_notification_manager.cc
+++ b/ash/system/message_center/arc/arc_notification_manager.cc
@@ -376,6 +376,31 @@
       key, ArcNotificationEvent::BODY_CLICKED);
 }
 
+void ArcNotificationManager::SendNotificationActivatedInChrome(
+    const std::string& key,
+    bool activated) {
+  if (items_.find(key) == items_.end()) {
+    VLOG(3)
+        << "Chrome requests to fire an activation event on notification (key: "
+        << key << "), but it is gone.";
+    return;
+  }
+
+  auto* notifications_instance = ARC_GET_INSTANCE_FOR_METHOD(
+      instance_owner_->holder(), SendNotificationEventToAndroid);
+
+  // On shutdown, the ARC channel may quit earlier than notifications.
+  if (!notifications_instance) {
+    VLOG(2) << "ARC Notification (key: " << key
+            << ") is (de)activated, but the ARC channel has already gone.";
+    return;
+  }
+
+  notifications_instance->SendNotificationEventToAndroid(
+      key, activated ? ArcNotificationEvent::ACTIVATED
+                     : ArcNotificationEvent::DEACTIVATED);
+}
+
 void ArcNotificationManager::CreateNotificationWindow(const std::string& key) {
   if (items_.find(key) == items_.end()) {
     VLOG(3) << "Chrome requests to create window on notification (key: " << key
diff --git a/ash/system/message_center/arc/arc_notification_manager.h b/ash/system/message_center/arc/arc_notification_manager.h
index 0fc47156..84e61eda 100644
--- a/ash/system/message_center/arc/arc_notification_manager.h
+++ b/ash/system/message_center/arc/arc_notification_manager.h
@@ -62,6 +62,8 @@
   // Methods called from ArcNotificationItem:
   void SendNotificationRemovedFromChrome(const std::string& key);
   void SendNotificationClickedOnChrome(const std::string& key);
+  void SendNotificationActivatedInChrome(const std::string& key,
+                                         bool activated);
   void CreateNotificationWindow(const std::string& key);
   void CloseNotificationWindow(const std::string& key);
   void OpenNotificationSettings(const std::string& key);
diff --git a/ash/system/message_center/arc/mock_arc_notification_item.h b/ash/system/message_center/arc/mock_arc_notification_item.h
index a274e3ad..5c7d286 100644
--- a/ash/system/message_center/arc/mock_arc_notification_item.h
+++ b/ash/system/message_center/arc/mock_arc_notification_item.h
@@ -39,6 +39,7 @@
   void OnClosedFromAndroid() override {}
   void Click() override {}
   void ToggleExpansion() override {}
+  void OnWindowActivated(bool activated) override {}
   void OpenSettings() override {}
   void OpenSnooze() override {}
   void IncrementWindowRefCount() override {}
diff --git a/ash/system/message_center/stacked_notification_bar.cc b/ash/system/message_center/stacked_notification_bar.cc
index 6167ddf..1a515931 100644
--- a/ash/system/message_center/stacked_notification_bar.cc
+++ b/ash/system/message_center/stacked_notification_bar.cc
@@ -128,9 +128,7 @@
   SetVisible(false);
 
   auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kHorizontal,
-      gfx::Insets(0, kStackingNotificationClearAllButtonPadding.left(), 0, 0),
-      0));
+      views::BoxLayout::Orientation::kHorizontal));
   layout->set_cross_axis_alignment(
       views::BoxLayout::CrossAxisAlignment::kStretch);
 
@@ -139,7 +137,8 @@
     notification_icons_container_->SetLayoutManager(
         std::make_unique<views::BoxLayout>(
             views::BoxLayout::Orientation::kHorizontal,
-            kStackedNotificationIconsContainerPadding));
+            kStackedNotificationIconsContainerPadding,
+            kStackedNotificationBarIconSpacing));
     AddChildView(notification_icons_container_);
   }
 
diff --git a/ash/system/overview/overview_button_tray.cc b/ash/system/overview/overview_button_tray.cc
index 8bfc038..ad1d51c6 100644
--- a/ash/system/overview/overview_button_tray.cc
+++ b/ash/system/overview/overview_button_tray.cc
@@ -104,12 +104,14 @@
             OverviewSession::EnterExitOverviewType::kSlideInEnter) {
       aura::Window* new_active_window = mru_window_list[1];
 
-      // In splitview mode, quick switch will only affect the windows on the non
-      // default side. The window which was dragged to either side to begin
-      // splitview will remain untouched. Skip that window if it appears in the
-      // mru list.
-      SplitViewController* split_view_controller = SplitViewController::Get();
-      if (split_view_controller->InSplitViewMode() &&
+      // In tablet split view mode, quick switch will only affect the windows on
+      // the non default side. The window which was dragged to either side to
+      // begin split view will remain untouched. Skip that window if it appears
+      // in the mru list. Clamshell split view mode is impossible here, as it
+      // implies overview mode, and you cannot quick switch in overview mode.
+      SplitViewController* split_view_controller =
+          SplitViewController::Get(Shell::GetPrimaryRootWindow());
+      if (split_view_controller->InTabletSplitViewMode() &&
           mru_window_list.size() > 2u) {
         if (mru_window_list[0] ==
                 split_view_controller->GetDefaultSnappedWindow() ||
diff --git a/ash/system/overview/overview_button_tray_unittest.cc b/ash/system/overview/overview_button_tray_unittest.cc
index 21c60fe..1d5b1f4b 100644
--- a/ash/system/overview/overview_button_tray_unittest.cc
+++ b/ash/system/overview/overview_button_tray_unittest.cc
@@ -97,6 +97,10 @@
         Shell::Get()->session_controller()->GetSessionState());
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  protected:
   views::ImageView* GetImageView(OverviewButtonTray* tray) {
     return tray->icon_;
@@ -388,25 +392,25 @@
   // Enter splitview mode. Snap |window1| to the left, this will be the default
   // splitview window.
   Shell::Get()->overview_controller()->StartOverview();
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
-  ASSERT_EQ(window1.get(), split_view_controller->GetDefaultSnappedWindow());
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+  ASSERT_EQ(window1.get(), split_view_controller()->GetDefaultSnappedWindow());
 
   // Verify that after double tapping, we have switched to |window3|, even
   // though |window1| is more recently used.
   PerformDoubleTap();
-  EXPECT_EQ(window3.get(), split_view_controller->right_window());
+  EXPECT_EQ(window3.get(), split_view_controller()->right_window());
   EXPECT_EQ(window3.get(), window_util::GetActiveWindow());
 
   // Focus |window1|. Verify that after double tapping, |window2| is the on the
   // right side for splitview.
   wm::ActivateWindow(window1.get());
   PerformDoubleTap();
-  EXPECT_EQ(window2.get(), split_view_controller->right_window());
+  EXPECT_EQ(window2.get(), split_view_controller()->right_window());
   EXPECT_EQ(window2.get(), window_util::GetActiveWindow());
 
-  split_view_controller->EndSplitView();
+  split_view_controller()->EndSplitView();
 }
 
 // Tests that the tray remains visible when leaving tablet mode due to external
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h
index 1c59c351..8869863 100644
--- a/ash/system/tray/tray_constants.h
+++ b/ash/system/tray/tray_constants.h
@@ -130,9 +130,10 @@
 
 // Constants used in StackedNotificationBar located on top of the message
 // center.
-constexpr gfx::Insets kStackedNotificationIconsContainerPadding(2, 0, 0, 6);
-constexpr int kStackedNotificationBarMaxIcons = 5;
-constexpr int kStackedNotificationIconSize = 15;
+constexpr gfx::Insets kStackedNotificationIconsContainerPadding(1, 16, 0, 8);
+constexpr int kStackedNotificationBarMaxIcons = 3;
+constexpr int kStackedNotificationBarIconSpacing = 6;
+constexpr int kStackedNotificationIconSize = 18;
 
 // Constants used in FeaturePodsView of UnifiedSystemTray.
 constexpr gfx::Size kUnifiedFeaturePodIconSize(48, 48);
diff --git a/ash/wm/base_state.cc b/ash/wm/base_state.cc
index ca6e731..783511e2 100644
--- a/ash/wm/base_state.cc
+++ b/ash/wm/base_state.cc
@@ -187,7 +187,7 @@
   gfx::Rect bounds_in_parent;
   if (ShouldAllowSplitView()) {
     bounds_in_parent =
-        SplitViewController::Get()->GetSnappedWindowBoundsInParent(
+        SplitViewController::Get(window)->GetSnappedWindowBoundsInParent(
             (state_type == WindowStateType::kLeftSnapped)
                 ? SplitViewController::LEFT
                 : SplitViewController::RIGHT);
diff --git a/ash/wm/desks/desks_controller.cc b/ash/wm/desks/desks_controller.cc
index 21267bd..0d61523 100644
--- a/ash/wm/desks/desks_controller.cc
+++ b/ash/wm/desks/desks_controller.cc
@@ -220,12 +220,13 @@
 
   // DesksController::AbstractDeskSwitchAnimation:
   void OnStartingDeskScreenshotTakenInternal(const Desk* ending_desk) override {
-    // The order here matters. Overview must end before ending split view before
-    // switching desks. That's because we don't want TabletModeWindowManager
-    // maximizing all windows because we cleared the snapped ones in
-    // split_view_controller first. See:
-    // `TabletModeWindowManager::OnOverviewModeEndingAnimationComplete()`.
-    // See also test coverage for this case in:
+    // The order here matters. Overview must end before ending tablet split view
+    // before switching desks. (If clamshell split view is active on one or more
+    // displays, then it simply will end when we end overview.) That's because
+    // we don't want |TabletModeWindowManager| maximizing all windows because we
+    // cleared the snapped ones in |SplitViewController| first. See
+    // |TabletModeWindowManager::OnOverviewModeEndingAnimationComplete|.
+    // See also test coverage for this case in
     // `TabletModeDesksTest.SnappedStateRetainedOnSwitchingDesksFromOverview`.
     const bool in_overview =
         Shell::Get()->overview_controller()->InOverviewSession();
@@ -236,7 +237,8 @@
       Shell::Get()->overview_controller()->EndOverview(
           OverviewSession::EnterExitOverviewType::kImmediateExit);
     }
-    SplitViewController* split_view_controller = SplitViewController::Get();
+    SplitViewController* split_view_controller =
+        SplitViewController::Get(Shell::GetPrimaryRootWindow());
     split_view_controller->EndSplitView(
         SplitViewController::EndReason::kDesksChange);
 
@@ -282,10 +284,12 @@
   // DesksController::AbstractDeskSwitchAnimation:
   void OnStartingDeskScreenshotTakenInternal(const Desk* ending_desk) override {
     DCHECK_EQ(controller_->active_desk(), desk_to_remove_);
-    // We are removing the active desk, which may have split view active.
+    // We are removing the active desk, which may have tablet split view active.
     // We will restore the split view state of the newly activated desk at the
-    // end of the animation.
-    SplitViewController* split_view_controller = SplitViewController::Get();
+    // end of the animation. Clamshell split view is impossible because
+    // |DeskRemovalAnimation| is not used in overview.
+    SplitViewController* split_view_controller =
+        SplitViewController::Get(Shell::GetPrimaryRootWindow());
     split_view_controller->EndSplitView(
         SplitViewController::EndReason::kDesksChange);
 
@@ -716,9 +720,10 @@
 
     // Exit split view if active, before activating the new desk. We will
     // restore the split view state of the newly activated desk at the end.
-    SplitViewController* split_view_controller = SplitViewController::Get();
-    split_view_controller->EndSplitView(
-        SplitViewController::EndReason::kDesksChange);
+    for (aura::Window* root_window : Shell::GetAllRootWindows()) {
+      SplitViewController::Get(root_window)
+          ->EndSplitView(SplitViewController::EndReason::kDesksChange);
+    }
 
     // The removed desk is the active desk, so temporarily remove its windows
     // from the overview grid which will result in removing the
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc
index b71dd36..138356a 100644
--- a/ash/wm/desks/desks_unittests.cc
+++ b/ash/wm/desks/desks_unittests.cc
@@ -1447,6 +1447,10 @@
     Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   DISALLOW_COPY_AND_ASSIGN(TabletModeDesksTest);
 };
@@ -1611,17 +1615,16 @@
 
   auto win1 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win2 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win2.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(win2.get(), split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win2.get(), SplitViewController::RIGHT);
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win2.get(), split_view_controller()->right_window());
 
   // Desk 2 has no windows, so the SplitViewController should be tracking no
   // windows.
   ActivateDesk(desk_2);
-  EXPECT_EQ(nullptr, split_view_controller->left_window());
-  EXPECT_EQ(nullptr, split_view_controller->right_window());
+  EXPECT_EQ(nullptr, split_view_controller()->left_window());
+  EXPECT_EQ(nullptr, split_view_controller()->right_window());
   // However, the snapped windows on desk 1 should retain their snapped state.
   EXPECT_TRUE(WindowState::Get(win1.get())->IsSnapped());
   EXPECT_TRUE(WindowState::Get(win2.get())->IsSnapped());
@@ -1629,15 +1632,15 @@
   // Snap two other windows in desk 2.
   auto win3 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win4 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  split_view_controller->SnapWindow(win3.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win4.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(win3.get(), split_view_controller->left_window());
-  EXPECT_EQ(win4.get(), split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win3.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win4.get(), SplitViewController::RIGHT);
+  EXPECT_EQ(win3.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win4.get(), split_view_controller()->right_window());
 
   // Switch back to desk 1, and expect the snapped windows are restored.
   ActivateDesk(desk_1);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(win2.get(), split_view_controller->right_window());
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win2.get(), split_view_controller()->right_window());
   EXPECT_TRUE(WindowState::Get(win3.get())->IsSnapped());
   EXPECT_TRUE(WindowState::Get(win4.get())->IsSnapped());
 }
@@ -1648,11 +1651,10 @@
   ASSERT_EQ(2u, desks_controller->desks().size());
   auto win1 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win2 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win2.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(win2.get(), split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win2.get(), SplitViewController::RIGHT);
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win2.get(), split_view_controller()->right_window());
 
   // Enter overview and switch to desk_2 using its mini_view. Overview should
   // end, but TabletModeWindowManager should not maximize the snapped windows
@@ -1679,10 +1681,10 @@
   // destination desks.
   auto win3 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win4 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  split_view_controller->SnapWindow(win3.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win4.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(win3.get(), split_view_controller->left_window());
-  EXPECT_EQ(win4.get(), split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win3.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win4.get(), SplitViewController::RIGHT);
+  EXPECT_EQ(win3.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win4.get(), split_view_controller()->right_window());
   overview_controller->StartOverview();
   EXPECT_TRUE(overview_controller->InOverviewSession());
   overview_grid = GetOverviewGridForRoot(Shell::GetPrimaryRootWindow());
@@ -1724,9 +1726,8 @@
       &win3_delegate, /*id=*/-1, gfx::Rect(big)));
   OverviewController* overview_controller = Shell::Get()->overview_controller();
   EXPECT_TRUE(overview_controller->StartOverview());
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
   EXPECT_FALSE(CanSnapInSplitview(win2.get()));
   EXPECT_FALSE(CanSnapInSplitview(win3.get()));
 
@@ -1745,7 +1746,7 @@
   }
   EXPECT_TRUE(WindowState::Get(win1.get())->IsSnapped());
   EXPECT_EQ(SplitViewController::State::kNoSnap,
-            split_view_controller->state());
+            split_view_controller()->state());
   EXPECT_FALSE(overview_controller->InOverviewSession());
 
   // Switch back to |desk_1| and verify that split view is arranged as before.
@@ -1763,8 +1764,8 @@
   }
   EXPECT_TRUE(WindowState::Get(win1.get())->IsSnapped());
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
   EXPECT_TRUE(overview_controller->InOverviewSession());
 }
 
@@ -1778,19 +1779,18 @@
   Desk* desk_2 = desks_controller->desks()[1].get();
   auto win1 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win2 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win2.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(win2.get(), split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win2.get(), SplitViewController::RIGHT);
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win2.get(), split_view_controller()->right_window());
   auto* overview_controller = Shell::Get()->overview_controller();
   EXPECT_FALSE(overview_controller->InOverviewSession());
   ActivateDesk(desk_2);
   EXPECT_FALSE(overview_controller->InOverviewSession());
   auto win3 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  split_view_controller->SnapWindow(win3.get(), SplitViewController::LEFT);
-  EXPECT_EQ(win3.get(), split_view_controller->left_window());
-  EXPECT_EQ(nullptr, split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win3.get(), SplitViewController::LEFT);
+  EXPECT_EQ(win3.get(), split_view_controller()->left_window());
+  EXPECT_EQ(nullptr, split_view_controller()->right_window());
 
   // Switching to the desk that has only one snapped window to be restored in
   // SplitView should enter overview mode, whereas switching to one that has two
@@ -1809,22 +1809,21 @@
   ASSERT_EQ(2u, desks_controller->desks().size());
   Desk* desk_2 = desks_controller->desks()[1].get();
   auto win1 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(nullptr, split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(nullptr, split_view_controller()->right_window());
   ActivateDesk(desk_2);
   auto win2 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  split_view_controller->SnapWindow(win2.get(), SplitViewController::RIGHT);
-  EXPECT_EQ(nullptr, split_view_controller->left_window());
-  EXPECT_EQ(win2.get(), split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win2.get(), SplitViewController::RIGHT);
+  EXPECT_EQ(nullptr, split_view_controller()->left_window());
+  EXPECT_EQ(win2.get(), split_view_controller()->right_window());
 
   // Removing desk_2 will cause both snapped windows to merge in SplitView.
   RemoveDesk(desk_2);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(win2.get(), split_view_controller->right_window());
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(win2.get(), split_view_controller()->right_window());
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
-            split_view_controller->state());
+            split_view_controller()->state());
 }
 
 TEST_F(TabletModeDesksTest, RemoveDeskWithMaximizedWindowAndMergeWithSnapped) {
@@ -1833,24 +1832,23 @@
   ASSERT_EQ(2u, desks_controller->desks().size());
   Desk* desk_2 = desks_controller->desks()[1].get();
   auto win1 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(nullptr, split_view_controller->right_window());
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(nullptr, split_view_controller()->right_window());
   ActivateDesk(desk_2);
   auto win2 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  EXPECT_EQ(nullptr, split_view_controller->left_window());
-  EXPECT_EQ(nullptr, split_view_controller->right_window());
+  EXPECT_EQ(nullptr, split_view_controller()->left_window());
+  EXPECT_EQ(nullptr, split_view_controller()->right_window());
   EXPECT_TRUE(WindowState::Get(win2.get())->IsMaximized());
 
   // Removing desk_2 will cause us to enter overview mode without any crashes.
   // SplitView will remain left snapped.
   RemoveDesk(desk_2);
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
-  EXPECT_EQ(win1.get(), split_view_controller->left_window());
-  EXPECT_EQ(nullptr, split_view_controller->right_window());
+  EXPECT_EQ(win1.get(), split_view_controller()->left_window());
+  EXPECT_EQ(nullptr, split_view_controller()->right_window());
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
+            split_view_controller()->state());
 }
 
 TEST_F(TabletModeDesksTest, BackdropsStacking) {
@@ -1862,9 +1860,8 @@
 
   auto win1 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win2 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(win1.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win2.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(win1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win2.get(), SplitViewController::RIGHT);
   auto* desk_1_backdrop_controller =
       GetDeskBackdropController(desk_1, Shell::GetPrimaryRootWindow());
   auto* desk_2_backdrop_controller =
@@ -1889,8 +1886,8 @@
   // but should not affect desk_1.
   auto win3 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
   auto win4 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  split_view_controller->SnapWindow(win3.get(), SplitViewController::LEFT);
-  split_view_controller->SnapWindow(win4.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(win3.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(win4.get(), SplitViewController::RIGHT);
   ASSERT_TRUE(desk_1_backdrop_controller->backdrop_window());
   ASSERT_TRUE(desk_2_backdrop_controller->backdrop_window());
   auto* desk_2_backdrop = desk_2_backdrop_controller->backdrop_window();
@@ -1944,10 +1941,9 @@
   EXPECT_TRUE(CanSnapInSplitview(window.get()));
 
   // Snap the window in this orientation.
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT);
-  EXPECT_EQ(window.get(), split_view_controller->left_window());
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
+  EXPECT_EQ(window.get(), split_view_controller()->left_window());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
 
   // Create a second desk, switch to it, and change back the orientation to
   // landscape, in which the window is not snappable. The window still exists on
@@ -1968,7 +1964,7 @@
   const Desk* desk_1 = controller->desks()[0].get();
   ActivateDesk(desk_1);
   EXPECT_EQ(desk_1, controller->active_desk());
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window.get())->IsMaximized());
 }
 
@@ -2038,6 +2034,10 @@
     AshTestBase::SetUp();
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 
@@ -2047,7 +2047,6 @@
 TEST_F(DesksWithSplitViewTest, SwitchToDeskWithSnappedActiveWindow) {
   auto* desks_controller = DesksController::Get();
   auto* overview_controller = Shell::Get()->overview_controller();
-  auto* split_view_controller = SplitViewController::Get();
 
   // Two virtual desks: |desk_1| (active) and |desk_2|.
   NewDesk();
@@ -2065,13 +2064,13 @@
 
   // Switch to |desk_2| and then back to |desk_1|. Verify that neither split
   // view nor overview arises.
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
   ActivateDesk(desk_2);
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
   ActivateDesk(desk_1);
-  EXPECT_FALSE(split_view_controller->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
 }
 
diff --git a/ash/wm/immersive_fullscreen_controller_unittest.cc b/ash/wm/immersive_fullscreen_controller_unittest.cc
index 077332a..0ce1eb69 100644
--- a/ash/wm/immersive_fullscreen_controller_unittest.cc
+++ b/ash/wm/immersive_fullscreen_controller_unittest.cc
@@ -145,6 +145,10 @@
 
   views::NativeViewHost* content_view() { return content_view_; }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
   views::View* top_container() {
     return NonClientFrameViewAsh::Get(window())->GetHeaderView();
   }
@@ -727,9 +731,9 @@
 
   // Top-of-window views will not be revealed for snapped window in splitview
   // mode either.
-  SplitViewController::Get()->SnapWindow(window(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window(), SplitViewController::LEFT);
   EXPECT_TRUE(WindowState::Get(window())->IsSnapped());
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   AttemptReveal(MODALITY_GESTURE_SCROLL);
   EXPECT_FALSE(controller()->IsRevealed());
 }
diff --git a/ash/wm/overview/overview_controller.cc b/ash/wm/overview/overview_controller.cc
index 77bfb34..1083379d 100644
--- a/ash/wm/overview/overview_controller.cc
+++ b/ash/wm/overview/overview_controller.cc
@@ -154,7 +154,10 @@
   // in the overview grid for the display where the overview button was long
   // pressed, and the first window in that overview grid is snappable.
 
-  auto* split_view_controller = SplitViewController::Get();
+  // TODO(crbug.com/970013): Properly implement the multi-display behavior (in
+  // tablet position with an external pointing device).
+  auto* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   // Exit split view mode if we are already in it.
   if (split_view_controller->InSplitViewMode()) {
     // In some cases the window returned by window_util::GetActiveWindow will be
@@ -459,11 +462,16 @@
     // view state before |SplitViewController::OnOverviewModeStarting|, because
     // in case of |SplitViewController::State::kBothSnapped|, that function will
     // insert one of the two snapped windows to overview.
-    const SplitViewController::State split_view_state =
-        SplitViewController::Get()->state();
-    should_focus_overview_ =
-        split_view_state == SplitViewController::State::kNoSnap ||
-        split_view_state == SplitViewController::State::kBothSnapped;
+    should_focus_overview_ = true;
+    for (aura::Window* root_window : Shell::GetAllRootWindows()) {
+      const SplitViewController::State split_view_state =
+          SplitViewController::Get(root_window)->state();
+      if (split_view_state == SplitViewController::State::kLeftSnapped ||
+          split_view_state == SplitViewController::State::kRightSnapped) {
+        should_focus_overview_ = false;
+        break;
+      }
+    }
 
     // Suspend occlusion tracker until the enter animation is complete.
     PauseOcclusionTracker();
@@ -504,8 +512,10 @@
 
 bool OverviewController::CanEnterOverview() {
   // Prevent toggling overview during the split view divider snap animation.
-  if (SplitViewController::Get()->IsDividerAnimating())
+  if (SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->IsDividerAnimating()) {
     return false;
+  }
 
   // Don't allow a window overview if the user session is not active (e.g.
   // locked or in user-adding screen) or a modal dialog is open or running in
@@ -521,7 +531,8 @@
 
 bool OverviewController::CanEndOverview(
     OverviewSession::EnterExitOverviewType type) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   // Prevent toggling overview during the split view divider snap animation.
   if (split_view_controller->IsDividerAnimating())
     return false;
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc
index e933702c..0c6e6b1 100644
--- a/ash/wm/overview/overview_grid.cc
+++ b/ash/wm/overview/overview_grid.cc
@@ -249,7 +249,8 @@
     }
   }
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(root_window);
   if (!split_view_controller->InSplitViewMode())
     return work_area;
 
@@ -301,7 +302,7 @@
 gfx::Rect GetGridBoundsInScreenForSplitview(
     aura::Window* window,
     base::Optional<IndicatorState> indicator_state = base::nullopt) {
-  auto* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller = SplitViewController::Get(window);
   auto state = split_view_controller->state();
 
   // If we are in splitview mode already just use the given state, otherwise
@@ -357,7 +358,7 @@
       split_view_drag_indicators->current_indicator_state() ==
           IndicatorState::kDragArea &&
       !IsCurrentScreenOrientationLandscape() &&
-      !SplitViewController::Get()->InSplitViewMode()) {
+      !SplitViewController::Get(root)->InSplitViewMode()) {
     desks_widget_root_bounds.Offset(0,
                                     overview_grid_screen_bounds.height() *
                                             kHighlightScreenPrimaryAxisRatio +
@@ -472,7 +473,7 @@
 OverviewGrid::~OverviewGrid() = default;
 
 void OverviewGrid::Shutdown() {
-  SplitViewController::Get()->RemoveObserver(this);
+  SplitViewController::Get(root_window_)->RemoveObserver(this);
   ScreenRotationAnimator::GetForRootWindow(root_window_)->RemoveObserver(this);
   Shell::Get()->wallpaper_controller()->RemoveObserver(this);
   grid_event_handler_.reset();
@@ -493,7 +494,8 @@
       !Shell::Get()->tablet_mode_controller()->InTabletMode();
 
   // OverviewGrid in splitscreen does not include the window to be activated.
-  if (!window_list_.empty() || SplitViewController::Get()->InSplitViewMode()) {
+  if (!window_list_.empty() ||
+      SplitViewController::Get(root_window_)->InSplitViewMode()) {
     // The following instance self-destructs when shutdown animation ends.
     new ShutdownAnimationFpsCounterObserver(
         root_window_->layer()->GetCompositor(), single_animation_in_clamshell);
@@ -512,7 +514,7 @@
 
   for (const auto& window : window_list_)
     window->PrepareForOverview();
-  SplitViewController::Get()->AddObserver(this);
+  SplitViewController::Get(root_window_)->AddObserver(this);
   if (Shell::Get()->tablet_mode_controller()->InTabletMode())
     ScreenRotationAnimator::GetForRootWindow(root_window_)->AddObserver(this);
 
@@ -921,7 +923,7 @@
 void OverviewGrid::OnDisplayMetricsChanged() {
   // In case of split view mode, the grid bounds and item positions will be
   // updated in |OnSplitViewDividerPositionChanged|.
-  if (SplitViewController::Get()->InSplitViewMode())
+  if (SplitViewController::Get(root_window_)->InSplitViewMode())
     return;
   SetBoundsAndUpdatePositions(
       GetGridBoundsInScreen(root_window_, /*divider_changed=*/false),
@@ -936,7 +938,8 @@
   if (!overview_controller->InOverviewSession())
     return;
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(root_window_);
   const bool unsnappable_window_activated =
       state == SplitViewController::State::kNoSnap &&
       split_view_controller->end_reason() ==
@@ -1089,7 +1092,7 @@
             });
 
   SkRegion occluded_region;
-  auto* split_view_controller = SplitViewController::Get();
+  auto* split_view_controller = SplitViewController::Get(root_window_);
   if (split_view_controller->InSplitViewMode()) {
     // Snapped windows and the split view divider are not included in
     // |target_bounds| or |window_list_|, but can occlude other windows, so add
diff --git a/ash/wm/overview/overview_grid_unittest.cc b/ash/wm/overview/overview_grid_unittest.cc
index 05bf35d8..2b24337e2 100644
--- a/ash/wm/overview/overview_grid_unittest.cc
+++ b/ash/wm/overview/overview_grid_unittest.cc
@@ -80,6 +80,10 @@
     }
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   std::unique_ptr<OverviewGrid> grid_;
 
@@ -226,12 +230,11 @@
   wm::ActivateWindow(window1.get());
 
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true);
-  SplitViewController::Get()->SnapWindow(window1.get(),
-                                         SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
 
   // Snap |window2| and check that |window3| is maximized.
-  SplitViewController::Get()->SnapWindow(window2.get(),
-                                         SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
   EXPECT_TRUE(WindowState::Get(window3.get())->IsMaximized());
 
   // Tests that |window3| is not animated even though its bounds are larger than
diff --git a/ash/wm/overview/overview_item.cc b/ash/wm/overview/overview_item.cc
index 1a17632..d010d6c 100644
--- a/ash/wm/overview/overview_item.cc
+++ b/ash/wm/overview/overview_item.cc
@@ -277,7 +277,8 @@
   // target state in |SplitViewController::OnOverviewModeEnding|.
   // Unify the mechanism to control it and remove ifs.
   if (Shell::Get()->tablet_mode_controller()->InTabletMode() &&
-      !SplitViewController::Get()->InSplitViewMode() && reset_transform) {
+      !SplitViewController::Get(root_window_)->InSplitViewMode() &&
+      reset_transform) {
     MaximizeIfSnapped(GetWindow());
   }
 
@@ -551,7 +552,7 @@
     visible = false;
   } else {
     const SplitViewController::State state =
-        SplitViewController::Get()->state();
+        SplitViewController::Get(root_window_)->state();
     visible = state == SplitViewController::State::kLeftSnapped ||
               state == SplitViewController::State::kRightSnapped;
   }
@@ -666,9 +667,11 @@
   aura::Window* dragged_window = GetWindow();
   aura::Window* dragged_widget_window = item_widget_->GetNativeWindow();
   aura::Window* parent_window = dragged_widget_window->parent();
-  if (SplitViewController::Get()->InSplitViewMode()) {
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(root_window_);
+  if (split_view_controller->InSplitViewMode()) {
     aura::Window* snapped_window =
-        SplitViewController::Get()->GetDefaultSnappedWindow();
+        split_view_controller->GetDefaultSnappedWindow();
     if (snapped_window->parent() == parent_window &&
         dragged_window->parent() == parent_window) {
       parent_window->StackChildBelow(dragged_window, snapped_window);
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc
index 1ba13ecd..85ee4b5 100644
--- a/ash/wm/overview/overview_session.cc
+++ b/ash/wm/overview/overview_session.cc
@@ -188,7 +188,7 @@
 
   UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.Items", num_items_);
 
-  SplitViewController::Get()->AddObserver(this);
+  SplitViewController::Get(Shell::GetPrimaryRootWindow())->AddObserver(this);
 
   display::Screen::GetScreen()->AddObserver(this);
   base::RecordAction(base::UserMetricsAction("WindowSelector_Overview"));
@@ -217,7 +217,7 @@
   // Stop observing split view state changes before restoring window focus.
   // Otherwise the activation of the window triggers OnSplitViewStateChanged()
   // that will call into this function again.
-  SplitViewController::Get()->RemoveObserver(this);
+  SplitViewController::Get(Shell::GetPrimaryRootWindow())->RemoveObserver(this);
 
   size_t remaining_items = 0;
   for (std::unique_ptr<OverviewGrid>& overview_grid : grid_list_) {
@@ -274,10 +274,12 @@
   if (!IsEmpty())
     return;
 
-  if (SplitViewController::Get()->InTabletSplitViewMode())
+  if (SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->InTabletSplitViewMode()) {
     UpdateNoWindowsWidget();
-  else
+  } else {
     EndOverview();
+  }
 }
 
 void OverviewSession::IncrementSelection(bool forward) {
@@ -393,7 +395,8 @@
                                    const gfx::PointF& location_in_screen,
                                    bool is_touch_dragging) {
   if (Shell::Get()->overview_controller()->IsInStartAnimation() ||
-      SplitViewController::Get()->IsDividerAnimating()) {
+      SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->IsDividerAnimating()) {
     return;
   }
   highlight_controller_->SetFocusHighlightVisibility(false);
@@ -589,7 +592,8 @@
         // We do not want an active window in overview. It will cause blatantly
         // broken behavior as in the video linked in crbug.com/992223.
         wm::ActivateWindow(
-            SplitViewController::Get()->GetDefaultSnappedWindow());
+            SplitViewController::Get(Shell::GetPrimaryRootWindow())
+                ->GetDefaultSnappedWindow());
       }
     }
   }
@@ -633,7 +637,7 @@
   // Do not cancel overview mode if the window activation happens when split
   // view mode is also active. SplitViewController will do the right thing to
   // handle the window activation change.
-  if (SplitViewController::Get()->InSplitViewMode())
+  if (SplitViewController::Get(gained_active)->InSplitViewMode())
     return;
 
   // Do not cancel overview mode if the window activation was caused while
@@ -768,8 +772,10 @@
   }
   // In case of split view mode, the no windows widget bounds will be updated in
   // |OnSplitViewDividerPositionChanged|.
-  if (SplitViewController::Get()->InSplitViewMode())
+  if (SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->InSplitViewMode()) {
     return;
+  }
   RefreshNoWindowsWidgetBounds(/*animate=*/false);
 }
 
@@ -797,12 +803,8 @@
   // If the new window is added when splitscreen is active, do nothing.
   // SplitViewController will do the right thing to snap the window or end
   // overview mode.
-  if (SplitViewController::Get()->InSplitViewMode() &&
-      new_window->GetRootWindow() == SplitViewController::Get()
-                                         ->GetDefaultSnappedWindow()
-                                         ->GetRootWindow()) {
+  if (SplitViewController::Get(new_window)->InSplitViewMode())
     return;
-  }
 
   if (IsSwitchableContainer(new_window->parent()) &&
       !::wm::GetTransientParent(new_window)) {
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc
index f44d65a..78958e1 100644
--- a/ash/wm/overview/overview_session_unittest.cc
+++ b/ash/wm/overview/overview_session_unittest.cc
@@ -17,6 +17,7 @@
 #include "ash/display/screen_orientation_controller.h"
 #include "ash/display/screen_orientation_controller_test_api.h"
 #include "ash/drag_drop/drag_drop_controller.h"
+#include "ash/magnifier/docked_magnifier_controller_impl.h"
 #include "ash/public/cpp/app_types.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/fps_counter.h"
@@ -195,6 +196,10 @@
     return overview_controller()->overview_session_.get();
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
   gfx::Rect GetTransformedBounds(aura::Window* window) {
     gfx::Rect bounds_in_screen = window->layer()->bounds();
     ::wm::ConvertRectToScreen(window->parent(), &bounds_in_screen);
@@ -1504,8 +1509,7 @@
   EnterTabletMode();
   ToggleOverview();
   ASSERT_TRUE(overview_controller()->InOverviewSession());
-  SplitViewController::Get()->SnapWindow(window.get(),
-                                         SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
   ASSERT_TRUE(overview_controller()->InOverviewSession());
   SendKey(ui::VKEY_ESCAPE);
   EXPECT_TRUE(overview_controller()->InOverviewSession());
@@ -1638,8 +1642,7 @@
 
   // Tests that when snapping a window to the left in splitview, the no windows
   // indicator shows up in the middle of the right side of the screen.
-  auto* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
   no_windows_widget = overview_session()->no_windows_widget_for_testing();
   ASSERT_TRUE(no_windows_widget);
 
@@ -1653,7 +1656,7 @@
 
   // Tests that when snapping a window to the right in splitview, the no windows
   // indicator shows up in the middle of the left side of the screen.
-  split_view_controller->SnapWindow(window.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::RIGHT);
   expected_x = /*bounds_right=*/(200 - 4) / 2;
   EXPECT_EQ(gfx::Point(expected_x, expected_y),
             no_windows_widget->GetWindowBoundsInScreen().CenterPoint());
@@ -1665,8 +1668,7 @@
   std::unique_ptr<aura::Window> window(CreateTestWindow());
 
   ToggleOverview();
-  auto* split_view_controller = SplitViewController::Get();
-  split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
   EXPECT_TRUE(overview_session()->no_windows_widget_for_testing());
 
   overview_session()->AddItem(window.get(), /*reposition=*/true,
@@ -2802,7 +2804,7 @@
   }
 
   SplitViewController* split_view_controller() {
-    return SplitViewController::Get();
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
   }
 
  protected:
@@ -3245,7 +3247,7 @@
   }
 
   SplitViewController* split_view_controller() {
-    return SplitViewController::Get();
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
   }
 
   bool IsDividerAnimating() {
@@ -3349,7 +3351,7 @@
   // Creates a window which cannot be snapped by splitview.
   std::unique_ptr<aura::Window> CreateUnsnappableWindow(
       const gfx::Rect& bounds = gfx::Rect()) {
-    std::unique_ptr<aura::Window> window = CreateTestWindow();
+    std::unique_ptr<aura::Window> window = CreateTestWindow(bounds);
     window->SetProperty(aura::client::kResizeBehaviorKey,
                         aura::client::kResizeBehaviorNone);
     return window;
@@ -3824,7 +3826,7 @@
   EXPECT_TRUE(overview_controller()->InOverviewSession());
 
   EndSplitView();
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller()->InOverviewSession());
 
   // Test that ToggleOverview() can end overview if we're not in split view
@@ -3837,10 +3839,10 @@
   ToggleOverview();
   overview_item1 = GetOverviewItemForWindow(window1.get());
   DragWindowTo(overview_item1, gfx::PointF());
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller()->InOverviewSession());
   Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false);
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller()->InOverviewSession());
 
   // Test that closing all windows in overview can end overview if we're not in
@@ -4446,8 +4448,7 @@
   ToggleOverview();
   // Snap a window to the left and test dragging the divider towards the right
   // edge of the screen.
-  SplitViewController::Get()->SnapWindow(window1.get(),
-                                         SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
   OverviewGrid* grid = overview_session()->grid_list()[0].get();
   ASSERT_TRUE(grid);
 
@@ -4471,8 +4472,8 @@
   ToggleOverview();
   // Snap a window to the right and test dragging the divider towards the left
   // edge of the screen.
-  SplitViewController::Get()->SnapWindow(window1.get(),
-                                         SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window1.get(),
+                                      SplitViewController::RIGHT);
   grid = overview_session()->grid_list()[0].get();
   ASSERT_TRUE(grid);
 
@@ -5041,6 +5042,204 @@
   EXPECT_FALSE(split_view_controller()->InSplitViewMode());
 }
 
+using SplitViewOverviewSessionInClamshellTestMultiDisplayOnly =
+    SplitViewOverviewSessionInClamshellTest;
+
+// Test |SplitViewController::Get|.
+TEST_P(SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+       GetSplitViewController) {
+  UpdateDisplay("800x600,800x600");
+  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  ASSERT_EQ(2u, root_windows.size());
+  const gfx::Rect bounds_within_root1(0, 0, 400, 400);
+  const gfx::Rect bounds_within_root2(800, 0, 400, 400);
+  std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window2 = CreateTestWindow(bounds_within_root2);
+  EXPECT_EQ(root_windows[0],
+            SplitViewController::Get(window1.get())->root_window());
+  EXPECT_EQ(root_windows[1],
+            SplitViewController::Get(window2.get())->root_window());
+}
+
+// Test |SplitViewController::GetSnappedWindowBoundsInScreen|.
+TEST_P(SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+       GetSnappedBounds) {
+  UpdateDisplay("800x600,800x600");
+  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  ASSERT_EQ(2u, root_windows.size());
+  // This unit test assumes a shelf height of 56, as currently hard coded in
+  // |AppListTestViewDelegate::GetShelfHeight|. There is a TODO to change that
+  // value to 48, and the code below will just have to be updated then. The
+  // |EXPECT_EQ| calls produce better failure output if they compare string
+  // representations of bounds rects rather than individual components of
+  // origins and sizes. Those string representations of bounds rects are most
+  // readable when hard-coded.
+  ASSERT_EQ("0,0 800x544",
+            screen_util::GetDisplayWorkAreaBoundsInScreenForActiveDeskContainer(
+                root_windows[0])
+                .ToString());
+  ASSERT_EQ("800,0 800x544",
+            screen_util::GetDisplayWorkAreaBoundsInScreenForActiveDeskContainer(
+                root_windows[1])
+                .ToString());
+
+  EXPECT_EQ("0,0 400x544",
+            SplitViewController::Get(root_windows[0])
+                ->GetSnappedWindowBoundsInScreen(SplitViewController::LEFT)
+                .ToString());
+  EXPECT_EQ("400,0 400x544",
+            SplitViewController::Get(root_windows[0])
+                ->GetSnappedWindowBoundsInScreen(SplitViewController::RIGHT)
+                .ToString());
+  EXPECT_EQ("800,0 400x544",
+            SplitViewController::Get(root_windows[1])
+                ->GetSnappedWindowBoundsInScreen(SplitViewController::LEFT)
+                .ToString());
+  EXPECT_EQ("1200,0 400x544",
+            SplitViewController::Get(root_windows[1])
+                ->GetSnappedWindowBoundsInScreen(SplitViewController::RIGHT)
+                .ToString());
+}
+
+// Test that if clamshell split view is started by snapping a window that is the
+// only overview window, then split view ends as soon as it starts, and overview
+// ends along with it.
+TEST_P(SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+       SplitViewEndsImmediatelyIfOverviewIsEmpty) {
+  UpdateDisplay("800x600,800x600");
+  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  ASSERT_EQ(2u, root_windows.size());
+  const gfx::Rect bounds_within_root1(0, 0, 400, 400);
+  std::unique_ptr<aura::Window> window = CreateTestWindow(bounds_within_root1);
+  ToggleOverview();
+  SplitViewController::Get(root_windows[0])
+      ->SnapWindow(window.get(), SplitViewController::LEFT);
+  EXPECT_FALSE(InOverviewSession());
+  EXPECT_FALSE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+}
+
+// Test that if clamshell split view is started by snapping a window on one
+// display while there is an overview window on another display, then split view
+// stays active (instead of ending as soon as it starts), and overview also
+// stays active. Then close the overview window and verify that split view and
+// overview are ended.
+TEST_P(SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+       SplitViewViableWithOverviewWindowOnOtherDisplay) {
+  UpdateDisplay("800x600,800x600");
+  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  ASSERT_EQ(2u, root_windows.size());
+  const gfx::Rect bounds_within_root1(0, 0, 400, 400);
+  const gfx::Rect bounds_within_root2(800, 0, 400, 400);
+  std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window2 = CreateTestWindow(bounds_within_root2);
+  ToggleOverview();
+  SplitViewController::Get(root_windows[0])
+      ->SnapWindow(window1.get(), SplitViewController::LEFT);
+  EXPECT_TRUE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  EXPECT_TRUE(InOverviewSession());
+  window2.reset();
+  EXPECT_FALSE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  EXPECT_FALSE(InOverviewSession());
+}
+
+// Verify that when in overview mode, the selector items unsnappable indicator
+// shows up when expected.
+TEST_P(SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+       OverviewUnsnappableIndicatorVisibility) {
+  UpdateDisplay("800x600,800x600");
+  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  ASSERT_EQ(2u, root_windows.size());
+  const gfx::Rect bounds_within_root1(0, 0, 400, 400);
+  const gfx::Rect bounds_within_root2(800, 0, 400, 400);
+  std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window2 = CreateTestWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window3 =
+      CreateUnsnappableWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window4 = CreateTestWindow(bounds_within_root2);
+  std::unique_ptr<aura::Window> window5 = CreateTestWindow(bounds_within_root2);
+  std::unique_ptr<aura::Window> window6 =
+      CreateUnsnappableWindow(bounds_within_root2);
+  ToggleOverview();
+  OverviewItem* item2 = GetOverviewItemForWindow(window2.get());
+  OverviewItem* item3 = GetOverviewItemForWindow(window3.get());
+  OverviewItem* item5 = GetOverviewItemForWindow(window5.get());
+  OverviewItem* item6 = GetOverviewItemForWindow(window6.get());
+
+  // Note: |cannot_snap_label_view_| and its parent will be created on demand.
+  ASSERT_FALSE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  ASSERT_FALSE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+  EXPECT_FALSE(item2->cannot_snap_widget_for_testing());
+  EXPECT_FALSE(item3->cannot_snap_widget_for_testing());
+  EXPECT_FALSE(item5->cannot_snap_widget_for_testing());
+  EXPECT_FALSE(item6->cannot_snap_widget_for_testing());
+
+  SplitViewController::Get(root_windows[0])
+      ->SnapWindow(window1.get(), SplitViewController::LEFT);
+  ASSERT_TRUE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  ASSERT_FALSE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+  EXPECT_FALSE(item2->cannot_snap_widget_for_testing());
+  ASSERT_TRUE(item3->cannot_snap_widget_for_testing());
+  ui::Layer* item3_unsnappable_layer =
+      item3->cannot_snap_widget_for_testing()->GetNativeWindow()->layer();
+  EXPECT_EQ(1.f, item3_unsnappable_layer->opacity());
+  EXPECT_FALSE(item5->cannot_snap_widget_for_testing());
+  EXPECT_FALSE(item6->cannot_snap_widget_for_testing());
+
+  SplitViewController::Get(root_windows[1])
+      ->SnapWindow(window4.get(), SplitViewController::LEFT);
+  ASSERT_TRUE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  ASSERT_TRUE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+  EXPECT_FALSE(item2->cannot_snap_widget_for_testing());
+  EXPECT_EQ(1.f, item3_unsnappable_layer->opacity());
+  EXPECT_FALSE(item5->cannot_snap_widget_for_testing());
+  ASSERT_TRUE(item6->cannot_snap_widget_for_testing());
+  ui::Layer* item6_unsnappable_layer =
+      item6->cannot_snap_widget_for_testing()->GetNativeWindow()->layer();
+  EXPECT_EQ(1.f, item6_unsnappable_layer->opacity());
+
+  SplitViewController::Get(root_windows[0])->EndSplitView();
+  ASSERT_FALSE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  ASSERT_TRUE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+  EXPECT_FALSE(item2->cannot_snap_widget_for_testing());
+  EXPECT_EQ(0.f, item3_unsnappable_layer->opacity());
+  EXPECT_FALSE(item5->cannot_snap_widget_for_testing());
+  EXPECT_EQ(1.f, item6_unsnappable_layer->opacity());
+
+  SplitViewController::Get(root_windows[1])->EndSplitView();
+  ASSERT_FALSE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  ASSERT_FALSE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+  EXPECT_FALSE(item2->cannot_snap_widget_for_testing());
+  EXPECT_EQ(0.f, item3_unsnappable_layer->opacity());
+  EXPECT_FALSE(item5->cannot_snap_widget_for_testing());
+  EXPECT_EQ(0.f, item6_unsnappable_layer->opacity());
+}
+
+// Test that enabling the docked magnifier ends clamshell split view on all
+// displays.
+TEST_P(SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+       DockedMagnifierEndsClamshellSplitView) {
+  UpdateDisplay("800x600,800x600");
+  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
+  ASSERT_EQ(2u, root_windows.size());
+  const gfx::Rect bounds_within_root1(0, 0, 400, 400);
+  const gfx::Rect bounds_within_root2(800, 0, 400, 400);
+  std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window2 = CreateTestWindow(bounds_within_root1);
+  std::unique_ptr<aura::Window> window3 = CreateTestWindow(bounds_within_root2);
+  ToggleOverview();
+  SplitViewController::Get(root_windows[0])
+      ->SnapWindow(window1.get(), SplitViewController::LEFT);
+  SplitViewController::Get(root_windows[1])
+      ->SnapWindow(window3.get(), SplitViewController::LEFT);
+  EXPECT_TRUE(InOverviewSession());
+  EXPECT_TRUE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  EXPECT_TRUE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+  Shell::Get()->docked_magnifier_controller()->SetEnabled(true);
+  EXPECT_FALSE(InOverviewSession());
+  EXPECT_FALSE(SplitViewController::Get(root_windows[0])->InSplitViewMode());
+  EXPECT_FALSE(SplitViewController::Get(root_windows[1])->InSplitViewMode());
+}
+
 INSTANTIATE_TEST_SUITE_P(, OverviewSessionTest, testing::Bool());
 INSTANTIATE_TEST_SUITE_P(, OverviewSessionRoundedCornerTest, testing::Bool());
 INSTANTIATE_TEST_SUITE_P(, OverviewSessionNewLayoutTest, testing::Bool());
@@ -5048,5 +5247,9 @@
 INSTANTIATE_TEST_SUITE_P(,
                          SplitViewOverviewSessionInClamshellTest,
                          testing::Bool());
+INSTANTIATE_TEST_SUITE_P(
+    ,
+    SplitViewOverviewSessionInClamshellTestMultiDisplayOnly,
+    testing::Values(true));
 
 }  // namespace ash
diff --git a/ash/wm/overview/overview_utils.cc b/ash/wm/overview/overview_utils.cc
index be00154..1adc7e2 100644
--- a/ash/wm/overview/overview_utils.cc
+++ b/ash/wm/overview/overview_utils.cc
@@ -48,8 +48,7 @@
 }  // namespace
 
 bool CanCoverAvailableWorkspace(aura::Window* window) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  if (split_view_controller->InSplitViewMode())
+  if (SplitViewController::Get(window)->InSplitViewMode())
     return CanSnapInSplitview(window);
   return WindowState::Get(window)->IsMaximizedOrFullscreenOrPinned();
 }
diff --git a/ash/wm/overview/overview_window_drag_controller.cc b/ash/wm/overview/overview_window_drag_controller.cc
index 3dba108e..866f8ad 100644
--- a/ash/wm/overview/overview_window_drag_controller.cc
+++ b/ash/wm/overview/overview_window_drag_controller.cc
@@ -130,7 +130,6 @@
     OverviewItem* item,
     bool is_touch_dragging)
     : overview_session_(overview_session),
-      split_view_controller_(SplitViewController::Get()),
       item_(item),
       on_desks_bar_item_size_(GetItemSizeWhenOnDesksBar(item)),
       display_count_(Shell::GetAllRootWindows().size()),
@@ -138,7 +137,8 @@
       should_allow_split_view_(ShouldAllowSplitView()),
       virtual_desks_bar_enabled_(GetVirtualDesksBarEnabled(item)) {
   DCHECK(!Shell::Get()->overview_controller()->IsInStartAnimation());
-  DCHECK(!SplitViewController::Get()->IsDividerAnimating());
+  DCHECK(!SplitViewController::Get(Shell::GetPrimaryRootWindow())
+              ->IsDividerAnimating());
 }
 
 OverviewWindowDragController::~OverviewWindowDragController() = default;
@@ -244,7 +244,8 @@
     // Update the split view divider bar status if necessary. If splitview is
     // active when dragging the overview window, the split divider bar should be
     // placed below the dragged window during dragging.
-    split_view_controller_->OnWindowDragStarted(item_->GetWindow());
+    SplitViewController::Get(Shell::GetPrimaryRootWindow())
+        ->OnWindowDragStarted(item_->GetWindow());
   }
 
   if (virtual_desks_bar_enabled_) {
@@ -301,7 +302,9 @@
   // right window, snap the current window to left. If split view is active
   // and the selected window cannot be snapped, exit splitview and activate
   // the selected window, and also exit the overview.
-  SplitViewController::State split_state = split_view_controller_->state();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(item_->root_window());
+  SplitViewController::State split_state = split_view_controller->state();
   if (!should_allow_split_view_ ||
       split_state == SplitViewController::State::kNoSnap) {
     overview_session_->SelectWindow(item_);
@@ -310,7 +313,7 @@
                    ? SplitViewController::RIGHT
                    : SplitViewController::LEFT);
   } else {
-    split_view_controller_->EndSplitView();
+    split_view_controller->EndSplitView();
     overview_session_->SelectWindow(item_);
     ShowAppCannotSnapToast();
   }
@@ -508,8 +511,9 @@
     // should be placed above the dragged window after drag ends. Note here the
     // passed parameters |snap_position_| and |location_in_screen| won't be used
     // in this function for this case, but they are passed in as placeholders.
-    split_view_controller_->OnWindowDragEnded(
-        item_->GetWindow(), snap_position_, rounded_screen_point);
+    SplitViewController::Get(Shell::GetPrimaryRootWindow())
+        ->OnWindowDragEnded(item_->GetWindow(), snap_position_,
+                            rounded_screen_point);
 
     // Update window grid bounds and |snap_position_| in case the screen
     // orientation was changed.
@@ -591,6 +595,16 @@
              : Shell::Get()->cursor_manager()->GetDisplay().work_area();
 }
 
+SplitViewController*
+OverviewWindowDragController::GetSplitViewControllerForDisplayBeingDraggedIn()
+    const {
+  return SplitViewController::Get(
+      is_touch_dragging_
+          ? item_->root_window()
+          : Shell::GetRootWindowForDisplayId(
+                Shell::Get()->cursor_manager()->GetDisplay().id()));
+}
+
 bool OverviewWindowDragController::ShouldUpdateDragIndicatorsOrSnap(
     const gfx::PointF& event_location) {
   auto snap_position = GetSnapPosition(event_location);
@@ -660,16 +674,18 @@
   // to snap it to a position that already has a snapped window in place, we
   // should show the preview window as soon as the window past the split divider
   // bar.
-  if (split_view_controller_->InSplitViewMode()) {
+  SplitViewController* split_view_controller =
+      GetSplitViewControllerForDisplayBeingDraggedIn();
+  if (split_view_controller->InSplitViewMode()) {
     const int position = gfx::ToRoundedInt(
         is_landscape ? location_in_screen.x() : location_in_screen.y());
     SplitViewController::SnapPosition default_snap_position =
-        split_view_controller_->default_snap_position();
+        split_view_controller->default_snap_position();
     // If we're trying to snap to a position that already has a snapped window:
     const bool is_default_snap_position_left_or_top =
         is_primary == (default_snap_position == SplitViewController::LEFT);
     const bool is_drag_position_left_or_top =
-        position < split_view_controller_->divider_position();
+        position < split_view_controller->divider_position();
     if (is_default_snap_position_left_or_top == is_drag_position_left_or_top)
       return default_snap_position;
   }
@@ -684,10 +700,14 @@
   DCHECK_NE(snap_position, SplitViewController::NONE);
 
   // |item_| will be deleted after SplitViewController::SnapWindow().
-  DCHECK(!SplitViewController::Get()->IsDividerAnimating());
+  DCHECK(!SplitViewController::Get(Shell::GetPrimaryRootWindow())
+              ->IsDividerAnimating());
   aura::Window* window = item_->GetWindow();
-  split_view_controller_->SnapWindow(window, snap_position,
-                                     /*use_divider_spawn_animation=*/true);
+  // TODO(crbug.com/970013): Properly implement the multi-display behavior which
+  // involves reparenting |window| to put it on the destination display.
+  GetSplitViewControllerForDisplayBeingDraggedIn()->SnapWindow(
+      window, snap_position,
+      /*use_divider_spawn_animation=*/true);
   item_ = nullptr;
   wm::ActivateWindow(window);
 }
diff --git a/ash/wm/overview/overview_window_drag_controller.h b/ash/wm/overview/overview_window_drag_controller.h
index 1bc64625..edb99952 100644
--- a/ash/wm/overview/overview_window_drag_controller.h
+++ b/ash/wm/overview/overview_window_drag_controller.h
@@ -104,6 +104,7 @@
       const gfx::PointF& location_in_screen);
 
   gfx::Rect GetWorkAreaOfDisplayBeingDraggedIn() const;
+  SplitViewController* GetSplitViewControllerForDisplayBeingDraggedIn() const;
 
   // Dragged items should not attempt to update the indicators or snap if
   // the drag started in a snap region and has not been dragged pass the
@@ -117,8 +118,6 @@
 
   OverviewSession* overview_session_;
 
-  SplitViewController* split_view_controller_;
-
   // The drag target window in the overview mode.
   OverviewItem* item_ = nullptr;
 
diff --git a/ash/wm/overview/overview_window_drag_controller_unittest.cc b/ash/wm/overview/overview_window_drag_controller_unittest.cc
index d27eefa0..94ffb86 100644
--- a/ash/wm/overview/overview_window_drag_controller_unittest.cc
+++ b/ash/wm/overview/overview_window_drag_controller_unittest.cc
@@ -311,7 +311,7 @@
   }
 
   SplitViewController* split_view_controller() {
-    return SplitViewController::Get();
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
   }
 
   OverviewSession* overview_session() {
diff --git a/ash/wm/overview/scoped_overview_transform_window.cc b/ash/wm/overview/scoped_overview_transform_window.cc
index 1975747e..05858ec 100644
--- a/ash/wm/overview/scoped_overview_transform_window.cc
+++ b/ash/wm/overview/scoped_overview_transform_window.cc
@@ -137,7 +137,8 @@
   // activated.
   // TODO(sammiequon): This does not handle the case if either the snapped
   // window or this window is an always on top window.
-  auto* split_view_controller = SplitViewController::Get();
+  auto* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   if (ShouldUseTabletModeGridLayout() &&
       split_view_controller->InSplitViewMode()) {
     aura::Window* snapped_window =
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index b98d7a6..e3bf478 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -275,9 +275,16 @@
 };
 
 // static
-SplitViewController* SplitViewController::Get() {
-  DCHECK(Shell::GetPrimaryRootWindowController());
-  return Shell::GetPrimaryRootWindowController()->split_view_controller();
+SplitViewController* SplitViewController::Get(const aura::Window* window) {
+  DCHECK(window);
+  DCHECK(window->GetRootWindow());
+  DCHECK(RootWindowController::ForWindow(window));
+  DCHECK(RootWindowController::ForWindow(Shell::GetPrimaryRootWindow()));
+  return RootWindowController::ForWindow(
+             AreMultiDisplayOverviewAndSplitViewEnabled()
+                 ? window
+                 : Shell::GetPrimaryRootWindow())
+      ->split_view_controller();
 }
 
 SplitViewController::SplitViewController(aura::Window* root_window)
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h
index dfc50463..da2c307 100644
--- a/ash/wm/splitview/split_view_controller.h
+++ b/ash/wm/splitview/split_view_controller.h
@@ -65,9 +65,6 @@
     kUnsnappableWindowActivated,
     kActiveUserChanged,
     kWindowDragStarted,
-    // TODO(edcourtney): Consider not ending Split-View on PIP expand.
-    // See crbug.com/950827.
-    kPipExpanded,
     kExitTabletMode,
     // Splitview is being ended due to a change in Virtual Desks, such as
     // switching desks or removing a desk.
@@ -94,12 +91,16 @@
     kBothSnapped,
   };
 
-  // For now, there is only one |SplitViewController|, regardless of whether the
-  // |ash::features::kMultiDisplayOverviewAndSplitView| feature flag is enabled.
-  // TODO(crbug.com/970013): When the feature flag is enabled, there shall be a
-  // |SplitViewController| for each root window. Instead of Get, this function
-  // shall be ForWindow, similar to |RootWindowController::ForWindow|.
-  static SplitViewController* Get();
+  // Gets the |SplitViewController| for the root window of |window|. |window| is
+  // important in clamshell mode. In tablet mode, the working assumption for now
+  // is mirror mode (or just one display), and so |window| can be almost any
+  // window and it does not matter. For code that only applies to tablet mode,
+  // you may simply use the primary root (see |Shell::GetPrimaryRootWindow|).
+  // The user actually can go to the display settings while in tablet mode and
+  // choose extend; we just are not yet trying to support it really well. When
+  // the |ash::features::kMultiDisplayOverviewAndSplitView| feature flag is
+  // disabled, |window| is ignored as there is only one |SplitViewController|.
+  static SplitViewController* Get(const aura::Window* window);
 
   explicit SplitViewController(aura::Window* root_window);
   ~SplitViewController() override;
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc
index d95002df..4b6a852e 100644
--- a/ash/wm/splitview/split_view_controller_unittest.cc
+++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -197,7 +197,7 @@
   }
 
   SplitViewController* split_view_controller() {
-    return SplitViewController::Get();
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
   }
 
   SplitViewDivider* split_view_divider() {
diff --git a/ash/wm/splitview/split_view_drag_indicators.cc b/ash/wm/splitview/split_view_drag_indicators.cc
index 97e1e9f..b191f05 100644
--- a/ash/wm/splitview/split_view_drag_indicators.cc
+++ b/ash/wm/splitview/split_view_drag_indicators.cc
@@ -169,8 +169,10 @@
   void OnIndicatorTypeChanged(IndicatorState indicator_state,
                               IndicatorState previous_indicator_state) {
     // In split view, the labels never show, and they do not need to be updated.
-    if (SplitViewController::Get()->InSplitViewMode())
+    if (SplitViewController::Get(GetWidget()->GetNativeWindow())
+            ->InSplitViewMode()) {
       return;
+    }
 
     // On transition to a state with no indicators, any label that is showing
     // shall fade out with the corresponding indicator. The following call to
@@ -377,10 +379,11 @@
     if (IsPreviewAreaState(indicator_state_) || nix_preview_inset) {
       // Get the preview area bounds from the split view controller.
       preview_area_bounds =
-          SplitViewController::Get()->GetSnappedWindowBoundsInScreen(
-              preview_state == IndicatorState::kPreviewAreaLeft
-                  ? SplitViewController::LEFT
-                  : SplitViewController::RIGHT);
+          SplitViewController::Get(GetWidget()->GetNativeWindow())
+              ->GetSnappedWindowBoundsInScreen(
+                  preview_state == IndicatorState::kPreviewAreaLeft
+                      ? SplitViewController::LEFT
+                      : SplitViewController::RIGHT);
 
       aura::Window* root_window =
           GetWidget()->GetNativeWindow()->GetRootWindow();
diff --git a/ash/wm/splitview/split_view_drag_indicators_unittest.cc b/ash/wm/splitview/split_view_drag_indicators_unittest.cc
index c5eb799..66f387ce 100644
--- a/ash/wm/splitview/split_view_drag_indicators_unittest.cc
+++ b/ash/wm/splitview/split_view_drag_indicators_unittest.cc
@@ -64,7 +64,7 @@
   }
 
   SplitViewController* split_view_controller() {
-    return SplitViewController::Get();
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
   }
 
   IndicatorState indicator_state() {
diff --git a/ash/wm/splitview/split_view_highlight_view.cc b/ash/wm/splitview/split_view_highlight_view.cc
index bcdcb5a..28c2f30f 100644
--- a/ash/wm/splitview/split_view_highlight_view.cc
+++ b/ash/wm/splitview/split_view_highlight_view.cc
@@ -10,6 +10,7 @@
 #include "ash/wm/splitview/split_view_utils.h"
 #include "ui/gfx/canvas.h"
 #include "ui/views/view.h"
+#include "ui/views/widget/widget.h"
 
 namespace ash {
 
@@ -227,13 +228,17 @@
     return;
   }
 
+  const bool in_split_view_mode =
+      SplitViewController::Get(GetWidget()->GetNativeWindow())
+          ->InSplitViewMode();
+
   if (SplitViewDragIndicators::IsPreviewAreaState(previous_indicator_state)) {
     const bool was_this_the_preview =
         is_right_or_bottom_ !=
         SplitViewDragIndicators::IsPreviewAreaOnLeftTopOfScreen(
             previous_indicator_state);
     DoSplitviewOpacityAnimation(
-        layer(), SplitViewController::Get()->InSplitViewMode()
+        layer(), in_split_view_mode
                      ? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_OUT
                      : (was_this_the_preview
                             ? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_IN
@@ -244,9 +249,8 @@
   SetColor(SplitViewDragIndicators::IsCannotSnapState(indicator_state)
                ? SK_ColorBLACK
                : SK_ColorWHITE);
-  DoSplitviewOpacityAnimation(layer(),
-                              SplitViewController::Get()->InSplitViewMode()
-                                  ? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_OUT
+  DoSplitviewOpacityAnimation(
+      layer(), in_split_view_mode ? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_OUT
                                   : SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_IN);
 }
 
diff --git a/ash/wm/splitview/split_view_test_api.cc b/ash/wm/splitview/split_view_test_api.cc
index 5e66fc5..a196fff 100644
--- a/ash/wm/splitview/split_view_test_api.cc
+++ b/ash/wm/splitview/split_view_test_api.cc
@@ -4,10 +4,19 @@
 
 #include "ash/public/cpp/split_view_test_api.h"
 
+#include "ash/shell.h"
 #include "ash/wm/splitview/split_view_controller.h"
 
 namespace ash {
 
+namespace {
+
+SplitViewController* split_view_controller() {
+  return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+}
+
+}  // namespace
+
 SplitViewTestApi::SplitViewTestApi() = default;
 
 SplitViewTestApi::~SplitViewTestApi() = default;
@@ -27,11 +36,11 @@
       position = SplitViewController::RIGHT;
       break;
   }
-  SplitViewController::Get()->SnapWindow(window, position);
+  split_view_controller()->SnapWindow(window, position);
 }
 
 void SplitViewTestApi::SwapWindows() {
-  SplitViewController::Get()->SwapWindows();
+  split_view_controller()->SwapWindows();
 }
 
 }  // namespace ash
diff --git a/ash/wm/splitview/split_view_utils.cc b/ash/wm/splitview/split_view_utils.cc
index 12ededd..cf55059 100644
--- a/ash/wm/splitview/split_view_utils.cc
+++ b/ash/wm/splitview/split_view_utils.cc
@@ -241,7 +241,8 @@
   // could snap windows that were not in split view. Also, a window may have
   // become full screen, and if so, then it would be better not to reactivate
   // split view. See https://crbug.com/944134.
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
 
   if (refresh_snapped_windows) {
     const MruWindowTracker::WindowList windows =
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc
index 3169b0a..6f99d8b 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -943,7 +943,8 @@
   // there is a window snapped on one side but no window snapped on the other
   // side, then overview mode should be started (to be seen on the side with
   // no snapped window).
-  const auto state = SplitViewController::Get()->state();
+  const auto state =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow())->state();
   if (state == SplitViewController::State::kLeftSnapped ||
       state == SplitViewController::State::kRightSnapped) {
     Shell::Get()->overview_controller()->StartOverview();
diff --git a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
index f9fb0bd..3160c40 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
@@ -124,6 +124,10 @@
     MultiDisplayOverviewAndSplitViewTest::TearDown();
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
   TabletModeController* tablet_mode_controller() {
     return Shell::Get()->tablet_mode_controller();
   }
@@ -1139,23 +1143,21 @@
 // Test that if the active window is not snapped before tablet mode, then split
 // view is not activated.
 TEST_P(TabletModeControllerTest, StartTabletActiveNoSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> window = CreateTestWindow();
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kNoSnap,
-            split_view_controller->state());
+            split_view_controller()->state());
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
 }
 
 // Test that if the active window is snapped on the left before tablet mode,
 // then split view is activated with the active window on the left.
 TEST_P(TabletModeControllerTest, StartTabletActiveLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> window = CreateDesktopWindowSnappedLeft();
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(window.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(window.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(window.get(), window_util::GetActiveWindow());
 }
@@ -1163,12 +1165,11 @@
 // Test that if the active window is snapped on the right before tablet mode,
 // then split view is activated with the active window on the right.
 TEST_P(TabletModeControllerTest, StartTabletActiveRightSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> window = CreateDesktopWindowSnappedRight();
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kRightSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(window.get(), split_view_controller->right_window());
+            split_view_controller()->state());
+  EXPECT_EQ(window.get(), split_view_controller()->right_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(window.get(), window_util::GetActiveWindow());
 }
@@ -1177,16 +1178,15 @@
 // the previous window is snapped on the right, then split view is activated
 // with the active window on the left and the previous window on the right.
 TEST_P(TabletModeControllerTest, StartTabletActiveLeftSnapPreviousRightSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> left_window = CreateDesktopWindowSnappedLeft();
   std::unique_ptr<aura::Window> right_window =
       CreateDesktopWindowSnappedRight();
   wm::ActivateWindow(left_window.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(left_window.get(), split_view_controller->left_window());
-  EXPECT_EQ(right_window.get(), split_view_controller->right_window());
+            split_view_controller()->state());
+  EXPECT_EQ(left_window.get(), split_view_controller()->left_window());
+  EXPECT_EQ(right_window.get(), split_view_controller()->right_window());
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(left_window.get(), window_util::GetActiveWindow());
 }
@@ -1195,16 +1195,15 @@
 // and the previous window is snapped on the left, then split view is activated
 // with the active window on the right and the previous window on the left.
 TEST_P(TabletModeControllerTest, StartTabletActiveRightSnapPreviousLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> left_window = CreateDesktopWindowSnappedLeft();
   std::unique_ptr<aura::Window> right_window =
       CreateDesktopWindowSnappedRight();
   ASSERT_EQ(right_window.get(), window_util::GetActiveWindow());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kBothSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(left_window.get(), split_view_controller->left_window());
-  EXPECT_EQ(right_window.get(), split_view_controller->right_window());
+            split_view_controller()->state());
+  EXPECT_EQ(left_window.get(), split_view_controller()->left_window());
+  EXPECT_EQ(right_window.get(), split_view_controller()->right_window());
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(right_window.get(), window_util::GetActiveWindow());
 }
@@ -1214,7 +1213,6 @@
 // is not activated.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveArcLeftSnapPreviousRightSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> left_window = CreateDesktopWindowSnappedLeft();
   left_window->SetProperty(aura::client::kAppType,
                            static_cast<int>(AppType::ARC_APP));
@@ -1223,7 +1221,7 @@
   wm::ActivateWindow(left_window.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kNoSnap,
-            split_view_controller->state());
+            split_view_controller()->state());
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
 }
 
@@ -1233,7 +1231,6 @@
 // window), then split view is activated with the active window on the left.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveLeftSnapPreviousArcRightSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> left_window = CreateDesktopWindowSnappedLeft();
   std::unique_ptr<aura::Window> right_window =
       CreateDesktopWindowSnappedRight();
@@ -1245,8 +1242,8 @@
   wm::ActivateWindow(left_window.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(left_window.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(left_window.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(left_window.get(), window_util::GetActiveWindow());
 }
@@ -1255,7 +1252,6 @@
 // window snapped on the left, then split view is activated with the parent
 // snapped on the left.
 TEST_P(TabletModeControllerTest, StartTabletActiveTransientChildOfLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> parent = CreateDesktopWindowSnappedLeft();
   std::unique_ptr<aura::Window> child =
       CreateTestWindow(gfx::Rect(), aura::client::WINDOW_TYPE_POPUP);
@@ -1263,8 +1259,8 @@
   wm::ActivateWindow(child.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(parent.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(parent.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(child.get(), window_util::GetActiveWindow());
 }
@@ -1273,15 +1269,14 @@
 // previous window is snapped on the left, then split view is activated with the
 // previous window on the left.
 TEST_P(TabletModeControllerTest, StartTabletActiveAppListPreviousLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> window = CreateDesktopWindowSnappedLeft();
   Shell::Get()->app_list_controller()->ShowAppList();
   ASSERT_TRUE(wm::IsActiveWindow(
       GetAppListTestHelper()->GetAppListView()->GetWidget()->GetNativeView()));
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(window.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(window.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(window.get(), window_util::GetActiveWindow());
 }
@@ -1290,7 +1285,6 @@
 // previous window is snapped on the left, then split view is activated with the
 // previous window on the left.
 TEST_P(TabletModeControllerTest, StartTabletActiveDraggedPreviousLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> dragged_window = CreateTestWindow();
   std::unique_ptr<aura::Window> snapped_window =
       CreateDesktopWindowSnappedLeft();
@@ -1300,8 +1294,8 @@
       ash::ToplevelWindowEventHandler::EndClosure()));
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(snapped_window.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(snapped_window.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(snapped_window.get(), window_util::GetActiveWindow());
 }
@@ -1311,7 +1305,6 @@
 // with the previous window on the left.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveHiddenFromOverviewPreviousLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> window_hidden_from_overview =
       CreateTestWindow();
   window_hidden_from_overview->SetProperty(kHideInOverviewKey, true);
@@ -1320,8 +1313,8 @@
   wm::ActivateWindow(window_hidden_from_overview.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(snapped_window.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(snapped_window.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(snapped_window.get(), window_util::GetActiveWindow());
 }
@@ -1331,7 +1324,6 @@
 // split view is activated with the parent on the left.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveDraggedPreviousTransientChildOfLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> dragged_window = CreateTestWindow();
   std::unique_ptr<aura::Window> parent = CreateDesktopWindowSnappedLeft();
   std::unique_ptr<aura::Window> child =
@@ -1344,8 +1336,8 @@
       ash::ToplevelWindowEventHandler::EndClosure()));
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(parent.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(parent.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(parent.get(), window_util::GetActiveWindow());
 }
@@ -1355,7 +1347,6 @@
 // window is snapped on the right, then split view is not activated.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveDesktopOnlyLeftSnapPreviousRightSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   aura::test::TestWindowDelegate left_window_delegate;
   std::unique_ptr<aura::Window> left_window(CreateTestWindowInShellWithDelegate(
       &left_window_delegate, /*id=*/-1, /*bounds=*/gfx::Rect(0, 0, 400, 400)));
@@ -1374,7 +1365,7 @@
   wm::ActivateWindow(left_window.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kNoSnap,
-            split_view_controller->state());
+            split_view_controller()->state());
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
 }
 
@@ -1383,7 +1374,6 @@
 // previous window is snapped on the left, then split view is not activated.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveDesktopOnlyRightSnapPreviousLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> left_window = CreateDesktopWindowSnappedLeft();
   aura::test::TestWindowDelegate right_window_delegate;
   std::unique_ptr<aura::Window> right_window(
@@ -1403,7 +1393,7 @@
   wm::ActivateWindow(right_window.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kNoSnap,
-            split_view_controller->state());
+            split_view_controller()->state());
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
 }
 
@@ -1413,7 +1403,6 @@
 // the active window on the left.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveLeftSnapPreviousDesktopOnlyRightSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> left_window = CreateDesktopWindowSnappedLeft();
   aura::test::TestWindowDelegate right_window_delegate;
   std::unique_ptr<aura::Window> right_window(
@@ -1433,8 +1422,8 @@
   ASSERT_EQ(left_window.get(), window_util::GetActiveWindow());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(left_window.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(left_window.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(left_window.get(), window_util::GetActiveWindow());
 }
@@ -1445,7 +1434,6 @@
 // the active window on the right.
 TEST_P(TabletModeControllerTest,
        StartTabletActiveRightSnapPreviousDesktopOnlyLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   aura::test::TestWindowDelegate left_window_delegate;
   std::unique_ptr<aura::Window> left_window(CreateTestWindowInShellWithDelegate(
       &left_window_delegate, /*id=*/-1, /*bounds=*/gfx::Rect(0, 0, 400, 400)));
@@ -1464,8 +1452,8 @@
   ASSERT_EQ(right_window.get(), window_util::GetActiveWindow());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kRightSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(right_window.get(), split_view_controller->right_window());
+            split_view_controller()->state());
+  EXPECT_EQ(right_window.get(), split_view_controller()->right_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(right_window.get(), window_util::GetActiveWindow());
 }
@@ -1486,14 +1474,13 @@
 // the left before tablet mode, then split view is activated with the active
 // window on the left.
 TEST_P(TabletModeControllerTest, StartTabletActiveLeftSnapPreviousLeftSnap) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
   std::unique_ptr<aura::Window> window1 = CreateDesktopWindowSnappedLeft();
   std::unique_ptr<aura::Window> window2 = CreateDesktopWindowSnappedLeft();
   wm::ActivateWindow(window1.get());
   tablet_mode_controller()->SetEnabledForTest(true);
   EXPECT_EQ(SplitViewController::State::kLeftSnapped,
-            split_view_controller->state());
-  EXPECT_EQ(window1.get(), split_view_controller->left_window());
+            split_view_controller()->state());
+  EXPECT_EQ(window1.get(), split_view_controller()->left_window());
   EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession());
   EXPECT_EQ(window1.get(), window_util::GetActiveWindow());
 }
diff --git a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
index 794e9bb..2e8fce4 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
@@ -95,7 +95,8 @@
 }  // namespace
 
 TabletModeWindowDragDelegate::TabletModeWindowDragDelegate()
-    : split_view_controller_(SplitViewController::Get()),
+    : split_view_controller_(
+          SplitViewController::Get(Shell::GetPrimaryRootWindow())),
       split_view_drag_indicators_(std::make_unique<SplitViewDragIndicators>()) {
 }
 
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
index a345cd07..7a22b184 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -132,7 +132,8 @@
       return left_window ? work_area.height() - left_window_bounds.height()
                          : right_window_bounds.height();
     default:
-      return SplitViewController::Get()->GetDefaultDividerPosition();
+      return SplitViewController::Get(Shell::GetPrimaryRootWindow())
+          ->GetDefaultDividerPosition();
   }
 }
 
@@ -143,7 +144,8 @@
   if (windows.empty())
     return;
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   // If split view mode is already active, use its own divider position.
   if (!split_view_controller->InSplitViewMode())
     split_view_controller->InitDividerPositionForTransition(divider_position);
@@ -243,7 +245,7 @@
   }
   AddWindowCreationObservers();
   display::Screen::GetScreen()->AddObserver(this);
-  SplitViewController::Get()->AddObserver(this);
+  SplitViewController::Get(Shell::GetPrimaryRootWindow())->AddObserver(this);
   Shell::Get()->session_controller()->AddObserver(this);
   Shell::Get()->overview_controller()->AddObserver(this);
   accounts_since_entering_tablet_.insert(
@@ -252,6 +254,8 @@
 }
 
 void TabletModeWindowManager::Shutdown() {
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   base::flat_map<aura::Window*, WindowStateType> carryover_windows_in_splitview;
   const bool was_in_overview =
       Shell::Get()->overview_controller()->InOverviewSession();
@@ -284,13 +288,12 @@
     // single split case to match the clamshell split view behavior. (there is
     // no both snapped state or single split state in clamshell split view). The
     // windows will still be kept snapped though.
-    SplitViewController* split_view_controller = SplitViewController::Get();
     if (split_view_controller->InSplitViewMode()) {
       OverviewController* overview_controller =
           Shell::Get()->overview_controller();
       if (!overview_controller->InOverviewSession() ||
           overview_controller->overview_session()->IsEmpty()) {
-        SplitViewController::Get()->EndSplitView(
+        split_view_controller->EndSplitView(
             SplitViewController::EndReason::kExitTabletMode);
         overview_controller->EndOverview();
       }
@@ -300,7 +303,7 @@
   for (aura::Window* window : added_windows_)
     window->RemoveObserver(this);
   added_windows_.clear();
-  SplitViewController::Get()->RemoveObserver(this);
+  split_view_controller->RemoveObserver(this);
   Shell::Get()->session_controller()->RemoveObserver(this);
   Shell::Get()->overview_controller()->RemoveObserver(this);
   display::Screen::GetScreen()->RemoveObserver(this);
@@ -358,7 +361,8 @@
   if (canceled)
     return;
 
-  auto* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
 
   // Maximize all snapped windows upon exiting overview mode except snapped
   // windows in splitview mode. Note the snapped window might not be tracked in
@@ -380,10 +384,10 @@
     SplitViewController::State state) {
   if (state != SplitViewController::State::kNoSnap)
     return;
-  switch (SplitViewController::Get()->end_reason()) {
+  switch (
+      SplitViewController::Get(Shell::GetPrimaryRootWindow())->end_reason()) {
     case SplitViewController::EndReason::kNormal:
     case SplitViewController::EndReason::kUnsnappableWindowActivated:
-    case SplitViewController::EndReason::kPipExpanded:
       break;
     case SplitViewController::EndReason::kHomeLauncherPressed:
     case SplitViewController::EndReason::kActiveUserChanged:
@@ -513,7 +517,8 @@
 
 void TabletModeWindowManager::OnActiveUserSessionChanged(
     const AccountId& account_id) {
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
 
   // There is only one SplitViewController object for all user sessions, but
   // functionally, each user session independently can be in split view or not.
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
index 9a5fec7..9641964 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
@@ -180,6 +180,10 @@
     return window;
   }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
  private:
   DISALLOW_COPY_AND_ASSIGN(TabletModeWindowManagerTest);
 };
@@ -1836,7 +1840,7 @@
   // After transition, we should be in single split screen.
   CreateTabletModeWindowManager();
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
 
   // 6. Tablet -> Clamshell. Since clamshell splitscreen is not enabled, oveview
@@ -1844,7 +1848,7 @@
   // state.
   DestroyTabletModeWindowManager();
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
 
   // Create another normal state window to test additional scenarios.
@@ -1860,13 +1864,12 @@
 
   // 8. Tablet -> Clamshell. If the two windows are in splitscreen in tablet
   // mode, after transition they will restore to their old window states.
-  SplitViewController::Get()->SnapWindow(window.get(),
-                                         SplitViewController::LEFT);
-  SplitViewController::Get()->SnapWindow(window2.get(),
-                                         SplitViewController::RIGHT);
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   DestroyTabletModeWindowManager();
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
   EXPECT_FALSE(WindowState::Get(window2.get())->IsSnapped());
 
@@ -1875,16 +1878,16 @@
   const WMEvent event2(WM_EVENT_SNAP_RIGHT);
   WindowState::Get(window2.get())->OnWMEvent(&event2);
   CreateTabletModeWindowManager();
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
 
   // 10. Tablet -> Clamshell. If overview and splitview are both active, they
   // will be both ended after the transition.
   overview_controller->StartOverview();
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   DestroyTabletModeWindowManager();
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
 }
 
 // The class to test TabletModeWindowManagerTest related functionalities when
@@ -1951,14 +1954,14 @@
   // After transition, we should be in single split screen.
   CreateTabletModeWindowManager();
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
 
   // 6. Tablet -> Clamshell. Since there is only 1 window, splitview and
   // overview will be both ended. The window will be kept snapped.
   DestroyTabletModeWindowManager();
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
 
   // Create another normal state window to test additional scenarios.
@@ -1973,22 +1976,21 @@
 
   // 8. Tablet -> Clamshell. If tablet splitscreen is active with two snapped
   // windows, the two windows will remain snapped in clamshell mode.
-  SplitViewController::Get()->SnapWindow(window.get(),
-                                         SplitViewController::LEFT);
-  SplitViewController::Get()->SnapWindow(window2.get(),
-                                         SplitViewController::RIGHT);
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  split_view_controller()->SnapWindow(window.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
   DestroyTabletModeWindowManager();
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
   EXPECT_TRUE(WindowState::Get(window2.get())->IsSnapped());
-  EXPECT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
 
   // 9. Clamshell -> Tablet. If two window are snapped to two sides of the
   // screen, they will carry over to splitscreen in tablet mode.
   CreateTabletModeWindowManager();
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
   EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped());
   EXPECT_TRUE(WindowState::Get(window2.get())->IsSnapped());
@@ -1996,15 +1998,15 @@
   // 10. Tablet -> Clamshell. If overview and splitview are both active, after
   // transition, they will remain both active.
   overview_controller->StartOverview();
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
   DestroyTabletModeWindowManager();
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
 
   // 11. Clamshell -> Tablet. The same as 10.
   CreateTabletModeWindowManager();
-  EXPECT_TRUE(SplitViewController::Get()->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
 }
 
@@ -2015,7 +2017,6 @@
   gfx::Rect rect(10, 10, 200, 50);
   std::unique_ptr<aura::Window> window(
       CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  SplitViewController* split_view_controller = SplitViewController::Get();
   OverviewController* overview_controller = Shell::Get()->overview_controller();
 
   // First test 1 window case.
@@ -2027,9 +2028,9 @@
   // Change its bounds horizontally a bit and then enter tablet mode.
   window->SetBounds(gfx::Rect(400, left_snapped_bounds.height()));
   CreateTabletModeWindowManager();
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_TRUE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window.get()));
   // Check the window is moved to 1/3 snapped position.
   EXPECT_EQ(window->bounds().width(),
             1200 * 0.33 - kSplitviewDividerShortSideLength / 2);
@@ -2048,10 +2049,10 @@
   window->SetBounds(gfx::Rect(400, left_snapped_bounds.height()));
   window2->SetBounds(gfx::Rect(400, 0, 800, left_snapped_bounds.height()));
   CreateTabletModeWindowManager();
-  EXPECT_TRUE(split_view_controller->InSplitViewMode());
+  EXPECT_TRUE(split_view_controller()->InSplitViewMode());
   EXPECT_FALSE(overview_controller->InOverviewSession());
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window.get()));
-  EXPECT_TRUE(split_view_controller->IsWindowInSplitView(window2.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window.get()));
+  EXPECT_TRUE(split_view_controller()->IsWindowInSplitView(window2.get()));
   // Check |window| and |window2| is moved to 1/3 snapped position.
   EXPECT_EQ(window->bounds().width(),
             1200 * 0.33 - kSplitviewDividerShortSideLength / 2);
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.cc b/ash/wm/tablet_mode/tablet_mode_window_state.cc
index 0a74faa9..6f92fe4 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_state.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_state.cc
@@ -85,13 +85,13 @@
   }
 
   if (state_object->GetStateType() == WindowStateType::kLeftSnapped) {
-    return SplitViewController::Get()->GetSnappedWindowBoundsInParent(
-        SplitViewController::LEFT);
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow())
+        ->GetSnappedWindowBoundsInParent(SplitViewController::LEFT);
   }
 
   if (state_object->GetStateType() == WindowStateType::kRightSnapped) {
-    return SplitViewController::Get()->GetSnappedWindowBoundsInParent(
-        SplitViewController::RIGHT);
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow())
+        ->GetSnappedWindowBoundsInParent(SplitViewController::RIGHT);
   }
 
   gfx::Rect bounds_in_parent;
diff --git a/ash/wm/toplevel_window_event_handler.cc b/ash/wm/toplevel_window_event_handler.cc
index 548ca3d1..2f254b77 100644
--- a/ash/wm/toplevel_window_event_handler.cc
+++ b/ash/wm/toplevel_window_event_handler.cc
@@ -122,7 +122,8 @@
   // Do not enable back gesture while overview mode is active but splitview is
   // not active.
   if (shell->overview_controller()->InOverviewSession() &&
-      !SplitViewController::Get()->InSplitViewMode()) {
+      !SplitViewController::Get(Shell::GetPrimaryRootWindow())
+           ->InSplitViewMode()) {
     return false;
   }
 
diff --git a/ash/wm/toplevel_window_event_handler_unittest.cc b/ash/wm/toplevel_window_event_handler_unittest.cc
index 9d04ed1..4ebcaa9 100644
--- a/ash/wm/toplevel_window_event_handler_unittest.cc
+++ b/ash/wm/toplevel_window_event_handler_unittest.cc
@@ -1146,7 +1146,8 @@
   EXPECT_EQ(0, target_back_release.accelerator_count());
 
   // Should not go back while in overview mode but splitview is not active.
-  ASSERT_FALSE(SplitViewController::Get()->InSplitViewMode());
+  ASSERT_FALSE(SplitViewController::Get(Shell::GetPrimaryRootWindow())
+                   ->InSplitViewMode());
   GetSessionControllerClient()->SetSessionState(
       session_manager::SessionState::ACTIVE);
   ASSERT_EQ(session_manager::SessionState::ACTIVE,
diff --git a/ash/wm/window_util.cc b/ash/wm/window_util.cc
index b462556..771a912 100644
--- a/ash/wm/window_util.cc
+++ b/ash/wm/window_util.cc
@@ -233,7 +233,8 @@
   // overview mode. The default snap position is the position where the window
   // was first snapped. See |default_snap_position_| in SplitViewController for
   // more detail.
-  auto* split_view_controller = SplitViewController::Get();
+  auto* split_view_controller =
+      SplitViewController::Get(Shell::GetPrimaryRootWindow());
   if (split_view_controller->InTabletSplitViewMode() &&
       window == split_view_controller->GetDefaultSnappedWindow()) {
     return true;
diff --git a/ash/wm/wm_shadow_controller_delegate.cc b/ash/wm/wm_shadow_controller_delegate.cc
index bbaa2019..5dd96a5 100644
--- a/ash/wm/wm_shadow_controller_delegate.cc
+++ b/ash/wm/wm_shadow_controller_delegate.cc
@@ -4,6 +4,7 @@
 
 #include "ash/wm/wm_shadow_controller_delegate.h"
 
+#include "ash/root_window_controller.h"
 #include "ash/shell.h"
 #include "ash/wm/desks/desks_util.h"
 #include "ash/wm/overview/overview_controller.h"
@@ -23,10 +24,13 @@
 bool WmShadowControllerDelegate::ShouldShowShadowForWindow(
     const aura::Window* window) {
   // Hide the shadow if it is one of the splitscreen snapped windows.
-  SplitViewController* split_view_controller = SplitViewController::Get();
-  if (split_view_controller &&
-      split_view_controller->IsWindowInSplitView(window)) {
-    return false;
+  if (window->GetRootWindow() && RootWindowController::ForWindow(window)) {
+    SplitViewController* split_view_controller =
+        SplitViewController::Get(window);
+    if (split_view_controller &&
+        split_view_controller->IsWindowInSplitView(window)) {
+      return false;
+    }
   }
 
   // Hide the shadow while we are in overview mode.
diff --git a/ash/wm/workspace/backdrop_controller.cc b/ash/wm/workspace/backdrop_controller.cc
index f0a1b7c..10ff305 100644
--- a/ash/wm/workspace/backdrop_controller.cc
+++ b/ash/wm/workspace/backdrop_controller.cc
@@ -81,7 +81,8 @@
 
   // For the active desk, only use the windows snapped in SplitViewController if
   // SplitView mode is active.
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(desk_container);
   if (desks_util::IsActiveDeskContainer(desk_container) &&
       split_view_controller->InSplitViewMode()) {
     aura::Window* left_window = split_view_controller->left_window();
@@ -109,10 +110,10 @@
 }  // namespace
 
 BackdropController::BackdropController(aura::Window* container)
-    : container_(container) {
+    : root_window_(container->GetRootWindow()), container_(container) {
   DCHECK(container_);
   auto* shell = Shell::Get();
-  SplitViewController::Get()->AddObserver(this);
+  SplitViewController::Get(root_window_)->AddObserver(this);
   shell->overview_controller()->AddObserver(this);
   shell->accessibility_controller()->AddObserver(this);
   shell->wallpaper_controller()->AddObserver(this);
@@ -128,7 +129,7 @@
   shell->wallpaper_controller()->RemoveObserver(this);
   if (shell->overview_controller())
     shell->overview_controller()->RemoveObserver(this);
-  SplitViewController::Get()->RemoveObserver(this);
+  SplitViewController::Get(root_window_)->RemoveObserver(this);
   // TODO(oshima): animations won't work right with mus:
   // http://crbug.com/548396.
   Hide(/*destroy=*/true);
@@ -427,7 +428,8 @@
   // TODO(afakhry): Define the correct behavior and revise this in a follow-up
   // CL.
   aura::Window* window = GetTopmostWindowWithBackdrop();
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(root_window_);
   SplitViewController::State state = split_view_controller->state();
   if ((state == SplitViewController::State::kLeftSnapped &&
        window == split_view_controller->left_window()) ||
@@ -442,7 +444,8 @@
 gfx::Rect BackdropController::GetBackdropBounds() {
   DCHECK(!BackdropShouldFullscreen());
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
+  SplitViewController* split_view_controller =
+      SplitViewController::Get(root_window_);
   SplitViewController::State state = split_view_controller->state();
   DCHECK(state == SplitViewController::State::kLeftSnapped ||
          state == SplitViewController::State::kRightSnapped);
diff --git a/ash/wm/workspace/backdrop_controller.h b/ash/wm/workspace/backdrop_controller.h
index 1190fe02..0d0dffd 100644
--- a/ash/wm/workspace/backdrop_controller.h
+++ b/ash/wm/workspace/backdrop_controller.h
@@ -124,6 +124,8 @@
   // Sets the animtion type of |backdrop_window_| to |type|.
   void SetBackdropAnimationType(int type);
 
+  aura::Window* root_window_;
+
   // The backdrop which covers the rest of the screen.
   std::unique_ptr<views::Widget> backdrop_;
 
diff --git a/ash/wm/workspace/workspace_layout_manager_unittest.cc b/ash/wm/workspace/workspace_layout_manager_unittest.cc
index 5736a9e..867858b 100644
--- a/ash/wm/workspace/workspace_layout_manager_unittest.cc
+++ b/ash/wm/workspace/workspace_layout_manager_unittest.cc
@@ -1142,6 +1142,10 @@
   // Return the default container.
   aura::Window* default_container() { return default_container_; }
 
+  SplitViewController* split_view_controller() {
+    return SplitViewController::Get(Shell::GetPrimaryRootWindow());
+  }
+
   // Return the order of windows (top most first) as they are in the default
   // container. If the window is visible it will be a big letter, otherwise a
   // small one. The backdrop will be an X and unknown windows will be shown as
@@ -1814,8 +1818,6 @@
     return window;
   };
 
-  SplitViewController* split_view_controller = SplitViewController::Get();
-
   const gfx::Rect bounds(0, 0, 400, 400);
   std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
   window1->Show();
@@ -1832,7 +1834,7 @@
   // Snap the window to left. Test that the backdrop window is still visible
   // and is the second child in the container. Its bounds should be the same
   // as the snapped window's bounds.
-  split_view_controller->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
   EXPECT_EQ(2U, default_container()->children().size());
   for (auto* child : default_container()->children())
     EXPECT_TRUE(child->IsVisible());
@@ -1843,7 +1845,8 @@
   // visible but is now the third window in the container. Its bounds should
   // still be the same as the container bounds.
   std::unique_ptr<aura::Window> window2(CreateWindow(bounds));
-  split_view_controller->SnapWindow(window2.get(), SplitViewController::RIGHT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
 
   EXPECT_EQ(3U, default_container()->children().size());
   for (auto* child : default_container()->children())
diff --git a/base/test/task_environment.h b/base/test/task_environment.h
index ac45058..945ae64 100644
--- a/base/test/task_environment.h
+++ b/base/test/task_environment.h
@@ -33,7 +33,6 @@
 namespace test {
 
 // This header exposes SingleThreadTaskEnvironment and TaskEnvironment.
-// TODO(gab): Rename this header to task_environment.h and migrate all users.
 //
 // SingleThreadTaskEnvironment enables the following APIs within its scope:
 //  - (Thread|Sequenced)TaskRunnerHandle on the main thread
diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
index 75917d3a..9ba6640 100644
--- a/build/android/pylib/local/device/local_device_instrumentation_test_run.py
+++ b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
@@ -197,11 +197,13 @@
         @trace_event.traced
         def install_helper_internal(d, apk_path=None):
           # pylint: disable=unused-argument
+          logging.info('Start Installing %s', apk.path)
           d.Install(
               apk,
               modules=modules,
               fake_modules=fake_modules,
               permissions=permissions)
+          logging.info('Finished Installing %s', apk.path)
 
         return install_helper_internal
 
@@ -210,7 +212,10 @@
         @trace_event.traced
         def incremental_install_helper_internal(d, apk_path=None):
           # pylint: disable=unused-argument
+          logging.info('Start Incremental Installing %s', apk.path)
           installer.Install(d, json_path, apk=apk, permissions=permissions)
+          logging.info('Finished Incremental Installing %s', apk.path)
+
         return incremental_install_helper_internal
 
       permissions = self._test_instance.test_apk.GetPermissions()
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 763dfeab..6ea1b65 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-8899533185681552544
\ No newline at end of file
+8899502756487089920
\ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index c10ecab2..f17fc2b9 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8899530595868213136
\ No newline at end of file
+8899505638123521760
\ No newline at end of file
diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
index fbc196e..0f0dbf85 100644
--- a/cc/metrics/compositor_frame_reporter.cc
+++ b/cc/metrics/compositor_frame_reporter.cc
@@ -153,17 +153,6 @@
   EndCurrentStage(frame_termination_time_);
 }
 
-void CompositorFrameReporter::OnFinishImplFrame(base::TimeTicks timestamp) {
-  DCHECK(!did_finish_impl_frame_);
-
-  did_finish_impl_frame_ = true;
-  impl_frame_finish_time_ = timestamp;
-}
-
-void CompositorFrameReporter::OnAbortBeginMainFrame() {
-  did_abort_main_frame_ = false;
-}
-
 void CompositorFrameReporter::SetVizBreakdown(
     const viz::FrameTimingDetails& viz_breakdown) {
   DCHECK(current_stage_.viz_breakdown.received_compositor_frame_timestamp
diff --git a/cc/metrics/compositor_frame_reporter.h b/cc/metrics/compositor_frame_reporter.h
index 79cbd089..ad2b53e 100644
--- a/cc/metrics/compositor_frame_reporter.h
+++ b/cc/metrics/compositor_frame_reporter.h
@@ -111,14 +111,6 @@
 
   int StageHistorySizeForTesting() { return stage_history_.size(); }
 
-  void OnFinishImplFrame(base::TimeTicks timestamp);
-  void OnAbortBeginMainFrame();
-  bool did_finish_impl_frame() const { return did_finish_impl_frame_; }
-  bool did_abort_main_frame() const { return did_abort_main_frame_; }
-  base::TimeTicks impl_frame_finish_time() const {
-    return impl_frame_finish_time_;
-  }
-
  protected:
   struct StageData {
     StageType stage_type;
@@ -169,14 +161,6 @@
       FrameTerminationStatus::kUnknown;
 
   const base::flat_set<FrameSequenceTrackerType>* active_trackers_;
-
-  // Indicates if work on Impl frame is finished.
-  bool did_finish_impl_frame_ = false;
-  // Indicates if main frame is aborted after begin.
-  bool did_abort_main_frame_ = false;
-  // The time that work on Impl frame is finished. It's only valid if the
-  // reporter is in a stage other than begin impl frame.
-  base::TimeTicks impl_frame_finish_time_;
 };
 }  // namespace cc
 
diff --git a/cc/metrics/compositor_frame_reporting_controller.cc b/cc/metrics/compositor_frame_reporting_controller.cc
index 760207b..0fea655c 100644
--- a/cc/metrics/compositor_frame_reporting_controller.cc
+++ b/cc/metrics/compositor_frame_reporting_controller.cc
@@ -59,60 +59,43 @@
   std::unique_ptr<CompositorFrameReporter> reporter =
       std::make_unique<CompositorFrameReporter>(&active_trackers_,
                                                 is_single_threaded_);
-  reporter->StartStage(StageType::kBeginImplFrameToSendBeginMainFrame,
-                       begin_time);
+  reporter->StartStage(
+      CompositorFrameReporter::StageType::kBeginImplFrameToSendBeginMainFrame,
+      begin_time);
   reporters_[PipelineStage::kBeginImplFrame] = std::move(reporter);
 }
 
 void CompositorFrameReportingController::WillBeginMainFrame() {
-  if (reporters_[PipelineStage::kBeginImplFrame]) {
-    // We need to use .get() below because operator<< in std::unique_ptr is a
-    // C++20 feature.
-    DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame].get(),
-              reporters_[PipelineStage::kBeginImplFrame].get());
-    reporters_[PipelineStage::kBeginImplFrame]->StartStage(
-        StageType::kSendBeginMainFrameToCommit, Now());
-    AdvanceReporterStage(PipelineStage::kBeginImplFrame,
-                         PipelineStage::kBeginMainFrame);
-  } else {
-    // In this case we have already submitted the ImplFrame, but we received
-    // beginMain frame before next BeginImplFrame (Not reached the ImplFrame
-    // deadline yet). So will start a new reporter at BeginMainFrame.
-    std::unique_ptr<CompositorFrameReporter> reporter =
-        std::make_unique<CompositorFrameReporter>(&active_trackers_,
-                                                  is_single_threaded_);
-    reporter->StartStage(StageType::kSendBeginMainFrameToCommit, Now());
-    reporters_[PipelineStage::kBeginMainFrame] = std::move(reporter);
-  }
+  DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
+  // We need to use .get() below because operator<< in std::unique_ptr is a
+  // C++20 feature.
+  DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame].get(),
+            reporters_[PipelineStage::kBeginImplFrame].get());
+  reporters_[PipelineStage::kBeginImplFrame]->StartStage(
+      CompositorFrameReporter::StageType::kSendBeginMainFrameToCommit, Now());
+  AdvanceReporterStage(PipelineStage::kBeginImplFrame,
+                       PipelineStage::kBeginMainFrame);
 }
 
 void CompositorFrameReportingController::BeginMainFrameAborted() {
   DCHECK(reporters_[PipelineStage::kBeginMainFrame]);
-
-  auto& begin_main_reporter = reporters_[PipelineStage::kBeginMainFrame];
-  begin_main_reporter->OnAbortBeginMainFrame();
-
-  // If the main-frame was aborted (e.g. there was no visible update), then
-  // advance to activate stage if the compositor has already made changes to
-  // the active tree (i.e. if impl-frame has finished).
-  if (begin_main_reporter->did_finish_impl_frame()) {
-    begin_main_reporter->StartStage(
-        StageType::kEndActivateToSubmitCompositorFrame, Now());
-    AdvanceReporterStage(PipelineStage::kBeginMainFrame,
-                         PipelineStage::kActivate);
-  }
+  std::unique_ptr<CompositorFrameReporter> aborted_frame_reporter =
+      std::move(reporters_[PipelineStage::kBeginMainFrame]);
+  aborted_frame_reporter->TerminateFrame(
+      CompositorFrameReporter::FrameTerminationStatus::kMainFrameAborted,
+      Now());
 }
 
 void CompositorFrameReportingController::WillCommit() {
   DCHECK(reporters_[PipelineStage::kBeginMainFrame]);
-  reporters_[PipelineStage::kBeginMainFrame]->StartStage(StageType::kCommit,
-                                                         Now());
+  reporters_[PipelineStage::kBeginMainFrame]->StartStage(
+      CompositorFrameReporter::StageType::kCommit, Now());
 }
 
 void CompositorFrameReportingController::DidCommit() {
   DCHECK(reporters_[PipelineStage::kBeginMainFrame]);
   reporters_[PipelineStage::kBeginMainFrame]->StartStage(
-      StageType::kEndCommitToActivation, Now());
+      CompositorFrameReporter::StageType::kEndCommitToActivation, Now());
   AdvanceReporterStage(PipelineStage::kBeginMainFrame, PipelineStage::kCommit);
 }
 
@@ -126,7 +109,8 @@
   DCHECK(reporters_[PipelineStage::kCommit] || next_activate_has_invalidation_);
   if (!reporters_[PipelineStage::kCommit])
     return;
-  reporters_[PipelineStage::kCommit]->StartStage(StageType::kActivation, Now());
+  reporters_[PipelineStage::kCommit]->StartStage(
+      CompositorFrameReporter::StageType::kActivation, Now());
 }
 
 void CompositorFrameReportingController::DidActivate() {
@@ -135,57 +119,25 @@
   if (!reporters_[PipelineStage::kCommit])
     return;
   reporters_[PipelineStage::kCommit]->StartStage(
-      StageType::kEndActivateToSubmitCompositorFrame, Now());
+      CompositorFrameReporter::StageType::kEndActivateToSubmitCompositorFrame,
+      Now());
   AdvanceReporterStage(PipelineStage::kCommit, PipelineStage::kActivate);
 }
 
 void CompositorFrameReportingController::DidSubmitCompositorFrame(
     uint32_t frame_token) {
-  // If there is no reporter in active stage and there exists a finished
-  // BeginImplFrame reporter (i.e. if impl-frame has finished), then advance it
-  // to the activate stage.
-  if (!reporters_[PipelineStage::kActivate] &&
-      reporters_[PipelineStage::kBeginImplFrame]) {
-    auto& begin_impl_frame = reporters_[PipelineStage::kBeginImplFrame];
-    if (begin_impl_frame->did_finish_impl_frame()) {
-      begin_impl_frame->StartStage(
-          StageType::kEndActivateToSubmitCompositorFrame,
-          begin_impl_frame->impl_frame_finish_time());
-      AdvanceReporterStage(PipelineStage::kBeginImplFrame,
-                           PipelineStage::kActivate);
-    }
-  }
-
   if (!reporters_[PipelineStage::kActivate])
     return;
-
   std::unique_ptr<CompositorFrameReporter> submitted_reporter =
       std::move(reporters_[PipelineStage::kActivate]);
   submitted_reporter->StartStage(
-      StageType::kSubmitCompositorFrameToPresentationCompositorFrame, Now());
+      CompositorFrameReporter::StageType::
+          kSubmitCompositorFrameToPresentationCompositorFrame,
+      Now());
   submitted_compositor_frames_.emplace_back(frame_token,
                                             std::move(submitted_reporter));
 }
 
-void CompositorFrameReportingController::OnFinishImplFrame() {
-  if (reporters_[PipelineStage::kBeginImplFrame]) {
-    reporters_[PipelineStage::kBeginImplFrame]->OnFinishImplFrame(Now());
-  } else if (reporters_[PipelineStage::kBeginMainFrame]) {
-    auto& begin_main_reporter = reporters_[PipelineStage::kBeginMainFrame];
-    begin_main_reporter->OnFinishImplFrame(Now());
-
-    // If the main-frame was aborted (e.g. there was no visible update), then
-    // advance to activate stage if the compositor has already made changes to
-    // the active tree (i.e. if impl-frame has finished).
-    if (begin_main_reporter->did_abort_main_frame()) {
-      begin_main_reporter->StartStage(
-          StageType::kEndActivateToSubmitCompositorFrame, Now());
-      AdvanceReporterStage(PipelineStage::kBeginMainFrame,
-                           PipelineStage::kActivate);
-    }
-  }
-}
-
 void CompositorFrameReportingController::DidPresentCompositorFrame(
     uint32_t frame_token,
     const viz::FrameTimingDetails& details) {
diff --git a/cc/metrics/compositor_frame_reporting_controller.h b/cc/metrics/compositor_frame_reporting_controller.h
index 80254c1d..997d26b 100644
--- a/cc/metrics/compositor_frame_reporting_controller.h
+++ b/cc/metrics/compositor_frame_reporting_controller.h
@@ -57,7 +57,6 @@
   virtual void WillActivate();
   virtual void DidActivate();
   virtual void DidSubmitCompositorFrame(uint32_t frame_token);
-  virtual void OnFinishImplFrame();
   virtual void DidPresentCompositorFrame(
       uint32_t frame_token,
       const viz::FrameTimingDetails& details);
diff --git a/cc/metrics/compositor_timing_history.cc b/cc/metrics/compositor_timing_history.cc
index 930a089..9e7b2ac 100644
--- a/cc/metrics/compositor_timing_history.cc
+++ b/cc/metrics/compositor_timing_history.cc
@@ -721,8 +721,6 @@
 void CompositorTimingHistory::WillFinishImplFrame(bool needs_redraw) {
   if (!needs_redraw)
     SetCompositorDrawingContinuously(false);
-
-  compositor_frame_reporting_controller_->OnFinishImplFrame();
 }
 
 void CompositorTimingHistory::BeginImplFrameNotExpectedSoon() {
diff --git a/chrome/VERSION b/chrome/VERSION
index b8daae0..affdcbb 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=79
 MINOR=0
-BUILD=3943
+BUILD=3944
 PATCH=0
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
index 0e8d1ea3..648eb5e 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
@@ -20,6 +20,7 @@
 <translation id="6615455863669487791">הראה לי</translation>
 <translation id="6803423358608456383">כרטיסיות שנפתחו בחצי מהגובה</translation>
 <translation id="6840760312327750441">כדי לקבץ כרטיסיות, יש ללחוץ לחיצה ארוכה על כרטיסייה. בזמן הלחיצה, יש לגרור אותה אל כרטיסייה אחרת.</translation>
+<translation id="7151209024774799310">הסרת כרטיסיות מהקבוצה</translation>
 <translation id="7559245342362162951">הצגת כרטיסיות הקבוצה ברשת מסך מלא</translation>
 <translation id="8582216581279205169">כרטיסיות שנפתחו בגובה מלא</translation>
 <translation id="9150694013019234766">מעבר בין כרטיסיות בקבוצת הכרטיסיות שבחלק התחתון של המסך</translation>
diff --git a/chrome/android/features/vr/OWNERS b/chrome/android/features/vr/OWNERS
index 75701a9..8ba1799 100644
--- a/chrome/android/features/vr/OWNERS
+++ b/chrome/android/features/vr/OWNERS
@@ -1,3 +1,5 @@
+alcooper@chromium.org
+bialpio@chromium.org
 cjgrant@chromium.org
 mthiesse@chromium.org
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPage.java b/chrome/android/java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPage.java
index 1de6333..7321bf1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPage.java
@@ -84,7 +84,8 @@
             new PropertyModel.ReadableIntPropertyKey();
     private static final int UNKNOWN_NAV_CATEGORY = -1;
 
-    @IntDef({CatalogLoadingState.LOADING, CatalogLoadingState.SUCCESS, CatalogLoadingState.ERROR})
+    @IntDef({CatalogLoadingState.LOADING, CatalogLoadingState.SUCCESS, CatalogLoadingState.ERROR,
+            CatalogLoadingState.LOADING_NET})
     @Retention(RetentionPolicy.SOURCE)
     public @interface CatalogLoadingState {
         int LOADING = 1; // Loading catalog info from disk.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java
index 29c4ec0..3c7660ad 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java
@@ -50,13 +50,13 @@
     public @interface EventsV2 {
         int CHOICE_REQUEST_RECEIVED = 0;
         int CHOICE_SKIPPED = 1;
-        int CHOICE_REQUEST_NO_DATA = 1;
-        int CHOICE_REQUEST_VALID = 2;
-        int CHOICE_REQUEST_METADATA_NULL = 3;
-        int CHOICE_REQUEST_PARSE_FAILED = 4;
-        int PREVIOUS_CHOICE_REQUEST_FAILED = 5;
-        int CHOICE_REQUEST_SUCCESS = 6;
-        int MAX = 7;
+        int CHOICE_REQUEST_NO_DATA = 2;
+        int CHOICE_REQUEST_VALID = 3;
+        int CHOICE_REQUEST_METADATA_NULL = 4;
+        int CHOICE_REQUEST_PARSE_FAILED = 5;
+        int PREVIOUS_CHOICE_REQUEST_FAILED = 6;
+        int CHOICE_REQUEST_SUCCESS = 7;
+        int MAX = 8;
     }
 
     /**
@@ -89,21 +89,25 @@
         setPreviousSearchEngineType(currentSearchEngineType);
     }
 
-    /** Records the search engine type after the user made a choice about which engine to use. */
-    public static void recordSearchEngineTypeAfterChoice() {
-        if (!isSearchEnginePossiblyDifferent()) return;
+    /**
+     * Records the search engine type after the user chooses a different search engine.
+     * @return Whether the search engine was changed.
+     **/
+    public static boolean recordSearchEngineTypeAfterChoice() {
+        if (!isSearchEnginePossiblyDifferent()) return false;
 
         @SearchEngineType
         int previousSearchEngineType = getPreviousSearchEngineType();
         @SearchEngineType
         int currentSearchEngineType = getDefaultSearchEngineType();
-        if (previousSearchEngineType != currentSearchEngineType) {
-            recordEvent(Events.SEARCH_ENGINE_CHANGED);
+        boolean didChangeEngine = previousSearchEngineType != currentSearchEngineType;
+        if (didChangeEngine) {
             RecordHistogram.recordEnumeratedHistogram(
                     "Android.SearchEngineChoice.ChosenSearchEngine", currentSearchEngineType,
                     SearchEngineType.SEARCH_ENGINE_MAX);
         }
         removePreviousSearchEngineType();
+        return didChangeEngine;
     }
 
     /** @return True if the current search engine is possibly different from the previous one. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java
index 7f1e749..9fa495a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java
@@ -92,7 +92,10 @@
             updateSearchEngineChoicePresented();
             SearchEngineChoiceMetrics.recordEvent(SearchEngineChoiceMetrics.Events.SNACKBAR_SHOWN);
         } else {
-            SearchEngineChoiceMetrics.recordSearchEngineTypeAfterChoice();
+            if (SearchEngineChoiceMetrics.recordSearchEngineTypeAfterChoice()) {
+                SearchEngineChoiceMetrics.recordEvent(
+                        SearchEngineChoiceMetrics.Events.SEARCH_ENGINE_CHANGED);
+            }
         }
     }
 
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
index 2d3d4ef..1445385 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
@@ -80,7 +80,7 @@
 <translation id="1521774566618522728">ഇന്ന് സജീവമായിരുന്നു</translation>
 <translation id="1544826120773021464">നിങ്ങളുടെ Google അക്കൗണ്ട് മാനേജ് ചെയ്യാൻ, "അക്കൗണ്ട് മാനേജ് ചെയ്യുക" ബട്ടണിൽ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="1549000191223877751">മറ്റൊരു വിൻഡോയിലേക്ക് നീക്കുക</translation>
-<translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
+<translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റുചെയ്യുക</translation>
 <translation id="1569387923882100876">കണക്റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണം</translation>
 <translation id="1571304935088121812">ഉപയോക്തൃനാമം പകർത്തുക</translation>
 <translation id="1612196535745283361">ഉപകരണങ്ങൾ സ്‌കാൻ ചെയ്യാൻ Chrome-ന് ലൊക്കേഷൻ ആക്‌സസ് ആവശ്യമാണ്. ഈ ഉപകരണത്തിന്റെ <ph name="BEGIN_LINK" />ലൊക്കേഷൻ ആക്‌സസ് ഓഫാണ്<ph name="END_LINK" />.</translation>
@@ -231,7 +231,7 @@
 <translation id="2677748264148917807">ഉപേക്ഷിക്കുക</translation>
 <translation id="2704606927547763573">പകർത്തി</translation>
 <translation id="2707726405694321444">പേജ് പുതുക്കുക</translation>
-<translation id="2709516037105925701">ഓട്ടോഫില്‍</translation>
+<translation id="2709516037105925701">സ്വയമേവ പൂരിപ്പിക്കൽ</translation>
 <translation id="2717722538473713889">ഇമെയിൽ വിലാസങ്ങൾ</translation>
 <translation id="2728754400939377704">സൈറ്റ് അനുസരിച്ച് അടുക്കുക</translation>
 <translation id="2744248271121720757">പെട്ടെന്ന് തിരയാനോ ബന്ധപ്പെട്ട പ്രവർത്തനങ്ങൾ കാണാനോ ഒരു വാക്കിൽ ടാപ്പ് ചെയ്യുക</translation>
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java
index 5ea613e6..629a636 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java
@@ -119,6 +119,10 @@
         assertEquals(0,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         HISTOGRAM_AFTER_CHOICE, SearchEngineType.SEARCH_ENGINE_GOOGLE));
+        assertEquals(0,
+                ShadowRecordHistogram.getHistogramValueCountForTesting(
+                        "Android.SearchEngineChoice.EventsV2",
+                        SearchEngineChoiceMetrics.Events.SEARCH_ENGINE_CHANGED));
     }
 
     @Test
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 12d6468..febf576 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -1642,6 +1642,10 @@
                desc="Text for the button used to stop a dangerous download.">
         Discard
       </message>
+      <message name="IDS_OPEN_DOWNLOAD_NOW"
+               desc="Text shown to open a download now.">
+        Open now
+      </message>
 
       <!-- Download Tab Items -->
       <message name="IDS_DOWNLOAD_LINK_PAUSE"
@@ -10193,6 +10197,17 @@
       Scanning files for sensitive data...
     </message>
 
+    <!-- Deep scanning open now dialog strings -->
+    <message name="IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_TITLE" desc="Title shown in tab modal dialog when the user attempts to open a download while deep scanning is in progress">
+      Scan in progress, open now?
+    </message>
+    <message name="IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_MESSAGE" desc="Message shown in tab modal dialog when the user attempts to open a download while deep scanning is in progress">
+      An unknown file is being scanned for dangerous content.
+    </message>
+    <message name="IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_ACCEPT_BUTTON" desc="The text on the accept button in tab modal dialog when the user attempts to open a download while deep scanning is in progress">
+      Open now
+    </message>
+
     <!-- SMS strings -->
     <message name="IDS_SMS_INFOBAR_TITLE" desc="Title shown when Chrome is waiting for an SMS on the user's behalf">
       Verify your phone number
diff --git a/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_ACCEPT_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_ACCEPT_BUTTON.png.sha1
new file mode 100644
index 0000000..6f679196
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_ACCEPT_BUTTON.png.sha1
@@ -0,0 +1 @@
+7121884ac8e096779608d66e1c407a5186befef9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_MESSAGE.png.sha1 b/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_MESSAGE.png.sha1
new file mode 100644
index 0000000..6f679196
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_MESSAGE.png.sha1
@@ -0,0 +1 @@
+7121884ac8e096779608d66e1c407a5186befef9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_TITLE.png.sha1
new file mode 100644
index 0000000..6f679196
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_TITLE.png.sha1
@@ -0,0 +1 @@
+7121884ac8e096779608d66e1c407a5186befef9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_OPEN_DOWNLOAD_NOW.png.sha1 b/chrome/app/generated_resources_grd/IDS_OPEN_DOWNLOAD_NOW.png.sha1
new file mode 100644
index 0000000..97a0e8b
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_OPEN_DOWNLOAD_NOW.png.sha1
@@ -0,0 +1 @@
+1118e4716c7f536ffc680e1a2f962d2920ae19a8
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb
index 0ad17cb..c725f79 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">ማመሳሰል ለጎራዎ ስለማይገኝ Chromium OS ውሂብዎን ማመሳሰል አይችልም።</translation>
 <translation id="1524282610922162960">የChromium ትር ያጋሩ</translation>
 <translation id="1708666629004767631">አዲስና ደህንነቱ ይበልጥ የተጠበቀ የChromium ስሪት አለ።</translation>
-<translation id="1766096484055239003">አንድ ዝማኔ ለመተግበር አስተዳዳሪዎ Chromiumን ዳግም እንዲያስጀምሩት ይፈልግብዎታል</translation>
 <translation id="1774152462503052664">Chromium ጀርባ ላይ ይሂድ</translation>
 <translation id="1779356040007214683">Chromium ይበልጥ ደህንነቱ የተጠበቀ እንዲሆን ለማድረግ፣ በ<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ውስጥ ያልተጠቀሱ እና እርስዎ ሳያውቋቸው የታከሉ ሊሆኑ የሚችሉ የተወሰኑ ዝርዝሮችን አሰናክለናል።</translation>
 <translation id="1808667845054772817">Chromiumን ዳግም ጫን</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium መልስ አይሰጥም። አሁን ዳግም ይጀምር?</translation>
 <translation id="1966382378801805537">Chromium ነባሪ አሳሹን ማወቅ ወይም ማቀናበር አልቻለም</translation>
 <translation id="2008474315282236005">ይሄ 1 ንጥል ከዚህ መሣሪያ ይሰርዛል። ውሂብዎን በኋላ ላይ ሰርስረው ለማውጣት እንደ <ph name="USER_EMAIL" /> ሆነው ወደ Chromium ይግቡ።</translation>
-<translation id="2117378023188580026">ይህን ዝማኔ ለመተግበር አስተዳዳሪዎ Chromiumን ዳግም እንዲያስጀምሩ ይጠይቀዎታል</translation>
 <translation id="2119636228670142020">&amp;ስለChromium ስርዓተ ክወና</translation>
 <translation id="2241627712206172106">ኮምፒውተር የሚጋሩ ከሆኑ ጓደኛዎች እና ቤተሰብ ተለይተው ሊያስሱ እና Chromiumን በሚፈልጉበት መንገድ ማዋቀር ይችላሉ።</translation>
 <translation id="2347108572062610441">ይህ ቅጥያ Chromiumን ሲጀምሩት የሚታየውን ገጽ ቀይሮታል።</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">ከ Chromium አቋርጠው ሲወጡ ኩኪዎችን እና የጣቢያ ውሂብን ያጽዱ</translation>
 <translation id="7867198900892795913">Chromium ወደ የቅርብ ጊዜው ስሪት ሊዘመን አልቻለም፣ ስለዚህ አዲስ ባህሪያት እና የደህንነት ጥገናዎች እያመለጡዎት ናቸው። Chromiumን ማዘመን አለብዎት።</translation>
 <translation id="7898472181347242998">መሣሪያዎ የተዘመነ ከሆነ ለማየት ወደ <ph name="LINK_BEGIN" />የChromium OS ቅንብሮች ይሂዱ<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">አዲስ ዝማኔ ለChromium ይገኛል እና ልክ ዳግም ሲያስጀምሩት ይተገበራል።</translation>
 <translation id="7937630085815544518">እንደ <ph name="USER_EMAIL_ADDRESS" /> ሆነው ወደ Chromium ገብተዋል። እባክዎ እንደገና ለመግባት ተመሳሳዩን መለያ ይጠቀሙ።</translation>
 <translation id="7975919845073681630">ይሄ ሁለተኛ የChromium ጭነት ነው፣ እና ነባሪ አሳሽዎ ማድረግ አይቻልም።</translation>
 <translation id="7979877361127045932">በChromium ምናሌ ውስጥ ደብቅ</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index ac337e1..8f32cebf 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">‏تعذر على نظام التشغيل Chromium مزامنة البيانات نظرًا لأن المزامنة غير متاحة في نطاقك.</translation>
 <translation id="1524282610922162960">‏مشاركة علامة تبويب Chromium</translation>
 <translation id="1708666629004767631">‏يتوفر إصدار جديد وأكثر أمانًا Chromium.</translation>
-<translation id="1766096484055239003">‏يتطلّب المُشرف إعادة تشغيل Chromium لتطبيق تحديث.</translation>
 <translation id="1774152462503052664">‏دع Chromium يعمل في الخلفية</translation>
 <translation id="1779356040007214683">‏لجعل Chromium أكثر أمانًا، تم إيقاف بعض الإضافات غير المدرجة في <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> والتي ربما تمت إضافتها بدون علمك.</translation>
 <translation id="1808667845054772817">‏إعادة تثبيت Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">‏لا يستجيب Chromium. هل تريد إعادة التشغيل الآن؟</translation>
 <translation id="1966382378801805537">‏يتعذَّر على Chromium تحديد المتصفح التلقائي أو تعيينه</translation>
 <translation id="2008474315282236005">‏سيعمل هذا على حذف عنصر واحد من هذا الجهاز. لاسترداد بياناتك لاحقًا، سجّل الدخول إلى Chromium كـ <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">‏يطلب المشرف إعادة تشغيل Chromium لتطبيق هذا التحديث.</translation>
 <translation id="2119636228670142020">‏حول ن&amp;ظام التشغيل Chromium</translation>
 <translation id="2241627712206172106">‏إذا كنت تشارك الكمبيوتر مع أصدقائك وعائلتك، فبإمكانهم التصفح على حدة وإعداد Chromium على النحو الذي يريدونه.</translation>
 <translation id="2347108572062610441">‏غيّرت هذه الإضافة الصفحة التي تظهر عند بدء Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">‏محو بيانات الموقع الإلكتروني وملفات تعريف الارتباط عند الخروج من Chromium</translation>
 <translation id="7867198900892795913">‏تعذّر تحديث Chromium إلى آخر إصدار، لذلك قد تفوتك الميزات الجديدة وعمليات إصلاح الأمان.</translation>
 <translation id="7898472181347242998">‏للتأكّد من أن جهازك يستخدم أحدث إصدار من نظام التشغيل، يُرجى الانتقال إلى <ph name="LINK_BEGIN" />إعدادات نظام التشغيل Chromium<ph name="LINK_END" />.</translation>
-<translation id="7901117350626490574">‏يتوفر تحديث جديد لبرنامج Chromium وسيتم تطبيقه عند إعادة التشغيل.</translation>
 <translation id="7937630085815544518">‏تم تسجيل دخولك إلى Chromium باعتبارك <ph name="USER_EMAIL_ADDRESS" />. يُرجى استخدام الحساب نفسه لتسجيل الدخول مرة أخرى.</translation>
 <translation id="7975919845073681630">‏هذا تثبيت ثانوي من Chromium، ولا يمكن جعله متصفحك التلقائي.</translation>
 <translation id="7979877361127045932">‏الإخفاء في قائمة Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index 1e64898..a79a47f2 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS не можа да синхронизира данните ви, защото тази функция не е налице за домейна ви.</translation>
 <translation id="1524282610922162960">Споделяне на раздел в Chromium</translation>
 <translation id="1708666629004767631">Налице е нова, по-сигурна версия на Chromium.</translation>
-<translation id="1766096484055239003">Администраторът ви изисква да рестартирате Chromium, за да се приложи актуализация</translation>
 <translation id="1774152462503052664">Нека Chromium да се изпълнява на заден план</translation>
 <translation id="1779356040007214683">За да направим Chromium по-безопасен, деактивирахме някои разширения, които не са посочени в <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> и може да са били добавени без ваше знание.</translation>
 <translation id="1808667845054772817">Повторно инсталиране на Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium блокира. Да се стартира ли отново сега?</translation>
 <translation id="1966382378801805537">Chromium не може да определи или зададе браузъра по подразбиране</translation>
 <translation id="2008474315282236005">1 елемент ще се изтрие от това устройство. За да извлечете данните си по-късно, влезте в Chromium като <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Администраторът ви моли да рестартирате Chromium, за да се приложи тази актуализация</translation>
 <translation id="2119636228670142020">Всичко за &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Ако споделяте компютър, близките и приятелите ви могат да сърфират отделно и да настроят Chromium точно така, както искат.</translation>
 <translation id="2347108572062610441">Това разширение промени страницата, която се показва при стартиране на Chromium.</translation>
@@ -183,7 +181,6 @@
 <translation id="7827169012280634081">Изчистване на „бисквитките“ и данните за сайтовете при излизане от Chromium</translation>
 <translation id="7867198900892795913">Chromium не можа да се актуализира до най-новата версия. Това означава, че пропускате нови функции и корекции за сигурност.</translation>
 <translation id="7898472181347242998">За да разберете дали устройството ви е актуално, отворете <ph name="LINK_BEGIN" />настройките на Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Налице е актуализация на Chromium, която ще бъде приложена веднага щом рестартирате.</translation>
 <translation id="7937630085815544518">Бяхте влезли в Chromium като <ph name="USER_EMAIL_ADDRESS" />. Моля, използвайте същия профил, за да влезете отново.</translation>
 <translation id="7975919845073681630">Тази инсталация на Chromium е алтернативна и не може да се зададе като браузър по подразбиране.</translation>
 <translation id="7979877361127045932">Скриване в менюто на Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index e981adf..6ae09ec7 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">আপনার ডোমেনে সিঙ্ক উপলভ্য না থাকার কারণে Chromium OS আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation>
 <translation id="1524282610922162960">একটি Chromium ট্যাব শেয়ার করুন</translation>
 <translation id="1708666629004767631">Chromium-এর একটি নতুন, নিরাপদ ভার্সন উপলভ্য আছে৷</translation>
-<translation id="1766096484055239003">একটি আপডেট প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর চান যে আপনি Chromium আবার চালু করুন</translation>
 <translation id="1774152462503052664">Chromium-কে ব্যাকগ্রাউন্ডে চলতে দিন</translation>
 <translation id="1779356040007214683">Chromium কে আরও নিরাপদ করতে, আমরা কিছু এক্সটেনশান অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
 <translation id="1808667845054772817">Chromium আবার ইন্সটল করুন</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium সাড়া দিচ্ছে না৷ আবার শুরু করবেন?</translation>
 <translation id="1966382378801805537">Chromium ডিফল্ট ব্রাউজার নির্ধারণ বা সেট করতে পারছে না</translation>
 <translation id="2008474315282236005">এটি এই ডিভাইস থেকে ১টি আইটেম মুছে দেবে। আপনার ডেটা পরে পুনরুদ্ধার করার জন্য, Chromium-এ <ph name="USER_EMAIL" /> হিসেবে সাইন-ইন করুন।</translation>
-<translation id="2117378023188580026">এই আপডেটটি প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর চান যে আপনি Chromium আবার চালু করুন</translation>
 <translation id="2119636228670142020">&amp;Chromium OS সম্পর্কে</translation>
 <translation id="2241627712206172106">যদি আপনি একটি কম্পিউটার শেয়ার করেন, তাহলে বন্ধু ও পরিবারের লোকজন পৃথকভাবে ব্রাউজ করতে পারবেন এবং তাদের ইচ্ছা অনুযায়ী Chromium-এর সেট-আপ করতে পারবেন৷</translation>
 <translation id="2347108572062610441">আপনি Chromium চালু করলে কোন পৃষ্ঠাটি দেখানো হবে তা এই এক্সটেনশনটি পরিবর্তন করেছে।</translation>
@@ -188,7 +186,6 @@
 <translation id="7827169012280634081">Chromium বন্ধ করার সময় কুকি ও সাইটের ডেটা মুছে দিন</translation>
 <translation id="7867198900892795913">Chromium লেটেস্ট ভার্সনে আপডেট করা যাচ্ছে না, তাই আপনি নতুন বৈশিষ্ট্য এবং সুরক্ষা সমাধানগুলি পাচ্ছেন না।</translation>
 <translation id="7898472181347242998">আপনার ডিভাইস আপ-টু-ডেট আছে কিনা তা দেখতে <ph name="LINK_BEGIN" />Chromium OS সেটিংস<ph name="LINK_END" /> বিকল্পে যান</translation>
-<translation id="7901117350626490574">Chromium-এর একটি নতুন আপডেট উপলভ্য আছে এবং আপনি আবার চালু করলে সেটি প্রয়োগ করা হবে।</translation>
 <translation id="7937630085815544518">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে Chromium-এ প্রবেশ করেছেন৷ আবার সাইন-ইন করতে একই অ্যাকাউন্ট ব্যবহার করুন৷</translation>
 <translation id="7975919845073681630">এটা Chromium এর সেকেন্ডারি ইনস্টলেশন এবং একে আপনার ডিফল্ট ব্রাউজার করা যাবে না।</translation>
 <translation id="7979877361127045932">Chromium মেনুর মধ্যে লুকান</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 46658014..65a6b089 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS no ha pogut sincronitzar les vostres dades perquè la sincronització no està disponible per al vostre domini.</translation>
 <translation id="1524282610922162960">Comparteix una pestanya de Chromium</translation>
 <translation id="1708666629004767631">Hi ha disponible una versió nova més segura de Chromium.</translation>
-<translation id="1766096484055239003">L'administrador necessita que reiniciïs Chromium per aplicar una actualització</translation>
 <translation id="1774152462503052664">Permet que Chromium s'executi en segon pla</translation>
 <translation id="1779356040007214683">Perquè Chromium sigui més segur, hem desactivat algunes de les extensions que no apareixen a <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i que és possible que s'hagin afegit sense que ho sapigueu.</translation>
 <translation id="1808667845054772817">Torna a instal·lar Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium no respon. Voleu tornar-lo a iniciar ara?</translation>
 <translation id="1966382378801805537">Chromium no pot determinar ni definir el navegador predeterminat</translation>
 <translation id="2008474315282236005">Amb aquesta acció, se suprimirà 1 element d'aquest dispositiu. Per recuperar les teves dades més endavant, inicia la sessió a Chromium com a <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">L'administrador et demana que reiniciïs Chromium per aplicar aquesta actualització</translation>
 <translation id="2119636228670142020">Quant a &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Si compartiu un ordinador, els amics i els familiars poden navegar de manera independent i configurar Chromium com vulguin.</translation>
 <translation id="2347108572062610441">Aquesta extensió ha canviat la pàgina que es mostra quan inicieu Chromium.</translation>
@@ -189,7 +187,6 @@
 <translation id="7827169012280634081">Esborra les galetes i les dades del lloc web en sortir de Chromium</translation>
 <translation id="7867198900892795913">Chromium no s'ha pogut actualitzar a la darrera versió, així que no pots gaudir de les noves funcions ni de les correccions de seguretat.</translation>
 <translation id="7898472181347242998">Per veure si el dispositiu està actualitzat, ves a la <ph name="LINK_BEGIN" />configuració de Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Hi ha una actualització de Chromium disponible i s'aplicarà tan aviat com el tornis a iniciar.</translation>
 <translation id="7937630085815544518">Teníeu la sessió iniciada a Chromium com a <ph name="USER_EMAIL_ADDRESS" />. Utilitzeu el mateix compte per tornar a iniciar-hi la sessió.</translation>
 <translation id="7975919845073681630">Aquesta és una instal·lació secundària de Chromium i no pot definir-se com a navegador predeterminat.</translation>
 <translation id="7979877361127045932">Amaga al menú de Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 71ad5fc..93dbeae 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium OS nemůže synchronizovat data, protože Synchronizace ve vaší doméně není k dispozici.</translation>
 <translation id="1524282610922162960">Sdílet kartu prohlížeče Chromium</translation>
 <translation id="1708666629004767631">K dispozici je nová, bezpečnější verze prohlížeče Chromium.</translation>
-<translation id="1766096484055239003">Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chromium restartovali</translation>
 <translation id="1774152462503052664">Nechat prohlížeč Chromium spuštěný na pozadí</translation>
 <translation id="1779356040007214683">Aby bylo Chromium bezpečnější, deaktivovali jsme některá rozšíření, která nejsou uvedena na webu <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohla být přidána bez vašeho vědomí.</translation>
 <translation id="1808667845054772817">Přeinstalovat Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Prohlížeč Chromium neodpovídá. Chcete jej znovu načíst?</translation>
 <translation id="1966382378801805537">Chromium nemůže určit ani nastavit výchozí prohlížeč</translation>
 <translation id="2008474315282236005">Z tohoto zařízení bude smazána 1 položka. Budete-li chtít své údaje později načíst, přihlaste se do prohlížeče Chromium jako <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Váš administrátor vás žádá, abyste kvůli použití této aktualizace Chromium restartovali</translation>
 <translation id="2119636228670142020">O systému &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Pokud počítač sdílíte s kamarády a členy rodiny, každý může web procházet samostatně a nastavit si Chromium podle svých požadavků.</translation>
 <translation id="2347108572062610441">Toto rozšíření změnilo stránku, která se zobrazí při spuštění prohlížeče Chromium.</translation>
@@ -191,7 +189,6 @@
 <translation id="7827169012280634081">Při ukončení prohlížeče Chromium vymazat soubory cookie a data webů</translation>
 <translation id="7867198900892795913">Chromium nebylo možné aktualizovat na nejnovější verzi. Nemáte proto k dispozici nové funkce a opravy zabezpečení.</translation>
 <translation id="7898472181347242998">Chcete-li se podívat, zda je zařízení aktualizované, přejděte do <ph name="LINK_BEGIN" />Nastavení operačního systému Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Je k dispozici nová aktualizace prohlížeče Chromium, která bude použita po restartování.</translation>
 <translation id="7937630085815544518">K prohlížeči Chromium jste byli přihlášeni s účtem <ph name="USER_EMAIL_ADDRESS" />. Přihlaste se prosím znovu pomocí stejného účtu.</translation>
 <translation id="7975919845073681630">Toto je druhá instalace prohlížeče Chromium. Tuto instalaci nelze nastavit jako výchozí prohlížeč.</translation>
 <translation id="7979877361127045932">Skrýt v nabídce Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index 57e4d18..beefe40 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS kunne ikke synkronisere dine data, fordi synkronisering ikke er tilgængeligt på dit domæne.</translation>
 <translation id="1524282610922162960">Del en Chromium-fane</translation>
 <translation id="1708666629004767631">Der findes en ny og mere sikker version af Chromium.</translation>
-<translation id="1766096484055239003">Din administrator kræver, at du genstarter Chromium for at anvende en opdatering</translation>
 <translation id="1774152462503052664">Lad Chromium køre i baggrunden</translation>
 <translation id="1779356040007214683">For at gøre Chromium sikrere har vi slået nogle udvidelser fra, som ikke er anført i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> og muligvis er blevet tilføjet, uden at du vidste det.</translation>
 <translation id="1808667845054772817">Geninstaller Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium svarer ikke. Vil du genstarte nu?</translation>
 <translation id="1966382378801805537">Chromium kan ikke fastlægge eller angive standardbrowseren</translation>
 <translation id="2008474315282236005">Denne handling sletter ét element på denne enhed. Hvis du senere vil hente dine data igen, skal du logge ind på Chromium som <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Din administrator anmoder om, at du genstarter Chromium for at anvende denne opdatering</translation>
 <translation id="2119636228670142020">Om &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Hvis du deler en computer, kan venner og familie browse individuelt og konfigurere Chromium, som de ønsker hver især.</translation>
 <translation id="2347108572062610441">Denne udvidelse har ændret din startside i Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Ryd cookies og websitedata, når du afslutter Chromium</translation>
 <translation id="7867198900892795913">Chromium kunne ikke opdatere til den nyeste version, så du går glip af nye funktioner og sikkerhedsrettelser.</translation>
 <translation id="7898472181347242998">Du kan se, om en enhed er opdateret, ved at gå til <ph name="LINK_BEGIN" />indstillingerne for Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Der er en tilgængelig Chromium-opdatering, som anvendes, så snart du genstarter.</translation>
 <translation id="7937630085815544518">Du loggede ind på Chromium som <ph name="USER_EMAIL_ADDRESS" />. Brug den samme konto til at logge ind igen.</translation>
 <translation id="7975919845073681630">Dette er en sekundær installation af Chromium, og den kan ikke gøres til din standardbrowser.</translation>
 <translation id="7979877361127045932">Skjul i Chromium-menuen</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index 3c26e07e..af27cbd 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS konnte Ihre Daten nicht synchronisieren, da die Synchronisierung für Ihre Domain nicht verfügbar ist.</translation>
 <translation id="1524282610922162960">Chromium-Tab freigeben</translation>
 <translation id="1708666629004767631">Es gibt eine neue, sicherere Version von Chromium.</translation>
-<translation id="1766096484055239003">Laut Ihrem Administrator müssen Sie Chromium neu starten, um ein Update durchzuführen</translation>
 <translation id="1774152462503052664">Chromium im Hintergrund ausführen</translation>
 <translation id="1779356040007214683">Um Chromium sicherer zu machen, haben wir einige Erweiterungen deaktiviert, die nicht im <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> aufgeführt sind und möglicherweise ohne Ihr Wissen hinzugefügt wurden.</translation>
 <translation id="1808667845054772817">Chromium neu installieren</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium reagiert nicht. Jetzt neu starten?</translation>
 <translation id="1966382378801805537">Chromium kann den Standardbrowser nicht bestimmen oder festlegen</translation>
 <translation id="2008474315282236005">Dadurch wird 1 Element von diesem Gerät gelöscht. Wenn Sie Ihre Daten später abrufen möchten, melden Sie sich als <ph name="USER_EMAIL" /> in Chromium an.</translation>
-<translation id="2117378023188580026">Laut Ihrem Administrator sollten Sie Chromium neu starten, um dieses Update durchzuführen</translation>
 <translation id="2119636228670142020">Über &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Bei gemeinsam genutzten Computern können die verschiedenen Personen separat surfen und Chromium jeweils nach ihren Wünschen einrichten.</translation>
 <translation id="2347108572062610441">Die beim Start von Chromium angezeigte Seite wurde durch diese Erweiterung geändert.</translation>
@@ -189,7 +187,6 @@
 <translation id="7827169012280634081">Cookies und Websitedaten beim Beenden von Chromium löschen</translation>
 <translation id="7867198900892795913">Chromium konnte nicht auf die neueste Version aktualisiert werden. In Ihrer Version fehlen daher einige neue Funktionen und Sicherheitspatches.</translation>
 <translation id="7898472181347242998">Sie können anhand der <ph name="LINK_BEGIN" />Einstellungen von Chromium OS<ph name="LINK_END" /> sehen, ob Ihr Gerät auf dem neuesten Stand ist</translation>
-<translation id="7901117350626490574">Ein neues Update für Chromium ist verfügbar und wird installiert, sobald Sie den Browser neu starten.</translation>
 <translation id="7937630085815544518">Sie waren in Chromium als <ph name="USER_EMAIL_ADDRESS" /> angemeldet. Melden Sie sich bitte wieder mit demselben Konto an.</translation>
 <translation id="7975919845073681630">Dies ist eine Zweitinstallation, daher kann Chromium nicht als Standardbrowser festgelegt werden.</translation>
 <translation id="7979877361127045932">Im Chromium-Menü ausblenden</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index e8cc8ffe..87ce5b2 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Το Chromium OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας, επειδή ο συγχρονισμός δεν είναι διαθέσιμος για τον τομέα σας.</translation>
 <translation id="1524282610922162960">Μοιραστείτε μια καρτέλα του Chromium</translation>
 <translation id="1708666629004767631">Υπάρχει μια νέα, ασφαλέστερη έκδοση του Chromium.</translation>
-<translation id="1766096484055239003">Ο διαχειριστής σας απαιτεί να επανεκκινήσετε το Chromium, προκειμένου να εφαρμοστεί μια ενημέρωση</translation>
 <translation id="1774152462503052664">Να επιτρέπεται στο Chromium να εκτελείται στο παρασκήνιο</translation>
 <translation id="1779356040007214683">Για να κάνουμε το Chromium πιο ασφαλές, απενεργοποιήσαμε ορισμένες επεκτάσεις που δεν αναφέρονται στο <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> και ενδέχεται να έχουν προστεθεί εν αγνοία σας.</translation>
 <translation id="1808667845054772817">Επανεγκατάσταση του Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Το Chromium δεν ανταποκρίνεται. Να γίνει επανεκκίνηση τώρα;</translation>
 <translation id="1966382378801805537">Το Chromium δεν μπορεί να καθορίσει ή να ορίσει το προεπιλεγμένο πρόγραμμα περιήγησης</translation>
 <translation id="2008474315282236005">Με αυτήν την ενέργεια θα διαγραφεί 1 στοιχείο από αυτήν τη συσκευή. Για να ανακτήσετε τα δεδομένα σας αργότερα, συνδεθείτε στο Chromium ως <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Ο διαχειριστής σας ζητάει να επανεκκινήσετε το Chromium, προκειμένου να εφαρμοστεί αυτή η ενημέρωση</translation>
 <translation id="2119636228670142020">Σχετικά με το &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Αν χρησιμοποιείτε έναν υπολογιστή από κοινού με άλλα άτομα, οι φίλοι και τα μέλη της οικογένειάς σας μπορούν να περιηγούνται αυτόνομα και να ρυθμίζουν το Chromium ακριβώς όπως θέλουν.</translation>
 <translation id="2347108572062610441">Αυτή η επέκταση άλλαξε τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Διαγραφή cookie και δεδομένων ιστοτόπου κατά τον τερματισμό του Chromium.</translation>
 <translation id="7867198900892795913">Δεν ήταν δυνατή η ενημέρωση του Chromium στην τελευταία έκδοση και έτσι δεν θα έχετε πρόσβαση στις νέες λειτουργίες και στις επιδιορθώσεις ασφαλείας.</translation>
 <translation id="7898472181347242998">Για να διαπιστώσετε εάν η συσκευή σας είναι ενημερωμένη, μεταβείτε στις <ph name="LINK_BEGIN" />Ρυθμίσεις του Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Υπάρχει νέα διαθέσιμη ενημέρωση για το Chromium και θα εφαρμοστεί μόλις κάνετε επανεκκίνηση.</translation>
 <translation id="7937630085815544518">Συνδεθήκατε στο Chromium ως <ph name="USER_EMAIL_ADDRESS" />. Χρησιμοποιήστε τον ίδιο λογαριασμό για να συνδεθείτε ξανά.</translation>
 <translation id="7975919845073681630">Αυτή είναι μια δευτερεύουσα εγκατάσταση του Chromium και δεν μπορεί να γίνει το προεπιλεγμένο πρόγραμμα περιήγησης.</translation>
 <translation id="7979877361127045932">Απόκρυψη από το μενού του Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index 850f0d3..e53b1ab 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium OS could not sync your data because Sync is not available for your domain.</translation>
 <translation id="1524282610922162960">Share a Chromium tab</translation>
 <translation id="1708666629004767631">There's a new, safer version of Chromium available.</translation>
-<translation id="1766096484055239003">Your administrator requires that you relaunch Chromium to apply an update</translation>
 <translation id="1774152462503052664">Let Chromium run in the background</translation>
 <translation id="1779356040007214683">To make Chromium safer, we disabled some extensions that aren't listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> and may have been added without your knowledge.</translation>
 <translation id="1808667845054772817">Reinstall Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium is unresponsive. Relaunch now?</translation>
 <translation id="1966382378801805537">Chromium cannot determine or set the default browser</translation>
 <translation id="2008474315282236005">This will delete 1 item from this device. To retrieve your data later, sign in to Chromium as <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Your administrator asks that you relaunch Chromium to apply this update</translation>
 <translation id="2119636228670142020">About &amp;Chromium OS</translation>
 <translation id="2241627712206172106">If you share a computer, friends and family can browse separately and set up Chromium just the way they want.</translation>
 <translation id="2347108572062610441">This extension has changed the page that is shown when you start Chromium.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Clear cookies and site data when you quit Chromium</translation>
 <translation id="7867198900892795913">Chromium couldn't update to the latest version, so you're missing out on new features and security fixes.</translation>
 <translation id="7898472181347242998">To see if your device is up to date, go to <ph name="LINK_BEGIN" />Chromium OS Settings<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">A new update for Chromium is available and will be applied as soon as you relaunch.</translation>
 <translation id="7937630085815544518">You were signed in to Chromium as <ph name="USER_EMAIL_ADDRESS" />. Please use the same account to sign in again.</translation>
 <translation id="7975919845073681630">This is a secondary installation of Chromium, and cannot be made your default browser.</translation>
 <translation id="7979877361127045932">Hide in Chromium menu</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index a1c609a..0e3a1a83 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">El Sistema operativo Chromium no pudo sincronizar los datos porque la sincronización no está disponible para el dominio.</translation>
 <translation id="1524282610922162960">Compartir una pestaña de Chromium</translation>
 <translation id="1708666629004767631">Hay una versión nueva y más segura de Chromium disponible.</translation>
-<translation id="1766096484055239003">Tu administrador necesita que reinicies Chromium para aplicar esta actualización</translation>
 <translation id="1774152462503052664">Permitir que Chromium se ejecute en segundo plano</translation>
 <translation id="1779356040007214683">Para que Chromium sea más seguro, inhabilitamos algunas extensiones que no figuran en <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> y que posiblemente se hayan agregado sin tu conocimiento.</translation>
 <translation id="1808667845054772817">Reinstalar Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium no responde. ¿Quieres reiniciarlo ahora?</translation>
 <translation id="1966382378801805537">Chromium no puede determinar ni establecer el navegador predeterminado</translation>
 <translation id="2008474315282236005">Esta acción borrará 1 elemento de este dispositivo. Si más adelante deseas recuperar los datos, accede a tu cuenta en Chromium como <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Tu administrador te solicita que reinicies Chromium para aplicar esta actualización</translation>
 <translation id="2119636228670142020">Acerca de &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Si compartes una computadora, tus amigos y familiares pueden navegar de forma independiente y configurar Chromium según los gustos individuales.</translation>
 <translation id="2347108572062610441">Esta extensión cambió la página que se muestra al iniciar Chromium.</translation>
@@ -184,7 +182,6 @@
 <translation id="7827169012280634081">Borrar las cookies y los datos de los sitios cuando sales de Chromium</translation>
 <translation id="7867198900892795913">Chromium no se pudo actualizar a la última versión, por lo que te estás perdiendo las nuevas funciones y correcciones de seguridad.</translation>
 <translation id="7898472181347242998">Para saber si tu dispositivo está actualizado, ve a la <ph name="LINK_BEGIN" />configuración del Sistema operativo Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Hay una nueva actualización disponible para Chromium que se aplicará cuando lo reinicies.</translation>
 <translation id="7937630085815544518">Accediste a Chromium con <ph name="USER_EMAIL_ADDRESS" />. Usa la misma cuenta para volver a acceder.</translation>
 <translation id="7975919845073681630">Como esta es una instalación secundaria de Chromium, no puede establecerse como tu navegador predeterminado.</translation>
 <translation id="7979877361127045932">Ocultar en el menú de Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index 0580372..55c650e1 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium OS no ha podido sincronizar los datos porque la función de sincronización no está disponible para tu dominio.</translation>
 <translation id="1524282610922162960">Compartir una pestaña de Chromium</translation>
 <translation id="1708666629004767631">Hay disponible una nueva versión más segura de Chromium.</translation>
-<translation id="1766096484055239003">Tu administrador pide que reinicies Chromium para aplicar una actualización</translation>
 <translation id="1774152462503052664">Permitir que Chromium se ejecute en segundo plano</translation>
 <translation id="1779356040007214683">Para aumentar la seguridad de Chromium, hemos inhabilitado algunas extensiones que no figuran en <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> y que se podrían haber añadido sin tu conocimiento.</translation>
 <translation id="1808667845054772817">Reinstalar Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium no responde. ¿Quieres reiniciarlo ahora?</translation>
 <translation id="1966382378801805537">Chromium no puede determinar ni establecer el navegador predeterminado</translation>
 <translation id="2008474315282236005">Se eliminará un elemento de este dispositivo. Para recuperar tus datos en otro momento, inicia sesión en Chromium como <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Tu administrador pide que reinicies Chromium para aplicar esta actualización</translation>
 <translation id="2119636228670142020">Información de &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Si compartes un ordenador, tus amigos y familiares pueden navegar de forma independiente y configurar Chromium a su gusto.</translation>
 <translation id="2347108572062610441">Esta extensión ha cambiado la página que se muestra al iniciar Chromium.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Borrar las cookies y los datos de sitios web al salir de Chromium</translation>
 <translation id="7867198900892795913">No se ha podido actualizar Chromium a la versión más reciente, por lo que no disfrutas de las últimas funciones y correcciones de seguridad.</translation>
 <translation id="7898472181347242998">Para comprobar si tu dispositivo está actualizado, ve a la <ph name="LINK_BEGIN" />configuración de Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Hay una nueva actualización de Chromium disponible que se aplicará cuando reinicies el dispositivo.</translation>
 <translation id="7937630085815544518">Habías iniciado sesión en Chromium como <ph name="USER_EMAIL_ADDRESS" />. Utiliza la misma cuenta para volver a iniciar sesión.</translation>
 <translation id="7975919845073681630">Esta instalación de Chromium es secundaria, por lo que no se puede establecer como navegador predeterminado.</translation>
 <translation id="7979877361127045932">Ocultar en el menú de Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index d34f2a03b..8aa0b6d 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS ei saanud teie andmeid sünkroonida, sest teie domeenil pole sünkroonimine saadaval.</translation>
 <translation id="1524282610922162960">Chromiumi vahekaardi jagamine</translation>
 <translation id="1708666629004767631">Saadaval on Chromiumi uus, turvalisem versioon.</translation>
-<translation id="1766096484055239003">Administraator nõuab, et käivitaksite Chromiumi värskenduse rakendamiseks uuesti</translation>
 <translation id="1774152462503052664">Luba Chromiumil taustal töötada</translation>
 <translation id="1779356040007214683">Chromiumi turvalisemaks muutmiseks keelasime mõned laiendused, mida ei leidu veebipoes <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ja mille lisamisest te ei pruugi teadlik olla.</translation>
 <translation id="1808667845054772817">Installi Chromium uuesti</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium ei reageeri. Kas soovite kohe taaskäivitada?</translation>
 <translation id="1966382378801805537">Chromium ei saa määrata ega seadistada vaikebrauserit</translation>
 <translation id="2008474315282236005">See kustutab seadmest ühe üksuse. Hiljem oma andmete toomiseks logige Chromiumi sisse kasutajana <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Administraator palub teil Chromiumi selle värskenduse rakendamiseks uuesti käivitada</translation>
 <translation id="2119636228670142020">Teave &amp;Chromium OS-i kohta</translation>
 <translation id="2241627712206172106">Kui jagate arvutit, saavad sõbrad ja pereliikmed eraldi sirvida ning seadistada Chromiumi just nii, nagu neile meeldib.</translation>
 <translation id="2347108572062610441">See laiendus muutis seda, milline leht kuvatakse Chromiumi käivitamisel.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Kustuta Chromiumi sulgemisel küpsisefailide ja saitide andmed</translation>
 <translation id="7867198900892795913">Chromiumi ei saanud uusimale versioonile värskendada, mistõttu jääte ilma uutest funktsioonidest ja turvaparandustest.</translation>
 <translation id="7898472181347242998">Kui soovite teada saada, kas teie seade on ajakohane, avage <ph name="LINK_BEGIN" />Chromium OS-i seaded<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Saadaval on uus Chromiumi värskendus, mis rakendatakse taaskäivitamisel.</translation>
 <translation id="7937630085815544518">Olite Chromiumisse sisse logitud kasutajana <ph name="USER_EMAIL_ADDRESS" />. Kasutage uuesti sisselogimiseks sama kontot.</translation>
 <translation id="7975919845073681630">See on Chromiumi sekundaarne install ja seda ei saa määrata vaikebrauseriks.</translation>
 <translation id="7979877361127045932">Chromiumi menüüs peitmine</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index 870ec42..89950421 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">‏سیستم‌عامل Chromium قادر به همگام‌سازی داده‌های شما نبود زیرا همگام‌سازی برای دامنه شما قابل دسترسی نیست.</translation>
 <translation id="1524282610922162960">‏هم‌رسانی برگه Chromium</translation>
 <translation id="1708666629004767631">‏نسخه جدید و امن‌تری از Chromium موجود است.</translation>
-<translation id="1766096484055239003">‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید</translation>
 <translation id="1774152462503052664">‏اجازه به Chromium برای اجرا در پس‌زمینه</translation>
 <translation id="1779356040007214683">‏برای ایمن‌تر کردن Chromium، برخی از افزونه‌هایی را که در <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> فهرست شده‌اند و ممکن است بدون اطلاع شما اضافه شده باشند، غیرفعال کردیم.</translation>
 <translation id="1808667845054772817">‏نصب مجدد Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">‏Chromium پاسخ نمی‌دهد. مجدداً راه‌اندازی شود؟</translation>
 <translation id="1966382378801805537">‏Chromium نمی‌تواند مرورگر پیش‌فرض را تعیین یا تنظیم کند</translation>
 <translation id="2008474315282236005">‏این کار یک مورد را از این دستگاه حذف می‌کند. برای بازیابی داده‌هایتان در فرصتی دیگر، با <ph name="USER_EMAIL" /> به سیستم Chromium وارد شوید.</translation>
-<translation id="2117378023188580026">‏سرپرست سیستم از شما می‌خواهد برای اعمال این به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید</translation>
 <translation id="2119636228670142020">‏درباره &amp;سیستم عامل Chromium </translation>
 <translation id="2241627712206172106">‏اگر رایانه‌ای را به صورت مشترک استفاده می‌کنید، دوستان و خانواده می‌توانند به صورت جداگانه مرور کنند و Chromium را به صورتی که مایلند تنظیم کنند.</translation>
 <translation id="2347108572062610441">‏این افزونه، صفحه‌ای را تغییر داده است که هنگام راه‌اندازی Chromium نشان داده می‌شود.</translation>
@@ -188,7 +186,6 @@
 <translation id="7827169012280634081">‏هنگام خروج از Chromium، کوکی‌ها و داده‌های سایت را پاک کنید</translation>
 <translation id="7867198900892795913">‏Chromium به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید و رفع اشکال‌های امنیتی را ندارید.</translation>
 <translation id="7898472181347242998">‏برای اینکه ببینید دستگاهتان به‌روز است یا نه، به <ph name="LINK_BEGIN" />تنظیمات سیستم عامل Chromium<ph name="LINK_END" /> بروید</translation>
-<translation id="7901117350626490574">‏به‌روزرسانی جدیدی برای Chromium دردسترس است و به‌محض راه‌اندازی مجدد اعمال خواهد شد.</translation>
 <translation id="7937630085815544518">‏شما بعنوان <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم Chromium شده‌اید. لطفاً برای ورود به سیستم مجدد از همان حساب استفاده کنید.</translation>
 <translation id="7975919845073681630">‏این نصب ثانویه Chromium است و نمی‌تواند مرورگر پیش‌فرضتان شود.</translation>
 <translation id="7979877361127045932">‏پنهان در منوی Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index 394b8e6..994b4654 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium-käyttöjärjestelmä ei voi synkronoida tietoja, koska synkronointi ei ole käytettävissä verkkotunnuksessasi.</translation>
 <translation id="1524282610922162960">Jaa Chromium-välilehti</translation>
 <translation id="1708666629004767631">Chromiumista on saatavilla uusi, turvallisempi versio.</translation>
-<translation id="1766096484055239003">Ylläpitäjä vaatii Chromiumin uudelleenkäynnistystä, jotta päivitys voidaan ottaa käyttöön.</translation>
 <translation id="1774152462503052664">Jätä Chromium käyntiin taustalle</translation>
 <translation id="1779356040007214683">Paransimme Chromiumin turvallisuutta poistamalla käytöstä sovelluksia, joita ei löydy kohteesta <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ja jotka on voitu lisätä ilman lupaasi.</translation>
 <translation id="1808667845054772817">Asenna Chromium uudelleen</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium ei vastaa. Käynnistetäänkö uudelleen?</translation>
 <translation id="1966382378801805537">Chromium ei voi tunnistaa tai asettaa oletusselainta.</translation>
 <translation id="2008474315282236005">Tämä poistaa yhden kohteen pysyvästi laitteelta. Jos haluat palauttaa tiedot myöhemmin, kirjaudu Chromiumiin käyttäjänä <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Ylläpitäjä pyytää Chromiumin uudelleenkäynnistystä, jotta tämä päivitys voidaan ottaa käyttöön.</translation>
 <translation id="2119636228670142020">Tietoja &amp;Chromium-käyttöjärjestelmästä</translation>
 <translation id="2241627712206172106">Jos käytät jaettua tietokonetta, kaverisi ja perheenjäsenesi voivat selata verkkoa omista profiileistaan käsin ja muokata Chromiumista juuri itselleen sopivan.</translation>
 <translation id="2347108572062610441">Tämä laajennus on vaihtanut Chromiumin aloitussivun.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Tyhjennä evästeet ja sivustodata, kun suljet Chromiumin</translation>
 <translation id="7867198900892795913">Chromiumia ei voitu päivittää uusimpaan versioon, joten sinulta puuttuu joitakin uusia ominaisuuksia ja tietoturvakorjauksia.</translation>
 <translation id="7898472181347242998">Tarkista <ph name="LINK_BEGIN" />Chromium-käyttöjärjestelmän asetuksista<ph name="LINK_END" />, onko laitteesi ajan tasalla</translation>
-<translation id="7901117350626490574">Uusi Chromium-päivitys on saatavilla, ja se otetaan käyttöön uudelleenkäynnistyksen jälkeen.</translation>
 <translation id="7937630085815544518">Chromiumiin kirjautunut käyttäjä: <ph name="USER_EMAIL_ADDRESS" />. Kirjaudu uudelleen sisään samalla tilillä.</translation>
 <translation id="7975919845073681630">Tämä on Chromiumin toissijainen asennus, eikä sitä voi asettaa oletusselaimeksi.</translation>
 <translation id="7979877361127045932">Piilota Chromium-valikossa</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index 5697455e..5db29203 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Hindi ma-sync ng Chromium OS ang iyong data dahil hindi available ang Pag-sync para sa iyong domain.</translation>
 <translation id="1524282610922162960">Magbahagi ng tab ng Chromium</translation>
 <translation id="1708666629004767631">May available na bago at mas ligtas na bersyon ng Chromium.</translation>
-<translation id="1766096484055239003">Inaatasan ka ng iyong administrator na muling ilunsad ang Chromium para malapat ang update</translation>
 <translation id="1774152462503052664">Hayaang tumakbo ang Chromium sa background</translation>
 <translation id="1779356040007214683">Upang gawing mas ligtas ang Chromium, nag-disable kami ng ilang extension na hindi nakalista sa <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> at maaaring naidagdag nang hindi mo nalalaman.</translation>
 <translation id="1808667845054772817">Muling i-install ang Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Hindi gumagana ang Chromium. Muling ilunsad ngayon?</translation>
 <translation id="1966382378801805537">Hindi matukoy o maitakda ng Chromium ang default na browser</translation>
 <translation id="2008474315282236005">Magde-delete ito ng 1 item sa device na ito. Upang makuha ang iyong data sa ibang pagkakataon, mag-sign in sa Chromium bilang <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Hinihiling sa iyo ng administrator mo na muli mong ilunsad ang Chromium para malapat ang update na ito</translation>
 <translation id="2119636228670142020">Tungkol sa &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Kung nagpapahiram ka ng computer, ang mga kaibigan at kapamilya ay maaaring mag-browse nang hiwalay at i-set up ang Chromium sa paraang gusto nila.</translation>
 <translation id="2347108572062610441">Binago ng extension na ito ang ipinapakitang page kapag sinimulan mo ang Chronium.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">I-clear ang cookies at data ng site kapag umalis ka sa Chromium</translation>
 <translation id="7867198900892795913">Hindi ma-update ang Chromium sa pinakabagong bersyon, kaya may napapalampas kang mga bagong feature at pag-aayos sa seguridad.</translation>
 <translation id="7898472181347242998">Para makita kung up to date ang iyong device, pumunta sa <ph name="LINK_BEGIN" />Mga Setting ng Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">May available na bagong update para sa Chromium at ilalapat ito sa sandaling muli kang maglunsad.</translation>
 <translation id="7937630085815544518">Naka-sign in ka sa Chromium bilang <ph name="USER_EMAIL_ADDRESS" />. Pakigamit ang parehong account upang mag-sign in muli.</translation>
 <translation id="7975919845073681630">Pangalawang pag-install ito ng Chromium at hindi ito maaaring gawing iyong default na browser.</translation>
 <translation id="7979877361127045932">Itago sa menu ng Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index 8a441c2..46b1495 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -12,7 +12,6 @@
 <translation id="151962892725702025">Impossible de synchroniser vos données dans Chromium OS, car la synchronisation n'est pas disponible pour votre domaine.</translation>
 <translation id="1524282610922162960">Partager un onglet Chromium</translation>
 <translation id="1708666629004767631">Une nouvelle version de Chromium encore plus sûre est disponible.</translation>
-<translation id="1766096484055239003">À la demande de votre administrateur, vous devez relancer Chromium pour installer une mise à jour</translation>
 <translation id="1774152462503052664">Laisser Chromium s'exécuter en arrière-plan</translation>
 <translation id="1779356040007214683">Afin de rendre Chrome plus sûr, nous avons désactivé certaines extensions qui ne sont pas répertoriées sur le <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> et qui ont pu être ajoutées à votre insu.</translation>
 <translation id="1808667845054772817">Réinstaller Chromium</translation>
@@ -21,7 +20,6 @@
 <translation id="1929939181775079593">Chromium ne répond pas. Voulez-vous le relancer maintenant ?</translation>
 <translation id="1966382378801805537">Impossible d'identifier ou de définir le navigateur par défaut avec Chromium</translation>
 <translation id="2008474315282236005">Cette action aura pour effet de supprimer 1 élément de cet appareil. Pour récupérer vos données ultérieurement, connectez-vous à Chromium en tant que <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Votre administrateur vous demande de relancer Chromium pour installer cette mise à jour</translation>
 <translation id="2119636228670142020">À propos de &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Si vous partagez un ordinateur avec vos proches, ceux-ci peuvent configurer Chromium comme bon leur semble et naviguer sur le Web à leur manière.</translation>
 <translation id="2347108572062610441">Cette extension a modifié la page qui s'affiche lorsque vous démarrez Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Effacer les cookies et les données de site en quittant Chromium</translation>
 <translation id="7867198900892795913">Échec de l'installation de la dernière version de Chromium. Vous ne disposez donc pas des nouvelles fonctionnalités, ni des correctifs de sécurité.</translation>
 <translation id="7898472181347242998">Pour savoir si votre appareil est à jour, accédez aux <ph name="LINK_BEGIN" />paramètres Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Une nouvelle mise à jour est disponible pour Chromium et sera installée dès que vous le relancerez.</translation>
 <translation id="7937630085815544518">Vous étiez connecté à Chromium en tant que <ph name="USER_EMAIL_ADDRESS" />. Veuillez utiliser le même compte pour vous reconnecter.</translation>
 <translation id="7975919845073681630">Ceci est une installation secondaire de Chromium. Vous ne pouvez pas le définir comme navigateur par défaut.</translation>
 <translation id="7979877361127045932">Masquer dans le menu Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 2ff49cb..de6b92d 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium OS તમારા ડેટાને સિંક કરી શક્યું નથી, કારણ કે તમારા ડોમેન માટે સિંક ઉપલબ્ધ નથી.</translation>
 <translation id="1524282610922162960">Chromium ટૅબ શેર કરો</translation>
 <translation id="1708666629004767631">Chromiumનું નવું, સુરક્ષિત વર્ઝન ઉપલબ્ધ છે.</translation>
-<translation id="1766096484055239003">અપડેટ લાગુ કરવા માટે તમે Chromiumને ફરીથી લૉન્ચ કરો તે તમારા વ્યવસ્થાપક માટે જરૂરી છે</translation>
 <translation id="1774152462503052664">Chromium ને પૃષ્ઠભૂમિમાં ચાલવા દો</translation>
 <translation id="1779356040007214683">Chromium ને સુરક્ષિત બનાવવા માટે, અમે <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> માં સૂચિબદ્ધ નથી અને તમારી જાણ વિના ઉમેરવામાં આવ્યાં હોઈ શકે છે તેવા કેટલાક એક્સ્ટેન્શન્સને અક્ષમ કર્યા છે.</translation>
 <translation id="1808667845054772817">Chromium ફરીથી ઇન્સ્ટોલ કરો</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium પ્રતિસાદ આપતું નથી. હવે ફરીથી લોંચ કરીએ?</translation>
 <translation id="1966382378801805537">Chromium ડિફૉલ્ટ બ્રાઉઝરને નિર્ધારિત અથવા સેટ કરી શકતું નથી</translation>
 <translation id="2008474315282236005">આ, 1 આઇટમને આ ડિવાઇસમાંથી ડિલીટ કરશે. પછીથી તમારો ડેટા ફરીથી મેળવવા માટે, Chromium માં <ph name="USER_EMAIL" /> તરીકે સાઇન ઇન કરો.</translation>
-<translation id="2117378023188580026">તમારા વ્યવસ્થાપક કહે છે કે આ અપડેટ લાગુ કરવા માટે Chromium ફરીથી લૉન્ચ કરો</translation>
 <translation id="2119636228670142020">&amp;Chromium OS વિશે</translation>
 <translation id="2241627712206172106">જો તમે કમ્પ્યુટરને શેર કરો છો, તો મિત્રો અને કુટુંબીજનો અલગ-અલગ બ્રાઉઝ કરી અને તેમને જોઇએ તેમ Chromium ને સેટ કરી શકે છે.</translation>
 <translation id="2347108572062610441">જ્યારે તમે Chromium શરૂ કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે આ એક્સટેન્શને બદલ્યું છે.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">જ્યારે તમે Chromiumમાંથી બહાર નીકળો ત્યારે કુકી અને સાઇટનો ડેટા સાફ કરો</translation>
 <translation id="7867198900892795913">Chromium નવીનતમ વર્ઝન પર અપડેટ ન થઈ શક્યું, તેથી તમે નવી સુવિધાઓ અને સુરક્ષાના સુધારા ચૂકી રહ્યા છો.</translation>
 <translation id="7898472181347242998">તમારું ડિવાઇસ અપ ટૂ ડેટ છે કે નહીં, તે જાણવા માટે <ph name="LINK_BEGIN" />Chromium OS સેટિંગ<ph name="LINK_END" /> પર જાઓ</translation>
-<translation id="7901117350626490574">Chromium માટે નવી અપડેટ ઉપલબ્ધ છે અને તે તમે જેવું જ ફરીથી લોંચ કરશો, લાગુ થઈ જશે.</translation>
 <translation id="7937630085815544518">તમે Chromium માં <ph name="USER_EMAIL_ADDRESS" /> તરીકે સાઇન ઇન કર્યું હતું. ફરીથી સાઇન ઇન કરવા માટે કૃપા કરીને એ જ એકાઉન્ટનો ઉપયોગ કરો.</translation>
 <translation id="7975919845073681630">આ Google Chrome નું દ્વિતીય ઇન્સ્ટૉલેશન છે અને આને તમારું ડિફૉલ્ટ બ્રાઉઝર બનાવી શકાતું નથી.</translation>
 <translation id="7979877361127045932">Chromium મેનૂમાં છુપાવો</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index 521f556..9f94697 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">क्रोमियम OS आपका डेटा समन्वयित नहीं कर सका क्योंकि आपके डोमेन के लिए समन्वयन उपलब्ध नहीं है.</translation>
 <translation id="1524282610922162960">क्रोमियम का टैब शेयर करें</translation>
 <translation id="1708666629004767631">क्रोमियम का एक नया और सुरक्षित वर्शन उपलब्ध है.</translation>
-<translation id="1766096484055239003">आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें</translation>
 <translation id="1774152462503052664">क्रोमियम को पृष्ठभूमि में चलने दें</translation>
 <translation id="1779356040007214683">Chromium को ज़्यादा सुरक्षित बनाने के लिए, हमने ऐसे कुछ एक्सटेंशन अक्षम कर दिए हैं जो <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> में सूचीबद्ध नहीं हैं और आपकी जानकारी के बिना जोड़े गए हो सकते हैं.</translation>
 <translation id="1808667845054772817">क्रोमियम को फिर से इंस्टॉल करें</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">क्रोमियम अनुत्तरदायी है. अभी रीलॉन्‍च करें?</translation>
 <translation id="1966382378801805537">क्रोमियम, डिफ़ॉल्ट ब्राउज़र को तय या सेट नहीं कर सकता</translation>
 <translation id="2008474315282236005">ऐसा करने से इस डिवाइस से 1 आइटम मिट जाएगा. बाद में अपना डेटा पाने के लिए, Chromium में <ph name="USER_EMAIL" /> के रूप में साइन इन करें.</translation>
-<translation id="2117378023188580026">आपके एडमिन का कहना है कि यह अपडेट लागू करने के लिए, आप क्रोमियम को फिर से लॉन्च करें</translation>
 <translation id="2119636228670142020">&amp;क्रोमियम OS के बारे में</translation>
 <translation id="2241627712206172106">अगर आप किसी कंप्यूटर को शेयर करते हैं, तो दोस्त और परिवार अलग-अलग ब्राउज़ कर सकते हैं और क्रोमियम को जैसा चाहें सेट कर सकते हैं.</translation>
 <translation id="2347108572062610441">इस एक्सटेंशन ने यह बदल दिया है कि जब आप क्रोमियम प्रारंभ करते हैं तब कौन सा पृष्‍ठ दिखाया जाए.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Chromium छोड़ने पर कुकी और साइट डेटा मिटाएं</translation>
 <translation id="7867198900892795913">क्रोमियम सबसे नए वर्शन में अपडेट नहीं कर सका, इसलिए आपको नई सुविधाएं और सुरक्षा सुधार नहीं मिल रहे हैं.</translation>
 <translation id="7898472181347242998">यह देखने के लिए कि आपका डिवाइस अपडेट है या नहीं <ph name="LINK_BEGIN" />क्रोमियम OS सेटिंग<ph name="LINK_END" /> पर जाएं</translation>
-<translation id="7901117350626490574">क्रोमियम के लिए एक नया अपडेट उपलब्ध है और जैसे ही आप फिर से लॉन्च करेंगे, अपडेट लागू कर दिया जाएगा.</translation>
 <translation id="7937630085815544518">आपने क्रोमियम में <ph name="USER_EMAIL_ADDRESS" /> के रूप में साइन इन किया था. फिर से साइन इन करने के लिए कृपया उसी खाते का इस्तेमाल करें.</translation>
 <translation id="7975919845073681630">यह क्रोमियम का द्वितीयक इंस्टॉलेशन है और इसे आपका डिफ़ॉल्ट ब्राउज़र नहीं बनाया जा सकता.</translation>
 <translation id="7979877361127045932">क्रोमियम मेन्यू में छिपाएं</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index 6d551b0..a747059 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">OS Chromium nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation>
 <translation id="1524282610922162960">Dijeljenje kartice Chromium</translation>
 <translation id="1708666629004767631">Dostupna je nova, sigurnija verzija preglednika Chromium.</translation>
-<translation id="1766096484055239003">Vaš administrator zahtijeva da ponovo pokrenete Chromium radi primjene ažuriranja</translation>
 <translation id="1774152462503052664">Neka Chromium radi u pozadini</translation>
 <translation id="1779356040007214683">Kako bismo Chromium učinili sigurnijim, onemogućili smo neka proširenja koja nisu navedena u trgovini <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i možda su dodana bez vašeg znanja.</translation>
 <translation id="1808667845054772817">Ponovo instaliraj Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium ne reagira. Ponovo pokrenuti sada?</translation>
 <translation id="1966382378801805537">Chromium ne može utvrditi niti postaviti zadani preglednik</translation>
 <translation id="2008474315282236005">Time će se izbrisati jedna stavka s uređaja. Da biste kasnije dohvatili svoje podatke, prijavite se na Chromium kao <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Vaš administrator traži da ponovo pokrenete Chromium radi primjene tog ažuriranja</translation>
 <translation id="2119636228670142020">O OS-u &amp;Chromium</translation>
 <translation id="2241627712206172106">Ako dijelite računalo, prijatelji i članovi obitelji mogu zasebno pregledavati i postaviti Chromium prema svojim željama.</translation>
 <translation id="2347108572062610441">Ovo proširenje promijenilo je stranicu koja se prikazuje prilikom pokretanja Chromiuma.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Izbrišite kolačiće i podatke web-lokacija prilikom zatvaranja Chromiuma</translation>
 <translation id="7867198900892795913">Chromium se nije mogao ažurirati na najnoviju verziju, tako da nemate nove značajke i sigurnosne popravke.</translation>
 <translation id="7898472181347242998">Ažurnost uređaja možete provjeriti u <ph name="LINK_BEGIN" />postavkama OS-a Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Dostupno je novo ažuriranje za Chromium i primijenit će se nakon ponovnog pokretanja.</translation>
 <translation id="7937630085815544518">Bili ste prijavljeni na Chromium kao <ph name="USER_EMAIL_ADDRESS" />. Prijavite se ponovo istim računom.</translation>
 <translation id="7975919845073681630">Ovo je sekundarna instalacija Chromiuma, pa on ne može biti vaš zadani preglednik.</translation>
 <translation id="7979877361127045932">Sakrij u izborniku Chromiuma</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index c8fe449..af048868 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">A Chromium OS nem tudta szinkronizálni az adatait, mert a szinkronizálás nem érhető el az Ön domainjénél.</translation>
 <translation id="1524282610922162960">Chromium-lap megosztása</translation>
 <translation id="1708666629004767631">Elérhető a Chromium új, biztonságosabb verziója.</translation>
-<translation id="1766096484055239003">A rendszergazda előírta, hogy újra kell indítania a Chromiumot egy frissítés alkalmazása miatt</translation>
 <translation id="1774152462503052664">A Chromium fusson a háttérben</translation>
 <translation id="1779356040007214683">A Chromium biztonságosabbá tétele érdekében kikapcsoltunk néhány bővítményt, amelyek nem a(z) <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> szolgáltatásból származnak, és előfordulhat, hogy az Ön tudta nélkül lettek telepítve.</translation>
 <translation id="1808667845054772817">A Chromium újratelepítése</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">A Chromium nem válaszol. Újraindítja most?</translation>
 <translation id="1966382378801805537">A Chromium problémába ütközött az alapértelmezett böngésző megállapításakor vagy beállításakor</translation>
 <translation id="2008474315282236005">Ezzel egyetlen elemet töröl erről az eszközről. Az adatok későbbi lekéréséhez jelentkezzen be a Chromiumba a következő e-mail-címmel: <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Rendszergazdája arra kéri, hogy indítsa újra a Chromiumot a frissítés alkalmazásához</translation>
 <translation id="2119636228670142020">A &amp;Chromium OS névjegye</translation>
 <translation id="2241627712206172106">Ha megoszt egy számítógépet, ismerősei és családtagjai külön fiókokban internetezve a saját kívánságaik szerint állíthatják be a Chromiumot.</translation>
 <translation id="2347108572062610441">Ez a bővítmény módosította, hogy melyik oldal jelenjen meg a Chromium indításakor.</translation>
@@ -187,7 +185,6 @@
 <translation id="7827169012280634081">A cookie-k és webhelyadatok törlése a Chromium bezárásakor</translation>
 <translation id="7867198900892795913">Nem sikerült a Chromium frissítése a legújabb verzióra, így Ön lemarad az új funkciókról és biztonsági javításokról.</translation>
 <translation id="7898472181347242998">Ha szeretné megtekinteni, hogy eszköze naprakész-e, lépjen a <ph name="LINK_BEGIN" />Chromium OS beállításaihoz<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Új Chromium-frissítés jelent meg, amely az újraindítás után azonnal érvénybe lép.</translation>
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" /> néven volt bejelentkezve a Chromiumba. Kérjük, ugyanazzal a fiókkal jelentkezzen be újra.</translation>
 <translation id="7975919845073681630">Ez a Chromium második telepítése, amelyet nem állíthat be az alapértelmezett böngészővé.</translation>
 <translation id="7979877361127045932">Elrejtés a Chromium-menüben</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index 8a4bf02..ac19a74 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS tidak dapat menyinkronkan data Anda karena Sinkronisasi tidak tersedia untuk domain Anda.</translation>
 <translation id="1524282610922162960">Bagikan tab Chromium</translation>
 <translation id="1708666629004767631">Tersedia versi Chromium yang baru dan lebih aman.</translation>
-<translation id="1766096484055239003">Administrator mengharuskan Anda meluncurkan ulang Chromium untuk menerapkan update</translation>
 <translation id="1774152462503052664">Jalankan Chromium di latar belakang</translation>
 <translation id="1779356040007214683">Agar Chromium lebih aman, kami menonaktifkan beberapa ekstensi yang tidak tercantum dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa sepengetahuan Anda.</translation>
 <translation id="1808667845054772817">Instal ulang Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium tidak merespons. Luncurkan ulang sekarang?</translation>
 <translation id="1966382378801805537">Chromium tidak dapat menentukan atau menyetel browser default</translation>
 <translation id="2008474315282236005">Tindakan ini akan menghapus 1 item dari perangkat. Untuk mengambil data nanti, login ke Chromium sebagai <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Administrator meminta Anda meluncurkan ulang Chromium untuk menerapkan update ini</translation>
 <translation id="2119636228670142020">Tentang &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Jika Anda berbagi komputer, teman dan keluarga bisa menjelajah secara terpisah dan menyiapkan Chromium sesuai keinginannya.</translation>
 <translation id="2347108572062610441">Ekstensi ini telah mengubah apa yang ditampilkan oleh halaman saat Anda memulai Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Hapus cookie dan data situs ketika Anda keluar dari Chromium</translation>
 <translation id="7867198900892795913">Chromium tidak dapat diupdate ke versi terbaru, sehingga Anda tidak mendapatkan perbaikan keamanan dan fitur baru.</translation>
 <translation id="7898472181347242998">Untuk melihat apakah versi pada perangkat Anda adalah yang terbaru, buka <ph name="LINK_BEGIN" />Setelan Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Update baru untuk Chromium telah tersedia dan akan diterapkan segera setelah diluncurkan ulang.</translation>
 <translation id="7937630085815544518">Anda telah masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Gunakan akun yang sama untuk masuk kembali.</translation>
 <translation id="7975919845073681630">Ini adalah pemasangan Chromium sekunder, dan tidak dapat digunakan sebagai browser default.</translation>
 <translation id="7979877361127045932">Sembunyikan di menu Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index 69d434e..2e38b80 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Impossibile sincronizzare i dati in Chromium OS perché la sincronizzazione non è disponibile per il tuo dominio.</translation>
 <translation id="1524282610922162960">Condividi una scheda di Chromium</translation>
 <translation id="1708666629004767631">È disponibile una nuova versione più sicura di Chromium.</translation>
-<translation id="1766096484055239003">L'amministratore richiede il riavvio di Chromium per installare un aggiornamento</translation>
 <translation id="1774152462503052664">Lascia Chromium in esecuzione in background</translation>
 <translation id="1779356040007214683">Per rendere Chromium più sicuro, abbiamo disattivato alcune estensioni che non sono elencate nel <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e potrebbero essere state aggiunte a tua insaputa.</translation>
 <translation id="1808667845054772817">Reinstalla Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium non risponde. Riavviarlo ora?</translation>
 <translation id="1966382378801805537">Chromium non è in grado di determinare o impostare il browser predefinito</translation>
 <translation id="2008474315282236005">Verrà eliminato 1 elemento da questo dispositivo. Per recuperare i dati in un secondo momento, accedi a Chromium come <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">L'amministratore ti chiede di riavviare Chromium per installare questo aggiornamento</translation>
 <translation id="2119636228670142020">Informazioni su &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Se condividi un computer, i tuoi amici e la tua famiglia possono navigare separatamente e configurare Chromium in base alle proprie esigenze.</translation>
 <translation id="2347108572062610441">Questa estensione ha cambiato la pagina mostrata all'avvio di Chromium.</translation>
@@ -189,7 +187,6 @@
 <translation id="7827169012280634081">Cancella cookie e dati dei siti alla chiusura di Chromium</translation>
 <translation id="7867198900892795913">Non è stato possibile aggiornare Chromium alla versione più recente, quindi non potrai utilizzare le nuove funzioni e gli aggiornamenti di sicurezza.</translation>
 <translation id="7898472181347242998">Per controllare se il tuo dispositivo è aggiornato, vai alle <ph name="LINK_BEGIN" />Impostazioni di Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">È disponibile un nuovo aggiornamento di Chromium che verrà installato al prossimo riavvio.</translation>
 <translation id="7937630085815544518">Hai eseguito l'accesso a Chromium come <ph name="USER_EMAIL_ADDRESS" />. Utilizza lo stesso account per eseguire di nuovo l'accesso.</translation>
 <translation id="7975919845073681630">Questa è un'installazione secondaria, di conseguenza Chromium non può essere impostato come browser predefinito.</translation>
 <translation id="7979877361127045932">Nascondi in menu Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 7424b0e..8eda68c3 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">‏מערכת ההפעלה של Chromium לא הצליחה לסנכרן את הנתונים שלך מפני שסנכרון אינו זמין עבור הדומיין שלך.</translation>
 <translation id="1524282610922162960">‏שיתוף כרטיסיית Chromium</translation>
 <translation id="1708666629004767631">‏גרסה חדשה ובטוחה יותר של Chromium זמינה כעת.</translation>
-<translation id="1766096484055239003">‏לפי דרישת מנהל המערכת, יש להפעיל מחדש את Chromium כדי להחיל עדכון</translation>
 <translation id="1774152462503052664">‏אפשר ל-Chromium לפעול ברקע</translation>
 <translation id="1779356040007214683">‏כדי לשפר את האבטחה של Chromium, השבתנו חלק מהתוספים שלא רשומים ב<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> וייתכן שנוספו ללא ידיעתך.</translation>
 <translation id="1808667845054772817">‏התקן מחדש את Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">‏Chromium אינו מגיב. להפעיל מחדש עכשיו?</translation>
 <translation id="1966382378801805537">‏ב-Chromium לא ניתן לקבוע או להגדיר את דפדפן ברירת המחדל</translation>
 <translation id="2008474315282236005">‏הפעולה הזו תמחק פריט אחד מהמכשיר. כדי לשחזר את הנתונים מאוחר יותר, היכנס אל Chromium עם <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">‏לפי בקשת מנהל המערכת, יש להפעיל מחדש את Chromium כדי להחיל את העדכון הזה</translation>
 <translation id="2119636228670142020">‏מידע על &amp;מערכת ההפעלה של Chromium‏</translation>
 <translation id="2241627712206172106">‏אם אתה משתף מחשב, חברים ובני משפחה יכולים לגלוש בנפרד ולהגדיר את Chromium בדיוק כפי שהם רוצים.</translation>
 <translation id="2347108572062610441">‏התוסף שינה את הדף שמוצג כשאתה מפעיל את Chromium.</translation>
@@ -187,7 +185,7 @@
 <translation id="7790626492778995050">‏<ph name="PAGE_TITLE" /> - Chromium בגירסת Canary</translation>
 <translation id="7827169012280634081">‏קובצי ה-Cookie ונתוני האתר ינוקו בכל יציאה מ-Chromium</translation>
 <translation id="7867198900892795913">‏עדכון Chromium לגירסה האחרונה לא הצליח, ולכן אין לך גישה אל תכונות חדשות ותיקוני אבטחה.</translation>
-<translation id="7901117350626490574">‏יש עדכון בשביל Chromium והמערכת תחיל אותו ברגע שתבוצע הפעלה מחדש.</translation>
+<translation id="7898472181347242998">‏כדי לראות אם המכשיר שלך מעודכן, יש לעבור אל <ph name="LINK_BEGIN" />הגדרות Chromium OS<ph name="LINK_END" /></translation>
 <translation id="7937630085815544518">‏נכנסת ל-Chromium כ-<ph name="USER_EMAIL_ADDRESS" />. השתמש באותו חשבון כדי להיכנס שוב.</translation>
 <translation id="7975919845073681630">‏זוהי התקנה משנית של Chromium, ולא ניתן להפוך אותו לדפדפן ברירת המחדל שלך.</translation>
 <translation id="7979877361127045932">‏הסתר בתפריט Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 1c4b78c..9dd16d4c 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">お使いのドメインでは同期を利用できないため、Chromium OS はデータを同期できませんでした。</translation>
 <translation id="1524282610922162960">Chromium タブの共有</translation>
 <translation id="1708666629004767631">Chromium がさらに安全になりました。最新バージョンをぜひお試しください。</translation>
-<translation id="1766096484055239003">管理者が、アップデートを適用するために Chromium を再起動するよう求めています</translation>
 <translation id="1774152462503052664">Chromium をバックグラウンドで実行する</translation>
 <translation id="1779356040007214683">Chromium をより安全にご利用いただくため、<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />で提供していない一部の拡張機能を無効にしました。これらは知らないうちに追加された可能性があります。</translation>
 <translation id="1808667845054772817">Chromium を再インストール</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium が応答しません。今すぐ再起動しますか?</translation>
 <translation id="1966382378801805537">Chromium では既定のブラウザを判定または設定できません</translation>
 <translation id="2008474315282236005">このデバイスから 1 件の項目を削除します。後でデータを取得するには、<ph name="USER_EMAIL" /> として Chromium にログインしてください。</translation>
-<translation id="2117378023188580026">管理者が、このアップデートを適用するために Chromium を再起動するよう求めています</translation>
 <translation id="2119636228670142020">Chromium OS について(&amp;C)</translation>
 <translation id="2241627712206172106">パソコンを共有している場合、友だちや家族はそれぞれ Chromium を自分専用のブラウザとして自分用の設定をして使うことができます。</translation>
 <translation id="2347108572062610441">この拡張機能により、Chromium の起動時に表示されるページが変更されました。</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Chromium の終了時に Cookie とサイトデータを削除する</translation>
 <translation id="7867198900892795913">Chromium を最新版に更新できませんでした。新しい機能とセキュリティ修正は適用されていません。</translation>
 <translation id="7898472181347242998">デバイスが最新の状態かどうか確認するには、<ph name="LINK_BEGIN" />Chromium OS の設定<ph name="LINK_END" />をご覧ください</translation>
-<translation id="7901117350626490574">Chromium の新しいアップデートを利用できます。再起動するとすぐにアップデートが適用されます。</translation>
 <translation id="7937630085815544518">Chromium に <ph name="USER_EMAIL_ADDRESS" /> としてログインしていました。再度ログインするには同じアカウントを使用してください。</translation>
 <translation id="7975919845073681630">この Chromium はセカンダリ インストールのため、既定のブラウザには設定できません。</translation>
 <translation id="7979877361127045932">Chromium メニューで非表示</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 48f9b34..ec3c4b6 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">ನಿಮ್ಮ ಡೊಮೇನ್‌ನಲ್ಲಿ ಸಿಂಕ್ ಮಾಡುವ ಸೌಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
 <translation id="1524282610922162960">Chromium ಟ್ಯಾಬ್ ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="1708666629004767631">ಹೊಸದಾದ, ಸುರಕ್ಷಿತವಾದ Chromium ನ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ.</translation>
-<translation id="1766096484055239003">ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೋರುತ್ತಿದ್ದಾರೆ</translation>
 <translation id="1774152462503052664">Chromium ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಚಾಲನೆಗೊಳ್ಳಲು ಅನುಮತಿಸಿ</translation>
 <translation id="1779356040007214683">Chromium  ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ನಲ್ಲಿ ನಾವು ಪಟ್ಟಿ ಮಾಡಲಾದ ಕೆಲವು ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ ಮತ್ತು ಇದು ಗಮನಕ್ಕೆ ಬಾರದೇ ಸೇರಿಸಿರಬಹುದು.</translation>
 <translation id="1808667845054772817">Chromium ಅನ್ನು ಮರುಸ್ಥಾಪಿಸು</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium ಸ್ಪಂದಿಸುತ್ತಿಲ್ಲ. ಇದೀಗ ಮರುಪ್ರಾರಂಭಿಸುವುದೇ?</translation>
 <translation id="1966382378801805537">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation>
 <translation id="2008474315282236005">ಈ ಸಾಧನದಿಂದ 1 ಐಟಂ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chromium ಗೆ ಸೈನ್‌ಇನ್ ಮಾಡಿ.</translation>
-<translation id="2117378023188580026">ಈ ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೋರುತ್ತಿದ್ದಾರೆ</translation>
 <translation id="2119636228670142020">&amp;Chromium OS ಕುರಿತು</translation>
 <translation id="2241627712206172106">ನೀವು ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಂಡರೆ, ಸ್ನೇಹಿತರು ಮತ್ತು ಕುಟುಂಬದವರು ಪ್ರತ್ಯೇಕವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಅವರಿಗೆ ಬೇಕಾದಂತೆ ಹೊಂದಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="2347108572062610441">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ಯಾವ ಪುಟ ತೋರಿಸಬೇಕೆಂಬುದನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
@@ -183,7 +181,6 @@
 <translation id="7827169012280634081">ನೀವು Chromium ನಿಂದ ನಿರ್ಗಮಿಸಿದಾಗ ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="7867198900892795913">Chromium ಗೆ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಈ ಮೂಲಕ ನೀವು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಿರಬಹುದು.</translation>
 <translation id="7898472181347242998">ನಿಮ್ಮ ಸಾಧನ ಅಪ್ ಟು ಡೇಟ್ ಆಗಿದೆಯೇ ಎಂಬುದನ್ನು ನೋಡಲು, <ph name="LINK_BEGIN" />Chromium OS ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ<ph name="LINK_END" /> ಹೋಗಿ</translation>
-<translation id="7901117350626490574">Chromium ಗೆ ಹೊಸತೊಂದು ಅಪ್‌ಡೇಟ್‌ ಲಭ್ಯವಿದೆ ಮತ್ತು ನೀವು ಮರುಪ್ರಾರಂಭಿಸಿದ ಕೂಡಲೇ ಅದನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" /> ನಂತೆ Chromium ಅನ್ನು ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅದೇ ಖಾತೆಯನ್ನು ಬಳಸಿ.</translation>
 <translation id="7975919845073681630">ಇದು Chromium ನ ದ್ವಿತೀಯ ಸ್ಥಾಪನೆಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="7979877361127045932">Chromium ಮೆನುವಿನಲ್ಲಿ ಮರೆಮಾಡು</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index 3a1772e5..4ce2072 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">내 도메인에서 동기화를 사용할 수 없으므로 Chromium OS에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="1524282610922162960">Chromium 탭 공유</translation>
 <translation id="1708666629004767631">새롭고 안전한 Chromium의 새 버전을 사용할 수 있습니다.</translation>
-<translation id="1766096484055239003">관리자가 업데이트를 적용하려면 사용자가 반드시 Chromium을 다시 시작하도록 설정했습니다.</translation>
 <translation id="1774152462503052664">백그라운드에서 Chromium을 실행</translation>
 <translation id="1779356040007214683">Google에서는 Chromium의 보안을 강화하기 위해 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />에 표시되지 않고 사용자 모르게 추가되었을 수 있는 일부 확장 프로그램의 사용을 중지했습니다.</translation>
 <translation id="1808667845054772817">Chromium 재설치</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium이 응답하지 않습니다. 다시 시작하시겠습니까?</translation>
 <translation id="1966382378801805537">Chromium에서 기본 브라우저를 확인하거나 설정할 수 없습니다.</translation>
 <translation id="2008474315282236005">항목 1개가 기기에서 삭제됩니다. 나중에 데이터를 가져오려면 Chromium에 <ph name="USER_EMAIL" />(으)로 로그인하세요.</translation>
-<translation id="2117378023188580026">관리자가 이 업데이트를 적용하려면 사용자가 Chromium을 다시 시작하도록 설정했습니다.</translation>
 <translation id="2119636228670142020">Chromium OS 정보</translation>
 <translation id="2241627712206172106">컴퓨터를 공유하는 경우 친구와 가족이 개별적으로 탐색하고 원하는 대로 Chromium을 설정할 수 있습니다.</translation>
 <translation id="2347108572062610441">Chromium을 시작하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Chromium을 종료할 때 쿠키 및 사이트 데이터 삭제</translation>
 <translation id="7867198900892795913">Chromium을 최신 버전으로 업데이트하지 못했기 때문에 새로운 기능과 보안 수정 사항이 적용되지 않았습니다.</translation>
 <translation id="7898472181347242998">기기가 최신 버전인지 확인하려면 <ph name="LINK_BEGIN" />Chromium OS 설정<ph name="LINK_END" />으로 이동하세요.</translation>
-<translation id="7901117350626490574">Chromium 업데이트가 있습니다. 다시 시작하면 바로 업데이트됩니다.</translation>
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" />(으)로 Chromium에 로그인되어 있습니다. 같은 계정으로 다시 로그인해 주세요.</translation>
 <translation id="7975919845073681630">Chromium의 보조 설치이며 기본 브라우저로 설정할 수 없습니다.</translation>
 <translation id="7979877361127045932">Chromium 메뉴에서 숨기기</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index c78d327..eed57e0 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">„Chromium“ OS negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation>
 <translation id="1524282610922162960">„Chromium“ skirtuko bendrinimas</translation>
 <translation id="1708666629004767631">Pasiekiama nauja, saugesnė „Chromium“ versija.</translation>
-<translation id="1766096484055239003">Administratorius reikalauja paleisti iš naujo „Chromium“, kad galėtų pritaikyti naujinį</translation>
 <translation id="1774152462503052664">Paleisti „Chromium“ fone</translation>
 <translation id="1779356040007214683">Kad „Chromium“ padarytume saugesnę, išjungėme kai kuriuos plėtinius, kurių nėra „<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />“ sąraše ir kurie galėjo būti pridėti be jūsų žinios.</translation>
 <translation id="1808667845054772817">Iš naujo įdiegti „Chromium“</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">„Chromium“ neatsako. Paleisti iš naujo dabar?</translation>
 <translation id="1966382378801805537">„Chromium“ nepavyko aptikti arba nustatyti numatytosios naršyklės</translation>
 <translation id="2008474315282236005">Atlikus šį veiksmą iš šio įrenginio bus ištrintas 1 elementas. Jei vėliau norėsite gauti duomenis, prisijunkite prie „Chromium“ kaip <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Administratorius prašo paleisti iš naujo „Chromium“, kad galėtų pritaikyti šį naujinį</translation>
 <translation id="2119636228670142020">Apie &amp;„Chromium“ OS</translation>
 <translation id="2241627712206172106">Jei bendrinate kompiuterį, šeimos nariai ir draugai gali naršyti atskirai ir nustatyti „Chromium“ pagal savo poreikius.</translation>
 <translation id="2347108572062610441">Šis plėtinys pakeitė, kuris puslapis rodomas paleidus „Chromium“.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Išeinant iš „Chromium“ išvalyti slapukus ir svetainės duomenis</translation>
 <translation id="7867198900892795913">Nepavyko atnaujinti „Chromium“ į naujausią versiją, todėl nebus pasiekiamos naujos funkcijos ir saugos pataisos.</translation>
 <translation id="7898472181347242998">Norėdami sužinoti, ar įrenginys atnaujintas, eikite į <ph name="LINK_BEGIN" />„Chromium“ OS nustatymus<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Pasiekiamas naujas „Chromium“ naujinys, kuris bus pritaikytas, kai paleisite „Chromium“ iš naujo.</translation>
 <translation id="7937630085815544518">Buvote prisijungę prie „Chromium“ kaip <ph name="USER_EMAIL_ADDRESS" />. Prisijungdami vėl naudokite tą pačią paskyrą.</translation>
 <translation id="7975919845073681630">Tai yra antrinis „Chromium“ diegimas, todėl ji negali būti nustatyta kaip numatytoji naršyklė.</translation>
 <translation id="7979877361127045932">Paslėpti „Chromium“ meniu elementą</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index 0312522..cc6da13c 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS nevarēja sinhronizēt jūsu datus, jo jūsu domēnā nav pieejama sinhronizācija.</translation>
 <translation id="1524282610922162960">Chromium cilnes kopīgošana</translation>
 <translation id="1708666629004767631">Ir pieejama jauna un drošāka Chromium versija.</translation>
-<translation id="1766096484055239003">Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chromium.</translation>
 <translation id="1774152462503052664">Ļaut Chromium darboties fonā</translation>
 <translation id="1779356040007214683">Lai uzlabotu Chromium drošību, mēs atspējojām dažus paplašinājumus, kas nav norādīti vietnē <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> un, iespējams, tika pievienoti, jums nezinot.</translation>
 <translation id="1808667845054772817">Pārinstalēt Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium nereaģē. Vai restartēt to tūlīt?</translation>
 <translation id="1966382378801805537">Chromium nevar noteikt vai iestatīt noklusējuma pārlūku.</translation>
 <translation id="2008474315282236005">Veicot šo darbību, no šīs ierīces tiks dzēsts 1 vienums. Lai vēlāk izgūtu datus, pierakstieties pārlūkā Chromium kā <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Lai lietotu šo atjauninājumu, administrators lūdz restartēt pārlūku Chromium.</translation>
 <translation id="2119636228670142020">Par &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Ja jūsu datoru izmanto arī jūsu draugi un ģimenes locekļi, viņi var iestatīt pārlūku Chromium atbilstoši savām vēlmēm un pārlūkot saturu atsevišķos kontos.</translation>
 <translation id="2347108572062610441">Šis paplašinājums mainīja iestatījumu, kura lapa tiek parādīta, palaižot pārlūku Chromium.</translation>
@@ -188,7 +186,6 @@
 <translation id="7827169012280634081">Aizverot Chromium, notīriet sīkfailus un vietnes datus</translation>
 <translation id="7867198900892795913">Nevarēja atjaunināt uz jaunāko Chromium versiju, tādēļ jūs nevarēsiet piekļūt jaunākajām funkcijām un drošības labojumiem.</translation>
 <translation id="7898472181347242998">Lai pārbaudītu, vai ierīce ir atjaunināta, pārejiet uz sadaļu <ph name="LINK_BEGIN" />Chromium OS iestatījumi<ph name="LINK_END" />.</translation>
-<translation id="7901117350626490574">Pieejams Chromium atjauninājums, un tas tiks lietots, tiklīdz restartēsiet pārlūku.</translation>
 <translation id="7937630085815544518">Operētājsistēmā Chromium iepriekš pierakstījāties kā lietotājs <ph name="USER_EMAIL_ADDRESS" />. Lai pierakstītos vēlreiz, lūdzu, izmantojiet to pašu kontu.</translation>
 <translation id="7975919845073681630">Šī ir Chromium papildu instalācija, un to nevar izmantot kā noklusējuma pārlūku.</translation>
 <translation id="7979877361127045932">Paslēpt Chromium izvēlnē</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 76c23fe1..2ee2a93 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">നിങ്ങളുടെ ഡൊമെയ്‌നിന് സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Chromium OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="1524282610922162960">ഒരു Chromium ടാബ് പങ്കിടുക</translation>
 <translation id="1708666629004767631">പുതിയതും സുരക്ഷിതവുമായ Chromium പതിപ്പ് ലഭ്യമാണ്.</translation>
-<translation id="1766096484055239003">അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chromium വീണ്ടും സമാരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ആവശ്യപ്പെടുന്നു</translation>
 <translation id="1774152462503052664">Chromium-ത്തെ പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കാൻ അനുവദിക്കുക</translation>
 <translation id="1779356040007214683">Chromium സുരക്ഷിതമാക്കുന്നതിന്, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> എന്നതിൽ ലിസ്റ്റുചെയ്യാത്ത ചില വിപുലീകരണങ്ങൾ ഞങ്ങൾ പ്രവർത്തനരഹിതമാക്കി, അവ നിങ്ങളുടെ അറിവില്ലാതെ ചേർത്തിരിക്കാനിടയുണ്ട്.</translation>
 <translation id="1808667845054772817">Chromium വീണ്ടും ഇൻസ്‌റ്റാളുചെയ്യുക</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium പ്രതികരിക്കുന്നില്ല. ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കണോ?</translation>
 <translation id="1966382378801805537">Chromium-ത്തിന് ഡിഫോൾട്ട് ബ്രൗസർ നിർണ്ണയിക്കാനോ സജ്ജമാക്കാനോ കഴിയില്ല</translation>
 <translation id="2008474315282236005">ഇത് ഈ ഉപകരണത്തിൽ നിന്നും ഒരിനം ഇല്ലാതാക്കും. പിന്നീട് നിങ്ങളുടെ വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, <ph name="USER_EMAIL" /> എന്നയാളായി Chromium-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
-<translation id="2117378023188580026">ഈ അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chromium വീണ്ടും സമാരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ആവശ്യപ്പെടുന്നു</translation>
 <translation id="2119636228670142020">&amp;Chromium OS-നെക്കുറിച്ച്</translation>
 <translation id="2241627712206172106">നിങ്ങളൊരു കമ്പ്യൂട്ടർ പങ്കിടുകയാണെങ്കിൽ, സുഹൃത്തുക്കൾക്കും കുടുബാംഗങ്ങൾക്കും വെവ്വേറെ ബ്രൗസ് ചെയ്യാനും അവർക്ക് ആവശ്യമുള്ള രീതിയിൽ Chromium സജ്ജീകരിക്കാനുമാകും.</translation>
 <translation id="2347108572062610441">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
@@ -33,7 +31,7 @@
 <translation id="2535480412977113886">നിങ്ങളുടെ അക്കൗണ്ടിന്റെ സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടതിനാൽ Chromium OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="2560420686485554789">ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാൻ Chromium-ത്തിന് സ്റ്റോറേജ് ആക്‌സസ് ആവശ്യമാണ്</translation>
 <translation id="2572494885440352020">Chromium ഹെൽപ്പർ</translation>
-<translation id="2587578672395088481">അപ്‌ഡേറ്റ് പ്രയോഗത്തിൽ വരുത്താൻ Chromium OS പുനരാരംഭിക്കേണ്ടതുണ്ട്.</translation>
+<translation id="2587578672395088481">അപ്‌ഡേറ്റ് ബാധകമാക്കാൻ Chromium OS പുനരാരംഭിക്കേണ്ടതുണ്ട്.</translation>
 <translation id="2647554856022461007">നിങ്ങളുടെ ബ്രൗസിംഗ് അനുഭവം മെച്ചപ്പെടുത്താൻ Chromium വെബ്‌ സേവനങ്ങൾ ഉപയോഗിക്കാനിടയുണ്ട്. വേണമെങ്കിൽ ഈ സേവനങ്ങൾ പ്രവർത്തനരഹിതമാക്കാം. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="2648074677641340862">ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനിടെ ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പിശക് സംഭവിച്ചു. Chromium വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation>
 <translation id="2711502716910134313">Chromium ടാബ്</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Chromium-ത്തിൽ നിന്ന് പുറത്തുകടക്കുമ്പോൾ കുക്കികളും സൈറ്റ് ഡാറ്റയും മായ്‌ക്കുക</translation>
 <translation id="7867198900892795913">ഏറ്റവും പുതിയ പതിപ്പിലേക്ക് Chromium അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല, അതിനാൽ പുതിയ ഫീച്ചറുകളും സുരക്ഷാ പരിഹാരങ്ങളും നിങ്ങൾക്ക് ലഭിക്കുന്നില്ല.</translation>
 <translation id="7898472181347242998">നിങ്ങളുടെ ഉപകരണം അപ് ടു ഡേറ്റ് ആണോയെന്ന് കാണാൻ <ph name="LINK_BEGIN" />Chromium OS ക്രമീകരണത്തിലേക്ക്<ph name="LINK_END" /> പോവുക</translation>
-<translation id="7901117350626490574">Chromium-ത്തിനുള്ള പുതിയൊരു അപ്ഡേറ്റ് ലഭ്യമാണ്, നിങ്ങൾ വീണ്ടും സമാരംഭിക്കുമ്പോൾ ഉടൻ അത് പ്രാബല്യത്തിലാകും.</translation>
 <translation id="7937630085815544518">Chromium-ൽ നിങ്ങൾ <ph name="USER_EMAIL_ADDRESS" /> എന്നായി സൈൻ ഇൻ ചെയ്‌തു. വീണ്ടും സൈൻ ഇൻ ചെയ്യുന്നതിന് സമാന അക്കൗണ്ട് ഉപയോഗിക്കുക.</translation>
 <translation id="7975919845073681630">ഇത് Chromium-ത്തിന്റെ ദ്വിതീയ ഇൻസ്‌റ്റലേഷനായതിനാൽ, നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറാക്കാൻ കഴിയില്ല.</translation>
 <translation id="7979877361127045932">Chromium മെനുവിൽ മറയ്‌ക്കുക</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index c92bdd09..09ef7390 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -12,7 +12,6 @@
 <translation id="151962892725702025">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Chromium OS तुमचा डेटा संकालित करू शकले नाही.</translation>
 <translation id="1524282610922162960">Chromium टॅब शेअर करा</translation>
 <translation id="1708666629004767631">Chromium ची नवीन, सुरक्षित आवृत्ती उपलब्ध आहे.</translation>
-<translation id="1766096484055239003">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करण्याची आवश्यकता आहे</translation>
 <translation id="1774152462503052664">Chromium बॅकग्राउंडमध्ये चालू द्या</translation>
 <translation id="1779356040007214683">Chromium अधिक सुरक्षित बनविण्‍यासाठी, आम्‍ही <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> मध्‍ये सूचीबद्ध नसलेले आणि आपल्‍या माहिती शिवाय कदाचित जोडले गेलेले काही विस्‍तार अक्षम केले.</translation>
 <translation id="1808667845054772817">Chromium पुनर्स्थापित करा</translation>
@@ -21,7 +20,6 @@
 <translation id="1929939181775079593">Chromium असंवादी आहे. आता पुन्‍हा लाँच करायचे?</translation>
 <translation id="1966382378801805537">Chromium डीफॉल्ट ब्राउझर निर्धारित किंवा सेट करू शकत नाही</translation>
 <translation id="2008474315282236005">हे या डिव्‍हाइस मधून 1 आयटम हटवेल. नंतर तुमचा डेटा पुनर्प्राप्त करण्‍यासाठी, Chromium मध्ये <ph name="USER_EMAIL" /> म्हणून साइन इन करा.</translation>
-<translation id="2117378023188580026">हे अपडेट लागू करण्यासाठी तुमच्या अॅडमिनिस्ट्रेटरने तुम्हाला Chromium पुन्हा लाँच करण्यास सांगितले आहे</translation>
 <translation id="2119636228670142020">&amp;Chromium OS बद्दल</translation>
 <translation id="2241627712206172106">तुम्ही कॉंप्युटर शेअर केल्यास, मित्र आणि कुटुंब स्वतंत्रपणे ब्राउझ करू शकतात आणि त्यांना पाहिजे तसे Chromium सेट अप करू शकतात.</translation>
 <translation id="2347108572062610441">तुम्ही Chromium सुरू करता तेव्हा कोणते पेज दर्शविले जाते हे या एक्स्टेंशनने बदलले आहे.</translation>
@@ -191,7 +189,6 @@
 <translation id="7827169012280634081">तुम्ही Chromium बंद करता तेव्हा कुकी आणि साइट डेटा साफ करा</translation>
 <translation id="7867198900892795913">Chromium नवीनतम आवृत्तीवर अपडेट होऊ शकले नाही, त्यामुळे तुम्ही नवीन वैशिष्ट्ये आणि सुरक्षितता निराकरणे गमावत आहात.</translation>
 <translation id="7898472181347242998">तुमचे डिव्हाइस अप टू डेट असल्याची खात्री करण्यासाठी <ph name="LINK_BEGIN" />Chromium OS सेटिंग्ज<ph name="LINK_END" /> वर जा</translation>
-<translation id="7901117350626490574">Chromium साठी नवीन अपडेट उपलब्ध आहे आणि तुम्ही रीलाँच करताच ते लागू केले जाईल.</translation>
 <translation id="7937630085815544518">तुम्ही <ph name="USER_EMAIL_ADDRESS" /> या रुपात Chromium मध्ये साइन इन केले होते. कृपया पुन्हा साइन इन करण्यासाठी समान खाते वापरा.</translation>
 <translation id="7975919845073681630">ही Chromium ची दुय्यम स्थापना असून त्यास तुमचा डीफॉल्ट ब्राउझर बनवू शकत नाही.</translation>
 <translation id="7979877361127045932">Chromium मेनूमध्‍ये लपवा</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index fe1805c..9d1e1297 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">OS Chromium tidak dapat menyegerakkan data anda kerana Segerak tidak tersedia untuk domain anda.</translation>
 <translation id="1524282610922162960">Kongsi tab Chromium</translation>
 <translation id="1708666629004767631">Terdapat versi Chromium baharu yang lebih selamat tersedia.</translation>
-<translation id="1766096484055239003">Pentadbir anda menghendaki anda melancarkan semula Chromium untuk menggunakan kemas kini</translation>
 <translation id="1774152462503052664">Benarkan Chromium dijalankan dalam latar belakang</translation>
 <translation id="1779356040007214683">Untuk menjadikan Chromium lebih selamat, kami melumpuhkan beberapa sambungan yang tidak disenaraikan dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa pengetahuan anda.</translation>
 <translation id="1808667845054772817">Pasang semula Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium tidak responsif. Lancarkan semula sekarang?</translation>
 <translation id="1966382378801805537">Chromium tidak dapat menentukan atau menetapkan penyemak imbas lalai</translation>
 <translation id="2008474315282236005">Tindakan ini akan memadamkan 1 item daripada peranti ini. Untuk mendapatkan kembali data anda kemudian, log masuk ke Chromium sebagai <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Pentadbir anda meminta anda melancarkan semula Chromium untuk menggunakan kemas kini ini</translation>
 <translation id="2119636228670142020">Mengenai &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Jika anda berkongsi komputer, rakan dan keluarga boleh menyemak imbas secara berasingan dan menyediakan Chromium sebagaimana yang mereka mahukan.</translation>
 <translation id="2347108572062610441">Sambungan ini telah menukar halaman yang ditunjukkan apabila anda memulakan Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Kosongkan kuki dan data tapak apabila anda keluar daripada Chromium</translation>
 <translation id="7867198900892795913">Chromium tidak dapat mengemas kini kepada versi terkini, maka anda terlepas ciri baharu dan penyelesaian keselamatan.</translation>
 <translation id="7898472181347242998">Untuk melihat sama ada peranti anda telah dikemas kini, pergi ke <ph name="LINK_BEGIN" />Tetapan OS Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Kemas kini baharu tersedia untuk Chromium dan akan digunakan sebaik sahaja anda melancarkan Chromium semula.</translation>
 <translation id="7937630085815544518">Anda telah log masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Sila gunakan akaun yang sama untuk log masuk lagi.</translation>
 <translation id="7975919845073681630">Ini adalah pemasangan kedua Chromium dan tidak boleh dijadikan penyemak imbas lalai anda.</translation>
 <translation id="7979877361127045932">Sembunyikan dalam menu Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 74683274..3ad00f3 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium OS kan je gegevens niet synchroniseren omdat synchronisatie niet beschikbaar is voor je domein.</translation>
 <translation id="1524282610922162960">Een Chromium-tabblad delen</translation>
 <translation id="1708666629004767631">Er is een nieuwe, veiligere versie van Chromium beschikbaar.</translation>
-<translation id="1766096484055239003">Je beheerder vereist dat je Chromium opnieuw start om een update toe te passen</translation>
 <translation id="1774152462503052664">Chromium laten uitvoeren op de achtergrond</translation>
 <translation id="1779356040007214683">Om Chromium veiliger te maken, hebben we een aantal extensies uitgeschakeld die niet worden vermeld in de <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> en mogelijk zonder je medeweten zijn geïnstalleerd.</translation>
 <translation id="1808667845054772817">Chromium opnieuw installeren</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium reageert niet. Nu opnieuw starten?</translation>
 <translation id="1966382378801805537">Chromium kan de standaardbrowser niet bepalen of instellen</translation>
 <translation id="2008474315282236005">Hiermee wordt 1 item verwijderd van dit apparaat. Als je je gegevens later wilt terughalen, log je in bij Chromium als <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Je beheerder vraagt je Chromium opnieuw te starten om deze update toe te passen</translation>
 <translation id="2119636228670142020">Over &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Als je een computer deelt, kunnen vrienden en familie afzonderlijk surfen en Chromium configureren zoals zij dat willen.</translation>
 <translation id="2347108572062610441">Deze extensie heeft gewijzigd welke pagina wordt weergegeven wanneer je Chromium start.</translation>
@@ -191,7 +189,6 @@
 <translation id="7827169012280634081">Cookies en sitegegevens wissen wanneer je Chromium sluit</translation>
 <translation id="7867198900892795913">Chromium kan niet worden geüpdatet naar de nieuwste versie, dus je loopt nieuwe functies en beveiligingsoplossingen mis.</translation>
 <translation id="7898472181347242998">Ga naar de <ph name="LINK_BEGIN" />instellingen van Chromium OS<ph name="LINK_END" /> om te kijken of je apparaat up-to-date is</translation>
-<translation id="7901117350626490574">Er is een nieuwe update voor Chromium beschikbaar die wordt toegepast zodra je het programma opnieuw start.</translation>
 <translation id="7937630085815544518">Je bent ingelogd bij Chromium als <ph name="USER_EMAIL_ADDRESS" />. Gebruik hetzelfde account om opnieuw in te loggen.</translation>
 <translation id="7975919845073681630">Dit is een tweede installatie van Chromium en kan niet als standaardbrowser worden ingesteld.</translation>
 <translation id="7979877361127045932">Verbergen in Chromium-menu</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index de632ee..955cec29 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS kunne ikke synkronisere dataene dine fordi synkronisering ikke er tilgjengelig for domenet ditt.</translation>
 <translation id="1524282610922162960">Del en Chromium-fane</translation>
 <translation id="1708666629004767631">En ny, sikrere versjon av Chromium er tilgjengelig.</translation>
-<translation id="1766096484055239003">Administratoren din krever at du starter Chromium på nytt for at en oppdatering skal tas i bruk</translation>
 <translation id="1774152462503052664">La Chromium kjøre i bakgrunnen</translation>
 <translation id="1779356040007214683">For å gjøre Chromium tryggere, har vi deaktivert noen utvidelser som ikke er oppført i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, og som kan ha blitt lagt uten at du har vært klar over det.</translation>
 <translation id="1808667845054772817">Installer Chromium på nytt</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium svarer ikke. Vil du starte den på nytt nå?</translation>
 <translation id="1966382378801805537">Chromium kan ikke fastslå eller angi standardnettleseren</translation>
 <translation id="2008474315282236005">Dette sletter 1 element fra denne enheten. For å hente dataene dine igjen senere må du logge på Chromium som <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Administratoren din ber deg om å starte Chromium på nytt for at denne oppdateringen skal tas i bruk</translation>
 <translation id="2119636228670142020">Om &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Hvis du deler en datamaskin med andre, kan venner og familie surfe hver for seg og konfigurere Chromium akkurat slik de vil.</translation>
 <translation id="2347108572062610441">Denne utvidelsen har endret hvilken side som vises når du starter Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Slett informasjonskapsler og nettstedsdata når du avslutter Chromium</translation>
 <translation id="7867198900892795913">Chromium kunne ikke oppdateres til den nyeste versjonen, så du går glipp av nye funksjoner og sikkerhetsforbedringer.</translation>
 <translation id="7898472181347242998">For å se om enheten er oppdatert, gå til <ph name="LINK_BEGIN" />Innstillinger for Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">En ny oppdatering for Chromium er tilgjengelig og tas i bruk når du starter Chromium på nytt.</translation>
 <translation id="7937630085815544518">Du ble logget på Chromium som <ph name="USER_EMAIL_ADDRESS" />. Du må logge deg på igjen med samme konto.</translation>
 <translation id="7975919845073681630">Dette er en sekundær installering av Chromium. Den kan ikke brukes som standardnettleser.</translation>
 <translation id="7979877361127045932">Skjul i Chromium-menyen</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index b790c2b..09036d3 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">System operacyjny Chromium nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation>
 <translation id="1524282610922162960">Udostępnij kartę Chromium</translation>
 <translation id="1708666629004767631">Dostępna jest nowa, bezpieczniejsza wersja Chromium.</translation>
-<translation id="1766096484055239003">Administrator wymaga od Ciebie ponownego uruchomienia Chromium, by przeglądarka mogła zainstalować aktualizację</translation>
 <translation id="1774152462503052664">Zezwól Chromium na działanie w tle</translation>
 <translation id="1779356040007214683">Aby poprawić bezpieczeństwo Chromium, wyłączyliśmy niektóre rozszerzenia niedostępne w <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, które mogły zostać dodane bez Twojej wiedzy.</translation>
 <translation id="1808667845054772817">Ponownie zainstaluj Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium nie odpowiada. Uruchomić go teraz ponownie?</translation>
 <translation id="1966382378801805537">Chromium nie może określić ani ustawić domyślnej przeglądarki</translation>
 <translation id="2008474315282236005">Spowoduje to usunięcie 1 elementu z tego urządzenia. Aby później odzyskać dane, zaloguj się w Chromium jako <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Administrator prosi Cię o ponowne uruchomienie Chromium, by przeglądarka mogła zainstalować tę aktualizację</translation>
 <translation id="2119636228670142020">System operacyjny &amp;Chromium – informacje</translation>
 <translation id="2241627712206172106">Jeśli dzielisz się komputerem ze znajomymi lub rodziną, wszyscy możecie niezależnie przeglądać internet i po swojemu skonfigurować Chromium.</translation>
 <translation id="2347108572062610441">To rozszerzenie ustawiło inną stronę wyświetlaną po uruchomieniu Chromium.</translation>
@@ -187,7 +185,6 @@
 <translation id="7827169012280634081">Wyczyść pliki cookie i dane witryn w momencie zamknięcia Chromium</translation>
 <translation id="7867198900892795913">Aktualizacja Chromium do najnowszej wersji nie udała się, więc nie masz dostępu do najnowszych funkcji i poprawek zabezpieczeń.</translation>
 <translation id="7898472181347242998">Aby sprawdzić, czy urządzenie jest zaktualizowane, otwórz <ph name="LINK_BEGIN" />ustawienia systemu operacyjnego Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Dostępna jest aktualizacja Chromium, która zostanie zastosowana natychmiast po ponownym uruchomieniu.</translation>
 <translation id="7937630085815544518">Byłeś zalogowany w Chromium jako <ph name="USER_EMAIL_ADDRESS" />. Zaloguj się ponownie, korzystając z tego samego konta.</translation>
 <translation id="7975919845073681630">To jest druga instalacja Chromium. Nie można ustawić jej jako przeglądarki domyślnej.</translation>
 <translation id="7979877361127045932">Ukryj w menu Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index afcd1fb..9d640380 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">O Chromium OS não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation>
 <translation id="1524282610922162960">Compartilhar uma guia do Chromium</translation>
 <translation id="1708666629004767631">Há uma nova versão mais segura do Chromium disponível.</translation>
-<translation id="1766096484055239003">Seu administrador exige que você reinicie o Chromium para que uma atualização seja aplicada</translation>
 <translation id="1774152462503052664">Permitir que o Chromium seja executado em segundo plano</translation>
 <translation id="1779356040007214683">Para tornar o Chromium mais seguro, desativamos algumas extensões que não estão listadas na <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e podem ser sido adicionadas sem seu conhecimento.</translation>
 <translation id="1808667845054772817">Reinstalar o Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">O Chromium não está respondendo. Reiniciar agora?</translation>
 <translation id="1966382378801805537">O Chromium não pode determinar ou definir o navegador padrão</translation>
 <translation id="2008474315282236005">Essa ação excluirá 1 item deste dispositivo. Para recuperar seus dados mais tarde, faça login no Chromium como <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Seu administrador pede que você reinicie o Chromium para que essa atualização seja aplicada</translation>
 <translation id="2119636228670142020">Sobre o &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Se você usa um computador compartilhado, seus amigos e familiares podem navegar separadamente e configurar o Chromium da maneira que desejarem.</translation>
 <translation id="2347108572062610441">Esta extensão alterou a página que é exibida quando você inicia o Chromium.</translation>
@@ -183,7 +181,6 @@
 <translation id="7827169012280634081">Limpar cookies e dados de sites ao sair do Chromium</translation>
 <translation id="7867198900892795913">Não foi possível atualizar o Chromium para a versão mais recente. Com isso, você está perdendo novos recursos e correções de segurança.</translation>
 <translation id="7898472181347242998">Para verificar se o dispositivo está atualizado, acesse as <ph name="LINK_BEGIN" />Configurações do Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Uma nova atualização está disponível para o Chromium e será aplicada assim que você reiniciá-lo.</translation>
 <translation id="7937630085815544518">Você estava conectado ao Chromium como <ph name="USER_EMAIL_ADDRESS" />. Use a mesma conta para fazer login novamente.</translation>
 <translation id="7975919845073681630">Como esta é uma instalação secundária do Chromium, ele não pode se tornar seu navegador padrão.</translation>
 <translation id="7979877361127045932">Esconder no menu do Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 1c000ec1..ce820a46 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">O SO Chromium não conseguiu sincronizar os dados porque a sincronização não está disponível para o seu domínio.</translation>
 <translation id="1524282610922162960">Partilhe um separador do Chromium</translation>
 <translation id="1708666629004767631">Está disponível uma versão nova e mais segura do Chromium.</translation>
-<translation id="1766096484055239003">O seu administrador necessita que reinicie o Chromium para aplicar uma atualização.</translation>
 <translation id="1774152462503052664">Permitir que o Chromium seja executado em segundo plano</translation>
 <translation id="1779356040007214683">Para tornar o Chromium mais seguro, desativámos algumas extensões que não estão listadas na <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e é possível que tenham sido adicionadas sem o seu conhecimento.</translation>
 <translation id="1808667845054772817">Reinstalar Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">O Chromium não responde. Reiniciar agora?</translation>
 <translation id="1966382378801805537">O Chromium não consegue determinar ou definir o navegador predefinido</translation>
 <translation id="2008474315282236005">Esta ação elimina 1 item deste dispositivo. Para recuperar os dados mais tarde, inicie sessão no Chromium como <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">O seu administrador solicita-lhe que reinicie o Chromium para aplicar esta atualização.</translation>
 <translation id="2119636228670142020">Acerca do SO &amp;Chromium</translation>
 <translation id="2241627712206172106">Se partilhar um computador, os amigos e os familiares podem navegar separadamente e configurar o Chromium da forma que quiserem.</translation>
 <translation id="2347108572062610441">Esta extensão alterou a página apresentada quando inicia o Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Limpar os cookies e os dados do site quando sair do Chromium</translation>
 <translation id="7867198900892795913">Não foi possível atualizar o Chromium para a versão mais recente, pelo que não está a beneficiar das novas funcionalidades e correções de segurança.</translation>
 <translation id="7898472181347242998">Para ver se o seu dispositivo está atualizado, aceda às <ph name="LINK_BEGIN" />Definições do Chromium OS<ph name="LINK_END" />.</translation>
-<translation id="7901117350626490574">Está disponível uma atualização para o Chromium que será aplicada logo que o reinicie.</translation>
 <translation id="7937630085815544518">Iniciou sessão no Chromium com a conta <ph name="USER_EMAIL_ADDRESS" />. Utilize a mesma conta para iniciar sessão novamente.</translation>
 <translation id="7975919845073681630">Esta é uma instalação secundária do Chromium, pelo que não pode tornar-se o navegador predefinido.</translation>
 <translation id="7979877361127045932">Ocultar no menu do Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index def4ffc..10ca20c 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Sistemul de operare Chromium nu a putut sincroniza datele, deoarece sincronizarea nu este disponibilă pentru domeniul dvs.</translation>
 <translation id="1524282610922162960">Distribuie o filă Chromium</translation>
 <translation id="1708666629004767631">Chromium este disponibil într-o versiune nouă și mai sigură.</translation>
-<translation id="1766096484055239003">Administratorul solicită să relansezi Chromium pentru a aplica o actualizare</translation>
 <translation id="1774152462503052664">Permiteți Chromium să ruleze în fundal</translation>
 <translation id="1779356040007214683">Pentru mai multă siguranță în Chromium, am dezactivat câteva extensii care nu sunt incluse în <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> și care este posibil să fi fost adăugate fără știrea dvs.</translation>
 <translation id="1808667845054772817">Reinstalați Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium nu mai răspunde. Îl reporniți acum?</translation>
 <translation id="1966382378801805537">Chromium nu poate determina sau seta browserul prestabilit</translation>
 <translation id="2008474315282236005">Astfel, se va șterge 1 element de pe acest dispozitiv. Pentru a recupera datele mai târziu, conectează-te la Chromium ca <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Administratorul solicită să relansezi Chromium pentru a aplica această actualizare</translation>
 <translation id="2119636228670142020">Despre sistemul de operare &amp;Chromium</translation>
 <translation id="2241627712206172106">Dacă permiteți accesul la un computer, familia și prietenii pot să navigheze separat și să configureze Chromium cum doresc.</translation>
 <translation id="2347108572062610441">Această extensie a modificat ce pagină se afișează când pornești Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Șterge cookie-urile și datele privind site-urile când închizi Chromium</translation>
 <translation id="7867198900892795913">Chromium nu s-a putut actualiza la cea mai recentă versiune. Astfel, pierzi noi funcții și remedieri de securitate.</translation>
 <translation id="7898472181347242998">Pentru a verifica dacă dispozitivul este actualizat, accesează <ph name="LINK_BEGIN" />Setările sistemului de operare Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Este disponibilă o nouă actualizare pentru Chromium, iar aceasta va fi aplicată după repornire.</translation>
 <translation id="7937630085815544518">Ați fost conectat(ă) la Chromium ca <ph name="USER_EMAIL_ADDRESS" />. Utilizați același cont pentru a vă conecta din nou.</translation>
 <translation id="7975919845073681630">Aceasta este o instalare secundară a browserului Chromium și nu poate fi setat ca browser prestabilit.</translation>
 <translation id="7979877361127045932">Ascunde în meniul Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 52c04b3..6e1f51a 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Не удалось синхронизировать данные, поскольку сервис Sync недоступен в вашем домене.</translation>
 <translation id="1524282610922162960">Откройте доступ к вкладке Chromium</translation>
 <translation id="1708666629004767631">Доступна новая, еще более быстрая версия Chromium.</translation>
-<translation id="1766096484055239003">Администратор требует перезапустить Chromium для установки обновления</translation>
 <translation id="1774152462503052664">Разрешить Chromium работать в фоновом режиме</translation>
 <translation id="1779356040007214683">Чтобы обеспечить безопасность ваших данных, некоторые расширения Chromium были отключены, так как <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> не содержит сведений о них, то есть эти компоненты могли быть установлены без вашего ведома.</translation>
 <translation id="1808667845054772817">Переустановить Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium не отвечает. Перезапустить сейчас?</translation>
 <translation id="1966382378801805537">Chromium не удалось определить или задать браузер по умолчанию</translation>
 <translation id="2008474315282236005">С устройства будет удален 1 объект. Чтобы восстановить данные позже, войдите в Chromium как <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Администратор просит перезапустить Chromium для установки обновления</translation>
 <translation id="2119636228670142020">О &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Если, кроме вас, компьютером пользуется кто-то ещё, например родные или друзья, они тоже смогут настроить Chromium на свой вкус.</translation>
 <translation id="2347108572062610441">Расширение изменило стартовую страницу Chromium.</translation>
@@ -185,7 +183,6 @@
 <translation id="7827169012280634081">Удалять файлы cookie и данные сайтов при выходе из Chromium</translation>
 <translation id="7867198900892795913">Не удалось установить последнюю версию Chromium, в которой добавлены новые функции и обновления системы безопасности.</translation>
 <translation id="7898472181347242998">Чтобы посмотреть, обновлена ли операционная система устройства, перейдите в <ph name="LINK_BEGIN" />настройки Chromium OS<ph name="LINK_END" />.</translation>
-<translation id="7901117350626490574">Для Chromium доступно обновление. Оно будет установлено при перезапуске браузера.</translation>
 <translation id="7937630085815544518">Ранее вы входили в Chromium как <ph name="USER_EMAIL_ADDRESS" />. Войдите снова, используя тот же аккаунт.</translation>
 <translation id="7975919845073681630">Это дополнительная установка Chromium. Его нельзя сделать браузером по умолчанию.</translation>
 <translation id="7979877361127045932">Не показывать в меню Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index 1360d85..356ed1fb7 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Systému OS Chromium sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii.</translation>
 <translation id="1524282610922162960">Zdieľajte kartu prehliadača Chromium</translation>
 <translation id="1708666629004767631">K dispozícii je nová bezpečnejšia verzia prehliadača Chromium.</translation>
-<translation id="1766096484055239003">Správca požaduje, aby ste reštartovali Chromium na použitie aktualizácie</translation>
 <translation id="1774152462503052664">Povoliť prehliadaču Chromium spustenie na pozadí</translation>
 <translation id="1779356040007214683">Z dôvodu vyššej bezpečnosti prehliadača Chromium sme zakázali niektoré rozšírenia, ktoré nedodáva <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohli byť pridané bez vášho vedomia.</translation>
 <translation id="1808667845054772817">Preinštalovať prehliadač Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium nereaguje. Chcete ho spustiť znova?</translation>
 <translation id="1966382378801805537">Chromium nedokáže určiť alebo nastaviť predvolený prehliadač</translation>
 <translation id="2008474315282236005">Táto akcia odstráni zo zariadenia jednu položku. Ak budete chcieť svoje údaje neskôr opäť načítať, prihláste sa do prehliadača Chromium ako <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Správca vás žiada o reštartovanie prehliadača Chromium na použitie tejto aktualizácie</translation>
 <translation id="2119636228670142020">Informácie o systéme &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Ak počítač zdieľate s rodinou a priateľmi, môžu v prehliadači Chromium prehliadať oddelene a tiež si ho nastaviť podľa vlastných požiadaviek.</translation>
 <translation id="2347108572062610441">Toto rozšírenie zmenilo stránku, ktorá sa zobrazí pri spustení prehliadača Chromium.</translation>
@@ -191,7 +189,6 @@
 <translation id="7827169012280634081">Po ukončení prehliadača Chromium vymazať súbory cookie a údaje webov</translation>
 <translation id="7867198900892795913">Chromium sa nepodarilo aktualizovať na najnovšiu verziu. K dispozícii tak nie sú niektoré nové funkcie ani bezpečnostné opravy.</translation>
 <translation id="7898472181347242998">Ak sa chcete pozrieť, či je zariadenie aktualizované, prejdite do <ph name="LINK_BEGIN" />Nastavení operačného systému Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">K dispozícii je aktualizácia pre Chromium, ktorá bude uplatnená po najbližšom opätovnom spustení.</translation>
 <translation id="7937630085815544518">Do prehliadača Chromium ste boli prihlásený/-á ako <ph name="USER_EMAIL_ADDRESS" />. Ak sa chcete prihlásiť znova, použite rovnaký účet.</translation>
 <translation id="7975919845073681630">Toto je sekundárna inštalácia prehliadača Chromium – nemôže byť nastavený ako váš predvolený prehliadač.</translation>
 <translation id="7979877361127045932">Skryť v Ponuke Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index 8cbdaf4..333d6f7 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium OS ni mogel sinhronizirati podatkov, ker sinhronizacija ni na voljo za vašo domeno.</translation>
 <translation id="1524282610922162960">Deljenje zavihka v Chromiumu</translation>
 <translation id="1708666629004767631">Na voljo je nova, varnejša različica Chromiuma.</translation>
-<translation id="1766096484055239003">Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium</translation>
 <translation id="1774152462503052664">Naj se Chromium izvaja v ozadju</translation>
 <translation id="1779356040007214683">Zaradi večje varnosti smo v Chromiumu onemogočili nekatere razširitve, ki niso navedene v storitvi <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> in so bile morda dodane brez vaše vednosti.</translation>
 <translation id="1808667845054772817">Vnovična namestitev Chromiuma</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium se ne odziva. Ga želite znova zagnati?</translation>
 <translation id="1966382378801805537">Chromium ne more določiti ali nastaviti privzetega brskalnika</translation>
 <translation id="2008474315282236005">S tem bo iz te naprave izbrisan 1 element. Če želite pozneje prenesti podatke, se v Chromium prijavite kot <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Skrbnik prosi, da za uveljavitev te posodobitve znova zaženete Chromium</translation>
 <translation id="2119636228670142020">O sistemu &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Če računalnik souporabljate z drugimi, lahko prijatelji in sorodniki ločeno brskajo ter nastavijo Chromium tako, kot ga želijo.</translation>
 <translation id="2347108572062610441">Zaradi te razširitve se je spremenila stran, ki je prikazana, ko zaženete Chromium.</translation>
@@ -193,7 +191,6 @@
 <translation id="7827169012280634081">Izbris piškotkov in podatkov spletnih mest, ko zaprete Chromium</translation>
 <translation id="7867198900892795913">Chromiuma ni bilo mogoče posodobiti na najnovejšo različico, zato nimate novih funkcij in varnostnih popravkov.</translation>
 <translation id="7898472181347242998">Če želite preveriti, ali je naprava posodobljena, odprite <ph name="LINK_BEGIN" />nastavitve sistema Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Na voljo je nova posodobitev za Chromium, ki bo nameščena, takoj ko ga znova zaženete.</translation>
 <translation id="7937630085815544518">V Chromium ste bili prijavljeni kot <ph name="USER_EMAIL_ADDRESS" />. Pri vnovični prijavi uporabite isti račun.</translation>
 <translation id="7975919845073681630">To je sekundarna namestitev Chromiuma in ga ni mogoče nastaviti kot privzeti brskalnik.</translation>
 <translation id="7979877361127045932">Skrij v meniju Chromiuma</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index d455ba0..920a784 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Chromium ОС не може да синхронизује податке јер Синхронизација није доступна за домен.</translation>
 <translation id="1524282610922162960">Делите Chromium картицу</translation>
 <translation id="1708666629004767631">Доступна је нова, безбеднија верзија Chromium-а.</translation>
-<translation id="1766096484055239003">Администратор захтева да поново покренете Chromium да бисте применили ажурирање</translation>
 <translation id="1774152462503052664">Нека Chromium ради у позадини</translation>
 <translation id="1779356040007214683">Да бисмо учинили Chromium безбеднијим, онемогућили смо неке додатке које не наводи <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> и који су можда додати без вашег знања.</translation>
 <translation id="1808667845054772817">Поново инсталирај Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium не реагује. Желите ли да га одмах поново покренете?</translation>
 <translation id="1966382378801805537">Chromium не може да одреди ни да подеси подразумевани прегледач</translation>
 <translation id="2008474315282236005">Овим ћете избрисати 1 ставку са овог уређаја. Да бисте касније вратили податке, пријавите се у Chromium као <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Администратор тражи да поново покренете Chromium да бисте применили ово ажурирање</translation>
 <translation id="2119636228670142020">О &amp;Chromium ОС-у</translation>
 <translation id="2241627712206172106">Ако делите рачунар, пријатељи и породица могу засебно да прегледају и да подесе Chromium баш онако како желе.</translation>
 <translation id="2347108572062610441">Овај додатак је променио страницу која се приказује када покренете Chromium.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Обриши колачиће и податке о сајтовима кад изађем из Chromium-а</translation>
 <translation id="7867198900892795913">Chromium није успео да се ажурира на најновију верзију, па пропуштате нове функције и безбедносне исправке.</translation>
 <translation id="7898472181347242998">Да бисте проверили да ли је уређај ажуриран, идите у <ph name="LINK_BEGIN" />Подешавања Chromium ОС-а<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Ново ажурирање за Chromium је доступно и примениће се чим га поново покренете.</translation>
 <translation id="7937630085815544518">Били сте пријављени на Chromium као <ph name="USER_EMAIL_ADDRESS" />. Користите исти налог да бисте се поново пријавили.</translation>
 <translation id="7975919845073681630">Ово је секундарна инсталација Chromium-а па не можете да га подесите као подразумевани прегледач.</translation>
 <translation id="7979877361127045932">Сакриј у Chromium менију</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index fb49b73..ecbd662 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Det gick inte att synkronisera data med Chromium eftersom synkronisering inte är tillgängligt för domänen.</translation>
 <translation id="1524282610922162960">Dela en flik i Chromium</translation>
 <translation id="1708666629004767631">Det finns en ny, ännu säkrare version av Chromium.</translation>
-<translation id="1766096484055239003">Administratören meddelar att du måste starta om Chromium så att en uppdatering tillämpas</translation>
 <translation id="1774152462503052664">Låt Chromium köras i bakgrunden</translation>
 <translation id="1779356040007214683">Vi har gjort Chromium säkrare genom att inaktivera vissa tillägg som inte finns i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> och som kan ha lagts till utan att du vet om det.</translation>
 <translation id="1808667845054772817">Installera om Chromium</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium svarar inte. Vill du starta om?</translation>
 <translation id="1966382378801805537">Chromium kan inte fastställa eller ange standardwebbläsaren</translation>
 <translation id="2008474315282236005">Ett objekt tas bort från enheten. Logga in i Chromium som <ph name="USER_EMAIL" /> om du vill kunna återställa datan senare.</translation>
-<translation id="2117378023188580026">Administratören meddelar att du bör starta om Chromium så att uppdateringen tillämpas</translation>
 <translation id="2119636228670142020">Om &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Om du delar en dator med vänner och familj kan de konfigurera Chromium precis som de vill och surfa separat.</translation>
 <translation id="2347108572062610441">Det här tillägget har ändrat vilken sida som visas när du startar Chromium.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Radera cookies och webbplatsdata när du avslutar Chromium</translation>
 <translation id="7867198900892795913">Det gick inte att uppdatera Chromium till den senaste versionen. Därför går du miste om nya funktioner och säkerhetskorrigeringar.</translation>
 <translation id="7898472181347242998">Om du vill se om enheten är uppdaterad öppnar du <ph name="LINK_BEGIN" />inställningarna för Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Det finns en ny Chromium-uppdatering som tillämpas så snart du startar om.</translation>
 <translation id="7937630085815544518">Du var inloggad i Chromium som <ph name="USER_EMAIL_ADDRESS" />. Använd samma konto när du loggar in igen.</translation>
 <translation id="7975919845073681630">Det här är en sekundär installation av Chromium. Det går inte att göra den till standardwebbläsare.</translation>
 <translation id="7979877361127045932">Dölj i Chromium-menyn</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index 54f3cbb..db82f843 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -13,7 +13,6 @@
 <translation id="151962892725702025">Mfumo wa Uendeshaji wa Chromium haukuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani kwa kikoa chako.</translation>
 <translation id="1524282610922162960">Shiriki kichupo cha Chromium</translation>
 <translation id="1708666629004767631">Kuna toleo jipya, na salama linalopatikana la Chromium.</translation>
-<translation id="1766096484055239003">Msimamizi wako anakushauri uwashe Chromium upya ili utumie sasisho</translation>
 <translation id="1774152462503052664">Acha Chromium iendeshe katika mandharinyuma</translation>
 <translation id="1779356040007214683">Ili kufanya Chromium salama zaidi, tumezima baadhi ya viendelezi ambavyo havijaorodheshwa katika <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> na ambavyo huendwa viliongezwa pasipo ridhaa yako.</translation>
 <translation id="1808667845054772817">Sakinisha Chromium Upya</translation>
@@ -22,7 +21,6 @@
 <translation id="1929939181775079593">Chromium haiamiliki. Zindua upya sasa?</translation>
 <translation id="1966382378801805537">Chromium haijafaulu kubainisha wala kuweka kivinjari chaguomsingi</translation>
 <translation id="2008474315282236005">Hatua hii itafuta kipengee 1 kwenye kifaa hiki. Ili urejeshe data yako baadaye, ingia katika Chromium ukitumia <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Msimamizi wako anakuomba uwashe Chromium upya ili utumie sasisho</translation>
 <translation id="2119636228670142020">Kuhusu Chromium OS</translation>
 <translation id="2241627712206172106">Kama unatumia kompyuta pamoja na wengine, marafiki na familia wanaweza kuvinjari tofauti na kusanidi Chromium jinsi wapendavyo.</translation>
 <translation id="2347108572062610441">Kiendelezi hiki kimebadilisha ukurasa unaoonyeshwa unapoanzisha Chromium.</translation>
@@ -192,7 +190,6 @@
 <translation id="7827169012280634081">Futa vidakuzi na data ya tovuti unapofunga Chromium</translation>
 <translation id="7867198900892795913">Chromium imeshindwa kusasisha toleo jipya, kwa hivyo hutapata masasisho ya usalama na vipengele vipya.</translation>
 <translation id="7898472181347242998">Ili uone ikiwa kifaa chako kimesasishwa, nenda kwenye <ph name="LINK_BEGIN" />Mipanglio ya Mfumo wa Uendeshaji wa Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Sasisho jipya la Chromium linapatikana na litaanza kutumika pindi utakapofungua tena.</translation>
 <translation id="7937630085815544518">Uliingia kwenye Chromium kama <ph name="USER_EMAIL_ADDRESS" />. Tafadhali tumia akaunti hiyo hiyo kuingia tena.</translation>
 <translation id="7975919845073681630">Huu ni usakinishaji wa pili wa Chromium, na haiwezi kufanywa kuwa kivinjari chako chaguomsingi.</translation>
 <translation id="7979877361127045932">Ficha katika menyu ya Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index c3a5cdb..ae4e5a1 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">உங்கள் களத்திற்கு ஒத்திசைவு கிடைக்கவில்லை என்பதால், Chromium OS ஆல் உங்கள் தரவை ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="1524282610922162960">Chromium தாவலைப் பகிர்தல்</translation>
 <translation id="1708666629004767631">Chromium இன் புதிய, பாதுகாப்பான பதிப்பு கிடைக்கிறது.</translation>
-<translation id="1766096484055239003">புதுப்பிப்பைப் பயன்படுத்த, Chromiumஐ மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி சொல்கிறார்</translation>
 <translation id="1774152462503052664">பின்புலத்தில் Chromium ஐ இயக்கு</translation>
 <translation id="1779356040007214683">Chromium ஐப் பாதுகாப்பானதாக்க <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> இல் பட்டியலிடப்படாத சில நீட்டிப்புகளை நாங்கள் முடக்கிவிட்டோம், மேலும் அவை உங்களுக்குத் தெரியாமல் சேர்க்கப்பட்டிருக்கலாம்.</translation>
 <translation id="1808667845054772817">Chromium ஐ மீண்டும்நிறுவு</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium பதிலளிக்கவில்லை. இப்போது மீண்டும் தொடங்கவா?</translation>
 <translation id="1966382378801805537">இயல்புநிலை உலாவியைக் கண்டறியவோ அமைக்கவோ Chromium ஆல் முடியவில்லை</translation>
 <translation id="2008474315282236005">வெளியேறினால், இந்தச் சாதனத்திலிருந்து ஓர் உருப்படி நீக்கப்படும். பின்னர் தரவை மீட்டமைக்க, Chromium இல் <ph name="USER_EMAIL" /> எனும் முகவரியின் மூலம் உள்நுழையவும்.</translation>
-<translation id="2117378023188580026">இந்தப் புதுப்பிப்பைப் பயன்படுத்த, Chromiumஐ மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி பரிந்துரைக்கிறார்</translation>
 <translation id="2119636228670142020">&amp;Chromium OS அறிமுகம்</translation>
 <translation id="2241627712206172106">நீங்கள் கம்ப்யூட்டரைப் பகிர்ந்தால், நண்பர்களும் குடும்பத்தினரும் தனிப்பட்ட முறையில் உலாவலாம், மேலும் Chromiumமை அவர்கள் விருப்பத்திற்கு ஏற்ப அமைத்துக்கொள்ளலாம்.</translation>
 <translation id="2347108572062610441">Chromiumஐத் தொடங்கும் போது காண்பிக்கப்படும் பக்கத்தை இந்த நீட்டிப்பு மாற்றியுள்ளது.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">நீங்கள் Chromiumமை விட்டு வெளியேறும் போது குக்கீகளையும் வலைதளத் தரவையும் அழிக்கும்</translation>
 <translation id="7867198900892795913">Chromium சமீபத்திய பதிப்பிற்குப் புதுப்பிக்கப்படவில்லை என்பதால், புதிய அம்சங்களையும் பாதுகாப்புத் திருத்தங்களையும் தவறவிடுகிறீர்கள்.</translation>
 <translation id="7898472181347242998">உங்கள் சாதனம் புதுப்பித்த நிலையில் உள்ளதா என்பதைப் பார்க்க <ph name="LINK_BEGIN" />Chromium OS அமைப்புகளுக்குச்<ph name="LINK_END" /> செல்லவும்</translation>
-<translation id="7901117350626490574">Chromiumமின் புதிய புதுப்பிப்பு உள்ளது, மீண்டும் தொடங்கும்போது அது பயன்படுத்தப்படும்.</translation>
 <translation id="7937630085815544518">Chromiumமில் <ph name="USER_EMAIL_ADDRESS" /> ஆக உள்நுழைந்திருந்தீர்கள். மீண்டும் உள்நுழைய அதே கணக்கைப் பயன்படுத்தவும்.</translation>
 <translation id="7975919845073681630">இது Chromium இன் இரண்டாம் நிலை நிறுவல் என்பதால், அதை இயல்புநிலை உலாவியாக அமைக்க முடியாது.</translation>
 <translation id="7979877361127045932">Chromium மெனுவில் மறை</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 907b7ac..5af8ffd 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">మీ డొమైన్ కోసం సింక్‌ అందుబాటులో లేనందున, Chromium OS, మీ డేటాను సింక్ చేయ‌లేక‌పోయింది.</translation>
 <translation id="1524282610922162960">Chromium ట్యాబ్‌ను షేర్ చేయండి</translation>
 <translation id="1708666629004767631">Chromium యొక్క కొత్త సురక్షితమైన వెర్షన్ అందుబాటులో ఉంది.</translation>
-<translation id="1766096484055239003">అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromiumను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు</translation>
 <translation id="1774152462503052664">నేపథ్యంలో Chromiumని అమలు చేయడానికి అనుమతించు</translation>
 <translation id="1779356040007214683">Chromiumను సురక్షితం చేయడానికి, మేము <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />లో జాబితా చేయబడని మరియు మీకు తెలియకుండానే జోడించబడిన కొన్ని పొడిగింపులను నిలిపివేసాము.</translation>
 <translation id="1808667845054772817">Chromiumను మళ్లీ ఇన్‌స్టాల్ చేయి</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium ప్రతిస్పందించడం లేదు. ఇప్పుడు మళ్లీ ప్రారంభించాలా?</translation>
 <translation id="1966382378801805537">Chromium డిఫాల్ట్ బ్రౌజర్‌ను నిశ్చయించలేదు లేదా సెట్ చేయలేదు</translation>
 <translation id="2008474315282236005">ఇది ఈ పరికరం నుండి 1 అంశాన్ని తొలగిస్తుంది. మీ డేటాను తర్వాత తిరిగి పొందడానికి, Chromiumకు <ph name="USER_EMAIL" /> లాగా సైన్ ఇన్ చేయండి.</translation>
-<translation id="2117378023188580026">ఈ అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromiumను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు</translation>
 <translation id="2119636228670142020">&amp;Chromium OS గురించి</translation>
 <translation id="2241627712206172106">మీరు కంప్యూటర్‌ను షేర్‌ చేస్తే, స్నేహితులు, కుటుంబ సభ్యులు విడివిడిగా బ్రౌజ్ చేయవచ్చు. Chromiumను వారికి నచ్చిన రీతిలో సెటప్ చేసుకోవచ్చు.</translation>
 <translation id="2347108572062610441">ఈ పొడిగింపు మీరు Chromiumని ప్రారంభించినప్పుడు చూపబడే పేజీని మార్చింది.</translation>
@@ -186,7 +184,6 @@
 <translation id="7827169012280634081">మీరు Chromium నుండి నిష్క్రమించినప్పుడు, కుక్కీలు, సైట్ డేటాను క్లియర్ చేయండి</translation>
 <translation id="7867198900892795913">Chromiumను తాజా వెర్షన్‌కు అప్‌డేట్ చేయడం సాధ్యం కాలేదు, కాబట్టి మీరు కొత్త ఫీచర్‌లు మరియు భద్రతా పరిష్కారాలను పొందడం లేదు.</translation>
 <translation id="7898472181347242998">మీ పరికరం అప్‌డేట్ చేయబడి ఉందని చూడటానికి <ph name="LINK_BEGIN" />Chromium OS సెట్టింగ్‌లు<ph name="LINK_END" />కు వెళ్లండి</translation>
-<translation id="7901117350626490574">Chromiumకు కొత్త అప్‌డేట్ అందుబాటులో ఉంది మరియు మీరు పునఃప్రారంభించిన వెంటనే వర్తింపజేయబడుతుంది.</translation>
 <translation id="7937630085815544518">మీరు <ph name="USER_EMAIL_ADDRESS" />గా Chromiumకు సైన్ ఇన్ చేశారు. దయచేసి మళ్లీ సైన్ ఇన్ చేయడానికి ఇదే ఖాతాను ఉపయోగించండి.</translation>
 <translation id="7975919845073681630">ఇది Chromium రెండవ ఇన‌స్ట‌లేష‌న్. దీన్ని మీ డిఫాల్ట్ బ్రౌజర్‌గా చేయడం సాధ్యపడదు.</translation>
 <translation id="7979877361127045932">Chromium మెనూలో దాచండి</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index a3911d3..b98d5f2 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากการซิงค์ไม่พร้อมให้บริการสำหรับโดเมนของคุณ</translation>
 <translation id="1524282610922162960">แชร์แท็บ Chromium</translation>
 <translation id="1708666629004767631">Chromium รุ่นใหม่ที่ปลอดภัยกว่าเดิมพร้อมให้ใช้งานแล้ว</translation>
-<translation id="1766096484055239003">ผู้ดูแลระบบต้องการให้คุณเปิด Chromium ขึ้นมาใหม่เพื่อใช้การอัปเดต</translation>
 <translation id="1774152462503052664">ให้ Chromium ทำงานในพื้นหลัง</translation>
 <translation id="1779356040007214683">เพื่อให้ Chromium ปลอดภัยขึ้น เราได้ปิดส่วนขยายบางรายการที่ไม่ได้ระบุไว้ใน <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> และอาจถูกเพิ่มเข้ามาโดยที่คุณไม่รู้ตัว</translation>
 <translation id="1808667845054772817">ติดตั้ง Chromium ใหม่</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium ไม่ตอบสนอง เปิดใหม่เลยหรือไม่</translation>
 <translation id="1966382378801805537">Chromium ไม่สามารถกำหนดหรือตั้งค่าเบราว์เซอร์เริ่มต้น</translation>
 <translation id="2008474315282236005">การดำเนินการนี้จะลบ 1 รายการออกจากอุปกรณ์นี้ หากต้องการดึงข้อมูลภายหลัง ให้ลงชื่อเข้าใช้ Chromium ด้วย <ph name="USER_EMAIL" /></translation>
-<translation id="2117378023188580026">ผู้ดูแลระบบขอให้คุณเปิด Chromium ขึ้นมาใหม่เพื่อใช้การอัปเดตนี้</translation>
 <translation id="2119636228670142020">เกี่ยวกับ &amp;Chromium OS</translation>
 <translation id="2241627712206172106">ถ้าคุณให้ผู้อื่นใช้คอมพิวเตอร์ร่วมด้วย เพื่อนๆ และครอบครัวของคุณสามารถท่องเว็บแยกกันได้และตั้งค่า Chromium ได้ตามที่พวกเขาต้องการ</translation>
 <translation id="2347108572062610441">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chromium</translation>
@@ -189,7 +187,6 @@
 <translation id="7827169012280634081">ล้างคุกกี้และข้อมูลเว็บไซต์เมื่อปิด Chromium</translation>
 <translation id="7867198900892795913">Chromium อัปเดตเป็นเวอร์ชันล่าสุดไม่ได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่และการแก้ไขด้านความปลอดภัย</translation>
 <translation id="7898472181347242998">หากต้องการดูว่าอุปกรณ์เป็นเวอร์ชันล่าสุดแล้วหรือไม่ ให้ไปที่<ph name="LINK_BEGIN" />การตั้งค่า Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">อัปเดตใหม่ของ Chromium พร้อมให้ใช้งานแล้วและระบบจะใช้อัปเดตดังกล่าวเมื่อคุณเปิด Chromium ขึ้นมาใหม่</translation>
 <translation id="7937630085815544518">คุณเคยลงชื่อเข้าใช้ Chromium ในชื่อ <ph name="USER_EMAIL_ADDRESS" /> โปรดใช้บัญชีเดิมเพื่อลงชื่อเข้าใช้อีกครั้ง</translation>
 <translation id="7975919845073681630">นี่เป็นการติดตั้ง Chromium แบบสำรอง และไม่สามารถใช้เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="7979877361127045932">ซ่อนในเมนู Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index 7cdfce1..db04b2b 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Senkronizasyon alan adınızda kullanılamadığından Chromium OS, verilerinizi senkronize edemedi.</translation>
 <translation id="1524282610922162960">Chromium sekmesini paylaşın</translation>
 <translation id="1708666629004767631">Chromium'un kullanabileceğiniz yeni, daha güvenli bir sürümü var.</translation>
-<translation id="1766096484055239003">Yöneticiniz bir güncellemeyi uygulamak için Chromium'u yeniden başlatmanızı gerektiriyor</translation>
 <translation id="1774152462503052664">Chromium'un arka planda çalışmasına izin ver</translation>
 <translation id="1779356040007214683">Chromium'u daha güvenli bir hale getirmek için <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> altında listelenmeyen ve bilginiz dışında eklenmiş olabilecek bazı uzantıları devre dışı bıraktık.</translation>
 <translation id="1808667845054772817">Chromium'u yeniden yükle</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium yanıt vermiyor. Şimdi yeniden başlatılsın mı?</translation>
 <translation id="1966382378801805537">Chromium, varsayılan tarayıcıyı tespit edemiyor veya ayarlayamıyor</translation>
 <translation id="2008474315282236005">Bu işlem 1 öğeyi bu cihazdan silecektir. Verilerinizi daha sonra geri almak için Chromium'da <ph name="USER_EMAIL" /> hesabıyla oturum açın.</translation>
-<translation id="2117378023188580026">Yöneticiniz bu güncellemeyi uygulamak için Chromium'u yeniden başlatmanızı istiyor</translation>
 <translation id="2119636228670142020">&amp;Chromium OS hakkında</translation>
 <translation id="2241627712206172106">Bir bilgisayarı paylaşıyorsanız arkadaşlarınız ve aileniz ayrı olarak göz atabilir ve Chromium'u tam olarak istedikleri şekilde ayarlayabilir.</translation>
 <translation id="2347108572062610441">Bu uzantı, Chromium'u başlattığınızda gösterilen sayfayı değiştirdi.</translation>
@@ -188,7 +186,6 @@
 <translation id="7827169012280634081">Chromium'dan çıktığımda çerezleri ve site verilerini temizle</translation>
 <translation id="7867198900892795913">Chromium en son sürüme güncellenemediği için yeni özellikler ve güvenlik düzeltmeleri cihazınızda bulunmuyor.</translation>
 <translation id="7898472181347242998">Cihazınızın güncel olup olmadığını görmek için <ph name="LINK_BEGIN" />Chromium OS Ayarları<ph name="LINK_END" />'na gidin</translation>
-<translation id="7901117350626490574">Chromium için yeni bir güncelleme var. Yeniden başlattığınızda güncelleme hemen uygulanacaktır.</translation>
 <translation id="7937630085815544518">Chromium'da <ph name="USER_EMAIL_ADDRESS" /> olarak oturum açtınız. Tekrar oturum açmak için lütfen aynı hesabı kullanın.</translation>
 <translation id="7975919845073681630">Bu, Chromium'un ikincil bir yüklemesidir ve varsayılan tarayıcınız yapılamaz.</translation>
 <translation id="7979877361127045932">Chromium menüsünde gizle</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index 5142dce..911b7795 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">ОС Chromium не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation>
 <translation id="1524282610922162960">Поділитися вкладкою Chromium</translation>
 <translation id="1708666629004767631">Доступна нова, надійніша версія Chromium.</translation>
-<translation id="1766096484055239003">Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення</translation>
 <translation id="1774152462503052664">Дозволити Chromium працювати у фоновому режимі</translation>
 <translation id="1779356040007214683">Щоб зробити Chromium безпечнішим, ми вимкнути деякі розширення, джерелом яких не є <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, і які, можливо, було додано без вашого відома.</translation>
 <translation id="1808667845054772817">Перевстановити Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium не відповідає. Перезапустити зараз?</translation>
 <translation id="1966382378801805537">Chromium не може визначити чи встановити веб-переглядач за умовчанням</translation>
 <translation id="2008474315282236005">1 елемент буде видалено з цього пристрою. Щоб відновити дані пізніше, увійдіть в обліковий запис Chromium як <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Адміністратор просить перезапустити Chromium, щоб застосувати це оновлення</translation>
 <translation id="2119636228670142020">Про &amp;ОС Chromium</translation>
 <translation id="2241627712206172106">Якщо вашим комп’ютером користуєтесь не лише ви, а й ваші друзі чи сім’я, вони можуть налаштувати Chromium на свій смак.</translation>
 <translation id="2347108572062610441">Це розширення змінило сторінку, яка відкривається під час запуску Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Видаляти файли cookie й дані сайтів, коли ви закриваєте Chromium</translation>
 <translation id="7867198900892795913">Не вдалось оновити Chromium до останньої версії. Ви не зможете скористатися новими функціями та застосувати виправлення системи безпеки.</translation>
 <translation id="7898472181347242998">Щоб дізнатися, чи пристрій використовує актуальну версію операційної системи, перейдіть у <ph name="LINK_BEGIN" />налаштування ОС Chromium<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Доступне оновлення Chromium, його буде застосовано відразу після перезапуску.</translation>
 <translation id="7937630085815544518">Ви ввійшли в Chromium як <ph name="USER_EMAIL_ADDRESS" />. Скористайтеся тим самим обліковим записом, щоб увійти знову.</translation>
 <translation id="7975919845073681630">Це додаткове встановлення Chromium. Його не можна зробити вашим веб-переглядачем за умовчанням.</translation>
 <translation id="7979877361127045932">Сховати в меню Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index f18ea54b..e6999d5 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">Chromium OS không thể đồng bộ hóa dữ liệu của bạn vì Đồng bộ hóa không khả dụng với miền của bạn.</translation>
 <translation id="1524282610922162960">Chia sẻ một tab Chromium</translation>
 <translation id="1708666629004767631">Hiện đã có phiên bản Chromium mới an toàn hơn.</translation>
-<translation id="1766096484055239003">Quản trị viên của bạn yêu cầu bạn chạy lại Chromium để áp dụng bản cập nhật</translation>
 <translation id="1774152462503052664">Cho phép Chromium chạy dưới nền</translation>
 <translation id="1779356040007214683">Để làm cho Chromium an toàn hơn, chúng tôi đã vô hiệu hóa một số tiện ích không được liệt kê trong <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> và có thể đã được thêm mà bạn không biết.</translation>
 <translation id="1808667845054772817">Cài đặt lại Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium không phản hồi. Chạy lại ngay bây giờ?</translation>
 <translation id="1966382378801805537">Chromium không thể xác định hoặc đặt trình duyệt mặc định</translation>
 <translation id="2008474315282236005">Thao tác này sẽ xóa 1 mục khỏi thiết bị này. Để truy xuất dữ liệu của bạn sau, hãy đăng nhập vào Chromium dưới dạng <ph name="USER_EMAIL" />.</translation>
-<translation id="2117378023188580026">Quản trị viên của bạn yêu cầu bạn chạy lại Chromium để áp dụng bản cập nhật này</translation>
 <translation id="2119636228670142020">Giới thiệu về &amp;Chromium OS</translation>
 <translation id="2241627712206172106">Nếu bạn chia sẻ máy tính, bạn bè và gia đình có thể duyệt web một cách riêng biệt và thiết lập Chromium theo ý của họ.</translation>
 <translation id="2347108572062610441">Tiện ích này đã thay đổi trang nào được hiển thị khi bạn khởi động Chromium.</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">Xóa cookie và dữ liệu trang web khi bạn thoát khỏi Chromium</translation>
 <translation id="7867198900892795913">Chromium không thể cập nhật lên phiên bản mới nhất nên bạn đang bỏ lỡ các tính năng và bản vá bảo mật mới.</translation>
 <translation id="7898472181347242998">Để kiểm tra xem thiết bị của bạn đã cập nhật hay chưa, hãy chuyển đến phần <ph name="LINK_BEGIN" />Cài đặt Chromium OS<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Đã có bản cập nhật Chromium mới và bản cập nhật này sẽ áp dụng ngay khi bạn chạy lại.</translation>
 <translation id="7937630085815544518">Bạn đã đăng nhập vào Chromium là <ph name="USER_EMAIL_ADDRESS" />. Vui lòng sử dụng cùng tài khoản để đăng nhập lại.</translation>
 <translation id="7975919845073681630">Đây là cài đặt thứ cấp của Chromium và không thể trở thành trình duyệt mặc định của bạn.</translation>
 <translation id="7979877361127045932">Ẩn trong menu Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index 346956f..204cbca 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">由于您的网域停用了同步功能,Chromium操作系统无法同步您的数据。</translation>
 <translation id="1524282610922162960">共享 Chromium 标签页</translation>
 <translation id="1708666629004767631">Chromium 现已推出更安全的新版本。</translation>
-<translation id="1766096484055239003">您的管理员要求您重新启动 Chromium 以应用一项更新</translation>
 <translation id="1774152462503052664">让 Chromium 在后台运行</translation>
 <translation id="1779356040007214683">为了提高 Chromium 的安全性,系统停用了一些未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />中、可能是在您不知情的情况下添加的扩展程序。</translation>
 <translation id="1808667845054772817">重新安装Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium 未响应。要立即重新启动吗?</translation>
 <translation id="1966382378801805537">Chromium 无法确定或设置默认浏览器</translation>
 <translation id="2008474315282236005">这会从这台设备上删除 1 项内容。如果日后想要检索您的数据,届时请以 <ph name="USER_EMAIL" /> 的身份登录 Chromium。</translation>
-<translation id="2117378023188580026">您的管理员要求您重新启动 Chromium 以应用此项更新</translation>
 <translation id="2119636228670142020">关于 Chromium 操作系统(&amp;C)</translation>
 <translation id="2241627712206172106">如果您与亲朋好友共用计算机,他们将能够使用单独的帐号进行浏览,并可随心所欲地设置Chromium。</translation>
 <translation id="2347108572062610441">此扩展程序更改了 Chromium 启动后系统显示的页面。</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">退出 Chromium 时清除 Cookie 及网站数据</translation>
 <translation id="7867198900892795913">Chromium 无法更新至最新版本,因此您未能获得最新的功能和安全修复程序。</translation>
 <translation id="7898472181347242998">若想确认您设备上的操作系统是否是最新版本,请前往 <ph name="LINK_BEGIN" />Chromium 操作系统设置<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">Chromium 有一项新的可用更新;一旦您重新启动,系统即会应用这项更新。</translation>
 <translation id="7937630085815544518">您之前登录 Chromium 时使用的帐号为 <ph name="USER_EMAIL_ADDRESS" />,请使用同一帐号再次登录。</translation>
 <translation id="7975919845073681630">这是 Chromium 的并行安装,您无法将此浏览器设为默认浏览器。</translation>
 <translation id="7979877361127045932">在 Chromium 菜单中隐藏</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index fcf164ff..93f7076 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -11,7 +11,6 @@
 <translation id="151962892725702025">你的網域無法使用「同步功能」,因此 Chromium 作業系統無法同步處理你的資料。</translation>
 <translation id="1524282610922162960">分享 Chromium 分頁</translation>
 <translation id="1708666629004767631">新版 Chromium 現已推出,安全更上一層樓。</translation>
-<translation id="1766096484055239003">你的管理員要求你重新啟動 Chromium,以套用更新</translation>
 <translation id="1774152462503052664">讓 Chromium 在背景執行</translation>
 <translation id="1779356040007214683">為了讓 Chromium 的安全性更有保障,我們已將部分未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> 中的擴充功能停用,它們可能在你不知情的情況下加入瀏覽器。</translation>
 <translation id="1808667845054772817">重新安裝 Chromium</translation>
@@ -20,7 +19,6 @@
 <translation id="1929939181775079593">Chromium 沒有回應,要立即重新啟動嗎?</translation>
 <translation id="1966382378801805537">Chromium 無法偵測或設定預設瀏覽器</translation>
 <translation id="2008474315282236005">登出後,系統會將 1 個項目從這個裝置上刪除。日後如要重新取得你的資料,請以 <ph name="USER_EMAIL" /> 身分登入 Chromium。</translation>
-<translation id="2117378023188580026">你的管理員請你重新啟動 Chromium,以套用這項更新</translation>
 <translation id="2119636228670142020">關於 Chromium 作業系統(&amp;C)</translation>
 <translation id="2241627712206172106">如果你與親朋好友共用電腦,人人皆可享有獨立的瀏覽空間,依照自己的偏好設定 Chromium。</translation>
 <translation id="2347108572062610441">這個擴充功能已變更 Chromium 啟動時所顯示的網頁。</translation>
@@ -190,7 +188,6 @@
 <translation id="7827169012280634081">當你關閉 Chromium 時,清除 Cookie 和網站資料</translation>
 <translation id="7867198900892795913">Chromium 無法更新至最新版本,因此你並未取得最新功能和安全性問題修正。</translation>
 <translation id="7898472181347242998">如要查看你的裝置是否為最新版,請前往 <ph name="LINK_BEGIN" />Chromium 作業系統設定<ph name="LINK_END" /></translation>
-<translation id="7901117350626490574">有可用的 Chromium 更新,只要重新啟動 Chromium 即可套用。</translation>
 <translation id="7937630085815544518">你使用了 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入 Chromium,請使用相同帳戶重新登入。</translation>
 <translation id="7975919845073681630">這是以並存形式安裝的次要 Chromium,無法設為您的預設瀏覽器。</translation>
 <translation id="7979877361127045932">在 Chromium 選單中隱藏</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index c6ccf3a..3f5908e 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -128,7 +128,7 @@
 <translation id="117916940443676133">La clau de seguretat no està protegida amb un PIN. Per gestionar les dades d'inici de sessió, primer crea un PIN.</translation>
 <translation id="1181037720776840403">Suprimeix</translation>
 <translation id="1183237619868651138">No es pot instal·lar <ph name="EXTERNAL_CRX_FILE" /> a la memòria cau local.</translation>
-<translation id="1185924365081634987">També podeu provar de <ph name="GUEST_SIGNIN_LINK_START" />navegar com a convidat<ph name="GUEST_SIGNIN_LINK_END" /> per corregir aquest error de xarxa.</translation>
+<translation id="1185924365081634987">També podeu provar de <ph name="GUEST_SIGNIN_LINK_START" />navegar com a convidat<ph name="GUEST_SIGNIN_LINK_END" /> per corregir aquest error de la xarxa.</translation>
 <translation id="1186771945450942097">Suprimeix el programari nociu</translation>
 <translation id="1187722533808055681">Activacions en estat de repòs</translation>
 <translation id="1188807932851744811">El registre no s'ha penjat.</translation>
@@ -1527,7 +1527,7 @@
 <translation id="323803881985677942">Obre les opcions de l'extensió</translation>
 <translation id="3241680850019875542">Seleccioneu el directori arrel de l'extensió que voleu empaquetar. Per actualitzar una extensió, cal que seleccioneu també el fitxer de clau privada que s'utilitzarà.</translation>
 <translation id="3244294424315804309">Continua silenciant el so</translation>
-<translation id="324849028894344899"><ph name="WINDOW_TITLE" />: error de xarxa</translation>
+<translation id="324849028894344899"><ph name="WINDOW_TITLE" />: error de la xarxa</translation>
 <translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;No forma part del certificat&gt;</translation>
 <translation id="3253225298092156258">No disponible</translation>
@@ -2154,7 +2154,7 @@
 <translation id="4096824249111507322">S'està preparant el mòdul de seguretat; espera (el procés pot tardar una estona)...</translation>
 <translation id="4097560579602855702">Cerca a Google</translation>
 <translation id="4099060993766194518">Vols restablir el motor de cerca predeterminat?</translation>
-<translation id="4099874310852108874">S'ha produït un error de xarxa.</translation>
+<translation id="4099874310852108874">S'ha produït un error de la xarxa.</translation>
 <translation id="4100733287846229632">Queda molt poc espai al dispositiu</translation>
 <translation id="4100853287411968461">Nou límit de temps de connexió</translation>
 <translation id="4103091233824664032">Introdueix la contrasenya per configurar el bloqueig de pantalla i l'inici de sessió</translation>
@@ -2582,7 +2582,7 @@
 <translation id="4808667324955055115">S'han bloquejat les finestres emergents:</translation>
 <translation id="480990236307250886">Obre la pàgina d'inici</translation>
 <translation id="4813136279048157860">Les meves imatges</translation>
-<translation id="4813512666221746211">Error de xarxa</translation>
+<translation id="4813512666221746211">Error de la xarxa</translation>
 <translation id="4816492930507672669">Ajusta a la mida de la pàgina</translation>
 <translation id="4820236583224459650">Estableix com a tiquet actiu</translation>
 <translation id="4821935166599369261">Creació de &amp;perfils activada</translation>
@@ -3617,7 +3617,7 @@
 <translation id="6308937455967653460">Desa l'en&amp;llaç com a...</translation>
 <translation id="6309510305002439352">El micròfon està desactivat</translation>
 <translation id="6311220991371174222">Chrome no es pot iniciar perquè s'ha produït un error mentre obries el perfil. Prova de reiniciar Chrome.</translation>
-<translation id="6312403991423642364">Error de xarxa desconegut</translation>
+<translation id="6312403991423642364">Error de la xarxa desconegut</translation>
 <translation id="6313641880021325787">SURT DEL MODE RV</translation>
 <translation id="6314819609899340042">Heu activat correctament les funcions de depuració en aquest dispositiu <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="6315493146179903667">Porta-ho tot al davant</translation>
@@ -4354,7 +4354,7 @@
 <translation id="7412226954991670867">Memòria de la GPU</translation>
 <translation id="7414464185801331860">18x</translation>
 <translation id="7415454883318062233">Configuració completada</translation>
-<translation id="7416362041876611053">Error de xarxa desconegut.</translation>
+<translation id="7416362041876611053">Error de la xarxa desconegut.</translation>
 <translation id="741906494724992817">Aquesta aplicació no requereix cap permís especial.</translation>
 <translation id="742130257665691897">Les adreces d'interès s'han suprimit</translation>
 <translation id="7421925624202799674">&amp;Visualitza l'origen de la pàgina</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index f2c70db..f93e691a 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -3370,7 +3370,7 @@
 <translation id="5946591249682680882">Aruande ID <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5949544233750246342">Faili ei saa sõeluda</translation>
 <translation id="5955282598396714173">Teie parool on aegunud. Selle muutmiseks logige välja ja seejärel uuesti sisse.</translation>
-<translation id="5955721306465922729">Veebisaiti soovib selle rakenduse avada.</translation>
+<translation id="5955721306465922729">Veebisait soovib selle rakenduse avada.</translation>
 <translation id="5955809630138889698">Seade on võib-olla sobilik ainult võrguühendusega demorežiimi jaoks. Võtke lisateabe saamiseks ühendust tugiteenuse esindajaga.</translation>
 <translation id="5956585768868398362">Kas see on otsinguleht, mida ootasite?</translation>
 <translation id="5957613098218939406">Rohkem valikuid</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index fed04a3d..4383f4b1 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -1147,7 +1147,7 @@
 <translation id="2660779039299703961">رویداد</translation>
 <translation id="266079277508604648">‏چاپگر متصل نشد. بررسی کنید چاپگر روشن و ازطریق Wi-Fi یا USB به Chromebook متصل باشد.</translation>
 <translation id="2661714428027871023">با «حالت ساده»، سریع‌تر مرور کنید و از داده کمتری استفاده کنید. برای اطلاعات بیشتر کلیک کنید.</translation>
-<translation id="2662876636500006917">Chrome Web Store</translation>
+<translation id="2662876636500006917">‏«نت‌بازار Chrome»</translation>
 <translation id="2663302507110284145">زبان</translation>
 <translation id="2665394472441560184">افزودن کلمه جدید</translation>
 <translation id="2665647207431876759">منقضی شد</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index e51fbfd..29eec39 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -231,6 +231,7 @@
 <translation id="1330145147221172764">הפעל מקלדת על המסך</translation>
 <translation id="1331977651797684645">זה הייתי אני.</translation>
 <translation id="133535873114485416">קלט מועדף</translation>
+<translation id="1338802252451106843">האתר <ph name="ORIGIN" /> רוצה לפתוח את האפליקציה הזו.</translation>
 <translation id="1338950911836659113">מוחק...</translation>
 <translation id="1340527397989195812">גבה את המדיה מהמכשיר באמצעות אפליקציית 'קבצים'.</translation>
 <translation id="1341988552785875222">הטפט הנוכחי נקבע על ידי '<ph name="APP_NAME" />'. ייתכן שיהיה עליך להסיר את התקנת '<ph name="APP_NAME" />' כדי לבחור טפט אחר.</translation>
@@ -345,7 +346,9 @@
 <translation id="1509281256533087115">‏גישה לכל מכשיר של <ph name="DEVICE_NAME_AND_VENDOR" /> באמצעות USB</translation>
 <translation id="150962533380566081">‏PUK לא חוקי.</translation>
 <translation id="1510030919967934016">דף זה נחסם ממעקב אחר מיקומך.</translation>
+<translation id="1510055949674985293">‏יצירת קוד QR לתמונה זו</translation>
 <translation id="1510238584712386396">מרכז האפליקציות</translation>
+<translation id="1510581003097415337">‏יצירת קוד QR לדף זה</translation>
 <translation id="1510785804673676069">‏אם אתה משתמש בשרת proxy, בדוק את הגדרות שרת ה-proxy או צור קשר עם מנהל הרשת כדי לוודא ששרת ה-proxy פועל. אם אינך סבור שעליך להשתמש בשרת proxy, שנה את <ph name="LINK_START" />הגדרות שרת ה-proxy שלך<ph name="LINK_END" />.</translation>
 <translation id="1511997356770098059">אי אפשר לאחסן פרטי כניסה במפתח האבטחה הזה</translation>
 <translation id="1512210426710821809">הדרך היחידה לבטל את הפעולה זו היא להתקין מחדש את <ph name="IDS_SHORT_PRODUCT_OS_NAME" />.</translation>
@@ -388,6 +391,7 @@
 <translation id="1572266655485775982">‏הפעלת Wi-Fi</translation>
 <translation id="1572876035008611720">הזן את כתובת האימייל</translation>
 <translation id="1576594961618857597">דמות ברירת מחדל לבנה</translation>
+<translation id="1578558981922970608">אילוץ סגירה</translation>
 <translation id="1581962803218266616">‏הצג ב-Finder</translation>
 <translation id="1582955169539260415">מחיקת [<ph name="FINGERPRINT_NAME" />]</translation>
 <translation id="1584990664401018068">‏ייתכן שיהיה צורך באימות בשביל רשת ה-Wi-Fi שבה אתה משתמש (<ph name="NETWORK_ID" />).</translation>
@@ -623,6 +627,7 @@
 <translation id="1895658205118569222">כיבוי</translation>
 <translation id="1895934970388272448">עליך לאשר את הרישום במדפסת כדי לסיים תהליך זה - בדוק את המדפסת כעת.</translation>
 <translation id="1899826437968063457">‏Plugin VM זקוק להרשאה כדי לפעול</translation>
+<translation id="1900305421498694955">‏ייתכן שלאפליקציות מ-Google Play תידרש גישה מלאה למערכת הקבצים לצורך קריאה וכתיבה של קבצים בהתקני אחסון חיצוניים. הקבצים והתיקיות שנוצרים במכשיר גלויים לכל מי שמשתמש בכונן החיצוני. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="1901303067676059328">בחר &amp;הכל</translation>
 <translation id="1901984611178952431">ניהול נתוני כניסה</translation>
 <translation id="1902576642799138955">תקופת תוקף</translation>
@@ -696,9 +701,11 @@
 <translation id="2018352199541442911">מצטערים, מכשיר האחסון החיצוני שלך אינו נתמך בשלב זה.</translation>
 <translation id="2019718679933488176">&amp;פתח שמע בכרטיסייה חדשה</translation>
 <translation id="2020183425253392403">הצג את ההגדרות של כתובת הרשת</translation>
+<translation id="2022953316617983419">‏קוד QR</translation>
 <translation id="2023167225947895179">‏ייתכן שיהיה קל לנחש את ה-PIN</translation>
 <translation id="202352106777823113">ההורדה נמשכה זמן רב מדי, והיא נעצרה על ידי הרשת.</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> קרס. לחץ על בלון זה כדי לטעון מחדש את התוסף.</translation>
+<translation id="2025891858974379949">תוכן לא מאובטח</translation>
 <translation id="2034346955588403444">‏הוסף עוד רשת Wi-Fi</translation>
 <translation id="203574396658008164">הפעל רישום הערות ממסך הנעילה</translation>
 <translation id="2037445849770872822">‏הוגדר פיקוח על חשבון Google הזה. כדי להגדיר עוד אפשרויות של בקרת הורים יש ללחוץ על 'המשך'.
@@ -779,6 +786,7 @@
 <translation id="2150139952286079145">יעדי חיפוש</translation>
 <translation id="2150661552845026580">להוסיף את "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="2151576029659734873">הוזן אינדקס שגוי של כרטיסייה</translation>
+<translation id="2152281589789213846">הוספת מדפסות לפרופיל</translation>
 <translation id="2154484045852737596">עריכת כרטיס</translation>
 <translation id="2154710561487035718">העתק כתובת אתר</translation>
 <translation id="2155772377859296191">‏נראה כמו <ph name="WIDTH" /> x <ph name="HEIGHT" /></translation>
@@ -790,6 +798,7 @@
 <translation id="216169395504480358">‏הוסף Wi-Fi...</translation>
 <translation id="2162155940152307086">הסנכרון יתחיל מיד לאחר היציאה מהגדרות הסנכרון</translation>
 <translation id="2163470535490402084">התחבר אל האינטרנט כדי להיכנס אל ה-<ph name="DEVICE_TYPE" />.</translation>
+<translation id="2165421703844373933">‏כשאומרים "Ok Google", מתבצעת גישה ל-Assistant. כדי לחסוך בצריכת הסוללה, אפשר לבחור באפשרות "מופעל (מומלץ)". מערכת Assistant תגיב רק כשהמכשיר מחובר למקור מתח או נמצא בטעינה.</translation>
 <translation id="2166369534954157698">דג סקרן שט בים זך ולפתע מצא חבורה נחמדה</translation>
 <translation id="2169062631698640254">היכנס בכל זאת</translation>
 <translation id="2170088579611075216">‏הפעלת VR וכניסה ל-VR</translation>
@@ -813,6 +822,7 @@
 <translation id="2191223688506386601">דבר אחרון</translation>
 <translation id="2192505247865591433">מ:</translation>
 <translation id="2193365732679659387">הגדרות אמון</translation>
+<translation id="2195331105963583686">אפשר יהיה להמשיך להשתמש במכשיר ה-<ph name="DEVICE_TYPE" /> הזה גם אחר כך, אבל הוא לא יקבל יותר עדכוני תוכנה ואבטחה אוטומטיים</translation>
 <translation id="2195729137168608510">הגנת אימייל </translation>
 <translation id="2199298570273670671">שגיאה</translation>
 <translation id="2199719347983604670">‏נתונים מסנכרון Chrome</translation>
@@ -1242,6 +1252,7 @@
 <translation id="2804680522274557040">המצלמה מושבתת</translation>
 <translation id="2805646850212350655">‏מערכת קבצים מצפינה של Microsoft</translation>
 <translation id="2805756323405976993">אפליקציות</translation>
+<translation id="2805770823691782631">פרטים נוספים</translation>
 <translation id="2806891468525657116">קיצור הדרך כבר קיים</translation>
 <translation id="2807517655263062534">קבצים שתוריד יופיעו כאן</translation>
 <translation id="2809586584051668049">ועוד <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation>
@@ -1518,6 +1529,7 @@
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - שגיאת רשת</translation>
 <translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;לא חלק מהאישור&gt;</translation>
+<translation id="3253225298092156258">רשת לא זמינה</translation>
 <translation id="3253448572569133955">חשבון לא ידוע</translation>
 <translation id="3254516606912442756">זיהוי אוטומטי של אזור הזמן מושבת</translation>
 <translation id="3255355328033513170">‏כל הנתונים שאוחסנו על-ידי <ph name="SITE_GROUP_NAME" />, או על ידי אתרים הנכללים בקבוצה, יימחקו. גם קובצי cookie יימחקו. תבוצע יציאה מהאתרים האלה, גם בכרטיסיות פתוחות.</translation>
@@ -1542,6 +1554,7 @@
 <translation id="3280237271814976245">שמור &amp;בשם...</translation>
 <translation id="3280243678470289153">‏להישאר ב-Chrome</translation>
 <translation id="3281892622610078515">קבצים ותוכנות שיש להעביר להסגר:</translation>
+<translation id="3282210178675490297">המערכת משתפת כרטיסייה עם האפליקציה <ph name="APP_NAME" /></translation>
 <translation id="3282568296779691940">‏כניסה ל-Chrome</translation>
 <translation id="3285322247471302225">כרטיסייה &amp;חדשה</translation>
 <translation id="328571385944182268">לשמור את הסיסמאות?</translation>
@@ -1552,6 +1565,7 @@
 <translation id="32939749466444286">‏הקונטיינר של Linux לא הופעל. צריך לנסות שוב.</translation>
 <translation id="3294437725009624529">אורח</translation>
 <translation id="329703603001918157">לא ניתן לערוך את קיצור הדרך</translation>
+<translation id="3297560592877881986">‏באתרים מסוימים נעשה שימוש בקובצי Cookie של צד שלישי כדי לטעון את דפי האתר. אם אתר מסוים לא פועל, אפשר לנסות להשבית את חסימת קובצי ה-Cookie.</translation>
 <translation id="329838636886466101">תיקון</translation>
 <translation id="3298789223962368867">הוזנה כתובת אתר לא חוקית.</translation>
 <translation id="32991397311664836">מכשירים:</translation>
@@ -1579,6 +1593,7 @@
 <translation id="3334632933872291866"><ph name="WINDOW_TITLE" /> - הסרטון פועל במצב תמונה בתוך תמונה</translation>
 <translation id="3335947283844343239">פתח מחדש כרטיסייה שנסגרה</translation>
 <translation id="3336664756920573711">‏ביטול נעילת ה-<ph name="DEVICE_TYPE" /> בעזרת טלפון ה-Android שלך</translation>
+<translation id="3340620525920140773">ההורדה הושלמה: <ph name="FILE_NAME" />.</translation>
 <translation id="3341699307020049241">קוד אימות שגוי. נשארו לך עוד <ph name="RETRIES" /> ניסיונות.</translation>
 <translation id="3341703758641437857">אפשר גישה לכתובות אתרים של קבצים</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" רוצה להסיר את התוסף.</translation>
@@ -1607,6 +1622,10 @@
 <translation id="3385092118218578224">%<ph name="DISPLAY_ZOOM" /></translation>
 <translation id="338583716107319301">מפריד</translation>
 <translation id="3387614642886316601">שימוש בבדיקת איות משופרת</translation>
+<translation id="3391459139089708789">המכשיר יקבל עדכוני תוכנה ואבטחה אוטומטיים עד <ph name="MONTH_AND_YEAR" />.
+      <ph name="LINK_BEGIN" />
+        מידע נוסף
+      <ph name="LINK_END" /></translation>
 <translation id="3396800784455899911">‏לחיצה על הלחצן "קבלה והמשך" מבטאת את הסכמתך לעיבוד שתואר קודם לכן לגבי השירותים האלה של Google.</translation>
 <translation id="3399432415385675819">הודעות יושבתו</translation>
 <translation id="3400390787768057815">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> הרץ) – סריקה שזורה (Interlaced)</translation>
@@ -1714,6 +1733,7 @@
 <translation id="3543597750097719865">‏חתימת X9.62 ECDSA עם SHA-512</translation>
 <translation id="3544879808695557954">שם משתמש (אופציונלי)</translation>
 <translation id="354602065659584722">תוכנה מזיקה הוסרה</translation>
+<translation id="3547220315004609203">החלפת מצב של שורת הכרטיסיות</translation>
 <translation id="3547954654003013442">‏הגדרות Proxy</translation>
 <translation id="3550915441744863158">‏Chrome מתעדכן באופן אוטומטי כך שתשתמש תמיד בגרסה העדכנית ביותר</translation>
 <translation id="3551320343578183772">סגור כרטיסייה</translation>
@@ -2200,6 +2220,7 @@
 <translation id="42126664696688958">יצא</translation>
 <translation id="42137655013211669">הגישה למשאב זה נאסרה על-ידי השרת.</translation>
 <translation id="4220648711404560261">קרתה שגיאה בזמן ההפעלה.</translation>
+<translation id="4222772810963087151">‏פרטי גרסת ה-Build</translation>
 <translation id="4225397296022057997">בכל האתרים</translation>
 <translation id="4232375817808480934">‏הגדרת Kerberos</translation>
 <translation id="4235200303672858594">כל המסך</translation>
@@ -2327,6 +2348,7 @@
 <translation id="4434045419905280838">חלונות קופצים והפניות אוטומטיות</translation>
 <translation id="443454694385851356">דור קודם (לא מאובטח)</translation>
 <translation id="443475966875174318">עדכון או הסרה של אפליקציות לא תואמות</translation>
+<translation id="4438043733494739848">שקוף</translation>
 <translation id="4441124369922430666">האם ברצונך להפעיל יישום זה באופן אוטומטי בעת הפעלת המחשב?</translation>
 <translation id="444134486829715816">הרחב...</translation>
 <translation id="4442424173763614572">‏חיפוש ה-DNS נכשל</translation>
@@ -2348,6 +2370,7 @@
 <translation id="4474461121892222090">הפעלת חבילת הגלישה עשויה לארוך עד 15 דקות.</translation>
 <translation id="4475552974751346499">חפש בהורדות</translation>
 <translation id="4476590490540813026">ספורטאית</translation>
+<translation id="4476659815936224889">‏כדי לסרוק את קוד הזה, ניתן להשתמש באפליקציה של סורק קודי ה-QR בטלפון או באפליקציות מצלמה מתאימות.</translation>
 <translation id="4477015793815781985">‏צריך לכלול Ctrl, ‏Alt או ⌘</translation>
 <translation id="4478664379124702289">שמור קישו&amp;ר כ...</translation>
 <translation id="4479424953165245642">נהל יישומי קיוסק</translation>
@@ -2738,6 +2761,7 @@
 <translation id="5073956501367595100">{0,plural,offset:2 =1{<ph name="FILE1" />}=2{<ph name="FILE1" />,‏ <ph name="FILE2" />}many{<ph name="FILE1" />,‏ <ph name="FILE2" /> ועוד #}other{<ph name="FILE1" />,‏ <ph name="FILE2" /> ועוד #}}</translation>
 <translation id="5074318175948309511">ייתכן שיהיה צורך לטעון מחדש דף זה על מנת שההגדרות החדשות ייכנסו לתוקף.</translation>
 <translation id="5075131525758602494">‏הזן את מספר ה-PIN של ה-SIM</translation>
+<translation id="5075910247684008552">תוכן לא מאובטח נחסם כברירת מחדל באתרים מאובטחים</translation>
 <translation id="5078638979202084724">צור סימניה לכל הכרטיסיות</translation>
 <translation id="5078796286268621944">‏PIN שגוי</translation>
 <translation id="5079950360618752063">שימוש בסיסמה המוצעת</translation>
@@ -2777,6 +2801,7 @@
 <translation id="5127881134400491887">ניהול חיבורי רשת</translation>
 <translation id="512903556749061217">מחובר</translation>
 <translation id="5133483819862530305">מהשקיעה ועד לזריחה</translation>
+<translation id="5135085122826131075">‏כשאומרים "Ok Google", מתבצעת גישה ל-Assistant.</translation>
 <translation id="5135533361271311778">לא ניתן ליצור פריט סימניה.</translation>
 <translation id="5137501176474113045">מחק את הפריט הזה</translation>
 <translation id="5138227688689900538">פחות אפליקציות</translation>
@@ -3244,6 +3269,7 @@
 <translation id="5825412242012995131">מופעל (מומלץ)</translation>
 <translation id="5826395379250998812">יש לחבר את ה-<ph name="DEVICE_TYPE" /> לטלפון. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="5826507051599432481">‏שם נפוץ (CN)</translation>
+<translation id="5826993284769733527">שקוף למחצה</translation>
 <translation id="5827266244928330802">Safari</translation>
 <translation id="5828633471261496623">מדפיס...</translation>
 <translation id="5830410401012830739">נהל הגדרות מיקום...</translation>
@@ -3331,10 +3357,12 @@
 <translation id="5941153596444580863">הוספת משתמש...</translation>
 <translation id="5941343993301164315">היכנס ל-<ph name="TOKEN_NAME" />.</translation>
 <translation id="5941711191222866238">מזער</translation>
+<translation id="5944869793365969636">‏סריקת קוד QR</translation>
 <translation id="5945188205370098537">‏שליחה של נתוני אבחון ונתונים על השימוש. אפשר לעזור בשיפור החוויה ב-Android. לשם כך יש לשלוח אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. אם הופעלה האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלך. <ph name="BEGIN_LINK1" />מידע נוסף<ph name="END_LINK1" /></translation>
 <translation id="5946591249682680882">מזהה דיווח <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5949544233750246342">לא ניתן לנתח את הקובץ</translation>
 <translation id="5955282598396714173">תוקף הסיסמה פג. כדי לשנות אותה, צא ולאחר מכן היכנס מחדש.</translation>
+<translation id="5955721306465922729">אתר מסוים רוצה לפתוח את האפליקציה הזו.</translation>
 <translation id="5955809630138889698">ייתכן שהמכשיר הזה כשיר רק למצב הדגמה מקוון. אפשר לפנות לנציג התמיכה כדי לקבל פרטים נוספים.</translation>
 <translation id="5956585768868398362">האם זהו דף החיפוש שציפית לראות?</translation>
 <translation id="5957613098218939406">אפשרויות נוספות</translation>
@@ -3524,6 +3552,7 @@
 <translation id="6225475702458870625">יש חיבור נתונים זמין ב-<ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">קובץ מפתח פרטי (אופציונלי)</translation>
 <translation id="6228691855869374890">‏לאתר זה יש שליטה מלאה על מכשירי MIDI.</translation>
+<translation id="6228720835160974792">‏יצירת קוד QR לתמונה זו</translation>
 <translation id="6229890768313448549">‏לא ניתן לטעון את התנאים וההגבלות של Google Play. נסה שוב.</translation>
 <translation id="6231881193380278751">‏הוסף פרמטר שאילתה בכתובת האתר כדי לרענן את הדף באופן אוטומטי: chrome://device-log/?refresh=&lt;sec&gt;</translation>
 <translation id="6232017090690406397">סוללה</translation>
@@ -4118,6 +4147,7 @@
 <translation id="7121728544325372695">מקפים חכמים</translation>
 <translation id="7123360114020465152">התמיכה הופסקה</translation>
 <translation id="7127980134843952133">היסטוריית הורדות</translation>
+<translation id="7128239828194367697">‏יצירת קוד QR לדף זה</translation>
 <translation id="7131040479572660648">קריאת הנתונים שלך באתרים <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ו-<ph name="WEBSITE_3" /></translation>
 <translation id="713122686776214250">הוסף &amp;דף...</translation>
 <translation id="7133578150266914903">מנהל המערכת שלך מחזיר את המכשיר הזה למצב קודם (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -4213,6 +4243,7 @@
 <translation id="7257173066616499747">‏רשתות Wi-Fi</translation>
 <translation id="725758059478686223">שירות הדפסה</translation>
 <translation id="7257666756905341374">קריאת נתונים שאתה מעתיק ומדביק</translation>
+<translation id="7258225044283673131">האפליקציה לא מגיבה. כדי לסגור את האפליקציה, יש לבחור באפשרות "אילוץ סגירה".</translation>
 <translation id="7258697411818564379">הקוד נוסף</translation>
 <translation id="7262004276116528033">שירות הכניסה הזה מתארח ב-<ph name="SAML_DOMAIN" />.</translation>
 <translation id="7268127947535186412">ההגדרה הזו מנוהלת על ידי הבעלים של המכשיר.</translation>
@@ -4386,6 +4417,7 @@
 <translation id="7529411698175791732">בדוק את חיבור האינטרנט. אם הבעיה לא נפתרת, נסה לצאת מהחשבון ולהיכנס אליו שוב.</translation>
 <translation id="7530016656428373557">שיעור פריקה בוואט</translation>
 <translation id="7531779363494549572">עוברים אל 'הגדרות' &gt; 'אפליקציות והודעות' &gt; 'הודעות'.</translation>
+<translation id="7532009420053991888">האפליקציה <ph name="LINUX_APP_NAME" /> לא מגיבה. כדי לסגור את האפליקציה, יש לבחור באפשרות "אילוץ סגירה".</translation>
 <translation id="7539856059004947393">‏מפתח אבטחה בחיבור Bluetooth</translation>
 <translation id="7540972813190816353">אירעה שגיאה בעת בדיקת עדכונים: <ph name="ERROR" /></translation>
 <translation id="7543104066686362383">הפעל תכונות ניפוי באגים במכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> זה</translation>
@@ -4770,6 +4802,7 @@
 <translation id="8037357227543935929">שאל (ברירת מחדל)</translation>
 <translation id="803771048473350947">קובץ</translation>
 <translation id="8042142357103597104">שקיפות טקסט</translation>
+<translation id="8044262338717486897">האפליקציה <ph name="LINUX_APP_NAME" /> לא מגיבה.</translation>
 <translation id="8044899503464538266">אטי</translation>
 <translation id="8045253504249021590">‏הסינכרון הושבת באמצעות מרכז השליטה של Google.</translation>
 <translation id="8045923671629973368">הזנה של מזהה יישום או כתובת אתר של חנות אינטרנט</translation>
@@ -4857,6 +4890,7 @@
 <translation id="8180294223783876911">‏שליחה של נתוני אבחון ונתונים על השימוש. המכשיר הזה שולח עכשיו אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. אם הופעלה האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלך. <ph name="BEGIN_LINK1" />מידע נוסף<ph name="END_LINK1" /></translation>
 <translation id="8180786512391440389">"<ph name="EXTENSION" />" יכול לקרוא ולמחוק קובצי תמונות, וידאו ואודיו במיקומים המסומנים.</translation>
 <translation id="8181215761849004992">לא ניתן להצטרף לדומיין. יש לבדוק את החשבון כדי לראות אם יש לך הרשאות מתאימות להוספת מכשירים.</translation>
+<translation id="8182105986296479640">האפליקציה לא מגיבה</translation>
 <translation id="8182664696082410784"><ph name="REASON" />
     לדעתי לא צריך לחסום את האתר הזה.</translation>
 <translation id="8184288427634747179">עבור אל <ph name="AVATAR_NAME" /></translation>
@@ -4932,6 +4966,7 @@
 <translation id="827097179112817503">הצג את לחצן 'דף הבית'</translation>
 <translation id="8271246892936492311">{COUNT,plural, =1{סימניה אחת נמחקה}two{# סימניות נמחקו}many{# סימניות נמחקו}other{# סימניות נמחקו}}</translation>
 <translation id="8272443605911821513">נהל את התוספים שלך על ידי לחיצה על 'תוספים' בתפריט 'כלים נוספים'.</translation>
+<translation id="8274212285504931082">‏מערכת Assistant יכולה להראות לך מידע לגבי מה שמוצג על המסך</translation>
 <translation id="8274332263553132018">העברת קובץ</translation>
 <translation id="8274924778568117936">אל תכבה או תסגור את ה-<ph name="DEVICE_TYPE" /> לפני סיום העדכון. ה-<ph name="DEVICE_TYPE" /> יופעל מחדש באופן אוטומטי בסיום ההתקנה.</translation>
 <translation id="8275038454117074363">ייבוא</translation>
@@ -4966,6 +5001,7 @@
 <translation id="8326478304147373412">‏PKCS #7, שרשרת אישורים</translation>
 <translation id="8327039559959785305">‏קרתה שגיאה בטעינת קובצי ה-Linux. יש לנסות שוב.</translation>
 <translation id="8335587457941836791">ביטול הצמדה למדף</translation>
+<translation id="8336407002559723354">העדכונים יסתיימו בחודש <ph name="MONTH_AND_YEAR" /></translation>
 <translation id="8336739000755212683">שינוי תמונת החשבון במכשיר</translation>
 <translation id="8337047789441383384">כבר רשמת את מפתח האבטחה הזה. אין צורך לרשום אותו שוב.</translation>
 <translation id="8338952601723052325">אתר האינטרנט של המפתח</translation>
@@ -5008,6 +5044,7 @@
 <translation id="8398877366907290961">המשך בכל זאת</translation>
 <translation id="8400146488506985033">נהל אנשים</translation>
 <translation id="8401432541486058167">עליך לציין את קוד האימות המשויך לכרטיס החכם שלך.</translation>
+<translation id="8401839918915644121">התאמה לגודל הנייר</translation>
 <translation id="8405046151008197676">ריכזנו עבורך את הפרטים החשובים לגבי העדכון האחרון</translation>
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8413385045638830869">שאל תחילה (מומלץ)</translation>
@@ -5280,6 +5317,7 @@
 <translation id="8798099450830957504">ברירת מחדל</translation>
 <translation id="8798441408945964110">שם ספק</translation>
 <translation id="8800004011501252845">מציג יעדים עבור</translation>
+<translation id="8800034312320686233">האתר לא פועל?</translation>
 <translation id="8803953437405899238">פתח כרטיסייה חדשה בקליק אחד</translation>
 <translation id="8804398419035066391">יצירת קשר עם אתרים שמשתפים פעולה</translation>
 <translation id="8805140816472474147">אשר הגדרות סינכרון כדי להתחיל בסינכרון.</translation>
@@ -5311,6 +5349,7 @@
 <translation id="8831140208248705279">‏ה-<ph name="DEVICE_TYPE" /> וטלפון Android עובדים טוב יותר ביחד. החיבור ביניהם מאפשר לשלוח הודעות טקסט מהמחשב, לשתף את החיבור לאינטרנט ולבטל את הנעילה של ה-<ph name="DEVICE_TYPE" /> באמצעות הטלפון.<ph name="FOOTNOTE_POINTER" /><ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="8831664945713891930">פתיחת הגדרות התוספים</translation>
 <translation id="8834039744648160717">הגדרת הרשת היא בשליטת <ph name="USER_EMAIL" />.</translation>
+<translation id="8838601485495657486">אטום</translation>
 <translation id="8838770651474809439">המבורגר</translation>
 <translation id="883911313571074303">רשום הערה לתמונה</translation>
 <translation id="8845001906332463065">קבל עזרה</translation>
@@ -5467,6 +5506,7 @@
 <translation id="9053893665344928494">זכור את הבחירה שלי</translation>
 <translation id="9055636786322918818">‏אכיפה של הצפנת RC4. שימוש באפשרות הזו מגדילה את הסיכון, כי הצפנות RC4 אינן מאובטחות.</translation>
 <translation id="9056810968620647706">לא נמצאו התאמות.</translation>
+<translation id="9057354806206861646">לוח זמנים של עדכונים</translation>
 <translation id="9062065967472365419">הפתיעו אותי</translation>
 <translation id="9062468308252555888">14x</translation>
 <translation id="9063208415146866933">שגיאה משורה <ph name="ERROR_LINE_START" /> עד <ph name="ERROR_LINE_END" /></translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 7d66f92..857f10d3 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -1181,7 +1181,7 @@
 <translation id="2705736684557713153">സ്‌ക്രീനിന്റെ താഴേക്ക് സ്‍ക്രോള്‍ ചെയ്യുകയും, തൽക്ഷണ ടെതറിംഗ് ദൃശ്യമാകുന്നെങ്കിൽ അത് ഓണാക്കുകയും ചെയ്യുക. അത് ദൃശ്യമാകുന്നില്ലെങ്കിൽ, നിങ്ങൾ സജ്ജമായി.</translation>
 <translation id="2707024448553392710">ഘടക ഭാഗം ഡൗൺലോഡുചെയ്യുന്നു</translation>
 <translation id="270921614578699633">ശരാശരിയ്ക്കും മുകളിൽ</translation>
-<translation id="2709516037105925701">ഓട്ടോഫില്‍</translation>
+<translation id="2709516037105925701">സ്വയമേവ പൂരിപ്പിക്കൽ</translation>
 <translation id="271033894570825754">പുതിയത്</translation>
 <translation id="2712173769900027643">അനുമതി ചോദിക്കുക</translation>
 <translation id="2713444072780614174">വെള്ള</translation>
@@ -1291,7 +1291,7 @@
 <translation id="2854896010770911740">മൂന്നാം കക്ഷി കുക്കികൾ നീക്കം ചെയ്യുക</translation>
 <translation id="2858138569776157458">മികച്ച സൈറ്റുകൾ</translation>
 <translation id="2859806420264540918">ഈ സൈറ്റ്, അനാവശ്യമോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങൾ കാണിക്കുന്നു.</translation>
-<translation id="2861301611394761800">സിസ്റ്റം അപ്ഡേറ്റ് പൂര്‍ത്തിയായി. ദയവായി സിസ്റ്റം പുനരാരംഭിക്കുക.</translation>
+<translation id="2861301611394761800">സിസ്റ്റം അപ്ഡേറ്റ് പൂര്‍ത്തിയായി. ദയവായി സിസ്റ്റം റീസ്റ്റാർട്ട് ചെയ്യുക.</translation>
 <translation id="2861941300086904918">നേറ്റിവ് ക്ലയന്‍റ് സുരക്ഷ മാനേജര്‍</translation>
 <translation id="2864601841139725659">നിങ്ങളുടെ പ്രൊഫൈല്‍ ചിത്രം സജ്ജമാക്കുക</translation>
 <translation id="2867768963760577682">പിന്‍ ചെയ്‌ത ടാബായി തുറക്കുക</translation>
@@ -2349,7 +2349,7 @@
 <translation id="4430369329743628066">ബുക്ക്‌മാർക്ക് ചേർത്തു</translation>
 <translation id="4434045419905280838">പോപ്-അപ്പുകളും റീഡയറക്‌റ്റുകളും</translation>
 <translation id="443454694385851356">ലെഗസി (സുരക്ഷിതമല്ലാത്തത്)</translation>
-<translation id="443475966875174318">അനുയോജ്യതയില്ലാത്ത അപ്ലിക്കേഷനുകൾ അപ്‌ഡേറ്റ് ചെയ്യുക അല്ലെങ്കിൽ നീക്കം ചെയ്യുക</translation>
+<translation id="443475966875174318">അനുയോജ്യമല്ലാത്ത ആപ്പുകൾ അപ്‌ഡേറ്റ് ചെയ്യുക അല്ലെങ്കിൽ നീക്കം ചെയ്യുക</translation>
 <translation id="4438043733494739848">സുതാര്യം</translation>
 <translation id="4441124369922430666">മെഷീൻ ഓണാകുമ്പോൾ ഈ ആപ്പ് സ്വയമേവ ആരംഭിക്കാൻ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടോ?</translation>
 <translation id="444134486829715816">വികസിപ്പിക്കുക...</translation>
@@ -2542,7 +2542,7 @@
 <translation id="4739098340603978916">വലുപ്പം: <ph name="APP_SIZE" /></translation>
 <translation id="4739639199548674512">ടിക്കറ്റുകൾ</translation>
 <translation id="4742746985488890273">ഷെൽഫിൽ പിൻ ചെയ്യുക</translation>
-<translation id="4743260470722568160"><ph name="BEGIN_LINK" />അപ്ലിക്കേഷനുകൾ അപ്‌ഡേറ്റ് ചെയ്യുന്നത് എങ്ങനെയെന്ന് അറിയുക<ph name="END_LINK" /></translation>
+<translation id="4743260470722568160"><ph name="BEGIN_LINK" />ആപ്പുകൾ അപ്‌ഡേറ്റ് ചെയ്യുന്നത് എങ്ങനെയെന്ന് അറിയുക<ph name="END_LINK" /></translation>
 <translation id="4744981231093950366">{NUM_TABS,plural, =1{സൈറ്റ് അൺമ്യൂട്ട് ചെയ്യുക}other{സൈറ്റുകൾ അൺമ്യൂട്ട് ചെയ്യുക}}</translation>
 <translation id="4746351372139058112">സന്ദേശങ്ങൾ</translation>
 <translation id="4748762018725435655">Chrome വെബ് സ്റ്റോറിൽ നിന്നുള്ള വിപുലീകരണം ആവശ്യമാണ്</translation>
@@ -2892,7 +2892,7 @@
 <translation id="527605982717517565"><ph name="HOST" /> ല്‍‌ എപ്പോഴുംJavaScript അനുവദിക്കുക</translation>
 <translation id="5280174558369304332">വിപുലീകരണങ്ങൾ നീക്കം ചെയ്യപ്പെടും:</translation>
 <translation id="5280426389926346830">കുറുക്കുവഴി സൃഷ്‌ടിക്കണോ?</translation>
-<translation id="528208740344463258">Android ആപ്പുകൾ ഡൗൺലോഡ് ചെയ്‌ത് ഉപയോഗിക്കാൻ ആദ്യം നിങ്ങൾ ഈ ആവശ്യമായ അപ്‌ഡേറ്റ് ഇൻസ്‌റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. <ph name="DEVICE_TYPE" /> അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ, നിങ്ങൾക്കത് ഉപയോഗിക്കാനാവില്ല. ഇൻസ്റ്റലേഷൻ പൂർത്തിയായി കഴിയുമ്പോൾ, നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> പുനരാരംഭിക്കും.</translation>
+<translation id="528208740344463258">Android ആപ്പുകൾ ഡൗൺലോഡ് ചെയ്‌ത് ഉപയോഗിക്കാൻ ആദ്യം നിങ്ങൾ ഈ ആവശ്യമായ അപ്‌ഡേറ്റ് ഇൻസ്‌റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. <ph name="DEVICE_TYPE" /> അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ, നിങ്ങൾക്കത് ഉപയോഗിക്കാനാവില്ല. ഇൻസ്റ്റലേഷൻ പൂർത്തിയായി കഴിയുമ്പോൾ, നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> റീസ്റ്റാർട്ടാകും.</translation>
 <translation id="5282733140964383898">നിങ്ങളുടെ ബ്രൗസിംഗ് ട്രാഫിക്കിൽ ഒരു അഭ്യർത്ഥന ഉൾപ്പെടുത്തുമെന്നാണ് "ട്രാക്ക് ചെയ്യരുത്" പ്രവർത്തനക്ഷമമാക്കുന്നതിലൂടെ അർത്ഥമാക്കുന്നത്. ഒരു വെബ്‌സൈറ്റ്, അഭ്യർത്ഥനയിന്മേൽ പ്രതികരിക്കുന്നോ എന്നതിനേയും അഭ്യർത്ഥന വ്യാഖ്യാനിക്കുന്നതെങ്ങനെ എന്നതിനേയും ആശ്രയിച്ചുള്ളതായിരിക്കും ഏതൊരു ഇഫക്റ്റും. ഉദാഹരണത്തിന്, ചില വെബ്‌സൈറ്റുകൾ, നിങ്ങൾ സന്ദർശിച്ച മറ്റ് വെബ്‌സൈറ്റുകളെ അടിസ്ഥാനമാക്കിയുള്ളതല്ലാത്ത പരസ്യങ്ങൾ കാണിച്ച് ഈ അഭ്യർത്ഥനയോട് പ്രതികരിച്ചേക്കാം. നിരവധി വെബ്‌സൈറ്റുകൾ തുടർന്നും നിങ്ങളുടെ ബ്രൗസിംഗ് ഡാറ്റ ശേഖരിക്കുകയും ഉപയോഗിക്കുകയും ചെയ്യും - ഉദാഹരണത്തിന് സുരക്ഷ മെച്ചപ്പെടുത്തുന്നതിനും അവരുടെ വെബ്‌സൈറ്റുകളിൽ ഉള്ളടക്കവും സേവനങ്ങളും പരസ്യങ്ങളും നൽകുന്നതിനും റിപ്പോർട്ടിംഗ് സ്ഥിതിവിവരക്കണക്കുകൾ സൃഷ്‌ടിക്കുന്നതിനും. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="5283049351426079445"><ph name="APP_NAME" /> ഇൻസ്‌റ്റാൾ ചെയ്യണമെന്ന് നിങ്ങൾക്ക് തീർച്ചയാണോ?</translation>
 <translation id="5283677936944177147">ക്ഷമിക്കണം! സിസ്റ്റത്തിന് ഉപകരണ മോഡലോ സീരിയൽ നമ്പറോ കണ്ടെത്താനായില്ല.</translation>
@@ -3125,7 +3125,7 @@
 <translation id="5595152862129936745">വളരെ ദൂരെ</translation>
 <translation id="5595485650161345191">വിലാസം എഡിറ്റുചെയ്യുക</translation>
 <translation id="5596627076506792578">കൂടുതൽ‍ ഓപ്‌ഷനുകൾ</translation>
-<translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB മൊബൈല്‍ ഡാറ്റ ഉപയോഗിച്ച് അപ്‌ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യും. തുടരാൻ താൽപ്പര്യമുണ്ടോ?</translation>
+<translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB മൊബൈല്‍ ഡാറ്റ ഉപയോഗിച്ച് അപ്‌ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യും. തുടണോ?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5602765853043467355">ഈ ഉപകരണത്തിൽ നിന്ന് ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ എന്നിവയും മറ്റും മായ്ക്കുക</translation>
 <translation id="5605623530403479164">മറ്റ് തിരയൽ യന്ത്രങ്ങൾ</translation>
@@ -3232,7 +3232,7 @@
 <translation id="5764483294734785780">ഓഡിയോ ഇതുപോലെ സം&amp;രക്ഷിക്കുക...</translation>
 <translation id="57646104491463491">തീയതി പരിഷ്കരിച്ചു</translation>
 <translation id="5764797882307050727">നിങ്ങളുടെ ഉപകരണത്തിൽ കുറച്ച് ഇടം സൃഷ്‌ടിക്കുക.</translation>
-<translation id="5765425701854290211">ക്ഷമിക്കണം, ചില ഫയലുകൾ കേടായതിനാൽ അപ്‌ഡേറ്റ് വിജയകരമായില്ല. നിങ്ങളുടെ സമന്വയിപ്പിച്ച ഫയലുകൾ സുരക്ഷിതമാണ്.</translation>
+<translation id="5765425701854290211">ക്ഷമിക്കണം, ചില ഫയലുകൾ കേടായതിനാൽ അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല. നിങ്ങളുടെ സമന്വയിപ്പിച്ച ഫയലുകൾ സുരക്ഷിതമാണ്.</translation>
 <translation id="5765491088802881382">നെറ്റ്‌വര്‍ക്കുകളോന്നും ലഭ്യമല്ല</translation>
 <translation id="5771816112378578655">സജ്ജമാക്കല്‍‌ പുരോഗതിയിലാണ്...</translation>
 <translation id="5772265531560382923">{NUM_PAGES,plural, =1{നിങ്ങൾക്ക് പേജ് പ്രതികരിക്കുന്നതുവരെ കാത്തിരിക്കാം അല്ലെങ്കിൽ പേജിൽ നിന്ന് പുറത്തുകടക്കാം.}other{നിങ്ങൾക്ക് പേജുകൾ പ്രതികരിക്കുന്നതുവരെ കാത്തിരിക്കാം അല്ലെങ്കിൽ പേജുകളിൽ നിന്ന് പുറത്തുകടക്കാം.}}</translation>
@@ -3468,7 +3468,7 @@
 <translation id="6086846494333236931">നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ഇൻസ്റ്റാൾ ചെയ്‌തു</translation>
 <translation id="6087960857463881712">മനോഹരമായ മുഖം</translation>
 <translation id="6091761513005122595">പങ്കിടൽ വിജയകരമായി മൗണ്ട് ചെയ്തു.</translation>
-<translation id="6093888419484831006">അപ്‌ഡേറ്റ് ചെയ്തത് റദ്ദാക്കുന്നു...</translation>
+<translation id="6093888419484831006">അപ്‌ഡേറ്റ് റദ്ദാക്കുന്നു...</translation>
 <translation id="6095984072944024315">−</translation>
 <translation id="6096047740730590436">വലുതാക്കി തുറക്കുക</translation>
 <translation id="6096326118418049043">X.500 നാമം</translation>
@@ -3771,7 +3771,7 @@
 <translation id="6541638731489116978">നിങ്ങളുടെ ചലന സെൻസറുകൾ ആക്‌സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു.</translation>
 <translation id="654233263479157500">നാവിഗേഷന്‍ പിശകുകള്‍ പരിഹരിക്കുന്നതിന് ഒരു വെബ് സേവനം ഉപയോഗിക്കുക</translation>
 <translation id="6545665334409411530">ആവർത്തന നിരക്ക്</translation>
-<translation id="6545834809683560467">തിരയലുകളും ഒരു വിലാസ ബാറിലോ ആപ്പ് ലോഞ്ചർ തിരയൽ ബോക്‌സിലോ ടൈപ്പ് ചെ‌യ്‌തിരിക്കുന്ന URL -കളും പൂര്‍ത്തിയാക്കാൻ ഒരു പ്രവചന സേവനം ഉപയോഗിക്കുക</translation>
+<translation id="6545834809683560467">തിരയലുകളും, വിലാസ ബാറിലോ അപ്ലിക്കേഷൻ ലോഞ്ചർ തിരയൽ ബോക്‌സിലോ ടൈപ്പ് ചെ‌യ്‌തിരിക്കുന്ന URL കളും പൂര്‍ത്തിയാക്കാൻ ഒരു പ്രവചന സേവനം ഉപയോഗിക്കുക</translation>
 <translation id="6545864417968258051">Bluetooth സ്‌കാനിംഗ്</translation>
 <translation id="6545867563032584178">Mac സിസ്‌റ്റം മുൻഗണനകളിൽ മൈക്രോഫോൺ ഓഫാക്കി</translation>
 <translation id="6547354035488017500">512 MB ഇടമെങ്കിലും സൃഷ്‌ടിച്ചില്ലെങ്കിൽ നിങ്ങളുടെ ഉപകരണം പ്രതികരിക്കില്ല. ഇടം സൃഷ്‌ടിക്കാൻ, ഉപകരണ സ്‌റ്റോറേജിൽ നിന്ന് ഫയലുകൾ ഇല്ലാതാക്കുക.</translation>
@@ -3955,7 +3955,7 @@
 <translation id="682971198310367122">Google സ്വകാര്യതാ നയം</translation>
 <translation id="6831043979455480757">വിവർത്തനം ചെയ്യുക</translation>
 <translation id="683373380308365518">സ്‌മാർട്ടും സുരക്ഷിതവുമായൊരു ബ്രൗസറിലേക്ക് മാറുക</translation>
-<translation id="6835762382653651563">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> അപ്‌ഡേറ്റ് ചെയ്യാൻ ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്യുക.</translation>
+<translation id="6835762382653651563">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> അപ്‌ഡേറ്റ് ചെയ്യാൻ ഇന്റർനെറ്റിൽ കണക്റ്റ് ചെയ്യുക.</translation>
 <translation id="6839225236531462745">സര്‍ട്ടിഫിക്കറ്റ് ഇല്ലാതാക്കല്‍ പിശക്</translation>
 <translation id="6839916869147598086">സൈൻ ഇൻ മാറ്റി</translation>
 <translation id="6840155290835956714">അയയ്‌ക്കുന്നതിന് മുമ്പ് ചോദിക്കുക</translation>
@@ -4679,7 +4679,7 @@
 <translation id="7868378670806575181">{NUM_COOKIES,plural, =1{ഒരു കുക്കി}other{# കുക്കികൾ}}</translation>
 <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - ജോടിയാക്കി</translation>
 <translation id="7870730066603611552">സജ്ജീകരണത്തിന് ശേഷം സമന്വയ ഓപ്‌ഷനുകൾ അവലോകനം ചെയ്യുക</translation>
-<translation id="7870790288828963061">ഏറ്റവും പുതിയ പതിപ്പിലുള്ള കിയോസ്‌ക് അപ്ലിക്കേഷനുകളൊന്നുമില്ല. USB സ്‌റ്റിക്ക് നീക്കംചെയ്യുക.</translation>
+<translation id="7870790288828963061">ഏറ്റവും പുതിയ പതിപ്പിലുള്ള കിയോസ്‌ക് ആപ്പുകളൊന്നുമില്ല. USB സ്‌റ്റിക്ക് നീക്കംചെയ്യുക.</translation>
 <translation id="7874257161694977650">Chrome പശ്ചാത്തലങ്ങൾ</translation>
 <translation id="7877451762676714207">അജ്ഞാതമായ സെർവർ പിശക്. വീണ്ടും ശ്രമിക്കുകയോ സെർവർ അഡ്‌മിനിസ്‌ട്രേറ്ററെ ബന്ധപ്പെടുകയോ ചെയ്യുക.</translation>
 <translation id="7877680364634660272">ടൂർ</translation>
@@ -5110,7 +5110,7 @@
 <translation id="8481187309597259238">USB അനുമതി സ്ഥിരീകരിക്കുക</translation>
 <translation id="8483248364096924578">IP വിലാസം</translation>
 <translation id="8487678622945914333">സൂം ഇന്‍</translation>
-<translation id="8490896350101740396">ഇനിപ്പറയുന്ന കിയോ‌സ്‌ക് ആപ്പുകൾ "<ph name="UPDATED_APPS" />" അപ്‌ഡേറ്റ് ചെയ്‌തു. അപ്‌ഡേറ്റ് ചെയ്യൽ പ്രോസസ് പൂർത്തിയാക്കുന്നതിന് ഉപകരണം റീബൂട്ട് ചെയ്യുക.</translation>
+<translation id="8490896350101740396">ഇനിപ്പറയുന്ന കിയോ‌സ്‌ക് ആപ്പുകൾ <ph name="UPDATED_APPS" /> അപ്‌ഡേറ്റ് ചെയ്‌തു. അപ്‌ഡേറ്റ് ചെയ്യൽ പ്രോസസ് പൂർത്തിയാക്കുന്നതിന് ഉപകരണം റീബൂട്ട് ചെയ്യുക.</translation>
 <translation id="8493236660459102203">മൈക്രോഫോണ്‍:</translation>
 <translation id="8496717697661868878">ഈ പ്ലഗിന്‍ പ്രവര്‍ത്തിപ്പിക്കുക</translation>
 <translation id="8497219075884839166">Windows യൂട്ടിലിറ്റികൾ</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 191c716..90162be2 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -802,7 +802,7 @@
 <translation id="216169395504480358">Tambah Wi-Fi...</translation>
 <translation id="2162155940152307086">Penyegerakan akan bermula selepas anda meninggalkan tetapan penyegerakan</translation>
 <translation id="2163470535490402084">Sila sambung ke Internet untuk melog masuk ke <ph name="DEVICE_TYPE" /> anda.</translation>
-<translation id="2165421703844373933">Akses Assistant anda apabila anda menyebut "Ok Google." Untuk menjimatkan bateri, pilih “Hidup (Disyorkan.)” Assistant anda hanya akan memberi respons apabila peranti anda dipasang palam atau mengecas.</translation>
+<translation id="2165421703844373933">Akses Assistant anda apabila anda menyebut "Ok Google". Untuk menjimatkan bateri, pilih “Hidup (Disyorkan)”. Assistant anda hanya akan memberikan respons apabila peranti anda dipasang palam atau mengecas.</translation>
 <translation id="2166369534954157698">The quick brown fox jumps over the lazy dog</translation>
 <translation id="2169062631698640254">Log masuk juga</translation>
 <translation id="2170088579611075216">Benarkan &amp; masuk ke VR</translation>
@@ -1558,7 +1558,7 @@
 <translation id="3280237271814976245">Simpan &amp;sebagai...</translation>
 <translation id="3280243678470289153">Kekal dalam Chrome</translation>
 <translation id="3281892622610078515">Fail dan program yang akan dikuarantin:</translation>
-<translation id="3282210178675490297">Berkongsi tab ke <ph name="APP_NAME" /></translation>
+<translation id="3282210178675490297">Berkongsi tab kepada <ph name="APP_NAME" /></translation>
 <translation id="3282568296779691940">Log masuk ke Chrome</translation>
 <translation id="3285322247471302225">&amp;Tab Baharu</translation>
 <translation id="328571385944182268">Simpan kata laluan anda?</translation>
@@ -2807,7 +2807,7 @@
 <translation id="5127881134400491887">Urus sambungan rangkaian</translation>
 <translation id="512903556749061217">dipasang</translation>
 <translation id="5133483819862530305">Matahari Terbenam hingga Terbit</translation>
-<translation id="5135085122826131075">Akses Assistant anda apabila anda menyebut "Ok Google."</translation>
+<translation id="5135085122826131075">Akses Assistant anda apabila anda menyebut "Ok Google".</translation>
 <translation id="5135533361271311778">Tidak dapat mencipta item penanda halaman.</translation>
 <translation id="5137501176474113045">Padam item ini</translation>
 <translation id="5138227688689900538">Tunjukkan kurang</translation>
@@ -4252,7 +4252,7 @@
 <translation id="7257173066616499747">Rangkaian Wi-Fi</translation>
 <translation id="725758059478686223">Perkhidmatan Cetak</translation>
 <translation id="7257666756905341374">Baca data yang anda salin dan tampal</translation>
-<translation id="7258225044283673131">Aplikasi tidak memberi respons. Pilih "Paksa tutup" untuk menutup apl.</translation>
+<translation id="7258225044283673131">Aplikasi tidak memberikan respons. Pilih "Paksa tutup" untuk menutup apl.</translation>
 <translation id="7258697411818564379">PIN anda telah ditambahkan</translation>
 <translation id="7262004276116528033">Perkhidmatan log masuk ini dihoskan oleh <ph name="SAML_DOMAIN" /></translation>
 <translation id="7268127947535186412">Tetapan ini diurus oleh pemilik peranti.</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 91bb661..6cc7ea22 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -5210,7 +5210,7 @@
 <translation id="8652400352452647993">Błąd rozszerzenia pakietu</translation>
 <translation id="8654151524613148204">Plik jest zbyt duży dla komputera. Przepraszamy.</translation>
 <translation id="8655295600908251630">Kanał</translation>
-<translation id="8655319619291175901">Ups... Coś poszło źle.</translation>
+<translation id="8655319619291175901">Ups... Coś poszło nie tak.</translation>
 <translation id="8655972064210167941">Nie udało się zalogować, bo nie można zweryfikować hasła. Skontaktuj się z administratorem lub spróbuj ponownie.</translation>
 <translation id="8656619792520327915">Dodaj inny klucz bezpieczeństwa Bluetooth</translation>
 <translation id="8656768832129462377">Nie sprawdzaj</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 1a098c4..8a0d12f 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -347,9 +347,9 @@
 <translation id="1509281256533087115">Fikia <ph name="DEVICE_NAME_AND_VENDOR" /> yoyote kupitia USB</translation>
 <translation id="150962533380566081">PUK si sahihi.</translation>
 <translation id="1510030919967934016">Ukurasa huu umezuiwa kufuata mahali ulipo.</translation>
-<translation id="1510055949674985293">Tengeneza msimbo wa QR wa Picha hii</translation>
+<translation id="1510055949674985293">Pata msimbo wa QR wa Picha hii</translation>
 <translation id="1510238584712386396">Kizindua</translation>
-<translation id="1510581003097415337">Tengeneza msimbo wa QR wa ukurasa huu</translation>
+<translation id="1510581003097415337">Pata msimbo wa QR wa ukurasa huu</translation>
 <translation id="1510785804673676069">Ukitumia seva ya proksi, angalia mipangilio yako ya proksi au wasiliana na msimamizi wako wa mtandao ili kuhakikisha kuwa seva ya proksi inafanya kazi. Ikiwa huamini kuwa unafaa kuwa ukitumia seva ya proksi, rekebisha <ph name="LINK_START" />mipangilio yako ya proksi<ph name="LINK_END" />.</translation>
 <translation id="1511997356770098059">Ufunguo huu wa usalama hauwezi kuhifadhi data yoyote ya kuingia katika akaunti</translation>
 <translation id="1512210426710821809">Njia pekee ya kutendua hili ni kusakinisha tena <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
@@ -628,7 +628,7 @@
 <translation id="1895658205118569222">Funga</translation>
 <translation id="1895934970388272448">Lazima uthibitishe usajili kwenye printa yako ili umalize mchakato huu - angalia sasa.</translation>
 <translation id="1899826437968063457">Plugin VM inataka ruhusa ili itekeleze shughuli</translation>
-<translation id="1900305421498694955">Huenda programu kwenye Google Play zikahitaji ufikiaji kamili wa mfumo wa faili ili kusoma na kuandika faili kwenye vifaa vya hifadhi ya nje. Faili na folda zinazotengenezwa kwenye kifaa huonekana kwa mtu yeyote anayetumia hifadhi ya nje. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
+<translation id="1900305421498694955">Huenda programu kwenye Google Play zikahitaji ufikiaji kamili wa mfumo wa faili ili kusoma na kuandika faili kwenye vifaa vya hifadhi ya nje. Faili na folda mpya zinazoongezwa kwenye kifaa huonekana kwa mtu yeyote anayetumia hifadhi ya nje. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
 <translation id="1901303067676059328">Chagua &amp;yote</translation>
 <translation id="1901984611178952431">Dhibiti data ya kuingia katika akaunti</translation>
 <translation id="1902576642799138955">Kipindi cha Uhalali</translation>
@@ -3554,7 +3554,7 @@
 <translation id="6225475702458870625">Muunganisho wa data unapatikana kutoka kwenye <ph name="PHONE_NAME" /> yako</translation>
 <translation id="6226777517901268232">Faili ya ufunguo binafsi (hiari)</translation>
 <translation id="6228691855869374890">Tovuti hii ina udhibiti kamili wa vifaa vya MIDI.</translation>
-<translation id="6228720835160974792">Tengeneza msimbo wa QR wa picha hii</translation>
+<translation id="6228720835160974792">Pata msimbo wa QR wa picha hii</translation>
 <translation id="6229890768313448549">Sheria na Masharti ya Google Play hayawezi kupakiwa. Tafadhali jaribu tena.</translation>
 <translation id="6231881193380278751">Ongeza hoja katika URL ili kuonyesha upya ukurasa kiotomatiki: chrome://device-log/?refresh=&lt;sec&gt;</translation>
 <translation id="6232017090690406397">Betri</translation>
@@ -4150,7 +4150,7 @@
 <translation id="7121728544325372695">Dashi Mahiri</translation>
 <translation id="7123360114020465152">Haitumiki tena</translation>
 <translation id="7127980134843952133">Historia ya upakuaji</translation>
-<translation id="7128239828194367697">Tengeneza msimbo wa QR wa Ukurasa huu</translation>
+<translation id="7128239828194367697">Pata msimbo wa QR wa ukurasa huu</translation>
 <translation id="7131040479572660648">Soma data yako kwenye <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, na <ph name="WEBSITE_3" /></translation>
 <translation id="713122686776214250">Ongeza ukura&amp;sa...</translation>
 <translation id="7133578150266914903">Msimamizi wako anarejesha mipangilio ya awali ya kifaa hiki (<ph name="PROGRESS_PERCENT" />)</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index b25aded..9418ed1 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome ጊዜው አልፎበታል</translation>
 <translation id="1900795423379050516">በዚህ ገጽ ላይ አንድ ቅንብር ካልታየ በእርስዎ <ph name="LINK_BEGIN" />
       የ Chrome አሳሽ ቅንብሮች<ph name="LINK_END" /> ውስጥ ይመልከቱ</translation>
-<translation id="1915828456209461693">ለChrome አዲስ ዝማኔ ይገኛል እና ልክ ዳግም ሲያስጀምሩት ይተገበራል።</translation>
 <translation id="1919130412786645364">የChrome በመለያ መግባትን ይፍቀዱ</translation>
 <translation id="2063848847527508675">Chrome OS ዝማኔውን ለመተግበር ዳግም መጀመር አለበት።</translation>
 <translation id="2094919256425865063">የሆነው ሆኖ Chrome ይቁም?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Google Chrome የእርስዎን የይለፍ ቃላት ወደ ውጭ መላክ ይፈልጋል። ይህንን ለመፍቀድ የWindows የይለፍ ቃልዎን ይተይቡ።</translation>
 <translation id="2485422356828889247">አራግፍ</translation>
 <translation id="2534507159460261402">Google Pay (ወደ Chrome ተቀድቷል)</translation>
-<translation id="2535429035253759792">ይህን ዝማኔ ለመተግበር አስተዳዳሪዎ Chromeን ዳግም እንዲያስጀምሩ ይጠይቀዎታል</translation>
 <translation id="2580411288591421699">አሁን እየሰራ ካለው Google Chrome ጋር አንድ አይነት የሆነ ስሪት መጫን አይቻልም። እባክዎ Google Chrome ይዝጉና እንደገና ይሞክሩ።</translation>
 <translation id="2586406160782125153">ይሄ የአሰሳ ውሂብዎን ከዚህ መሣሪያዎ ይሰርዘዋል። ውሂብዎን በኋላ ላይ ሰርስረው ለማውጣት እንደ <ph name="USER_EMAIL" /> ሆነው ወደ Chrome ይግቡ።</translation>
 <translation id="2588322182880276190">የChrome አርማ</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome የተዘመነ ነው</translation>
 <translation id="7890208801193284374">ኮምፒውተር የሚጋሩ ከሆኑ ጓደኛዎች እና ቤተሰብ ተለይተው ሊያስሱ እና Chromeን በሚፈልጉበት መንገድ ማዋቀር ይችላሉ።</translation>
 <translation id="7896673875602241923">የሆነ ሰው ከዚህ ቀደም በዚህ ኮምፒውተር ላይ እንደ <ph name="ACCOUNT_EMAIL_LAST" /> ሆነው ወደ Chrome ገብተዋል። የእርስዎን መረጃ ለይተው ለማስቀመጥ እባክዎ አዲስ የChrome ተጠቃሚ ይፍጠሩ።</translation>
-<translation id="7908168227788431038">የተዘመነ ለመሆን ጥቂት ብቻ ቀርቷል! ዝማኔውን ለማጠናቀቅ Google Chromeን ዳግም ያስጀምሩት።</translation>
 <translation id="7962410387636238736">Windows XP እና Windows Vista ከእንግዲህ ስለማይደገፉ ይህ ኮምፒውተር ከአሁን በኋላ የGoogle Chrome ዝማኔዎችን አይቀበልም።</translation>
 <translation id="8008534537613507642">Chromeን ዳግም ጫነው</translation>
 <translation id="8013993649590906847">አንድ ምስል ጠቃሚ መግለጫ ከሌለው Chrome ለእርስዎ አንድ ለማቅረብ ይሞክራል። ዝርዝር መግለጫዎችን ለመፍጠር፣ ምስሎች ወደ Google ይላካሉ።</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">እንዲሁም Chromeን ሲጀምሩት የሚታየውን ገጽ ይቆጣጠራል።</translation>
 <translation id="870251953148363156">&amp;Google Chromeን አዘምን</translation>
 <translation id="873133009373065397">Google Chrome ነባሪ አሳሹን ማወቅ ወይም ማቀናበር አልቻለም</translation>
-<translation id="8736674169840206667">አንድ ዝማኔ ለመተግበር አስተዳዳሪዎ Chromeን ዳግም እንዲያስጀምሩት ይፈልግብዎታል</translation>
 <translation id="8823341990149967727">Chrome ጊዜው አልፎበታል</translation>
 <translation id="884296878221830158">እንዲሁም Chromeን ሲጀምሩት ወይም የመነሻ አዝራሩን ጠቅ ሲያደርጉት የሚታየውን ገጽ ይቆጣጠራል።</translation>
 <translation id="8862326446509486874">ለስርዓተ-ደረጃ ጭነት ተገቢ መብቶች የሉዎትም። ጫኚውን እንደ አስተዳዳሪ በማሄድ እንደገና ይሞክሩ።</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index 43715e88..2338e708 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -41,7 +41,6 @@
 <translation id="1877026089748256423">‏إصدار Chrome قديم</translation>
 <translation id="1900795423379050516">‏في حال عدم عرض إعداد على هذه الصفحة، انتقل إلى <ph name="LINK_BEGIN" />
     إعدادات متصفِّح Chrome<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">‏يتوفر تحديث جديد لبرنامج Chrome وسيتم تطبيقه عند إعادة التشغيل.</translation>
 <translation id="1919130412786645364">‏السماح بتسجيل الدخول إلى Chrome</translation>
 <translation id="2063848847527508675">‏يلزم إعادة تشغيل نظام التشغيل Chrome حتى يتم تطبيق التحديث.</translation>
 <translation id="2094919256425865063">‏هل تريد الخروج من Chrome على أي حال؟</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">‏يرغب Google Chrome في تصدير كلمات مرورك، لذا يُرجى كتابة كلمة مرور Windows للسماح بذلك.</translation>
 <translation id="2485422356828889247">إزالة التثبيت</translation>
 <translation id="2534507159460261402">‏Google Pay (تم النسخ إلى Chrome)</translation>
-<translation id="2535429035253759792">‏يطلب المُشرِف إعادة تشغيل Chrome لتطبيق هذا التحديث.</translation>
 <translation id="2580411288591421699">‏لا يمكن تثبيت نفس الإصدار المثبت من Google Chrome والذي يتم تشغيله حاليًا. يُرجى إغلاق Google Chrome وإعادة المحاولة.</translation>
 <translation id="2586406160782125153">‏سيؤدي هذا إلى حذف بيانات التصفح من هذا الجهاز. لاسترداد بياناتك لاحقًا، سجّل الدخول إلى Chrome كـ <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">‏شعار Chrome</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">‏Google Chrome محدّث</translation>
 <translation id="7890208801193284374">‏إذا كنت تشارك الكمبيوتر مع أصدقائك وعائلتك، فبإمكانهم التصفح على حدة وإعداد Chrome على النحو الذي يريدونه.</translation>
 <translation id="7896673875602241923">‏سجّل شخص ما الدخول من قبل إلى Chrome على جهاز الكمبيوتر هذا باسم <ph name="ACCOUNT_EMAIL_LAST" />. يُرجى إنشاء حساب مستخدم جديد في Chrome للإبقاء على معلوماتك بشكلٍ منفصل.</translation>
-<translation id="7908168227788431038">‏أوشك التحديث على الانتهاء! أعِد تشغيل Google Chrome لإنهاء التحديث.</translation>
 <translation id="7962410387636238736">‏لن يستلم جهاز الكمبيوتر هذا تحديثات Google Chrome لأن Windows XP وWindows Vista أصبحا غير مدعومين.</translation>
 <translation id="8008534537613507642">‏إعادة تثبيت Chrome</translation>
 <translation id="8013993649590906847">‏في حال لم تتضمن صورة ما وصفًا مفيدًا، سيحاول Chrome توفير وصف لك. لإنشاء الأوصاف، سيتم إرسال الصور إلى Google.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">‏كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chrome.</translation>
 <translation id="870251953148363156">‏&amp;تحديث Google Chrome</translation>
 <translation id="873133009373065397">‏يتعذَّر على Google Chrome تحديد المتصفح التلقائي أو تعيينه</translation>
-<translation id="8736674169840206667">‏يطلب المُشرِف إعادة تشغيل Chrome لتطبيق تحديث.</translation>
 <translation id="8823341990149967727">‏إصدار Chrome قديم</translation>
 <translation id="884296878221830158">‏كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chrome أو النقر على زر الصفحة الرئيسية.</translation>
 <translation id="8862326446509486874">لا تملك الحقوق الكافية للتثبيت على مستوى النظام. جرّب تشغيل المثبِّت بصفة مشرف.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb
index 7551f0d..7f219c0c 100644
--- a/chrome/app/resources/google_chrome_strings_bg.xtb
+++ b/chrome/app/resources/google_chrome_strings_bg.xtb
@@ -40,7 +40,6 @@
 <translation id="1874309113135274312">Google Chrome бета (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome не е актуален</translation>
 <translation id="1900795423379050516">Ако дадена настройка не се показва на тази страница, потърсете в <ph name="LINK_BEGIN" />настройките на браузъра Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Налице е актуализация за Chrome, която ще бъде приложена веднага щом рестартирате.</translation>
 <translation id="1919130412786645364">Разрешаване на влизането в Chrome</translation>
 <translation id="2063848847527508675">Chrome OS трябва да се рестартира, за да приложи актуализацията.</translation>
 <translation id="2094919256425865063">Искате ли да затворите Chrome въпреки това?</translation>
@@ -56,7 +55,6 @@
 <translation id="2467438592969358367">Google Chrome иска да експортира паролите ви. За да разрешите това, въведете паролата си за Windows.</translation>
 <translation id="2485422356828889247">Деинсталиране</translation>
 <translation id="2534507159460261402">Google Pay (копирано в Chrome)</translation>
-<translation id="2535429035253759792">Администраторът ви моли да рестартирате Chrome, за да се приложи тази актуализация</translation>
 <translation id="2580411288591421699">Не може да се инсталира същата версия на Google Chrome, която се използва понастоящем. Моля, затворете браузъра и опитайте отново.</translation>
 <translation id="2586406160782125153">Данните за сърфирането ви ще се изтрият от това устройство. За да ги извлечете по-късно, влезте в Chrome като <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Лого на Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome е актуален</translation>
 <translation id="7890208801193284374">Ако споделяте компютър, близките и приятелите ви могат да сърфират отделно и да настроят Chrome точно така, както искат.</translation>
 <translation id="7896673875602241923">По-рано някой влезе в Chrome на този компютър като <ph name="ACCOUNT_EMAIL_LAST" />. Моля, създайте нов потребител в браузъра, така че информацията ви да се съхранява отделно.</translation>
-<translation id="7908168227788431038">Актуализирането почти завърши! Остава само да стартирате отново Google Chrome.</translation>
 <translation id="7962410387636238736">От сега нататък този компютър няма да получава актуализации на Google Chrome, тъй като Windows XP и Windows Vista вече не се поддържат</translation>
 <translation id="8008534537613507642">Повторно инсталиране на Chrome</translation>
 <translation id="8013993649590906847">Ако няма полезно описание за дадено изображение, Chrome ще се опита да предостави такова. За да бъдат създадени описания, съответните изображения се изпращат до Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">То също контролира коя страница се показва при стартиране на Chrome.</translation>
 <translation id="870251953148363156">Актуализиране на &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome не може да определи или зададе браузъра по подразбиране</translation>
-<translation id="8736674169840206667">Администраторът ви изисква да рестартирате Chrome, за да се приложи актуализация</translation>
 <translation id="8823341990149967727">Chrome не е актуален</translation>
 <translation id="884296878221830158">То също контролира коя страница се показва при стартиране на Chrome или при кликване върху бутона „Начална страница“.</translation>
 <translation id="8862326446509486874">Нямате подходящи права за инсталация на ниво система. Опитайте да стартирате отново инсталационната програма като администратор.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb
index 1ef0d75..fbceb5b 100644
--- a/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -41,7 +41,6 @@
 <translation id="1877026089748256423">Chrome পুরানো হয়ে গেছে</translation>
 <translation id="1900795423379050516">এই পৃষ্ঠাতে কোনও একটি সেটিং দেখা না গেলে, আপনার <ph name="LINK_BEGIN" />
       Chrome ব্রাউজার সেটিংস<ph name="LINK_END" /> বিকল্পটি দেখুন</translation>
-<translation id="1915828456209461693">Chrome-এর একটি নতুন আপডেট উপলভ্য আছে এবং আপনি আবার চালু করলে সেটি প্রয়োগ করা হবে।</translation>
 <translation id="1919130412786645364">Chrome-এ সাইন-ইন করতে দিন</translation>
 <translation id="2063848847527508675">আপডেটটি প্রয়োগ করতে Chrome OS আবার চালু করা প্রয়োজন।</translation>
 <translation id="2094919256425865063">তা স্বত্তেও Chrome বন্ধ করবেন?</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">Google Chrome আপনার পাসওয়ার্ড এক্সপোর্ট করতে চাইছে। অনুমতি দিতে Windows এর পাসওয়ার্ড টাইপ করুন।</translation>
 <translation id="2485422356828889247">আনইনস্টল</translation>
 <translation id="2534507159460261402">Google Pay (Chrome এ কপি করা হয়েছে)</translation>
-<translation id="2535429035253759792">এই আপডেটটি প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর চান যে আপনি Chrome আবার চালু করুন</translation>
 <translation id="2580411288591421699">বর্তমানে Google Chrome-এর যে ভার্সনটি চলছে সেটি ইনস্টল করা যায় না৷ অনুগ্রহ করে Google Chrome বন্ধ করুন এবং আবার চেষ্টা করুন৷</translation>
 <translation id="2586406160782125153">এটি এই ডিভাইস থেকে আপনার ব্রাউজিং ডেটা মুছে দেবে। আপনার ডেটা পরে পুনরুদ্ধার করার জন্য, Chrome-এ <ph name="USER_EMAIL" /> হিসেবে সাইন-ইন করুন।</translation>
 <translation id="2588322182880276190">Chrome লোগো</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Google Chrome আপ টু ডেট আছে</translation>
 <translation id="7890208801193284374">যদি আপনি একটি কম্পিউটার শেয়ার করেন, তাহলে বন্ধু ও পরিবারের লোকজন পৃথকভাবে ব্রাউজ করতে পারবেন এবং তাদের ইচ্ছা অনুযায়ী Chrome-এর সেটআপ করতে পারবেন৷</translation>
 <translation id="7896673875602241923">আগে কোনো একজন এই কম্পিউটারে <ph name="ACCOUNT_EMAIL_LAST" /> হিসাবে Chrome-এ সাইন-ইন করেছেন। আপনার তথ্য আলাদা রাখার জন্য অনুগ্রহ করে একটি নতুন Chrome ব্যবহারকারী তৈরি করুন।</translation>
-<translation id="7908168227788431038">প্রায় আপ-টু-ডেট হয়েছে! আপডেট শেষ করতে Google Chrome আবার চালু করুন।</translation>
 <translation id="7962410387636238736">Windows XP ও Windows Vista আর সমর্থিত না হওয়ার জন্য এই কম্পিউটারে আর Google Chrome আপডেট পাবে না</translation>
 <translation id="8008534537613507642">Chrome আবার ইন্সটল করুন</translation>
 <translation id="8013993649590906847">যদি ছবিতে প্রয়োজনীয় বিবরণ দেওয়া না থাকে, তাহলে Chrome আপনাকে একটি বিবরণ দেওয়ার চেষ্টা করবে। বিবরণ তৈরির জন্য, Google-এ ছবি পাঠানো হয়।</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">আপনি Chrome শুরু করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
 <translation id="870251953148363156">&amp;Google Chrome আপডেট</translation>
 <translation id="873133009373065397">Google Chrome ডিফল্ট ব্রাউজার নির্ধারণ বা সেট করতে পারছে না</translation>
-<translation id="8736674169840206667">একটি আপডেট প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর চান যে আপনি Chrome আবার চালু করুন</translation>
 <translation id="8823341990149967727">Chrome পুরানো হয়ে গেছে</translation>
 <translation id="884296878221830158">আপনি Chrome শুরু করলে বা হোম বোতামটি ক্লিক করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
 <translation id="8862326446509486874">সিস্টেম-স্তরীয় ইনস্টলের জন্য আপনার কাছে যথাযথ অধিকারগুলি নেই৷ অ্যাডমিনিস্ট্রেটর হিসেবে আবার ইনস্টলারটি চালানোর চেষ্টা করুন৷</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb
index 91e31f9..4df5593 100644
--- a/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome no està actualitzat</translation>
 <translation id="1900795423379050516">Si alguna opció de configuració no es mostra en aquesta pàgina, consulta la <ph name="LINK_BEGIN" />configuració del navegador Chrome<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">Hi ha una nova actualització disponible per a Chrome i s'aplicarà tan aviat com el tornis a iniciar.</translation>
 <translation id="1919130412786645364">Permet l'inici de sessió a Chrome</translation>
 <translation id="2063848847527508675">Cal reiniciar Chrome OS per aplicar l'actualització.</translation>
 <translation id="2094919256425865063">Vols sortir de Chrome igualment?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">Google Chrome vol exportar les teves contrasenyes. Escriu la contrasenya de Windows per permetre-ho.</translation>
 <translation id="2485422356828889247">Desinstal·la</translation>
 <translation id="2534507159460261402">Google Pay (copiada a Chrome)</translation>
-<translation id="2535429035253759792">L'administrador et demana que reiniciïs Chrome per aplicar aquesta actualització</translation>
 <translation id="2580411288591421699">No es pot instal·lar la mateixa versió de Google Chrome que s'executa actualment. Tanqueu Google Chrome i torneu-ho a provar.</translation>
 <translation id="2586406160782125153">Amb aquesta acció, se suprimiran les teves dades de navegació d'aquest dispositiu. Per recuperar les teves dades més endavant, inicia la sessió a Chrome com a <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logotip de Chrome</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">Google Chrome està actualitzat</translation>
 <translation id="7890208801193284374">Si compartiu un ordinador, els amics i els familiars poden navegar de manera independent i configurar Chrome com vulguin.</translation>
 <translation id="7896673875602241923">Algú ha iniciat anteriorment la sessió a Chrome en aquest ordinador com a <ph name="ACCOUNT_EMAIL_LAST" />. Crea un usuari de Chrome per mantenir la informació separada.</translation>
-<translation id="7908168227788431038">Gairebé heu acabat. Reinicieu Google Chrome per completar l'actualització.</translation>
 <translation id="7962410387636238736">Aquest ordinador ja no rebrà més actualitzacions de Google Chrome perquè Windows XP i Windows Vista ja no són compatibles</translation>
 <translation id="8008534537613507642">Torna a instal·lar Chrome</translation>
 <translation id="8013993649590906847">Si una imatge no té una descripció útil, Chrome provarà d'oferir-te'n una. Per crear les descripcions, les imatges s'envien a Google.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">També controla la pàgina que es mostra quan inicieu Chrome.</translation>
 <translation id="870251953148363156">Actualitza &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome no pot determinar ni definir el navegador predeterminat</translation>
-<translation id="8736674169840206667">L'administrador necessita que reiniciïs Chrome per aplicar una actualització</translation>
 <translation id="8823341990149967727">Chrome no està actualitzat</translation>
 <translation id="884296878221830158">També controla la pàgina que es mostra quan inicieu Chrome o quan feu clic al botó Pàgina d'inici.</translation>
 <translation id="8862326446509486874">No disposeu dels drets necessaris per instal·lar aplicacions al sistema. Proveu de tornar a executar l'instal·lador com a administrador.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index 34979a3..eb5c768 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -42,7 +42,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome je zastaralý</translation>
 <translation id="1900795423379050516">Pokud některé nastavení na této stránce není zobrazeno, podívejte se do <ph name="LINK_BEGIN" />nastavení prohlížeče Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Je k dispozici nová aktualizace Chromu, která bude použita po restartování.</translation>
 <translation id="1919130412786645364">Povolit přihlášení do Chromu</translation>
 <translation id="2063848847527508675">Aktualizace se použije po restartování systému Chrome OS.</translation>
 <translation id="2094919256425865063">Přesto Chrome ukončit?</translation>
@@ -58,7 +57,6 @@
 <translation id="2467438592969358367">Google Chrome chce exportovat vaše hesla. Tato akce vyžaduje zadání hesla systému Windows.</translation>
 <translation id="2485422356828889247">Odinstalovat</translation>
 <translation id="2534507159460261402">Google Pay (zkopírováno do Chromu)</translation>
-<translation id="2535429035253759792">Váš administrátor vás žádá, abyste kvůli použití této aktualizace Chrome restartovali</translation>
 <translation id="2580411288591421699">Nelze nainstalovat verzi aplikace Google Chrome, která je právě spuštěná. Ukončete aplikaci Google Chrome a opakujte akci.</translation>
 <translation id="2586406160782125153">Ze zařízení budou smazány vaše údaje o prohlížení. Budete-li chtít své údaje později načíst, přihlaste se do Chromu jako <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo Chrome</translation>
@@ -215,7 +213,6 @@
 <translation id="7855730255114109580">Google Chrome je aktuální</translation>
 <translation id="7890208801193284374">Pokud počítač sdílíte s kamarády a členy rodiny, každý může web procházet samostatně a nastavit si Chrome podle svých požadavků.</translation>
 <translation id="7896673875602241923">Prohlížeč Chrome v tomto počítači je již přihlášen k účtu <ph name="ACCOUNT_EMAIL_LAST" />. Chcete-li své informace uchovat odděleně, vytvořte nového uživatele Chromu.</translation>
-<translation id="7908168227788431038">Aktualizace je téměř hotova. Dokončíte ji restartováním prohlížeče Google Chrome.</translation>
 <translation id="7962410387636238736">Google Chrome se v tomto počítači již nebude aktualizovat, protože systémy Windows XP a Windows Vista již nejsou podporovány.</translation>
 <translation id="8008534537613507642">Přeinstalovat Chrome</translation>
 <translation id="8013993649590906847">Pokud obrázek nemá užitečný popis, Chrome se vám jej pokusí poskytnout. Za účelem vytváření popisů jsou obrázky odesílány do Googlu.</translation>
@@ -238,7 +235,6 @@
 <translation id="8679801911857917785">Také řídí, která stránka se zobrazí při spuštění Chromu.</translation>
 <translation id="870251953148363156">Aktualizace aplikace &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome nemůže určit ani nastavit výchozí prohlížeč</translation>
-<translation id="8736674169840206667">Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chrome restartovali</translation>
 <translation id="8823341990149967727">Chrome je zastaralý</translation>
 <translation id="884296878221830158">Také řídí, která stránka se zobrazí při spuštění Chromu nebo po kliknutí na tlačítko Domovská stránka.</translation>
 <translation id="8862326446509486874">Nemáte práva nutná k provádění instalací na úrovni systému. Zkuste spustit instalační program jako správce.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb
index 38c7d16..cd55f17 100644
--- a/chrome/app/resources/google_chrome_strings_da.xtb
+++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome er forældet</translation>
 <translation id="1900795423379050516">Hvis en indstilling ikke vises på denne side, kan du kigge i <ph name="LINK_BEGIN" />
       indstillingerne for Chrome-browseren<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Der er en tilgængelig Chrome-opdatering, som anvendes, så snart du genstarter.</translation>
 <translation id="1919130412786645364">Tillad login i Chrome</translation>
 <translation id="2063848847527508675">Chrome OS skal genstartes, før opdateringen kan anvendes.</translation>
 <translation id="2094919256425865063">Vil du slutte Chrome alligevel?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome anmoder om at eksportere dine adgangskoder. Angiv din Windows-adgangskode for at tillade dette.</translation>
 <translation id="2485422356828889247">Afinstaller</translation>
 <translation id="2534507159460261402">Google Pay (kopieret til Chrome)</translation>
-<translation id="2535429035253759792">Din administrator anmoder om, at du genstarter Chrome for at anvende denne opdatering</translation>
 <translation id="2580411288591421699">Det er ikke muligt at installere den samme version af Google Chrome, som allerede kører. Luk Google Chrome, og prøv igen.</translation>
 <translation id="2586406160782125153">Denne handling sletter dine browserdata på denne enhed. Hvis du senere vil hente dine data igen, skal du logge ind på Chrome som <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome-logo</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome er opdateret</translation>
 <translation id="7890208801193284374">Hvis du deler en computer, kan venner og familie browse individuelt og konfigurere Chrome, som de ønsker hver især.</translation>
 <translation id="7896673875602241923">Nogen har tidligere logget ind på Chrome på denne computer som <ph name="ACCOUNT_EMAIL_LAST" />. Opret en ny Chrome-bruger for at holde dine oplysninger adskilt.</translation>
-<translation id="7908168227788431038">Næsten opdateret! Genstart Google Chrome for at gennemføre opdateringen.</translation>
 <translation id="7962410387636238736">Denne computer modtager ikke længere Google Chrome-opdateringer, da Windows XP og Windows Vista ikke længere understøttes.</translation>
 <translation id="8008534537613507642">Geninstaller Chrome</translation>
 <translation id="8013993649590906847">Hvis et billede ikke har en brugbar beskrivelse, forsøger Chrome at angive en for dig. Billederne sendes til Google, så der kan oprettes beskrivelser.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Den styrer også, hvilken side der vises, når du åbner Chrome.</translation>
 <translation id="870251953148363156">Opdater &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome kan ikke fastlægge eller angive standardbrowseren</translation>
-<translation id="8736674169840206667">Din administrator kræver, at du genstarter Chrome for at anvende en opdatering</translation>
 <translation id="8823341990149967727">Chrome er forældet</translation>
 <translation id="884296878221830158">Den styrer også, hvilken side der vises, når du åbner Chrome eller klikker på knappen Startside.</translation>
 <translation id="8862326446509486874">Du har ikke de nødvendige rettigheder til en installation på systemniveau. Prøv at køre installationsprogrammet igen som administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 0aac755a..502aac2b 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome ist veraltet.</translation>
 <translation id="1900795423379050516">Wenn Sie auf dieser Seite eine Einstellung nicht finden können, sehen Sie in den <ph name="LINK_BEGIN" />Chromium-Browsereinstellungen<ph name="LINK_END" /> nach</translation>
-<translation id="1915828456209461693">Ein neues Update für Chrome ist verfügbar und wird installiert, sobald Sie den Browser neu starten.</translation>
 <translation id="1919130412786645364">Anmeldung in Chrome zulassen</translation>
 <translation id="2063848847527508675">Chrome OS muss neu gestartet werden, um das Update zu übernehmen.</translation>
 <translation id="2094919256425865063">Chrome trotzdem beenden?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">Google Chrome möchte Ihre Passwörter exportieren. Wenn Sie dies zulassen möchten, geben Sie Ihr Windows-Passwort ein.</translation>
 <translation id="2485422356828889247">Deinstallieren</translation>
 <translation id="2534507159460261402">Google Pay (in Chrome kopiert)</translation>
-<translation id="2535429035253759792">Laut Ihrem Administrator sollten Sie Chrome neu starten, um dieses Update durchzuführen</translation>
 <translation id="2580411288591421699">Die Google Chrome-Version kann nicht installiert werden, da sie aktuell ausgeführt wird. Schließen Sie Google Chrome und versuchen Sie es erneut.</translation>
 <translation id="2586406160782125153">Dadurch werden Ihre Browserdaten von diesem Gerät gelöscht. Wenn Sie Ihre Daten später abrufen möchten, melden Sie sich als <ph name="USER_EMAIL" /> in Chrome an.</translation>
 <translation id="2588322182880276190">Chrome-Logo</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">Google Chrome ist auf dem neuesten Stand.</translation>
 <translation id="7890208801193284374">Bei gemeinsam genutzten Computern können die verschiedenen Personen separat surfen und Chrome jeweils nach ihren Wünschen einrichten.</translation>
 <translation id="7896673875602241923">Auf diesem Computer war zuvor ein Nutzer mit dem Konto <ph name="ACCOUNT_EMAIL_LAST" /> in Chrome angemeldet. Erstellen Sie einen neuen Chrome-Nutzer, um Ihre Daten getrennt zu verwenden.</translation>
-<translation id="7908168227788431038">Fast fertig! Starten Sie Google Chrome neu, um die Aktualisierung abzuschließen.</translation>
 <translation id="7962410387636238736">Dieser Computer erhält keine Google Chrome-Updates mehr, da Windows XP und Windows Vista nicht mehr unterstützt werden</translation>
 <translation id="8008534537613507642">Chrome erneut installieren</translation>
 <translation id="8013993649590906847">Wenn ein Bild keine brauchbare Beschreibung hat, versucht Chrome, eine für Sie zu finden. Damit entsprechende Beschreibungen erstellt werden können, werden die Bilder an Google gesendet.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">Die Erweiterung legt auch die Seite fest, die beim Start von Chrome angezeigt wird.</translation>
 <translation id="870251953148363156">&amp;Google Chrome aktualisieren</translation>
 <translation id="873133009373065397">Google Chrome kann den Standardbrowser nicht bestimmen oder festlegen</translation>
-<translation id="8736674169840206667">Laut Ihrem Administrator müssen Sie Chrome neu starten, um ein Update durchzuführen</translation>
 <translation id="8823341990149967727">Chrome ist veraltet.</translation>
 <translation id="884296878221830158">Die Erweiterung legt auch fest, welche Seite beim Start von Chrome angezeigt wird oder wenn Sie auf die Schaltfläche "Startseite" klicken.</translation>
 <translation id="8862326446509486874">Sie verfügen nicht über die erforderlichen Rechte für eine systemweite Installation. Starten Sie das Installationsprogramm als Administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb
index ef2a7c81..13f22f7 100644
--- a/chrome/app/resources/google_chrome_strings_el.xtb
+++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -41,7 +41,6 @@
 <translation id="1877026089748256423">Το Chrome δεν είναι ενημερωμένο</translation>
 <translation id="1900795423379050516">Εάν μια ρύθμιση δεν εμφανίζεται σε αυτήν τη σελίδα, αναζητήστε την στις <ph name="LINK_BEGIN" />
       ρυθμίσεις του προγράμματος περιήγησης Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Υπάρχει νέα διαθέσιμη ενημέρωση για το Chrome και θα εφαρμοστεί μόλις κάνετε επανεκκίνηση.</translation>
 <translation id="1919130412786645364">Να επιτρέπεται η σύνδεση στο Chrome</translation>
 <translation id="2063848847527508675">Για να εφαρμοστεί η ενημέρωση, πρέπει να γίνει επανεκκίνηση του Chrome OS.</translation>
 <translation id="2094919256425865063">Να τερματιστεί η λειτουργία του Chrome ούτως ή άλλως;</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">Το Google Chrome θέλει να εξαγάγει τους κωδικούς πρόσβασής σας. Για να το επιτρέψετε αυτό, πληκτρολογήστε τον κωδικό πρόσβασης για τα Windows.</translation>
 <translation id="2485422356828889247">Απεγκατάσταση</translation>
 <translation id="2534507159460261402">Google Pay (αντιγράφηκε στο Chrome)</translation>
-<translation id="2535429035253759792">Ο διαχειριστής σας ζητάει να επανεκκινήσετε το Chrome, προκειμένου να εφαρμοστεί αυτή η ενημέρωση</translation>
 <translation id="2580411288591421699">Δεν είναι δυνατή η εγκατάσταση της ίδιας έκδοσης του Google Chrome που εκτελείται αυτήν τη στιγμή. Κλείστε το Google Chrome και προσπαθήστε ξανά.</translation>
 <translation id="2586406160782125153">Με αυτήν την ενέργεια θα διαγραφούν τα δεδομένα περιήγησης από αυτήν τη συσκευή. Για να ανακτήσετε τα δεδομένα σας αργότερα, συνδεθείτε στο Chrome ως <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Λογότυπο Chrome</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Το Google Chrome είναι ενημερωμένο</translation>
 <translation id="7890208801193284374">Αν χρησιμοποιείτε έναν υπολογιστή από κοινού με άλλα άτομα, οι φίλοι και τα μέλη της οικογένειάς σας μπορούν να περιηγούνται αυτόνομα και να ρυθμίζουν το Chrome ακριβώς όπως θέλουν.</translation>
 <translation id="7896673875602241923">Κάποιο άτομο συνδέθηκε προηγουμένως στο Chrome σε αυτόν τον υπολογιστή ως <ph name="ACCOUNT_EMAIL_LAST" />. Δημιουργήστε έναν νέο χρήστη Chrome, για να διατηρείτε τις πληροφορίες σας ξεχωριστά.</translation>
-<translation id="7908168227788431038">Η ενημέρωση σχεδόν ολοκληρώθηκε! Εκτελέστε ξανά το Google Chrome για να ολοκληρωθεί η ενημέρωση.</translation>
 <translation id="7962410387636238736">Αυτός ο υπολογιστής δεν θα λαμβάνει πια ενημερώσεις Google Chrome, επειδή δεν υποστηρίζονται πλέον τα Windows XP και Windows Vista</translation>
 <translation id="8008534537613507642">Επανεγκατάσταση του Chrome</translation>
 <translation id="8013993649590906847">Εάν μια εικόνα δεν έχει κάποια χρήσιμη περιγραφή, το Chrome θα προσπαθήσει να σας προσφέρει μια περιγραφή. Για τη δημιουργία περιγραφών, αποστέλλονται εικόνες στην Google.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">Επίσης, ελέγχει τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chrome.</translation>
 <translation id="870251953148363156">Ενημέρωση &amp;του Google Chrome</translation>
 <translation id="873133009373065397">Το Google Chrome δεν μπορεί να καθορίσει ή να ορίσει το προεπιλεγμένο πρόγραμμα περιήγησης</translation>
-<translation id="8736674169840206667">Ο διαχειριστής σας απαιτεί να επανεκκινήσετε το Chrome, προκειμένου να εφαρμοστεί μια ενημέρωση</translation>
 <translation id="8823341990149967727">Το Chrome δεν είναι ενημερωμένο</translation>
 <translation id="884296878221830158">Επίσης, ελέγχει τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chrome ή όταν κάνετε κλικ στο κουμπί αρχικής σελίδας.</translation>
 <translation id="8862326446509486874">Δεν έχετε τα απαραίτητα δικαιώματα για εγκατάσταση σε επίπεδο συστήματος. Δοκιμάστε να εκτελέσετε ξανά το πρόγραμμα εγκατάστασης ως Διαχειριστής.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb
index 75e80c0..cfd9754 100644
--- a/chrome/app/resources/google_chrome_strings_en-GB.xtb
+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome is out of date</translation>
 <translation id="1900795423379050516">If a setting doesn't show on this page, look in your <ph name="LINK_BEGIN" />
       Chrome browser settings<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">A new update for Chrome is available and will be applied as soon as you relaunch.</translation>
 <translation id="1919130412786645364">Allow Chrome sign-in</translation>
 <translation id="2063848847527508675">Chrome OS needs to be restarted to apply the update.</translation>
 <translation id="2094919256425865063">Quit Chrome anyway?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Google Chrome wants to export your passwords. Type your Windows password to allow this.</translation>
 <translation id="2485422356828889247">Uninstall</translation>
 <translation id="2534507159460261402">Google Pay (copied to Chrome)</translation>
-<translation id="2535429035253759792">Your administrator asks that you relaunch Chrome to apply this update</translation>
 <translation id="2580411288591421699">Cannot install the same Google Chrome version that is currently running. Please close Google Chrome and try again.</translation>
 <translation id="2586406160782125153">This will delete your browsing data from this device. To retrieve your data later, sign in to Chrome as <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome logo</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome is up to date</translation>
 <translation id="7890208801193284374">If you share a computer, friends and family can browse separately and set up Chrome just the way they want.</translation>
 <translation id="7896673875602241923">Someone previously signed in to Chrome on this computer as <ph name="ACCOUNT_EMAIL_LAST" />. Please create a new Chrome user to keep your information separate.</translation>
-<translation id="7908168227788431038">Nearly up to date! Relaunch Google Chrome to finish updating.</translation>
 <translation id="7962410387636238736">This computer will no longer receive Google Chrome updates because Windows XP and Windows Vista are no longer supported</translation>
 <translation id="8008534537613507642">Reinstall Chrome</translation>
 <translation id="8013993649590906847">If an image doesn’t have a useful description, Chrome will try to provide one for you. To create descriptions, images are sent to Google.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">It also controls what page is shown when you start Chrome.</translation>
 <translation id="870251953148363156">Update &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome cannot determine or set the default browser</translation>
-<translation id="8736674169840206667">Your administrator requires that you relaunch Chrome to apply an update</translation>
 <translation id="8823341990149967727">Chrome is Out of Date</translation>
 <translation id="884296878221830158">It also controls what page is shown when you start Chrome or click the Home button.</translation>
 <translation id="8862326446509486874">You do not have appropriate rights for system-level installation. Try running the installer again as Administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index 16f16fc..78c8ed29 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome no está actualizado.</translation>
 <translation id="1900795423379050516">Si no ves una opción de configuración en esta página, consulta la <ph name="LINK_BEGIN" />
       configuración del navegador Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Hay una nueva actualización para Chrome disponible, que se aplicará cuando lo reinicies.</translation>
 <translation id="1919130412786645364">Permitir el acceso a Chrome</translation>
 <translation id="2063848847527508675">El Sistema operativo Chrome debe reiniciarse para que se aplique la actualización.</translation>
 <translation id="2094919256425865063">¿Deseas salir de Chrome de todos modos?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome desea exportar tus contraseñas. Para permitirlo, ingresa tu contraseña de Windows.</translation>
 <translation id="2485422356828889247">Desinstalación</translation>
 <translation id="2534507159460261402">Google Pay (copiada en Chrome)</translation>
-<translation id="2535429035253759792">Tu administrador te solicita que reinicies Chrome para aplicar esta actualización</translation>
 <translation id="2580411288591421699">No se puede instalar la misma versión de Google Chrome que se está ejecutando actualmente. Cierra Google Chrome e intenta nuevamente.</translation>
 <translation id="2586406160782125153">Esta acción borrará tus datos de navegación de este dispositivo. Si más adelante deseas recuperarlos, accede a tu cuenta en Chrome como <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo de Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome está actualizado</translation>
 <translation id="7890208801193284374">Si compartes una computadora, tus amigos y familiares pueden navegar de forma independiente y configurar Chrome según los gustos individuales.</translation>
 <translation id="7896673875602241923">Alguien accedió anteriormente a Google Chrome en esta computadora como <ph name="ACCOUNT_EMAIL_LAST" />. Crea un usuario de Chrome nuevo para mantener tu información por separado.</translation>
-<translation id="7908168227788431038">Google Chrome está casi actualizado. Reinícialo para completar la actualización.</translation>
 <translation id="7962410387636238736">Esta computadora dejará de recibir actualizaciones de Google Chrome porque Windows XP y Windows Vista ya no son compatibles</translation>
 <translation id="8008534537613507642">Reinstalar Chrome</translation>
 <translation id="8013993649590906847">Si una imagen no tiene una descripción útil, Chrome intentará proporcionarte una. Para crear descripciones, se envían las imágenes a Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">También controla qué página se muestra al iniciar Chrome.</translation>
 <translation id="870251953148363156">Actualizar &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome no puede determinar ni establecer el navegador predeterminado</translation>
-<translation id="8736674169840206667">El administrador necesita que reinicies Chrome para aplicar una actualización</translation>
 <translation id="8823341990149967727">Chrome no actualizado</translation>
 <translation id="884296878221830158">También controla qué página se muestra al iniciar Chrome o al hacer clic en el botón de página principal.</translation>
 <translation id="8862326446509486874">No tienes los derechos que se requieren para realizar la instalación al nivel del sistema. Intenta ejecutar el instalador nuevamente como Administrador.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb
index fea5e9b9..3ba1e1b 100644
--- a/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome no está actualizado</translation>
 <translation id="1900795423379050516">Si no se muestra algún ajuste en esta página, consulta la <ph name="LINK_BEGIN" />
       configuración del navegador Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Hay una nueva actualización de Chrome disponible que se aplicará cuando reinicies el dispositivo.</translation>
 <translation id="1919130412786645364">Permitir el inicio de sesión en Chrome</translation>
 <translation id="2063848847527508675">Chrome OS se debe reiniciar para que se aplique la actualización.</translation>
 <translation id="2094919256425865063">¿Quieres cerrar Chrome de todas formas?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Google Chrome quiere exportar tus contraseñas. Escribe tu contraseña de Windows para permitirlo.</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2534507159460261402">Google Pay (copiada en Chrome)</translation>
-<translation id="2535429035253759792">Tu administrador pide que reinicies Chrome para aplicar esta actualización</translation>
 <translation id="2580411288591421699">No se puede instalar la misma versión de Google Chrome que se está ejecutando. Cierra el navegador y vuelve a intentarlo.</translation>
 <translation id="2586406160782125153">Se eliminarán tus datos de navegación de este dispositivo. Para recuperar tus datos en otro momento, inicia sesión en Chrome como <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logotipo de Chrome</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome está actualizado</translation>
 <translation id="7890208801193284374">Si compartes un ordenador, tus amigos y familiares pueden navegar de forma independiente y configurar Chrome a su gusto.</translation>
 <translation id="7896673875602241923">Otro usuario ha iniciado sesión anteriormente en Chrome con la cuenta <ph name="ACCOUNT_EMAIL_LAST" /> a través de este ordenador. Debes crear un usuario de Chrome para proteger tu información.</translation>
-<translation id="7908168227788431038">Google Chrome casi ha terminado de actualizarse. Reinícialo para completar la actualización.</translation>
 <translation id="7962410387636238736">Este ordenador dejará de recibir actualizaciones de Google Chrome porque ya no es compatible con Windows XP ni Windows Vista.</translation>
 <translation id="8008534537613507642">Reinstalar Chrome</translation>
 <translation id="8013993649590906847">Si una imagen no tiene ninguna descripción útil, Chrome intentará proporcionártela. Para crear las descripciones, las imágenes se envían a Google.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">También controla qué página se muestra al iniciar Chrome.</translation>
 <translation id="870251953148363156">Actualizar &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome no puede determinar ni establecer el navegador predeterminado</translation>
-<translation id="8736674169840206667">Tu administrador pide que reinicies Chrome para aplicar una actualización</translation>
 <translation id="8823341990149967727">Chrome no está actualizado</translation>
 <translation id="884296878221830158">También controla qué página se muestra al iniciar Chrome o hacer clic en el botón Página de inicio.</translation>
 <translation id="8862326446509486874">No dispones de los derechos necesarios para la instalación en el sistema. Intenta ejecutar de nuevo el programa de instalación como administrador.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb
index bdf74d02..de08a3d8 100644
--- a/chrome/app/resources/google_chrome_strings_et.xtb
+++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -41,7 +41,6 @@
 <translation id="1877026089748256423">Chrome on aegunud</translation>
 <translation id="1900795423379050516">Kui seadet sellel lehel ei kuvata, vaadake oma <ph name="LINK_BEGIN" />
       Chrome'i brauseri seadeid<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Saadaval on uus Chrome'i värskendus, mis rakendatakse taaskäivitamisel.</translation>
 <translation id="1919130412786645364">Luba Chrome'i sisselogimine</translation>
 <translation id="2063848847527508675">Chrome OS tuleb värskenduse rakendamiseks taaskäivitada.</translation>
 <translation id="2094919256425865063">Kas väljuda Chrome'ist ikkagi?</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">Google Chrome soovib teie paroole eksportida. Selle lubamiseks sisestage oma Windowsi parool.</translation>
 <translation id="2485422356828889247">Desinstalli</translation>
 <translation id="2534507159460261402">Google Pay (kopeeritud Chrome'i)</translation>
-<translation id="2535429035253759792">Administraator palub teil Chrome'i selle värskenduse rakendamiseks uuesti käivitada</translation>
 <translation id="2580411288591421699">Töötava Google Chrome'i versiooniga sama versiooni ei saa installida. Sulgege Google Chrome ja proovige uuesti.</translation>
 <translation id="2586406160782125153">See kustutab sellest seadmest teie sirvimisandmed. Hiljem oma andmete toomiseks logige Chrome'i sisse kasutajana <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome'i logo</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Google Chrome on ajakohane</translation>
 <translation id="7890208801193284374">Kui jagate oma arvutit, siis saavad sõbrad ja pereliikmed eraldi sirvida ning seadistada Chrome'i just nii, nagu neile meeldib.</translation>
 <translation id="7896673875602241923">Keegi on varem selles arvutis Chrome'i sisse loginud kasutajana <ph name="ACCOUNT_EMAIL_LAST" />. Looge uus Chrome'i kasutaja, et oma teave eraldi hoida.</translation>
-<translation id="7908168227788431038">Rakendus on peaaegu ajakohane! Värskenduse lõpuleviimiseks taaskäivitage Google Chrome.</translation>
 <translation id="7962410387636238736">See arvuti ei saa enam Google Chrome'i värskendusi, kuna Windows XP-d ja Windows Vistat enam ei toetata</translation>
 <translation id="8008534537613507642">Installi Chrome uuesti</translation>
 <translation id="8013993649590906847">Kui pildil puudub kasulik kirjeldus, üritab Chrome selle ise luua. Kirjelduste loomiseks saadetakse pildid Google'ile.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">Lisaks juhib see Chrome'i käivitamisel kuvatavat lehte.</translation>
 <translation id="870251953148363156">Värskenda &amp;Google Chrome'i</translation>
 <translation id="873133009373065397">Google Chrome ei saa määrata ega seadistada vaikebrauserit</translation>
-<translation id="8736674169840206667">Administraator nõuab, et käivitaksite Chrome'i värskenduse rakendamiseks uuesti</translation>
 <translation id="8823341990149967727">Chrome on aegunud</translation>
 <translation id="884296878221830158">Lisaks juhib see Chrome'i käivitamise lehte või avalehe nupu  klõpsamist.</translation>
 <translation id="8862326446509486874">Teil ei ole süsteemi tasemel installimiseks sobivaid õigusi. Proovige installijat administraatorina uuesti käivitada.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index 7784d4d..18b20fa1 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">‏نسخه Chrome قدیمی است</translation>
 <translation id="1900795423379050516">‏اگر تنظیمی در این صفحه نشان داده نمی‌شود، در <ph name="LINK_BEGIN" />
       تنظیمات مرورگر Chrome<ph name="LINK_END" /> آن را پیدا کنید</translation>
-<translation id="1915828456209461693">‏به‌روزرسانی جدیدی برای Chrome دردسترس است و به‌محض راه‌اندازی مجدد اعمال خواهد شد.</translation>
 <translation id="1919130412786645364">‏مجاز کردن ورود به سیستم Chrome</translation>
 <translation id="2063848847527508675">‏برای اعمال به‌روزرسانی، سیستم‌عامل Chrome باید راه‌اندازی مجدد شود.</translation>
 <translation id="2094919256425865063">‏درهرصورت از Chrome خارج می‌شوید؟</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">‏Google Chrome می‌خواهد گذرواژه‌های شما را صادر کند. برای اجازه به این کار، گذرواژه Windows خود را تایپ کنید.</translation>
 <translation id="2485422356828889247">حذف نصب</translation>
 <translation id="2534507159460261402">‏Google Pay (در Chrome کپی شد)</translation>
-<translation id="2535429035253759792">‏سرپرست سیستم از شما می‌خواهد برای اعمال این به‌روزرسانی، Chrome را راه‌اندازی مجدد کنید</translation>
 <translation id="2580411288591421699">‏نمی‌توان همان نسخه Google Chrome را که اکنون در حال اجراست نصب کرد. لطفاً Google Chrome را ببندید و دوباره سعی کنید.</translation>
 <translation id="2586406160782125153">‏این کار داده‌های محصول مرورتان را برای همیشه از این دستگاه حذف می‌کند. برای بازیابی داده‌هایتان در فرصتی دیگر، با <ph name="USER_EMAIL" /> وارد سیستم Chrome شوید.</translation>
 <translation id="2588322182880276190">‏نشان‌واره Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">‏Google Chrome به‌روز است</translation>
 <translation id="7890208801193284374">‏اگر رایانه‌ای را به صورت مشترک استفاده می‌کنید، دوستان و خانواده می‌توانند به صورت جداگانه مرور کنند و Chrome را به صورتی که مایلند تنظیم کنند.</translation>
 <translation id="7896673875602241923">‏شخصی قبلاً به‌عنوان <ph name="ACCOUNT_EMAIL_LAST" /> به سیستم Chrome در این رایانه وارد شده است. برای اینکه اطلاعاتتان جدا حفظ شود، لطفاً کاربر Chrome جدیدی ایجاد کنید.</translation>
-<translation id="7908168227788431038">‏تقریباً به‌روز شده است! برای تمام کردن به‌روزرسانی، Google Chrome را راه‌اندازی مجدد کنید.</translation>
 <translation id="7962410387636238736">‏این رایانه دیگر به‌روزرسانی‌های Google Chrome را دریافت نمی‌کند زیرا Windows XP و Windows Vista دیگر پشتیبانی نمی‌شوند</translation>
 <translation id="8008534537613507642">‏نصب مجدد Chrome</translation>
 <translation id="8013993649590906847">‏اگر تصویری توضیح مفیدی نداشته باشد، Chrome توضیحی برای شما ارائه خواهد کرد. برای ایجاد توضیحات، تصاویر به Google ارسال می‌شود.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">‏این برنامه همچنین صفحه‌ای را که هنگام راه‌اندازی Chrome نشان داده می‌شود، کنترل می‌کند.</translation>
 <translation id="870251953148363156">‏به‌روزرسانی Goo&amp;gle Chrome</translation>
 <translation id="873133009373065397">‏Google Chrome نمی‌تواند مرورگر پیش‌فرض را تعیین یا تنظیم کند</translation>
-<translation id="8736674169840206667">‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chrome را راه‌اندازی مجدد کنید</translation>
 <translation id="8823341990149967727">‏نسخه Chrome قدیمی است</translation>
 <translation id="884296878221830158">‏این برنامه همچنین صفحه‌ای را که هنگام راه‌اندازی Chrome یا کلیک کردن روی دکمه صفحه اصلی نشان داده می‌شود، کنترل می‌کند.</translation>
 <translation id="8862326446509486874">شما حقوق لازم برای نصب در سطح سیستم را ندارید. دوباره به‌عنوان سرپرست نصب‌کننده را اجرا کنید.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index 4b103a7..298cb4b0 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome on vanhentunut</translation>
 <translation id="1900795423379050516">Jos asetus ei näy tällä sivulla, siirry <ph name="LINK_BEGIN" />
     Chromen selainasetuksiin<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">Uusi Chrome-päivitys on saatavilla, ja se otetaan käyttöön uudelleenkäynnistyksen jälkeen.</translation>
 <translation id="1919130412786645364">Salli Chrome-kirjautuminen</translation>
 <translation id="2063848847527508675">Chrome-käyttöjärjestelmä täytyy käynnistää uudelleen, jotta päivitys voidaan ottaa käyttöön.</translation>
 <translation id="2094919256425865063">Suljetaanko Chrome silti?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome yrittää viedä salasanojasi tiedostoon. Salli tämä kirjoittamalla Windows-salasanasi.</translation>
 <translation id="2485422356828889247">Poista</translation>
 <translation id="2534507159460261402">Google Pay (kopioitu Chromeen)</translation>
-<translation id="2535429035253759792">Ylläpitäjä pyytää Chromen uudelleenkäynnistystä, jotta tämä päivitys voidaan ottaa käyttöön.</translation>
 <translation id="2580411288591421699">Ei voi asentaa samaa Google Chromen versiota, joka tällä hetkellä on käytössä. Sulje Google Chrome ja yritä uudelleen.</translation>
 <translation id="2586406160782125153">Selaustiedot poistetaan tältä laitteelta. Jos haluat palauttaa tiedot myöhemmin, kirjaudu Chromeen käyttäjänä <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome-logo</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome on ajan tasalla</translation>
 <translation id="7890208801193284374">Jos käytät jaettua tietokonetta, kaverisi ja perheenjäsenesi voivat selata verkkoa omista profiileistaan käsin ja muokata Chromesta juuri itselleen sopivan.</translation>
 <translation id="7896673875602241923">Joku on jo kirjautunut tällä tietokoneella Chromeen käyttäjätilillä <ph name="ACCOUNT_EMAIL_LAST" />. Luo uusi Chrome-käyttäjä, jos haluat pitää tiedot erillään.</translation>
-<translation id="7908168227788431038">Lähes valmista. Viimeistele päivitys käynnistämällä Google Chrome uudelleen.</translation>
 <translation id="7962410387636238736">Tämän tietokoneen Google Chromea ei enää päivitetä, koska Windows XP:tä ja Windows Vistaa ei enää tueta.</translation>
 <translation id="8008534537613507642">Asenna Chrome uudelleen</translation>
 <translation id="8013993649590906847">Jos kuvalla ei ole hyödyllistä kuvausta, Chrome yrittää luoda sellaisen. Kuvat lähetetään Googlelle kuvausten luomista varten.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Määrittää myös Chromen aloitussivun.</translation>
 <translation id="870251953148363156">Päivitä &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome ei voi tunnistaa tai asettaa oletusselainta.</translation>
-<translation id="8736674169840206667">Ylläpitäjä vaatii Chromen uudelleenkäynnistystä, jotta päivitys voidaan ottaa käyttöön.</translation>
 <translation id="8823341990149967727">Chrome on vanhentunut</translation>
 <translation id="884296878221830158">Määrittää myös Chromen aloitussivun ja Etusivu-painikkeella avattavan sivun.</translation>
 <translation id="8862326446509486874">Sinulla ei ole käyttöoikeuksia järjestelmätason asennukseen. Kokeile asennusohjelman suorittamista uudelleen järjestelmänvalvojana.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index c9c11264..bb94878 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Luma na ang Chrome</translation>
 <translation id="1900795423379050516">Kung hindi lumalabas ang isang setting sa page na ito, tingnan sa iyong <ph name="LINK_BEGIN" />
       mga setting ng Chrome browser<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">May available na bagong update para sa Chrome at ilalapat ito sa sandaling muli kang maglunsad.</translation>
 <translation id="1919130412786645364">Pagayan ang pag-sign in sa Chrome</translation>
 <translation id="2063848847527508675">Kailangang ma-restart ang Chrome OS upang mailapat ang update.</translation>
 <translation id="2094919256425865063">Umalis pa rin sa Chrome?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Gustong i-export ng Google Chrome ang iyong mga password. I-type ang password mo sa Windows para payagan ito.</translation>
 <translation id="2485422356828889247">I-uninstall</translation>
 <translation id="2534507159460261402">Google Pay (kinopya sa Chrome)</translation>
-<translation id="2535429035253759792">Hinihiling sa iyo ng administrator mo na muli mong ilunsad ang Chrome para malapat ang update na ito</translation>
 <translation id="2580411288591421699">Hindi ma-install ang parehong bersyon ng Google Chrome na kasalukuyang tumatakbo. Mangyaring isara ang Google Chrome at muling subukan.</translation>
 <translation id="2586406160782125153">Ide-delete nito ang iyong data sa pag-browse sa device na ito. Upang makuha ang iyong data sa ibang pagkakataon, mag-sign in sa Chrome bilang <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo ng Chrome</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Napapanahon ang Google Chrome</translation>
 <translation id="7890208801193284374">Kung nagpapahiram ka ng computer, ang mga kaibigan at kapamilya ay maaaring mag-browse nang hiwalay at i-set up ang Chrome sa paraang gusto nila.</translation>
 <translation id="7896673875602241923">May nag-sign in dati sa Chrome sa computer na ito bilang <ph name="ACCOUNT_EMAIL_LAST" />. Mangyaring gumawa ng bagong user ng Chrome upang ihiwalay ang iyong impormasyon.</translation>
-<translation id="7908168227788431038">Halos napapanahon na! Muling ilunsad ang Google Chrome upang tapusin ang pag-a-update.</translation>
 <translation id="7962410387636238736">Hindi na makakatanggap ang computer na ito ng mga update sa Google Chrome dahil hindi na sinusuportahan ang Windows XP at Windows Vista</translation>
 <translation id="8008534537613507642">Muling i-install ang Chrome</translation>
 <translation id="8013993649590906847">Kung hindi sapat ang deskripsyon ng isang larawan, susubukan ng Chrome na ayusin ito para sa iyo. Para gumawa ng mga deskripsyon, ipinapadala ang mga larawan sa Google.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">Kinokontrol din nito kung anong pahina ang ipinapakita kapag sinimulan mo ang Chrome.</translation>
 <translation id="870251953148363156">I-update ang &amp;Google Chrome</translation>
 <translation id="873133009373065397">Hindi matukoy o maitakda ng Google Chrome ang default na browser</translation>
-<translation id="8736674169840206667">Inaatasan ka ng iyong administrator na muling ilunsad ang Chrome para malapat ang update</translation>
 <translation id="8823341990149967727">Luma na ang Chrome</translation>
 <translation id="884296878221830158">Kinokontrol din nito kung anong pahina ang ipinapakita kapag sinimulan mo ang Chrome o na-click ang button ng Home.</translation>
 <translation id="8862326446509486874">Wala kang naaangkop na mga karapatan para sa pag-install sa antas ng system. Subukan muling patakbuhin ang installer bilang Administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index 4b9934c..dafea1a 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -41,7 +41,6 @@
 <translation id="1874309113135274312">Version bêta de Google Chrome (mDNS-In)</translation>
 <translation id="1877026089748256423">Version de Chrome obsolète</translation>
 <translation id="1900795423379050516">Si un paramètre ne s'affiche pas sur cette page, accédez aux <ph name="LINK_BEGIN" />paramètres du navigateur Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Une nouvelle mise à jour est disponible pour Chrome et sera installée dès que vous le relancerez.</translation>
 <translation id="1919130412786645364">Autoriser la connexion à Chrome</translation>
 <translation id="2063848847527508675">Redémarrez Chrome OS pour appliquer la mise à jour.</translation>
 <translation id="2094919256425865063">Quitter Chrome quand même ?</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">Google Chrome veut exporter vos mots de passe. Pour autoriser cette action, saisissez votre mot de passe Windows.</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
 <translation id="2534507159460261402">Google Pay (copiée dans Chrome)</translation>
-<translation id="2535429035253759792">Votre administrateur vous demande de relancer Chrome pour installer cette mise à jour</translation>
 <translation id="2580411288591421699">Impossible d'installer la version de Google Chrome qui est en cours d'exécution. Fermez Google Chrome et réessayez.</translation>
 <translation id="2586406160782125153">Cette action aura pour effet de supprimer vos données de navigation de cet appareil. Pour récupérer vos données ultérieurement, connectez-vous à Chrome en tant que <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo Google Chrome</translation>
@@ -214,7 +212,6 @@
 <translation id="7855730255114109580">Google Chrome est à jour</translation>
 <translation id="7890208801193284374">Si vous partagez un ordinateur avec vos proches, ceux-ci peuvent configurer Chrome comme bon leur semble et naviguer sur le Web à leur manière.</translation>
 <translation id="7896673875602241923">Un utilisateur s'est récemment connecté à Chrome sur cet ordinateur en tant que <ph name="ACCOUNT_EMAIL_LAST" />. Veuillez créer un autre utilisateur Chrome pour séparer vos informations.</translation>
-<translation id="7908168227788431038">Mise à jour presque terminée. Relancez Google Chrome pour la finaliser.</translation>
 <translation id="7962410387636238736">Cet ordinateur ne recevra plus les mises à jour de Google Chrome, car la compatibilité n'est plus assurée sur Windows XP et Windows Vista</translation>
 <translation id="8008534537613507642">Réinstaller Chrome</translation>
 <translation id="8013993649590906847">Si une image n'est pas accompagnée d'une description utile, Chrome essaiera de vous en proposer une. Pour nous permettre de créer des descriptions, les images sont envoyées à Google.</translation>
@@ -237,7 +234,6 @@
 <translation id="8679801911857917785">Elle contrôle également la page qui s'affiche au démarrage de Chrome.</translation>
 <translation id="870251953148363156">Mettre à jour &amp;Google Chrome</translation>
 <translation id="873133009373065397">Impossible d'identifier ou de définir le navigateur par défaut avec Google Chrome</translation>
-<translation id="8736674169840206667">À la demande de votre administrateur, vous devez relancer Chrome pour installer une mise à jour</translation>
 <translation id="8823341990149967727">Version de Chrome obsolète</translation>
 <translation id="884296878221830158">Elle contrôle également la page qui s'affiche au démarrage de Chrome ou lorsque vous cliquez sur le bouton Accueil.</translation>
 <translation id="8862326446509486874">Vous ne disposez pas des droits requis pour installer la version système. Relancez l'installation en vous connectant comme administrateur.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index fa73a804..dd12ea41 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome જૂનું થઈ ગયું છે</translation>
 <translation id="1900795423379050516">જો આ પેજ પર સેટિંગ બતાવેલું ન હોય, તો તમારા <ph name="LINK_BEGIN" />
       Chrome બ્રાઉઝર સેટિંગ<ph name="LINK_END" />માં જુઓ</translation>
-<translation id="1915828456209461693">Chrome માટે નવી અપડેટ ઉપલબ્ધ છે અને તે તમે જેવું જ ફરીથી લોંચ કરશો, લાગુ થઈ જશે.</translation>
 <translation id="1919130412786645364">Chromeમાં સાઇન-ઇનની મંજૂરી આપો</translation>
 <translation id="2063848847527508675">અપડેટ લાગુ કરવા માટે Chrome OSને ફરી શરૂ કરવાની જરૂર છે.</translation>
 <translation id="2094919256425865063">છતાં પણ Chrome બંધ કરવું છે?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Google Chrome તમારા પાસવર્ડની નિકાસ કરવા માગે છે. આને મંજૂરી આપવા માટે તમારો Windows પાસવર્ડ ટાઇપ કરો.</translation>
 <translation id="2485422356828889247">અનઇન્સ્ટૉલ કરો</translation>
 <translation id="2534507159460261402">Google Pay (Chrome પર કૉપિ કરેલ છે)</translation>
-<translation id="2535429035253759792">તમારા વ્યવસ્થાપક કહે છે કે આ અપડેટ લાગુ કરવા માટે Chrome ફરીથી લૉન્ચ કરો</translation>
 <translation id="2580411288591421699">હાલમાં ચાલી રહ્યું છે તે જ Google Chrome વર્ઝનને ઇન્સ્ટૉલ કરી શકાતું નથી. કૃપા કરીને Google Chrome બંધ કરો અને ફરીથી પ્રયાસ કરો.</translation>
 <translation id="2586406160782125153">આ, તમારા બ્રાઉઝિંગ ડેટાને આ ડિવાઇસમાંથી ડિલીટ કરશે. પછીથી તમારો ડેટા ફરીથી મેળવવા માટે, Chromeમાં <ph name="USER_EMAIL" /> તરીકે સાઇન ઇન કરો.</translation>
 <translation id="2588322182880276190">Chrome લૉગો</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome અપ ટૂ ડેટ છે</translation>
 <translation id="7890208801193284374">જો તમે કમ્પ્યુટરને શેર કરો છો, તો મિત્રો અને કુટુંબીજનો અલગ-અલગ બ્રાઉઝ કરી શકે છે અને તેમને જોઈએ તેમ Chrome ને સેટ કરી શકે છે.</translation>
 <translation id="7896673875602241923">કોઈએ આ કમ્પ્યુટર પર પહેલા <ph name="ACCOUNT_EMAIL_LAST" /> તરીકે Chromeમાં સાઇન ઇન કર્યું છે. તમારી માહિતી અલગ રાખવા માટે કૃપા કરીને નવો Chrome વપરાશકર્તા બનાવો.</translation>
-<translation id="7908168227788431038">અપ ટૂ ડેટ થવામાં છે! અપડેટ સમાપ્ત કરવા માટે Google Chrome ને ફરીથી લોંચ કરો.</translation>
 <translation id="7962410387636238736">આ કમ્પ્યુટર હવેથી Google Chrome અપડેટ મેળવી શકશે નહીં કારણકે Windows XP અને Windows Vista હવે સમર્થિત રહ્યાં નથી</translation>
 <translation id="8008534537613507642">Chrome ફરીથી ઇન્સ્ટોલ કરો</translation>
 <translation id="8013993649590906847">જો છબીમાં ઉપયોગી વર્ણન ન હોય, તો Chrome તમને વર્ણન પૂરું પાડવાનો પ્રયાસ કરશે. વર્ણન બનાવવા માટે, Googleને છબીઓ મોકલવામાં આવે છે.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">જ્યારે તમે Chrome શરૂ કરો ત્યારે કયું પૃષ્ઠ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
 <translation id="870251953148363156">&amp;Google Chrome ને અપડેટ કરો</translation>
 <translation id="873133009373065397">Google Chrome ડિફૉલ્ટ બ્રાઉઝરને નિર્ધારિત અથવા સેટ કરી શકતું નથી</translation>
-<translation id="8736674169840206667">અપડેટ લાગુ કરવા માટે તમે Chromeને ફરીથી લૉન્ચ કરો તે તમારા વ્યવસ્થાપક માટે જરૂરી છે</translation>
 <translation id="8823341990149967727">Chrome જૂનું થઈ ગયું છે</translation>
 <translation id="884296878221830158">જ્યારે તમે Chrome શરૂ કરો અથવા હોમ બટન ક્લિક કરો ત્યારે કયું પૃષ્ઠ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
 <translation id="8862326446509486874">તમારી પાસે સિસ્ટમ-સ્તરનાં ઇન્સ્ટોલ માટે ઉચિત અધિકારો નથી. એડમિન તરીકે ઇન્સ્ટૉલરને ફરીથી ચલાવવનો પ્રયાસ કરો.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index 3e700e6..26c3d0bf 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome पुराना हो गया है</translation>
 <translation id="1900795423379050516">अगर कोई सेटिंग इस पेज पर नहीं दिखती है, तो अपनी <ph name="LINK_BEGIN" />
       Chrome ब्राउज़र सेटिंग<ph name="LINK_END" /> देखें</translation>
-<translation id="1915828456209461693">Chrome के लिए एक नया अपडेट उपलब्ध है और जैसे ही आप फिर से लॉन्च करेंगे, अपडेट लागू कर दिया जाएगा.</translation>
 <translation id="1919130412786645364">Chrome में साइन-इन करने दें</translation>
 <translation id="2063848847527508675">अपडेट लागू करने के लिए Chrome OS को रीस्टार्ट करने की ज़रुरत होती है.</translation>
 <translation id="2094919256425865063">फिर भी Chrome छोड़ें?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome आपके पासवर्ड निर्यात करना चाहता है. इसकी मंज़ूरी देने के लिए अपना Windows पासवर्ड लिखें.</translation>
 <translation id="2485422356828889247">विस्थापित करें</translation>
 <translation id="2534507159460261402">Google Pay (Chrome पर कॉपी किया गया)</translation>
-<translation id="2535429035253759792">आपके एडमिन का कहना है कि यह अपडेट लागू करने के लिए, आप Chrome को फिर से लॉन्च करें</translation>
 <translation id="2580411288591421699">Google Chrome के उस वर्शन के समान वर्शन को इंस्‍टॉल नहीं कर सकता, जो वर्तमान में चल रहा है. कृपया Google Chrome बंद करें और फिर से प्रयास करें.</translation>
 <translation id="2586406160782125153">ऐसा करने से इस डिवाइस से आपका ब्राउज़िंग डेटा मिट जाएगा. बाद में अपना डेटा पाने के लिए, Chrome में <ph name="USER_EMAIL" /> के रूप में साइन इन करें.</translation>
 <translation id="2588322182880276190">Chrome लोगो</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Google Chrome अप टू डेट है</translation>
 <translation id="7890208801193284374">अगर आप कंप्यूटर शेयर करते हैं, तो दोस्त और परिवार अलग-अलग ब्राउज़ कर सकते हैं और Chrome को जैसा चाहें सेट कर सकते हैं.</translation>
 <translation id="7896673875602241923">इस कंप्यूटर पर पहले किसी और ने <ph name="ACCOUNT_EMAIL_LAST" /> के रूप में Chrome में साइन इन किया है. अपनी जानकारी अलग रखने के लिए कृपया नया 'Chrome उपयोगकर्ता' बनाएं.</translation>
-<translation id="7908168227788431038">करीब अप टू डेट हो गया है! अपडेट करना पूरा करने के लिए Google Chrome को फिर से लॉन्च करें.</translation>
 <translation id="7962410387636238736">इस कंप्‍यूटर को अब Google Chrome के अपडेट नहीं मिलेंगे क्‍योंकि Windows XP और Windows Vista अब काम नहीं करते हैं</translation>
 <translation id="8008534537613507642">Chrome फिर से इंस्टॉल करें</translation>
 <translation id="8013993649590906847">अगर किसी इमेज के बारे में मददगार जानकारी मौजूद नहीं है, तो Chrome उसके बारे में जानकारी देने की कोशिश करेगा. जानकारी तैयार करने के लिए, इमेज Google को भेजी जाती हैं.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">इससे यह भी नियंत्रित होता है कि जब आप Chrome प्रारंभ करते हैं तब कौन सा पेज दिखाया जाए.</translation>
 <translation id="870251953148363156">Google Chrome को अपडेट करना</translation>
 <translation id="873133009373065397">Google Chrome डिफ़ॉल्ट ब्राउज़र तय या सेट नहीं कर सकता</translation>
-<translation id="8736674169840206667">आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए, Chrome को फिर से लॉन्च करें</translation>
 <translation id="8823341990149967727">Chrome पुराना हो गया है</translation>
 <translation id="884296878221830158">इससे यह भी नियंत्रित होता है कि जब आप Chrome शुरू करते हैं या होम बटन पर क्लिक करते हैं तब कौन सा पेज दिखाया जाए.</translation>
 <translation id="8862326446509486874">सिस्टम-स्तर स्थापना के लिए आपके पास उचित अधिकार नहीं हैं. इंस्टॉलर को व्यवस्थापक के रूप में फिर से चलाने का प्रयास करें.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb
index 2283b0c5..546c075d 100644
--- a/chrome/app/resources/google_chrome_strings_hr.xtb
+++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome je zastario</translation>
 <translation id="1900795423379050516">Ako se postavka ne prikazuje na ovoj stranici, pogledajte <ph name="LINK_BEGIN" />
       postavke preglednika Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Dostupno je novo ažuriranje za Chrome i primijenit će se nakon ponovnog pokretanja.</translation>
 <translation id="1919130412786645364">Dopusti prijavu u Chrome</translation>
 <translation id="2063848847527508675">Potrebno je ponovo pokrenuti Chrome OS kako bi se ažuriranje primijenilo.</translation>
 <translation id="2094919256425865063">Želite li ipak zatvoriti Chrome?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome želi izvesti vaše zaporke. Upišite svoju zaporku za Windows da biste to dopustili.</translation>
 <translation id="2485422356828889247">Deinstaliraj</translation>
 <translation id="2534507159460261402">Google Pay (kopirano na Chrome)</translation>
-<translation id="2535429035253759792">Vaš administrator traži da ponovo pokrenete Chrome radi primjene tog ažuriranja</translation>
 <translation id="2580411288591421699">Nije moguće instalirati istu verziju programa Google Chrome koja je trenutačno pokrenuta. Zatvorite Google Chrome i pokušajte ponovo.</translation>
 <translation id="2586406160782125153">Time će se izbrisati podaci o pregledavanju s uređaja. Da biste kasnije dohvatili svoje podatke, prijavite se na Chrome kao <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logotip Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome ažuriran je</translation>
 <translation id="7890208801193284374">Ako dijelite računalo, prijatelji i članovi obitelji mogu zasebno pregledavati i postaviti Chrome prema svojim željama.</translation>
 <translation id="7896673875602241923">Netko se prethodno prijavio u Chrome na ovom računalu kao <ph name="ACCOUNT_EMAIL_LAST" />. Izradite novog korisnika Chromea kako bi vaši podaci bili odvojeni.</translation>
-<translation id="7908168227788431038">Ažuriranje će uskoro biti gotovo. Za dovršetak ponovo pokrenite Google Chrome.</translation>
 <translation id="7962410387636238736">Ovo računalo više neće primati ažuriranja za Google Chrome jer sustavi Windows XP i Windows Vista više nisu podržani</translation>
 <translation id="8008534537613507642">Ponovo instaliraj Chrome</translation>
 <translation id="8013993649590906847">Ako slika nema koristan opis, Chrome će ga pokušati pružiti. Da bi se izradili opisi, slike se šalju Googleu.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Upravlja i time koja se stranica prikazuje prilikom pokretanja Chromea.</translation>
 <translation id="870251953148363156">Ažuriranje preglednika Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome ne može utvrditi niti postaviti zadani preglednik</translation>
-<translation id="8736674169840206667">Vaš administrator zahtijeva da ponovo pokrenete Chrome radi primjene ažuriranja</translation>
 <translation id="8823341990149967727">Chrome je zastario</translation>
 <translation id="884296878221830158">Upravlja i time koja se stranica prikazuje prilikom pokretanja Chromea ili kada se klikne gumb Početna.</translation>
 <translation id="8862326446509486874">Nemate odgovarajuća prava za instaliranje na razini sustava. Pokušajte ponovno pokrenuti program za instalaciju kao administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index a2ffc36..612a203 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome Béta (mDNS-In)</translation>
 <translation id="1877026089748256423">A Chrome elavult</translation>
 <translation id="1900795423379050516">Ha valamelyik beállítás nem látható ezen az oldalon, keresse a <ph name="LINK_BEGIN" />Chrome böngésző beállításai<ph name="LINK_END" /> között</translation>
-<translation id="1915828456209461693">Új Chrome-frissítés jelent meg, amely az újraindítás után azonnal érvénybe lép.</translation>
 <translation id="1919130412786645364">Chrome-bejelentkezés engedélyezése</translation>
 <translation id="2063848847527508675">A frissítés alkalmazásához újra kell indítani a Chrome OS-t.</translation>
 <translation id="2094919256425865063">Biztosan kilép a Chrome-ból?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">A Google Chrome exportálni szeretné a jelszavakat. Ennek engedélyezéséhez írja be Windows-jelszavát.</translation>
 <translation id="2485422356828889247">Eltávolítás</translation>
 <translation id="2534507159460261402">Google Pay (a Chrome-ba másolva)</translation>
-<translation id="2535429035253759792">Rendszergazdája arra kéri, hogy indítsa újra a Chrome-ot a frissítés alkalmazásához</translation>
 <translation id="2580411288591421699">Nem lehet ugyanazt a Google Chrome verziót telepíteni, amely jelenleg is fut. Zárja be a Google Chrome-ot, és próbálja újra.</translation>
 <translation id="2586406160782125153">Ezzel az eszközön lévő összes böngészési adat törlődik. Az adatok későbbi lekéréséhez jelentkezzen be a Chrome-ba a következő e-mail-címmel: <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome embléma</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">A Google Chrome naprakész</translation>
 <translation id="7890208801193284374">Ha megoszt egy számítógépet, ismerősei és családtagjai külön fiókokban internetezve a saját kívánságaik szerint állíthatják be a Chrome-ot.</translation>
 <translation id="7896673875602241923">Valaki korábban <ph name="ACCOUNT_EMAIL_LAST" /> néven bejelentkezett a Chrome-ba erről a számítógépről. Az adatai elkülönítéséhez hozzon létre új Chrome-felhasználót.</translation>
-<translation id="7908168227788431038">Már majdnem naprakész! Indítsa újra a Google Chrome-ot a frissítés befejezéséhez.</translation>
 <translation id="7962410387636238736">Ez a számítógép a továbbiakban már nem kapja meg a Google Chrome frissítéseit, mert már nem támogatjuk a Windows XP és Windows Vista rendszereket.</translation>
 <translation id="8008534537613507642">A Chrome újratelepítése</translation>
 <translation id="8013993649590906847">Ha valamelyik kép nem rendelkezik hasznos leírással, akkor a Chrome igyekszik leírást adni róla. A Google automatikusan megkapja a leírások létrehozásához szükséges képeket.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Chrome indításakor.</translation>
 <translation id="870251953148363156">A &amp;Google Chrome frissítése</translation>
 <translation id="873133009373065397">A Google Chrome problémába ütközött az alapértelmezett böngésző megállapításakor vagy beállításakor</translation>
-<translation id="8736674169840206667">A rendszergazda előírta, hogy újra kell indítania a Chrome-ot egy frissítés alkalmazása miatt</translation>
 <translation id="8823341990149967727">A Chrome elavult</translation>
 <translation id="884296878221830158">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Chrome indításakor vagy a Kezdőlap gombra történő kattintáskor.</translation>
 <translation id="8862326446509486874">Nincsenek meg a megfelelő jogai a rendszerszintű telepítéshez. Indítsa újra a telepítőt rendszergazdaként.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index 495452135..3afa404 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome terlalu lawas</translation>
 <translation id="1900795423379050516">Jika setelan tidak muncul pada halaman ini, buka <ph name="LINK_BEGIN" />
       setelan browser Chrome<ph name="LINK_END" /> Anda</translation>
-<translation id="1915828456209461693">Update baru untuk Chrome telah tersedia dan akan diterapkan segera setelah diluncurkan ulang.</translation>
 <translation id="1919130412786645364">Izinkan login Chrome</translation>
 <translation id="2063848847527508675">Chrome OS harus dimulai ulang untuk menerapkan pembaruan.</translation>
 <translation id="2094919256425865063">Tetap tutup Chrome?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome ingin mengekspor sandi. Ketik sandi Windows Anda untuk mengizinkannya.</translation>
 <translation id="2485422356828889247">Uninstal</translation>
 <translation id="2534507159460261402">Google Pay (disalin ke Chrome)</translation>
-<translation id="2535429035253759792">Administrator meminta Anda meluncurkan ulang Chrome untuk menerapkan update ini</translation>
 <translation id="2580411288591421699">Tak dapat memasang Google Chrome dengan versi yang sama dengan yang sedang aktif. Tutup dulu, baru coba lagi.</translation>
 <translation id="2586406160782125153">Tindakan ini akan menghapus data browsing dari perangkat ini. Untuk mengambil data nanti, login ke Chrome sebagai <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Ini adalah Google Chrome versi terbaru</translation>
 <translation id="7890208801193284374">Jika Anda berbagi komputer, teman dan keluarga bisa menjelajah secara terpisah dan menyiapkan Chrome sesuai keinginannya.</translation>
 <translation id="7896673875602241923">Seseorang telah masuk ke Chrome pada komputer ini sebagai <ph name="ACCOUNT_EMAIL_LAST" />. Harap buat pengguna Chrome baru untuk memisahkan informasi Anda.</translation>
-<translation id="7908168227788431038">Hampir selesai diperbarui! Luncurkan ulang Google Chrome untuk menyelesaikan pembaruan.</translation>
 <translation id="7962410387636238736">Komputer ini tidak akan menerima update Google Chrome lagi karena Windows XP dan Windows Vista sudah tidak didukung</translation>
 <translation id="8008534537613507642">Instal Ulang Chrome</translation>
 <translation id="8013993649590906847">Jika gambar tidak memiliki deskripsi yang berguna, Chrome akan mencoba memberikan deskripsi untuk Anda. Untuk membuat deskripsi, gambar akan dikirim ke Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Juga mengontrol halaman apa yang ditampilkan saat Anda memulai Chrome.</translation>
 <translation id="870251953148363156">Pembaruan &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome tidak dapat menentukan atau menyetel browser default</translation>
-<translation id="8736674169840206667">Administrator mengharuskan Anda meluncurkan ulang Chrome untuk menerapkan update</translation>
 <translation id="8823341990149967727">Chrome Terlalu Lawas</translation>
 <translation id="884296878221830158">Juga mengontrol halaman apa yang ditampilkan saat Anda memulai Chrome atau mengeklik tombol Beranda.</translation>
 <translation id="8862326446509486874">Anda tidak memiliki hak yang diperlukan untuk pemasangan tingkat sistem. Coba jalankan lagi pemasang saat login sebagai Administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb
index b3cc5bd..70e483d 100644
--- a/chrome/app/resources/google_chrome_strings_it.xtb
+++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome non è aggiornato</translation>
 <translation id="1900795423379050516">Se un'impostazione non viene mostrata in questa pagina, cercala nelle <ph name="LINK_BEGIN" />impostazioni del browser Chrome<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">È disponibile un nuovo aggiornamento di Chrome che verrà installato al prossimo riavvio.</translation>
 <translation id="1919130412786645364">Consenti l'accesso a Chrome</translation>
 <translation id="2063848847527508675">Per applicare l'aggiornamento è necessario riavviare Chrome OS.</translation>
 <translation id="2094919256425865063">Vuoi chiudere comunque Chrome?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">Google Chrome vuole esportare le password. Per consentire l'esportazione, digita la tua password Windows.</translation>
 <translation id="2485422356828889247">Disinstalla</translation>
 <translation id="2534507159460261402">Google Pay (copiata in Chrome)</translation>
-<translation id="2535429035253759792">L'amministratore ti chiede di riavviare Chrome per installare questo aggiornamento</translation>
 <translation id="2580411288591421699">Impossibile installare la stessa versione di Google Chrome attualmente in esecuzione. Chiudi Google Chrome e riprova.</translation>
 <translation id="2586406160782125153">Verranno eliminati i tuoi dati di navigazione da questo dispositivo. Per recuperare i dati in un secondo momento, accedi a Chrome come <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo di Chrome</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">Google Chrome è aggiornato</translation>
 <translation id="7890208801193284374">Se condividi un computer, i tuoi amici e la tua famiglia possono navigare separatamente e configurare Chrome in base alle proprie esigenze.</translation>
 <translation id="7896673875602241923">Qualcuno ha già eseguito l'accesso a Chrome su questo computer come <ph name="ACCOUNT_EMAIL_LAST" />. Crea un nuovo utente Chrome per tenere separate le tue informazioni.</translation>
-<translation id="7908168227788431038">Aggiornamento quasi completato. Riavvia Google Chrome per terminare l'aggiornamento.</translation>
 <translation id="7962410387636238736">Questo computer non riceverà più gli aggiornamenti di Google Chrome perché Windows XP e Windows Vista non sono più supportati.</translation>
 <translation id="8008534537613507642">Reinstalla Chrome</translation>
 <translation id="8013993649590906847">Se un'immagine è senza descrizione utile, Chrome proverà a fornirne una. Per la creazione delle descrizioni, le immagini vengono inviate a Google.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">Controlla anche la pagina visualizzata all'avvio di Chrome.</translation>
 <translation id="870251953148363156">Aggiorna &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome non è in grado di determinare o impostare il browser predefinito</translation>
-<translation id="8736674169840206667">L'amministratore richiede il riavvio di Chrome per installare un aggiornamento</translation>
 <translation id="8823341990149967727">Chrome non è aggiornato</translation>
 <translation id="884296878221830158">Controlla anche la pagina visualizzata all'avvio di Chrome o quando fai clic sul pulsante Pagina iniziale.</translation>
 <translation id="8862326446509486874">Non disponi dei diritti appropriati per l'installazione a livello di sistema. Prova a eseguire nuovamente il programma di installazione come Amministratore.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb
index 97132db..45343c4 100644
--- a/chrome/app/resources/google_chrome_strings_iw.xtb
+++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">‏Chrome אינו מעודכן</translation>
 <translation id="1900795423379050516">‏אם הגדרה מסוימת לא מופיעה בדף הזה, אפשר לחפש אותה <ph name="LINK_BEGIN" />
 בהגדרות של דפדפן Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">‏יש עדכון בשביל Chrome והמערכת תחיל אותו ברגע שתבוצע הפעלה מחדש.</translation>
 <translation id="1919130412786645364">‏התרת כניסה אל Chrome</translation>
 <translation id="2063848847527508675">‏יש להפעיל מחדש את מערכת ההפעלה של Chrome כדי להחיל את העדכון.</translation>
 <translation id="2094919256425865063">‏לסגור את Chrome בכל זאת?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">‏Google Chrome רוצה לייצא את הסיסמאות שלך. יש להקליד את הסיסמה שלך ל-Windows כדי לאפשר זאת.</translation>
 <translation id="2485422356828889247">הסר התקנה</translation>
 <translation id="2534507159460261402">‏Google Pay (‏הועתק ל-Chrome)</translation>
-<translation id="2535429035253759792">‏לפי בקשת מנהל המערכת, יש להפעיל מחדש את Chrome כדי להחיל את העדכון הזה</translation>
 <translation id="2580411288591421699">‏אין אפשרות להתקין את אותה גרסת Google Chrome הפועלת כעת. סגור את Google Chrome ונסה שוב.</translation>
 <translation id="2586406160782125153">‏הפעולה תמחק את נתוני הגלישה מהמכשיר. כדי לאחזר את הנתונים מאוחר יותר, היכנס אל Chrome עם <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">‏הלוגו של Chrome</translation>
@@ -192,6 +190,7 @@
 <translation id="7486227612705979895">‏Chrome ייגש ל-Drive שלך כדי להציג הצעות בשורת כתובת האתר</translation>
 <translation id="7531671357096394523">‏יש לסגור את כל העותקים של Chrome.</translation>
 <translation id="7535429826459677826">‏גרסת הפיתוח של Google Chrome</translation>
+<translation id="7573289029918943991">‏כדי לראות אם המכשיר שלך מעודכן, יש לעבור אל <ph name="LINK_BEGIN" />הגדרות Chrome OS<ph name="LINK_END" /></translation>
 <translation id="7589360514048265910">‏המחשב הזה יפסיק לקבל עדכונים של Google Chrome כי כבר אין תמיכה בגירסה 10.9 של Mac OS X.</translation>
 <translation id="7592736734348559088">‏Google Chrome לא הצליח לסנכרן את הנתונים שלך מפני שפרטי הכניסה של חשבונך אינם מעודכנים.</translation>
 <translation id="7626032353295482388">‏ברוכים הבאים ל-Chrome</translation>
@@ -208,7 +207,6 @@
 <translation id="7855730255114109580">‏Google Chrome מעודכן</translation>
 <translation id="7890208801193284374">‏אם אתה משתף מחשב, חברים ובני משפחה יכולים לגלוש בנפרד ולהגדיר את Chrome בדיוק כפי שהם רוצים.</translation>
 <translation id="7896673875602241923">‏מישהו נכנס בעבר ל-Chrome מהמחשב הזה כ-<ph name="ACCOUNT_EMAIL_LAST" />. צור משתמש חדש ל-Chrome כדי לשמור על הפרדת המידע שלך.</translation>
-<translation id="7908168227788431038">‏העדכון כמעט הושלם! הפעל מחדש את Google Chrome כדי לסיים את העדכון.</translation>
 <translation id="7962410387636238736">‏המחשב הזה כבר לא יקבל עדכונים ל-Google Chrome, מאחר שכבר אין תמיכה במערכות Windows XP ו-Windows Vista</translation>
 <translation id="8008534537613507642">‏התקן מחדש את Chrome</translation>
 <translation id="8013993649590906847">‏אם אין לתמונה תיאור מועיל, Chrome ינסה לספק לך תיאור. כדי ליצור תיאורים, התמונות נשלחות אל Google.</translation>
@@ -231,7 +229,6 @@
 <translation id="8679801911857917785">‏הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chrome.</translation>
 <translation id="870251953148363156">‏יש לעדכן את Google Chrome&amp;</translation>
 <translation id="873133009373065397">‏Google Chrome אינו יכול לקבוע או להגדיר את דפדפן ברירת המחדל</translation>
-<translation id="8736674169840206667">‏לפי דרישת מנהל המערכת, יש להפעיל מחדש את Chrome כדי להחיל עדכון</translation>
 <translation id="8823341990149967727">‏Chrome אינו מעודכן</translation>
 <translation id="884296878221830158">‏הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chrome או לוחץ על הלחצן 'דף הבית'.</translation>
 <translation id="8862326446509486874">אין לך זכויות שמתאימות להתקנה ברמת המערכת. נסה להפעיל שוב את המתקין כמנהל מערכת.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index 76a1c3e..5715c0f 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome は古いバージョンです</translation>
 <translation id="1900795423379050516">このページに設定が表示されない場合は、<ph name="LINK_BEGIN" />
       Chrome ブラウザの設定<ph name="LINK_END" />を確認してください</translation>
-<translation id="1915828456209461693">Chrome の新しいアップデートを利用できます。再起動するとすぐにアップデートが適用されます。</translation>
 <translation id="1919130412786645364">Chrome へのログインを許可する</translation>
 <translation id="2063848847527508675">アップデートを適用するには、Chrome OS を再起動する必要があります。</translation>
 <translation id="2094919256425865063">今すぐ Chrome を終了しますか?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome からパスワードをエクスポートするための許可を求められています。許可するには Windows のパスワードを入力してください。</translation>
 <translation id="2485422356828889247">アンインストール</translation>
 <translation id="2534507159460261402">Google Pay(Chrome にコピー)</translation>
-<translation id="2535429035253759792">管理者が、このアップデートを適用するために Chrome を再起動するよう求めています</translation>
 <translation id="2580411288591421699">実行中の Google Chrome と同じバージョンをインストールすることはできません。Google Chrome を閉じてからもう一度お試しください。</translation>
 <translation id="2586406160782125153">このデバイスから閲覧データを削除します。後でデータを取得するには、<ph name="USER_EMAIL" /> として Chrome にログインしてください。</translation>
 <translation id="2588322182880276190">Chrome ロゴ</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome は最新版です</translation>
 <translation id="7890208801193284374">パソコンを共有している場合、友だちや家族はそれぞれ Chrome を自分専用のブラウザとして自分用の設定をして使うことができます。</translation>
 <translation id="7896673875602241923">前回このパソコンで別のユーザー(<ph name="ACCOUNT_EMAIL_LAST" />)が Chrome にログインしました。情報を個別に保持するには、新しい Chrome ユーザーを作成してください。</translation>
-<translation id="7908168227788431038">Google Chrome を再起動して更新を完了してください。</translation>
 <translation id="7962410387636238736">Windows XP と Windows Vista はサポートされなくなったため、このパソコンでは今後 Google Chrome のアップデートは受信されません</translation>
 <translation id="8008534537613507642">Chrome を再インストール</translation>
 <translation id="8013993649590906847">画像に有効な説明が設定されていない場合に、Chrome で説明を自動的に生成できるよう Google に画像が送信されます。</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">この拡張機能では、Chrome の起動時に表示されるページも制御されます。</translation>
 <translation id="870251953148363156">Google Chrome を更新(&amp;G)</translation>
 <translation id="873133009373065397">Google Chrome では既定のブラウザを判定または設定できません</translation>
-<translation id="8736674169840206667">管理者が、アップデートを適用するために Chrome を再起動するよう求めています</translation>
 <translation id="8823341990149967727">Chrome は古いバージョンです</translation>
 <translation id="884296878221830158">この拡張機能では、Chrome の起動時、またはホーム ボタンのクリック時に表示されるページも制御されます。</translation>
 <translation id="8862326446509486874">権限が不十分なためシステムレベルのインストールができません。管理者権限でインストールしてください。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index 1fc4cc0..035572b 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -40,7 +40,6 @@
 <translation id="1874309113135274312">Google Chrome ಬೀಟಾ (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation>
 <translation id="1900795423379050516">ಈ ಪುಟದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ ಒಂದು ಕಾಣಿಸದಿದ್ದರೆ, ನಿಮ್ಮ <ph name="LINK_BEGIN" />Chrome ಬ್ರೌಸರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="LINK_END" /> ನೋಡಿರಿ</translation>
-<translation id="1915828456209461693">Chrome ಗಾಗಿ ಹೊಸತೊಂದು ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ ಹಾಗೂ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಿದ ಕೂಡಲೇ ಅದನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="1919130412786645364">Chrome ಸೈನ್-ಇನ್ ಅನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="2063848847527508675">ಅಪ್‌ಡೇಟ್ ಅನ್ವಯಿಸಲು Chrome OS ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="2094919256425865063">ಹೇಗಿದ್ದರೂ Chrome ಅನ್ನು ಮುಚ್ಚುವುದೇ?</translation>
@@ -56,7 +55,6 @@
 <translation id="2467438592969358367">Google Chrome ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಲು ಬಯಸುತ್ತದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="2485422356828889247">ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್</translation>
 <translation id="2534507159460261402">Google Pay (Chrome ಗೆ ನಕಲಿಸಲಾಗಿದೆ)</translation>
-<translation id="2535429035253759792">ಈ ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಎಂದು ನಿರ್ವಾಹಕವು ನಿಮ್ಮನ್ನು ವಿನಂತಿಸುತ್ತದೆ</translation>
 <translation id="2580411288591421699">ಪ್ರಸ್ತುತ ಚಾಲನೆಯಲ್ಲಿರುವ ಅದೇ Google Chrome ಆವೃತ್ತಿಯನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು Google Chrome ಮುಚ್ಚಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2586406160782125153">ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chrome ಗೆ ಸೈನ್‌ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="2588322182880276190">Chrome ಲೋಗೊ</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome ಅನ್ನು ಅಪ್‌ ಟು ಡೇಟ್‌ ಆಗಿದೆ</translation>
 <translation id="7890208801193284374">ನೀವು ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಂಡರೆ, ಸ್ನೇಹಿತರು ಮತ್ತು ಕುಟುಂಬದವರು ಪ್ರತ್ಯೇಕವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು Chrome ಅನ್ನು ಅವರ ಅಗತ್ಯಕ್ಕೆ ತಕ್ಕಂತೆ ಹೊಂದಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="7896673875602241923">ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ Chrome ಗೆ ಯಾರೋ ಈ ಹಿಂದೆಯೇ <ph name="ACCOUNT_EMAIL_LAST" /> ಹೆಸರಿನಲ್ಲಿ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ದಯವಿಟ್ಟು ಹೊಸ Chrome ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ.</translation>
-<translation id="7908168227788431038">ಬಹಳಷ್ಟು ನವೀಕೃತವಾಗಿದೆ! ಅಪ್‌ಡೇಟ್ ಮುಗಿಸಲು Google Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="7962410387636238736">Windows XP ಮತ್ತು Windows Vista ಗಳಿಗೆ ಬೆಂಬಲವಿಲ್ಲದೇ ಇರುವುದರಿಂದ ಈ ಕಂಪ್ಯೂಟರ್‌‌ ಇನ್ನು ಮುಂದೆ Google Chrome ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ</translation>
 <translation id="8008534537613507642">Chrome ಅನ್ನು ಮರು ಸ್ಥಾಪಿಸು</translation>
 <translation id="8013993649590906847">ಚಿತ್ರದಲ್ಲಿ ಉಪಯುಕ್ತ ವಿವರಣೆಯು ಇಲ್ಲದಿದ್ದರೆ, Chrome ನಿಮಗಾಗಿ ಒಂದು ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ವಿವರಣೆಗಳನ್ನು ರಚಿಸಲು, ಚಿತ್ರಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.</translation>
@@ -233,7 +230,6 @@
 <translation id="8679801911857917785">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
 <translation id="870251953148363156">&amp;Google Chrome ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ</translation>
 <translation id="873133009373065397">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Google Chrome ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation>
-<translation id="8736674169840206667">ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೋರುತ್ತಿದ್ದಾರೆ</translation>
 <translation id="8823341990149967727">Chrome ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation>
 <translation id="884296878221830158">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ಹೋಮ್ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
 <translation id="8862326446509486874">ಸಿಸ್ಟಂ ಮಟ್ಟದ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ನೀವು ಸರಿಯಾದ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿಲ್ಲ. ನಿರ್ವಾಹಕರಂತೆ ಮತ್ತೆ ಇನ್‌ಸ್ಟಾಲರ್ ಅನ್ನು ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index 1d8eab7..cf3601890 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome이 이전 버전임</translation>
 <translation id="1900795423379050516">페이지에 표시되지 않는 설정이 있다면 <ph name="LINK_BEGIN" />
       Chrome 브라우저 설정<ph name="LINK_END" />을 확인해 보세요.</translation>
-<translation id="1915828456209461693">Chrome 업데이트가 있습니다. 다시 시작하면 바로 업데이트됩니다.</translation>
 <translation id="1919130412786645364">Chrome 로그인 허용</translation>
 <translation id="2063848847527508675">업데이트를 적용하려면 Chrome OS를 다시 시작해야 합니다.</translation>
 <translation id="2094919256425865063">Chrome을 종료하시겠습니까?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Chrome에서 비밀번호를 내보내려고 합니다. 허용하려면 Windows 비밀번호를 입력하세요.</translation>
 <translation id="2485422356828889247">제거</translation>
 <translation id="2534507159460261402">Google Pay(Chrome에 복사됨)</translation>
-<translation id="2535429035253759792">관리자가 이 업데이트를 적용하려면 사용자가 Chrome을 다시 시작하도록 설정했습니다.</translation>
 <translation id="2580411288591421699">현재 실행 중인 Chrome과 동일한 버전은 설치할 수 없습니다. Chrome을 닫고 다시 시도하세요.</translation>
 <translation id="2586406160782125153">인터넷 사용 기록이 기기에서 삭제됩니다. 나중에 데이터를 가져오려면 Chrome에 <ph name="USER_EMAIL" />(으)로 로그인하세요.</translation>
 <translation id="2588322182880276190">Chrome 로고</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Chrome이 최신 버전입니다.</translation>
 <translation id="7890208801193284374">컴퓨터를 공유하는 경우 친구와 가족이 개별적으로 탐색하고 원하는 대로 Chrome을 설정할 수 있습니다.</translation>
 <translation id="7896673875602241923">다른 사용자가 이전에 이 컴퓨터에서 <ph name="ACCOUNT_EMAIL_LAST" />(으)로 Chrome에 로그인했습니다. 새 Chrome 사용자를 만들어 정보를 별도로 관리하세요.</translation>
-<translation id="7908168227788431038">업데이트가 거의 완료되었습니다. 업데이트를 완료하려면 Chrome을 다시 시작하세요.</translation>
 <translation id="7962410387636238736">Windows XP와 Windows Vista가 더 이상 지원되지 않으므로 이 컴퓨터에서 Chrome 업데이트를 받을 수 없게 됩니다</translation>
 <translation id="8008534537613507642">Chrome 재설치</translation>
 <translation id="8013993649590906847">이미지에 유용한 설명이 없으면 Chrome에서 자동으로 설명을 제공하려고 시도합니다. 설명을 생성하기 위해 이미지가 Google로 전송됩니다.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">또한 Chrome을 시작할 때 표시되는 페이지를 설정합니다.</translation>
 <translation id="870251953148363156">Chrome 업데이트(&amp;G)</translation>
 <translation id="873133009373065397">Chrome에서 기본 브라우저를 확인하거나 설정할 수 없습니다.</translation>
-<translation id="8736674169840206667">관리자가 업데이트를 적용하려면 사용자가 Chrome을 다시 시작하도록 설정했습니다.</translation>
 <translation id="8823341990149967727">Chrome이 이전 버전임</translation>
 <translation id="884296878221830158">또한 Chrome을 시작하거나 홈 버튼을 클릭할 때 표시되는 페이지를 설정합니다.</translation>
 <translation id="8862326446509486874">시스템 수준의 설치 권한이 없습니다. 관리자 권한으로 설치 프로그램을 다시 실행해 보세요.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 5816e15..959f77a01 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">„Chrome“ versija yra pasenusi</translation>
 <translation id="1900795423379050516">Jei nustatymai šiame puslapyje nerodomi, jų ieškokite <ph name="LINK_BEGIN" />
       naršyklės „Chrome“ nustatymuose<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Pasiekiamas naujas „Chrome“ naujinys, kuris bus pritaikytas, kai paleisite „Chrome“ iš naujo.</translation>
 <translation id="1919130412786645364">Leisti „Chrome“ prisijungti</translation>
 <translation id="2063848847527508675">Kad būtų galima pritaikyti naujinį, „Chrome“ OS reikia paleisti iš naujo.</translation>
 <translation id="2094919256425865063">Vis tiek išeiti iš „Chrome“?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">„Google Chrome“ nori eksportuoti jūsų slaptažodžius. Įveskite „Windows“ slaptažodį, kad tai leistumėte.</translation>
 <translation id="2485422356828889247">Pašalinti</translation>
 <translation id="2534507159460261402">„Google Pay“ (nukopijuota į „Chrome“)</translation>
-<translation id="2535429035253759792">Administratorius prašo paleisti iš naujo „Chrome“, kad galėtų pritaikyti šį naujinį</translation>
 <translation id="2580411288591421699">Negalima įdiegti tos pačios „Google Chrome“ versijos, kuri dabar paleista. Uždarykite „Google Chrome“ ir bandykite dar kartą.</translation>
 <translation id="2586406160782125153">Atlikus šį veiksmą bus ištrinti naršymo duomenys iš šio įrenginio. Jei vėliau norėsite atgauti duomenis, prisijunkite prie „Chrome“ kaip <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">„Chrome“ logotipas</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">„Google Chrome“ yra naujausios versijos</translation>
 <translation id="7890208801193284374">Jei bendrinate kompiuterį, šeimos nariai ir draugai gali naršyti atskirai ir nustatyti „Chrome“ pagal savo poreikius.</translation>
 <translation id="7896673875602241923">Kažkas anksčiau prisijungė prie „Chrome“ šiame kompiuteryje kaip <ph name="ACCOUNT_EMAIL_LAST" />. Sukurkite naują „Chrome“ naudotoją, kad apsaugotumėte savo informaciją.</translation>
-<translation id="7908168227788431038">Beveik atnaujinta! Paleiskite „Google Chrome“ iš naujo, kad būtų užbaigtas naujinimas.</translation>
 <translation id="7962410387636238736">Šiame kompiuteryje nebebus gaunami „Google Chrome“ naujiniai, nes „Windows XP“ ir „Windows Vista“ nebepalaikomos.</translation>
 <translation id="8008534537613507642">Iš naujo įdiegti „Chrome“</translation>
 <translation id="8013993649590906847">Jei nebus naudingo vaizdo aprašo, „Chrome“ bandys jums jį pateikti. Kad būtų galima kurti aprašus, vaizdai siunčiami į sistemą „Google“.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">Ji taip pat kontroliuoja, koks puslapis rodomas, kai paleidžiate „Chrome“.</translation>
 <translation id="870251953148363156">Atnaujinti „&amp;Google Chrome“</translation>
 <translation id="873133009373065397">„Google Chrome“ nepavyko aptikti arba nustatyti numatytosios naršyklės</translation>
-<translation id="8736674169840206667">Administratorius reikalauja paleisti iš naujo „Chrome“, kad galėtų pritaikyti naujinį</translation>
 <translation id="8823341990149967727">„Chrome“ versija yra pasenusi</translation>
 <translation id="884296878221830158">Ji taip pat kontroliuoja, koks puslapis rodomas, kai paleidžiate „Chrome“ ar spustelėjate pagrindinio puslapio mygtuką.</translation>
 <translation id="8862326446509486874">Neturite reikiamų teisių sistemai įdiegti. Pamėginkite įdiegimo priemonę dar kartą paleisti kaip administratorius.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index 1398b73..ce937fb 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -41,7 +41,6 @@
 <translation id="1877026089748256423">Chrome versija ir novecojusi.</translation>
 <translation id="1900795423379050516">Ja šajā lapā iestatījums nav pieejams, skatiet to sadaļā <ph name="LINK_BEGIN" />
       Pārlūkprogrammas Chrome iestatījumi<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">Pieejams Chrome atjauninājums, un tas tiks lietots, tiklīdz restartēsiet pārlūku.</translation>
 <translation id="1919130412786645364">Atļaut pierakstīties pārlūkā Chrome</translation>
 <translation id="2063848847527508675">Lai lietotu atjauninājumu, Chrome OS ir jārestartē.</translation>
 <translation id="2094919256425865063">Vai tik un tā aizvērt pārlūku Chrome?</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">Pārlūkā Google Chrome tiek mēģināts eksportēt jūsu paroles. Lai to atļautu, ierakstiet savu Windows paroli.</translation>
 <translation id="2485422356828889247">Atinstalēt</translation>
 <translation id="2534507159460261402">Google Pay (kopēts pārlūkā Chrome)</translation>
-<translation id="2535429035253759792">Lai lietotu šo atjauninājumu, administrators lūdz restartēt pārlūku Chrome.</translation>
 <translation id="2580411288591421699">Nevar instalēt to pašu Google Chrome versiju, kas jau darbojas. Lūdzu, aizveriet Google Chrome un mēģiniet vēlreiz.</translation>
 <translation id="2586406160782125153">Veicot šo darbību, no šīs ierīces tiks dzēsti pārlūkošanas dati. Lai vēlāk izgūtu datus, pierakstieties pārlūkā Chrome kā <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome logotips</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Pārlūks Google Chrome ir atjaunināts.</translation>
 <translation id="7890208801193284374">Ja jūsu datoru izmanto arī jūsu draugi un ģimenes locekļi, viņi var iestatīt pārlūku Chrome atbilstoši savām vēlmēm un pārlūkot saturu atsevišķos kontos.</translation>
 <translation id="7896673875602241923">Kāds iepriekš pierakstījās pārlūkā Chrome šajā datorā, izmantojot e-pasta adresi <ph name="ACCOUNT_EMAIL_LAST" />. Lūdzu, izveidojiet jaunu Chrome lietotāju, lai nošķirtu savu informāciju.</translation>
-<translation id="7908168227788431038">Atjaunināšana gandrīz pabeigta! Lai pabeigtu atjaunināšanu, atkārtoti palaidiet pārlūku Google Chrome.</translation>
 <translation id="7962410387636238736">Šajā datorā vairs netiks saņemti Google Chrome atjauninājumi, jo operētājsistēmas Windows XP un Windows Vista vairs netiek atbalstītas.</translation>
 <translation id="8008534537613507642">Pārinstalēt Chrome</translation>
 <translation id="8013993649590906847">Ja attēlam nav vērtīga apraksta, pārlūks Chrome mēģinās jums tādu nodrošināt. Lai izveidotu aprakstus, attēli tiek nosūtīti uzņēmumam Google.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">Tas nosaka arī to, kāda lapa tiks rādīta, kad atvērsiet pārlūku Chrome.</translation>
 <translation id="870251953148363156">Atjaunināt &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome nevar noteikt vai iestatīt noklusējuma pārlūku.</translation>
-<translation id="8736674169840206667">Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chrome.</translation>
 <translation id="8823341990149967727">Chrome versija ir novecojusi</translation>
 <translation id="884296878221830158">Tas nosaka arī to, kāda lapa tiks rādīta, kad atvērsiet pārlūku Chrome vai noklikšķināsiet uz pogas “Sākums”.</translation>
 <translation id="8862326446509486874">Jums nav vajadzīgo tiesību, lai instalētu sistēmas līmenī. Mēģiniet vēlreiz palaist instalēšanas programmu kā administrators.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index b4919fce..4115fc2 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -19,7 +19,7 @@
 <translation id="137466361146087520">Google Chrome ബീറ്റ</translation>
 <translation id="1399397803214730675">ഈ കമ്പ്യൂട്ടറിൽ ഇപ്പോൾ തന്നെ Google Chrome-ന്റെ ഏറ്റവും പുതിയ പതിപ്പുണ്ട്. സോഫ്റ്റ്‍‍വെയർ പ്രവര്‍ത്തിക്കുന്നില്ലെങ്കില്‍, ദയവായി Google Chrome അണ്‍‌ഇന്‍സ്റ്റാള്‍  ചെയ്ത് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="1434626383986940139">Chrome കാനറി അപ്ലിക്കേഷനുകൾ</translation>
-<translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
+<translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റുചെയ്യുക</translation>
 <translation id="1587223624401073077">Google Chrome നിങ്ങളുടെ ക്യാമറ ഉപയോഗിക്കുന്നു.</translation>
 <translation id="1587325591171447154"><ph name="FILE_NAME" /> അപകടകരമായതിനാൽ, Chrome ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
 <translation id="1590588151039584890">അപ്‌ഡേറ്റ് ചെയ്യാൻ, ഈ കമ്പ്യൂട്ടറിൽ Chrome റൺ ചെയ്യുന്നത് നിർത്തേണ്ടതുണ്ട്. ഈ കമ്പ്യൂട്ടറിൽ ലോഗിൻ ചെയ്‌തിരിക്കുന്ന മറ്റ് ഉപയോക്താക്കളുടെ സംരക്ഷിക്കാത്ത മാറ്റങ്ങൾ നഷ്‌ടപ്പെടാൻ ഇത് കാരണമായേക്കാം.</translation>
@@ -43,9 +43,8 @@
 <translation id="1877026089748256423">Chrome കാലഹരണപ്പെട്ടതാണ്</translation>
 <translation id="1900795423379050516">ഈ പേജിൽ ക്രമീകരണം കാണിക്കുന്നില്ലെങ്കിൽ <ph name="LINK_BEGIN" />
       Chrome ബ്രൗസർ ക്രമീകരണത്തിൽ<ph name="LINK_END" /> പരിശോധിക്കുക</translation>
-<translation id="1915828456209461693">Chrome-നായുള്ള പുതിയൊരു അപ്ഡേറ്റ് ലഭ്യമാണ്, നിങ്ങൾ വീണ്ടും സമാരംഭിക്കുമ്പോൾ ഉടൻ അത് പ്രാബല്യത്തിലാകും.</translation>
 <translation id="1919130412786645364">Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ അനുവദിക്കുക</translation>
-<translation id="2063848847527508675">അപ്‌ഡേറ്റ് പ്രയോഗത്തിൽ വരുത്താൻ Chrome OS പുനരാരംഭിക്കേണ്ടതുണ്ട്.</translation>
+<translation id="2063848847527508675">അപ്‌ഡേറ്റ് ബാധകമാക്കാൻ Chrome റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്.</translation>
 <translation id="2094919256425865063">എന്തായാലും Chrome-ൽ നിന്ന് പുറത്തുകടക്കണോ?</translation>
 <translation id="2120620239521071941">ഇത് ഈ ഉപകരണത്തിൽ നിന്ന് <ph name="ITEMS_COUNT" /> ഇനങ്ങൾ ഇല്ലാതാക്കും. പിന്നീട് നിങ്ങളുടെ വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, <ph name="USER_EMAIL" /> എന്നയാളായി Chrome‌-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />നിലവിലെ ക്രമീകരണം<ph name="END_LINK" /> റിപ്പോർട്ട് ചെയ്‌തുകൊണ്ട് Chrome മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">നിങ്ങളുടെ പാസ്‌വേഡുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യാൻ Google Chrome ആഗ്രഹിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്‌വേഡ് നൽകുക.</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
 <translation id="2534507159460261402">Google Pay (Chrome-ലേക്ക് പകർത്തി)</translation>
-<translation id="2535429035253759792">ഈ അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chrome വീണ്ടും സമാരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ആവശ്യപ്പെടുന്നു</translation>
 <translation id="2580411288591421699">നിലവില്‍‌ പ്രവര്‍‌ത്തിക്കുന്ന സമാന Google Chrome പതിപ്പ് ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യാന്‍‌ കഴിയില്ല. ദയവായി Google Chrome അടച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2586406160782125153">ഇത് ഈ ഉപകരണത്തിൽ നിന്ന് നിങ്ങളുടെ ബ്രൗസിംഗ് വിവരങ്ങൾ ഇല്ലാതാക്കും. പിന്നീട് വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, <ph name="USER_EMAIL" /> എന്നയാളായി Chrome‌-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="2588322182880276190">Chrome ലോഗോ</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Chromium അപ്‌‌ടുഡേറ്റാണ്</translation>
 <translation id="7890208801193284374">നിങ്ങളൊരു കമ്പ്യൂട്ടർ പങ്കിടുകയാണെങ്കിൽ, സുഹൃത്തുക്കൾക്കും കുടുബാംഗങ്ങൾക്കും വെവ്വേറെ ബ്രൗസ് ചെയ്യാനും അവർക്കാവശ്യമുള്ള രീതിയിൽ Chrome സജ്ജമാക്കാനുമാകും.</translation>
 <translation id="7896673875602241923">ഈ കമ്പ്യൂട്ടറിലെ Chrome-ൽ മുമ്പ് മറ്റാരോ <ph name="ACCOUNT_EMAIL_LAST" /> എന്നയാളായി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. നിങ്ങളുടെ വിവരങ്ങൾ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ പുതിയ Chrome ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുക.</translation>
-<translation id="7908168227788431038">മിക്കവാറും അപ്‌‌ടുഡേറ്റാണ്! അപ്‌ഡേറ്റുചെയ്യൽ പൂർത്തിയാക്കാൻ Google Chrome വീണ്ടും ആരംഭിക്കുക.</translation>
 <translation id="7962410387636238736">Windows XP-ക്കും Windows Vista-യ്‌ക്കും ഇനിയങ്ങോട്ട് പിന്തുണ ഇല്ലാത്തതിനാൽ ഈ കമ്പ്യൂട്ടറിന് ഇനി Google Chrome അപ്‌ഡേറ്റുകൾ സ്വീകരിക്കാനാകില്ല</translation>
 <translation id="8008534537613507642">Chrome വീണ്ടും ഇൻസ്റ്റാളുചെയ്യുക</translation>
 <translation id="8013993649590906847">ചിത്രത്തിൽ ഉപകാരപ്രദമായ വിവരണമില്ലെങ്കിൽ നിങ്ങൾക്കായി ഒരു വിവരണം നൽകാൻ Chrome ശ്രമിക്കും. വിവരണങ്ങൾ സൃഷ്‌ടിക്കാൻ, ചിത്രങ്ങൾ Google-ലേക്ക് അയയ്ക്കുന്നു.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">നിങ്ങൾ Chrome ആരംഭിയ്ക്കുമ്പോൾ ഏത് പേജാണ് കാണിക്കേണ്ടതെന്നും അത് നിയന്ത്രിയ്ക്കുന്നു.</translation>
 <translation id="870251953148363156">&amp;Google Chrome അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="873133009373065397">Google Chrome-ന് ഡിഫോൾട്ട് ബ്രൗസർ നിർണ്ണയിക്കാനോ സജ്ജമാക്കാനോ കഴിയില്ല</translation>
-<translation id="8736674169840206667">അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chrome വീണ്ടും സമാരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ആവശ്യപ്പെടുന്നു</translation>
 <translation id="8823341990149967727">Chrome കാലഹരണപ്പെട്ടതാണ്</translation>
 <translation id="884296878221830158">നിങ്ങൾ Chrome ആരംഭിയ്ക്കുമ്പോഴോ ഹോം ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോഴോ ഏത് പേജാണ് കാണിക്കേണ്ടതെന്നും അത് നിയന്ത്രിയ്ക്കുന്നു.</translation>
 <translation id="8862326446509486874">സിസ്റ്റം തലത്തിൽ ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുന്നതിന് നിങ്ങള്‍‌ക്ക് ഉചിതമായ അവകാശങ്ങളില്ല. അഡ്‌മിനിസ്‌ട്രേറ്ററായി ഇന്‍‌സ്റ്റാളര്‍‌ റണ്‍ ചെയ്യിക്കാൻ വീണ്ടും ശ്രമിക്കൂ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index e3580d6a..266e8f2 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -42,7 +42,6 @@
 <translation id="1877026089748256423">Chrome कालबाह्य आहे</translation>
 <translation id="1900795423379050516">या पेजवर सेटिंग दिसत नसल्यास, तुमच्या <ph name="LINK_BEGIN" />
       Chrome ब्राउझर सेटिंग्ज<ph name="LINK_END" /> मध्ये पाहा</translation>
-<translation id="1915828456209461693">Chrome साठी नवीन अपडेट उपलब्ध आहे आणि तुम्ही रीलाँच करताच ते लागू केले जाईल.</translation>
 <translation id="1919130412786645364">Chrome मध्ये साइन इन करण्यासाठी अनुमती द्या</translation>
 <translation id="2063848847527508675">अपडेट लागू करण्यासाठी Chrome OS रीस्टार्ट करणे आवश्यक आहे.</translation>
 <translation id="2094919256425865063">तरीही Chrome बंद करायचे?</translation>
@@ -58,7 +57,6 @@
 <translation id="2467438592969358367">Google Chrome ला तुमचे पासवर्ड निर्यात करायचे आहेत. हे करू देण्यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
 <translation id="2485422356828889247">अनइंस्टॉल करा</translation>
 <translation id="2534507159460261402">Google Pay (Chrome वर कॉपी केले)</translation>
-<translation id="2535429035253759792">हे अपडेट लागू करण्यासाठी तुमच्या अॅडमिनिस्ट्रेटरने तुम्हाला Chrome पुन्हा लाँच करण्यास सांगितले आहे</translation>
 <translation id="2580411288591421699">सध्या चालत असलेली Google Chrome ची समान आवृत्ती इंस्टॉल करू शकत नाही. कृपया Google Chrome बंद करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="2586406160782125153">हे या डिव्‍हाइस मधून तुमचा ब्राउझिंग डेटा हटवेल. नंतर तुमचा डेटा पुनर्प्राप्त करण्‍यासाठी, Chrome मध्ये <ph name="USER_EMAIL" /> म्हणून साइन इन करा.</translation>
 <translation id="2588322182880276190">Chrome लोगो</translation>
@@ -215,7 +213,6 @@
 <translation id="7855730255114109580">Google Chrome अपडेट झाले आहे</translation>
 <translation id="7890208801193284374">तुम्ही कॉंप्युटर शेअर केल्यास, मित्र आणि कुटुंब स्वतंत्रपणे ब्राउझ करू शकतात आणि त्यांना पाहिजे तसे Chrome सेट अप करू शकतात.</translation>
 <translation id="7896673875602241923">कोणीतरी यापूर्वी <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून या संंगणकावरील Chrome मध्ये साइन इन केले आहे. कृपया तुमची माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chrome वापरकर्ता तयार करा.</translation>
-<translation id="7908168227788431038">जवळजवळ अद्ययावत पूर्ण झाले! अपडेट समाप्त करण्यासाठी Google Chrome रीलाँच करा.</translation>
 <translation id="7962410387636238736">Windows XP आणि Windows Vista ला आता सपोर्ट नसल्याने या कॉंप्युटरला यापुढे Google Chrome अपडेट मिळणार नाहीत</translation>
 <translation id="8008534537613507642">Chrome पुनर्स्थापित करा</translation>
 <translation id="8013993649590906847">इमेजचे उपयोगी वर्णन नसल्यास, Chrome तुमच्यासाठी ते देण्याचा प्रयत्न करेल. वर्णने तयार करण्यासाठी, इमेज Google ला पाठवल्या जातात.</translation>
@@ -238,7 +235,6 @@
 <translation id="8679801911857917785">तुम्ही Chrome सुरू करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे देखील हे नियंत्रित करते.</translation>
 <translation id="870251953148363156">&amp;Google Chrome अपडेट करा</translation>
 <translation id="873133009373065397">Google Chrome डीफॉल्ट ब्राउझर निर्धारित करू शकत नाही किंवा सेट करू शकत नाही</translation>
-<translation id="8736674169840206667">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करण्याची आवश्यकता आहे</translation>
 <translation id="8823341990149967727">Chrome कालबाह्य आहे</translation>
 <translation id="884296878221830158">तुम्ही Chrome सुरू करता किंवा होम बटण क्लिक करता तेव्हा कोणते पेज दर्शविले जाते ते देखील हे नियंत्रित करते.</translation>
 <translation id="8862326446509486874">तुमच्याकडे सिस्टम स्तरावरील इंस्टॉलसाठी योग्य अधिकार नाहीत. अॅडमिनिस्ट्रेटर म्हणून पुन्हा इंस्टॉलर चालविण्याचा प्रयत्न करा.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index ea680fdd..dc9e34249 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome sudah usang</translation>
 <translation id="1900795423379050516">Jika tetapan tidak ditunjukkan pada halaman ini, lihat dalam <ph name="LINK_BEGIN" />
       tetapan penyemak imbas Chrome anda<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Kemas kini baharu tersedia untuk Chrome dan akan digunakan sebaik sahaja anda melancarkan Chrome semula.</translation>
 <translation id="1919130412786645364">Benarkan log masuk Chrome</translation>
 <translation id="2063848847527508675">OS Chrome perlu dimulakan semula untuk melaksanakan kemas kini.</translation>
 <translation id="2094919256425865063">Keluar daripada Chrome juga?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome mahu mengeksport kata laluan anda. Taip kata laluan Windows anda untuk membenarkannya.</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
 <translation id="2534507159460261402">Google Pay (disalin ke Chrome)</translation>
-<translation id="2535429035253759792">Pentadbir anda meminta anda melancarkan semula Chrome untuk menggunakan kemas kini ini</translation>
 <translation id="2580411288591421699">Tidak dapat memasang versi Google Chrome yang sama yang kini dijalankan. Sila tutup Google Chrome dan cuba semula.</translation>
 <translation id="2586406160782125153">Tindakan ini akan memadamkan data semakan imbas anda daripada peranti ini. Untuk mendapatkan kembali data anda kemudian, log masuk ke Chrome sebagai <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome adalah yang terkini</translation>
 <translation id="7890208801193284374">Jika anda berkongsi komputer, rakan dan keluarga boleh menyemak imbas secara berasingan dan menyediakan Chrome sebagaimana yang mereka mahukan.</translation>
 <translation id="7896673875602241923">Sebelum ini, seseorang telah log masuk ke Chrome pada komputer ini sebagai <ph name="ACCOUNT_EMAIL_LAST" />. Sila buat pengguna Chrome baharu untuk mengasingkan maklumat anda.</translation>
-<translation id="7908168227788431038">Hampir terkini! Lancarkan semula Google Chrome untuk menyelesaikan kemas kini.</translation>
 <translation id="7962410387636238736">Komputer ini tidak akan menerima kemas kini Google Chrome lagi kerana Windows XP dan Windows Vista sudah tidak disokong</translation>
 <translation id="8008534537613507642">Pasang Semula Chrome</translation>
 <translation id="8013993649590906847">Jika imej tiada perihalan yang berguna, Chrome akan cuba memberikan perihalan untuk anda. Untuk membuat perihalan, imej dihantar kepada Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Sambungan turut mengawal halaman yang ditunjukkan apabila anda memulakan Chrome.</translation>
 <translation id="870251953148363156">Kemas kini &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome tidak dapat menentukan atau menetapkan penyemak imbas lalai</translation>
-<translation id="8736674169840206667">Pentadbir anda menghendaki anda melancarkan semula Chrome untuk menggunakan kemas kini</translation>
 <translation id="8823341990149967727">Chrome sudah Usang</translation>
 <translation id="884296878221830158">Sambungan turut mengawal halaman yang ditunjukkan apabila anda memulakan Chrome atau mengklik butang Laman Utama.</translation>
 <translation id="8862326446509486874">Anda tidak mempunyai hak wajar untuk pemasangan peringkat sistem. Cuba jalankan pemasang semula sebagai Pentadbir.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index 7e68dff5..67ac9841 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -42,7 +42,6 @@
 <translation id="1874309113135274312">Google Chrome Bèta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome is verouderd</translation>
 <translation id="1900795423379050516">Als je een instelling niet ziet op deze pagina, kijk je in de <ph name="LINK_BEGIN" />instellingen van je Chrome-browser<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Er is een nieuwe update voor Chrome beschikbaar die wordt toegepast zodra je het programma opnieuw start.</translation>
 <translation id="1919130412786645364">Inloggen bij Chrome toestaan</translation>
 <translation id="2063848847527508675">Chrome OS moet opnieuw worden gestart om de update toe te passen.</translation>
 <translation id="2094919256425865063">Chrome toch sluiten?</translation>
@@ -58,7 +57,6 @@
 <translation id="2467438592969358367">Google Chrome wil je wachtwoorden exporteren. Geef je Windows-wachtwoord op om dit toe te staan.</translation>
 <translation id="2485422356828889247">Installatie ongedaan maken</translation>
 <translation id="2534507159460261402">Google Pay (gekopieerd naar Chrome)</translation>
-<translation id="2535429035253759792">Je beheerder vraagt je Chrome opnieuw te starten om deze update toe te passen</translation>
 <translation id="2580411288591421699">Kan dezelfde Google Chrome-versie die momenteel actief is, niet installeren. Sluit Google Chrome en probeer het opnieuw.</translation>
 <translation id="2586406160782125153">Hiermee worden je browsergegevens verwijderd van dit apparaat. Als je je gegevens later wilt terughalen, log je in bij Chrome als <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome-logo</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Google Chrome is up-to-date</translation>
 <translation id="7890208801193284374">Als je een computer deelt, kunnen vrienden en familie afzonderlijk surfen en Chrome configureren zoals zij dat willen.</translation>
 <translation id="7896673875602241923">Iemand heeft eerder bij Chrome op deze computer ingelogd als <ph name="ACCOUNT_EMAIL_LAST" />. Maak een nieuwe Chrome-gebruiker om je informatie gescheiden te houden.</translation>
-<translation id="7908168227788431038">Updaten bijna voltooid. Start Google Chrome opnieuw op om de update te voltooien.</translation>
 <translation id="7962410387636238736">Deze computer ontvangt geen Google Chrome-updates meer, omdat Windows XP en Windows Vista niet meer worden ondersteund</translation>
 <translation id="8008534537613507642">Chrome opnieuw installeren</translation>
 <translation id="8013993649590906847">Als een afbeelding geen nuttige beschrijving bevat, probeert Chrome je er een te geven. Afbeeldingen worden naar Google verzonden om beschrijvingen te maken.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">Hiermee wordt ook gecontroleerd welke pagina wordt weergegeven wanneer je Chrome start.</translation>
 <translation id="870251953148363156">&amp;Google Chrome updaten</translation>
 <translation id="873133009373065397">Google Chrome kan de standaardbrowser niet bepalen of instellen</translation>
-<translation id="8736674169840206667">Je beheerder vereist dat je Chrome opnieuw start om een update toe te passen</translation>
 <translation id="8823341990149967727">Chrome is verouderd</translation>
 <translation id="884296878221830158">Hiermee wordt ook gecontroleerd welke pagina wordt weergegeven wanneer je Chrome start of op de knop 'Homepage' klikt.</translation>
 <translation id="8862326446509486874">Je hebt geen rechten om op systeemniveau te installeren. Meld je aan als beheerder en voer het installatieprogramma opnieuw uit.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
index fe2f64c..7909aaf 100644
--- a/chrome/app/resources/google_chrome_strings_no.xtb
+++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome er utdatert</translation>
 <translation id="1900795423379050516">Hvis en innstilling ikke vises på denne siden, kan du gå til <ph name="LINK_BEGIN" />
     nettleserinnstillingene for Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">En ny oppdatering for Chrome er tilgjengelig og tas i bruk når du starter Chrome på nytt.</translation>
 <translation id="1919130412786645364">Tillat Chome-pålogging</translation>
 <translation id="2063848847527508675">Chrome OS må startes på nytt for at oppdateringen skal tas i bruk.</translation>
 <translation id="2094919256425865063">Vil du avslutte Chrome likevel?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome forsøker å eksportere passordene dine. Skriv inn Windows-passordet ditt for å tillate dette.</translation>
 <translation id="2485422356828889247">Avinstaller</translation>
 <translation id="2534507159460261402">Google Pay (kopiert til Chrome)</translation>
-<translation id="2535429035253759792">Administratoren din ber deg om å starte Chrome på nytt for at denne oppdateringen skal tas i bruk</translation>
 <translation id="2580411288591421699">Google Chrome-versjonen du prøver å installere, kjører allerede. Lukk Google Chrome og forsøk å installere på nytt.</translation>
 <translation id="2586406160782125153">Dette sletter nettlesingsdataene dine fra denne enheten. For å hente dataene igjen senere må du logge på Chrome som <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome-logo</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome er oppdatert</translation>
 <translation id="7890208801193284374">Hvis du deler en datamaskin med andre, kan venner og familie surfe hver for seg og konfigurere Chrome akkurat slik de vil.</translation>
 <translation id="7896673875602241923">Noen har tidligere logget på Chrome på denne datamaskinen som <ph name="ACCOUNT_EMAIL_LAST" />. Opprett en ny Chrome-bruker for å holde informasjonen din atskilt.</translation>
-<translation id="7908168227788431038">Nå er oppdateringen snart ferdig! Start Google Chrome på nytt for å fullføre oppdateringen.</translation>
 <translation id="7962410387636238736">Denne datamaskinen kommer ikke lenger til å motta oppdateringer av Google Chrome, fordi Windows XP og Windows Vista ikke støttes lenger</translation>
 <translation id="8008534537613507642">Installer Chrome på nytt</translation>
 <translation id="8013993649590906847">Hvis et bilde ikke har noen nyttig beskrivelse, prøver Chrome å finne en til deg. For å opprette beskrivelser blir bilder sendt til Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Den styrer også hvilken side som vises når du starter Chrome.</translation>
 <translation id="870251953148363156">Oppdater &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome kan ikke fastslå eller angi standardnettleseren</translation>
-<translation id="8736674169840206667">Administratoren din krever at du starter Chrome på nytt for at en oppdatering skal tas i bruk</translation>
 <translation id="8823341990149967727">Chrome er utdatert</translation>
 <translation id="884296878221830158">Den styrer også hvilken side som vises når du starter Chrome eller klikker på Startside-knappen.</translation>
 <translation id="8862326446509486874">Du har ikke de nødvendige rettighetene for å installere på systemnivå. Prøv å kjøre installasjonsprogrammet som administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb
index 1ba6c274..6610786 100644
--- a/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome jest nieaktualny</translation>
 <translation id="1900795423379050516">Jeśli ustawienia nie widać na tej stronie, zajrzyj do <ph name="LINK_BEGIN" />ustawień przeglądarki Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Dostępna jest aktualizacja Chrome, która zostanie zastosowana natychmiast po ponownym uruchomieniu.</translation>
 <translation id="1919130412786645364">Zezwalaj na logowanie się w Chrome</translation>
 <translation id="2063848847527508675">Żeby system operacyjny Chrome mógł zastosować aktualizacje, musisz go ponownie uruchomić.</translation>
 <translation id="2094919256425865063">Zamknąć Chrome mimo to?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">Google Chrome chce wyeksportować Twoje hasła. Wpisz swoje hasło do Windows, by na to zezwolić.</translation>
 <translation id="2485422356828889247">Odinstaluj</translation>
 <translation id="2534507159460261402">Google Pay (skopiowana do Chrome)</translation>
-<translation id="2535429035253759792">Administrator prosi Cię o ponowne uruchomienie Chrome, by przeglądarka mogła zainstalować tę aktualizację</translation>
 <translation id="2580411288591421699">Nie można zainstalować tej samej wersji przeglądarki Google Chrome co obecnie uruchomiona. Zamknij przeglądarkę Google Chrome i spróbuj ponownie.</translation>
 <translation id="2586406160782125153">Spowoduje to usunięcie danych przeglądania z tego urządzenia. Aby później odzyskać dane, zaloguj się w Chrome jako <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo Chrome</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">Masz aktualną wersję Google Chrome</translation>
 <translation id="7890208801193284374">Jeśli dzielisz komputer ze znajomymi lub rodziną, wszyscy możecie niezależnie przeglądać internet i po swojemu skonfigurować Chrome.</translation>
 <translation id="7896673875602241923">Ktoś zalogował się wcześniej w Chrome na tym komputerze jako <ph name="ACCOUNT_EMAIL_LAST" />. Utwórz nowego użytkownika Chrome, by Twoje informacje były przechowywane oddzielnie.</translation>
-<translation id="7908168227788431038">Już prawie gotowe. Uruchom ponownie Google Chrome, by zakończyć aktualizację.</translation>
 <translation id="7962410387636238736">Google Chrome nie będzie już aktualizować się na tym komputerze, ponieważ systemy Windows XP i Windows Vista nie są już obsługiwane.</translation>
 <translation id="8008534537613507642">Ponownie zainstaluj Chrome</translation>
 <translation id="8013993649590906847">Jeśli obraz nie ma przydatnego opisu, Chrome spróbuje go dla Ciebie stworzyć. W tym celu obrazy zostaną wysłane do Google.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">Kontroluje także to, jaka strona wyświetla się po uruchomieniu Chrome.</translation>
 <translation id="870251953148363156">Aktualizuj &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome nie może określić ani ustawić domyślnej przeglądarki</translation>
-<translation id="8736674169840206667">Administrator wymaga od Ciebie ponownego uruchomienia Chrome, by przeglądarka mogła zainstalować aktualizację</translation>
 <translation id="8823341990149967727">Chrome jest nieaktualny</translation>
 <translation id="884296878221830158">Kontroluje także to, jaka strona wyświetla się po uruchomieniu Chrome lub kliknięciu przycisku strony głównej.</translation>
 <translation id="8862326446509486874">Nie masz odpowiednich uprawnień do przeprowadzenia instalacji na poziomie systemowym. Uruchom ponownie program instalacyjny jako administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
index 26816057..3ecc638 100644
--- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">O Google Chrome está desatualizado</translation>
 <translation id="1900795423379050516">Se uma configuração não for exibida nesta página, verifique as <ph name="LINK_BEGIN" />configurações do navegador Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Uma nova atualização está disponível para o Chrome e será aplicada assim que você reiniciá-lo.</translation>
 <translation id="1919130412786645364">Permitir login no Chrome</translation>
 <translation id="2063848847527508675">É necessário reiniciar o Chrome OS para aplicar a atualização.</translation>
 <translation id="2094919256425865063">Sair do Chrome mesmo assim?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">O Google Chrome quer exportar suas senhas. Digite sua senha do Windows para permitir isso.</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2534507159460261402">Google Pay (copiado para o Chrome)</translation>
-<translation id="2535429035253759792">Seu administrador pede que você reinicie o Chrome para que essa atualização seja aplicada</translation>
 <translation id="2580411288591421699">Não é possível instalar a mesma versão do Google Chrome que está em execução. Feche o Google Chrome e tente novamente.</translation>
 <translation id="2586406160782125153">Essa ação excluirá seus dados de navegação desse dispositivo. Para recuperar seus dados mais tarde, faça login no Chrome como <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logotipo do Google Chrome</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">O Google Chrome está atualizado</translation>
 <translation id="7890208801193284374">Se você usa um computador compartilhado, seus amigos e familiares podem navegar separadamente e configurar o Google Chrome da maneira que desejarem.</translation>
 <translation id="7896673875602241923">Anteriormente, alguém fez login no Chrome neste computador como <ph name="ACCOUNT_EMAIL_LAST" />. Crie um novo usuário do Chrome para manter suas informações separadas.</translation>
-<translation id="7908168227788431038">Atualização quase concluída. Reinicie o Google Chrome para concluí-la.</translation>
 <translation id="7962410387636238736">Este computador não receberá mais atualizações do Google Chrome porque o Windows XP e o Windows Vista não são mais compatíveis</translation>
 <translation id="8008534537613507642">Reinstalar o Google Chrome</translation>
 <translation id="8013993649590906847">Se uma imagem não tiver uma descrição útil, o Chrome tentará fornecer uma para você. As imagens serão enviadas ao Google para a criação de descrições.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">Controla também qual página deve ser exibida quando você inicia o Chrome.</translation>
 <translation id="870251953148363156">Atualizar o Google Chrome</translation>
 <translation id="873133009373065397">O Google Chrome não pode determinar ou definir o navegador padrão</translation>
-<translation id="8736674169840206667">Seu administrador exige que você reinicie o Chrome para que uma atualização seja aplicada</translation>
 <translation id="8823341990149967727">O Google Chrome está desatualizado</translation>
 <translation id="884296878221830158">Controla também qual página deve ser exibida quando você inicia o Chrome ou clica no botão "Página inicial".</translation>
 <translation id="8862326446509486874">Você não tem os direitos adequados para instalação no nível do sistema. Tente executar o instalador novamente como administrador.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index 30a3b5ec..47a1c67 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">O Chrome está desatualizado</translation>
 <translation id="1900795423379050516">Se não encontrar uma definição nesta página, procure nas <ph name="LINK_BEGIN" />
       Definições do navegador Chrome<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">Está disponível uma atualização para o Chrome que será aplicada logo que o reinicie.</translation>
 <translation id="1919130412786645364">Permitir o início de sessão no Chrome</translation>
 <translation id="2063848847527508675">O Chrome OS tem de ser reiniciado para aplicar a atualização.</translation>
 <translation id="2094919256425865063">Pretende fechar o Chrome mesmo assim?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">O Google Chrome pretende exportar as suas palavras-passe. Escreva a sua palavra-passe do Windows para permitir esta ação.</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2534507159460261402">Google Pay (copiado para o Chrome)</translation>
-<translation id="2535429035253759792">O seu administrador solicita-lhe que reinicie o Chrome para aplicar esta atualização.</translation>
 <translation id="2580411288591421699">Não é possível instalar a mesma versão do Google Chrome atualmente em execução. Feche o Google Chrome e tente novamente.</translation>
 <translation id="2586406160782125153">Esta ação elimina os seus dados de navegação deste dispositivo. Para recuperar os seus dados mais tarde, inicie sessão no Chrome como <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logótipo do Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">O Google Chrome está atualizado</translation>
 <translation id="7890208801193284374">Se partilhar um computador, os amigos e os familiares podem navegar separadamente e configurar o Chrome da forma que quiserem.</translation>
 <translation id="7896673875602241923">Anteriormente, alguém iniciou sessão no Chrome neste computador com a conta <ph name="ACCOUNT_EMAIL_LAST" />. Crie um novo utilizador do Chrome para manter as informações em separado.</translation>
-<translation id="7908168227788431038">Quase atualizado! Reinicie o Google Chrome para concluir a atualização.</translation>
 <translation id="7962410387636238736">Este computador deixará de receber atualizações do Google Chrome, uma vez que o Windows XP e o Windows Vista já não são suportados.</translation>
 <translation id="8008534537613507642">Reinstalar Chrome</translation>
 <translation id="8013993649590906847">Se uma imagem não tiver uma descrição útil, o Chrome tenta fornecer uma. Para criar as descrições, são enviadas imagens para a Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Também controla a página apresentada quando inicia o Chrome.</translation>
 <translation id="870251953148363156">Atualizar o &amp;Google Chrome</translation>
 <translation id="873133009373065397">O Google Chrome não consegue determinar ou definir o navegador predefinido</translation>
-<translation id="8736674169840206667">O seu administrador necessita que reinicie o Chrome para aplicar uma atualização.</translation>
 <translation id="8823341990149967727">O Chrome Está Desatualizado</translation>
 <translation id="884296878221830158">Também controla a página apresentada quando inicia o Chrome ou clica no botão Página Inicial.</translation>
 <translation id="8862326446509486874">Não tem os direitos adequados para uma instalação ao nível do sistema. Tente executar o programa de instalação novamente como Administrador.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index 3da8e7c..03935eb 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome nu este actualizat</translation>
 <translation id="1900795423379050516">Dacă o setare nu apare în pagină, încearcă <ph name="LINK_BEGIN" />
     setările browserului Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Este disponibilă o nouă actualizare pentru Chrome, iar aceasta va fi aplicată după repornire.</translation>
 <translation id="1919130412786645364">Permite conectarea la Chrome</translation>
 <translation id="2063848847527508675">Pentru a se aplica actualizarea, sistemul de operare Chrome trebuie să fie repornit.</translation>
 <translation id="2094919256425865063">Ieși din Chrome oricum?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome vrea să îți exporte parolele. Pentru a permite asta, introdu parola pentru Windows.</translation>
 <translation id="2485422356828889247">Dezinstalează</translation>
 <translation id="2534507159460261402">Google Pay (copiat în Chrome)</translation>
-<translation id="2535429035253759792">Administratorul solicită să relansezi Chrome pentru a aplica această actualizare</translation>
 <translation id="2580411288591421699">Nu se poate instala aceeași versiune Google Chrome care rulează în prezent. Închide Google Chrome și încearcă din nou.</translation>
 <translation id="2586406160782125153">Astfel, se vor șterge datele de navigare de pe acest dispozitiv. Pentru a recupera datele mai târziu, conectează-te la Chrome ca <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Sigla Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome este actualizat</translation>
 <translation id="7890208801193284374">Dacă permiteți accesul la un computer, familia și prietenii pot să navigheze separat și să configureze Chrome cum doresc.</translation>
 <translation id="7896673875602241923">Un alt utilizator s-a conectat anterior la Chrome pe acest computer ca <ph name="ACCOUNT_EMAIL_LAST" />. Creează un nou utilizator Chrome pentru a-ți păstra separat informațiile.</translation>
-<translation id="7908168227788431038">Aproape actualizat! Repornește Google Chrome pentru a finaliza actualizarea.</translation>
 <translation id="7962410387636238736">Acest computer nu va mai primi actualizări pentru Google Chrome, deoarece Windows XP și Windows Vista nu mai sunt acceptate</translation>
 <translation id="8008534537613507642">Reinstalați Chrome</translation>
 <translation id="8013993649590906847">Dacă o imagine nu are o descriere utilă, Chrome va încerca să o completeze. Pentru a crea descrieri, imaginile sunt trimise la Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Stabilește și ce pagină se afișează când porniți Chrome.</translation>
 <translation id="870251953148363156">Actualizați &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome nu poate determina sau seta browserul prestabilit</translation>
-<translation id="8736674169840206667">Administratorul solicită să relansezi Chrome pentru a aplica o actualizare</translation>
 <translation id="8823341990149967727">Chrome nu este actualizat</translation>
 <translation id="884296878221830158">Stabilește și ce pagină se afișează când pornești Chrome sau dai clic pe butonul Pagina principală.</translation>
 <translation id="8862326446509486874">Nu ai drepturile adecvate pentru instalarea la nivel de sistem. Încearcă să rulezi din nou programul de instalare ca Administrator.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index 8304877b..5616c385 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome (бета, mDNS-In)</translation>
 <translation id="1877026089748256423">Версия Chrome устарела</translation>
 <translation id="1900795423379050516">Если нужного параметра нет на этой странице, откройте <ph name="LINK_BEGIN" />настройки браузера Chrome<ph name="LINK_END" />.</translation>
-<translation id="1915828456209461693">Для Chrome доступно обновление. Оно будет установлено при перезапуске браузера.</translation>
 <translation id="1919130412786645364">Разрешить вход в Chrome</translation>
 <translation id="2063848847527508675">Перезагрузите Chrome OS, чтобы установить обновление.</translation>
 <translation id="2094919256425865063">Завершить работу Chrome?</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">Чтобы экспортировать пароли из Google Chrome, введите пароль своего аккаунта Windows.</translation>
 <translation id="2485422356828889247">Удалить</translation>
 <translation id="2534507159460261402">Google Pay (скопирована в Chrome)</translation>
-<translation id="2535429035253759792">Администратор просит перезапустить Chrome для установки обновления</translation>
 <translation id="2580411288591421699">Не удается установить версию Google Chrome, аналогичную уже выполняемой. Закройте Google Chrome и повторите попытку.</translation>
 <translation id="2586406160782125153">Данные о работе в браузере будут удалены с устройства. Чтобы восстановить данные позже, войдите в Chrome как <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Логотип Chrome</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">Последняя версия Google Chrome уже установлена</translation>
 <translation id="7890208801193284374">Если, кроме вас, компьютером пользуется кто-то ещё, например родные или друзья, они тоже смогут настроить Chrome на свой вкус.</translation>
 <translation id="7896673875602241923">Ранее вход в Chrome на этом компьютере выполнялся из аккаунта <ph name="ACCOUNT_EMAIL_LAST" />. Чтобы ваши данные хранились отдельно, создайте новый профиль Chrome.</translation>
-<translation id="7908168227788431038">Чтобы завершить обновление, перезапустите Google Chrome.</translation>
 <translation id="7962410387636238736">Google Chrome больше не будет обновляться на этом компьютере, так как поддержка Windows XP и Windows Vista прекращена.</translation>
 <translation id="8008534537613507642">Переустановить Chrome</translation>
 <translation id="8013993649590906847">Если у изображения нет понятного описания, Chrome попытается его найти. Для создания описаний изображения отправляются в Google.</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">Кроме того, расширение изменило стартовую страницу Chrome.</translation>
 <translation id="870251953148363156">Обновить &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome не удалось определить или задать браузер по умолчанию</translation>
-<translation id="8736674169840206667">Администратор требует перезапустить Chrome для установки обновления</translation>
 <translation id="8823341990149967727">Версия Chrome устарела</translation>
 <translation id="884296878221830158">Кроме того, расширение изменило стартовую страницу Chrome и страницу, отображаемую при нажатии кнопки "Главная страница".</translation>
 <translation id="8862326446509486874">У вас нет прав, необходимых для установки на системном уровне. Запустите программу установки еще раз в качестве администратора.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb
index 0398bfe7..4a44526 100644
--- a/chrome/app/resources/google_chrome_strings_sk.xtb
+++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -40,7 +40,6 @@
 <translation id="1874309113135274312">Google Chrome beta verzie (mDNS-In)</translation>
 <translation id="1877026089748256423">Prehliadač Chrome je zastaraný</translation>
 <translation id="1900795423379050516">Ak nie je určité nastavenie zobrazené na tejto stránke, skontrolujte <ph name="LINK_BEGIN" />nastavenia prehliadača Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">K dispozícii je aktualizácia pre Chrome, ktorá bude uplatnená po najbližšom opätovnom spustení.</translation>
 <translation id="1919130412786645364">Povoliť prihlásenie do Chromu</translation>
 <translation id="2063848847527508675">Ak chcete uplatniť aktualizáciu, musíte reštartovať systém Chrome OS.</translation>
 <translation id="2094919256425865063">Chcete Chrome napriek tomu ukončiť?</translation>
@@ -56,7 +55,6 @@
 <translation id="2467438592969358367">Google Chrome sa pokúša exportovať vaše heslá. Ak to chcete povoliť, zadajte heslo systému Windows.</translation>
 <translation id="2485422356828889247">Odinštalovať</translation>
 <translation id="2534507159460261402">Google Pay (skopírované do Chromu)</translation>
-<translation id="2535429035253759792">Správca vás žiada o reštartovanie Chromu na použitie aktualizácie</translation>
 <translation id="2580411288591421699">Nie je možné nainštalovať rovnakú verziu prehliadača Google Chrome, ako je aktuálne spustená verzia. Zavrite Google Chrome a skúste znova.</translation>
 <translation id="2586406160782125153">Táto akcia odstráni zo zariadenia údaje prehliadania. Ak budete chcieť svoje údaje neskôr opäť načítať, prihláste sa do Chromu ako používateľ <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Logo Chrome</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Google Chrome je aktuálny.</translation>
 <translation id="7890208801193284374">Ak počítač zdieľate s rodinou a priateľmi, môžu v prehliadači Chrome prehliadať oddelene a tiež si ho nastaviť podľa vlastných požiadaviek.</translation>
 <translation id="7896673875602241923">Do Chromu sa už na tomto počítači niekto prihlásil pomocou účtu <ph name="ACCOUNT_EMAIL_LAST" />. Ak chcete ponechať svoje informácie oddelené, vytvorte v Chrome nového používateľa.</translation>
-<translation id="7908168227788431038">Aktualizácia je takmer hotová! Dokončíte ju novým spustením Chromu.</translation>
 <translation id="7962410387636238736">Tento počítač už nebude dostávať aktualizácie prehliadača Google Chrome, pretože systémy Windows XP a Windows Vista už nie sú podporované</translation>
 <translation id="8008534537613507642">Preinštalovať prehliadač Chrome</translation>
 <translation id="8013993649590906847">Ak obrázok nemá užitočný popis, Chrome sa vám ho pokúsi poskytnúť. Obrázky sa odosielajú Googlu, aby bolo možné vytvoriť popisy.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">Tiež určuje, ktorá stránka sa zobrazí pri spustení prehliadača Chrome.</translation>
 <translation id="870251953148363156">Aktualizácia prehliadača &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome nedokáže určiť alebo nastaviť predvolený prehliadač</translation>
-<translation id="8736674169840206667">Správca požaduje, aby ste reštartovali Chrome na použitie aktualizácie</translation>
 <translation id="8823341990149967727">Prehliadač Chrome je zastaraný</translation>
 <translation id="884296878221830158">Tiež určuje, ktorá stránka sa zobrazí pri spustení prehliadača Chrome alebo po kliknutí na tlačidlo Domovská stránka.</translation>
 <translation id="8862326446509486874">Nemáte potrebné práva na inštaláciu na úrovni systému. Skúste inštalátor spustiť znova ako správca.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb
index b49fbd57..01854764 100644
--- a/chrome/app/resources/google_chrome_strings_sl.xtb
+++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome je zastarel</translation>
 <translation id="1900795423379050516">Če nastavitev ni prikazana na tej strani, preverite <ph name="LINK_BEGIN" />
       nastavitve brskalnika Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Na voljo je nova posodobitev za Chrome, ki bo nameščena, takoj ko ga znova zaženete.</translation>
 <translation id="1919130412786645364">Omogočanje prijave v Chrome</translation>
 <translation id="2063848847527508675">Če želite namestiti posodobitev, morate znova zagnati OS Chrome.</translation>
 <translation id="2094919256425865063">Želite vseeno zapreti Chrome?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Google Chrome želi izvoziti gesla. Če želite omogočiti to, vnesite geslo za Windows.</translation>
 <translation id="2485422356828889247">Odmeščanje</translation>
 <translation id="2534507159460261402">Google Pay (kopirano v Chrome)</translation>
-<translation id="2535429035253759792">Skrbnik prosi, da za uveljavitev te posodobitve znova zaženete Chrome</translation>
 <translation id="2580411288591421699">Ni mogoče namestiti različice Google Chroma, enake tisti, ki se trenutno izvaja. Zaprite Google Chrome in poskusite znova.</translation>
 <translation id="2586406160782125153">S tem bodo iz te naprave izbrisani podatki brskanja. Če želite pozneje prenesti podatke, se v Chrome prijavite kot <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chromov logotip</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome je posodobljen</translation>
 <translation id="7890208801193284374">Če računalnik souporabljate z drugimi, lahko prijatelji in sorodniki ločeno brskajo ter nastavijo Chrome tako, kot želijo.</translation>
 <translation id="7896673875602241923">Nekdo se je prijavil v Chrome v tem računalniku kot <ph name="ACCOUNT_EMAIL_LAST" />. Ustvarite nov uporabniški profil za Chrome, če želite, da bodo vaši podatki ločeni.</translation>
-<translation id="7908168227788431038">Samo še malo. Znova zaženite Google Chrome, da dokončate posodobitev.</translation>
 <translation id="7962410387636238736">Ta računalnik ne bo več prejemal posodobitev za Google Chrome, ker sistema Windows XP in Windows Vista nista več podprta.</translation>
 <translation id="8008534537613507642">Vnovična namestitev Chroma</translation>
 <translation id="8013993649590906847">Če slika nima koristnega opisa, ga bo Chrome poskušal zagotoviti. Opisi se ustvarijo tako, da se slike pošljejo Googlu.</translation>
@@ -241,7 +238,6 @@
 <translation id="8679801911857917785">Določa tudi, katera stran je prikazana, ko zaženete Chrome.</translation>
 <translation id="870251953148363156">Posodabljanje &amp;Google Chroma</translation>
 <translation id="873133009373065397">Google Chrome ne more določiti ali nastaviti privzetega brskalnika</translation>
-<translation id="8736674169840206667">Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chrome</translation>
 <translation id="8823341990149967727">Chrome je zastarel</translation>
 <translation id="884296878221830158">Določa tudi, katera stran je prikazana, ko zaženete Chrome ali kliknete gumb za domačo stran.</translation>
 <translation id="8862326446509486874">Nimate ustreznih pravic za namestitev na ravni sistema. Poskusite znova zagnati namestitveni program kot skrbnik.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index ddbcfc28..17f18dd 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Chrome је застарео</translation>
 <translation id="1900795423379050516">Ако се подешавање не приказује на овој страници, потражите га у <ph name="LINK_BEGIN" />
       подешавањима Chrome прегледача<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Ново ажурирање за Chrome је доступно и примениће се чим га поново покренете.</translation>
 <translation id="1919130412786645364">Дозволи пријављивање у Chrome</translation>
 <translation id="2063848847527508675">Треба да рестартујете Chrome OS да бисте применили ажурирање.</translation>
 <translation id="2094919256425865063">Желите ли ипак да затворите Chrome?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Google Chrome жели да извезе лозинке. Унесите лозинку за Windows да бисте то омогућили.</translation>
 <translation id="2485422356828889247">Деинсталирај</translation>
 <translation id="2534507159460261402">Google Pay (копирано у Chrome)</translation>
-<translation id="2535429035253759792">Администратор тражи да поново покренете Chrome да бисте применили ово ажурирање</translation>
 <translation id="2580411288591421699">Није могуће инсталирати верзију Google Chrome прегледача која је иста као тренутно покренута верзија. Затворите Google Chrome и покушајте поново.</translation>
 <translation id="2586406160782125153">Овим ћете избрисати податке прегледања са уређаја. Да бисте касније вратили податке, пријавите се у Chrome као <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Chrome логотип</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome је актуелан</translation>
 <translation id="7890208801193284374">Ако делите рачунар, пријатељи и породица могу засебно да прегледају и да подесе Chrome баш онако како желе.</translation>
 <translation id="7896673875602241923">Неко се претходно пријавио на Chrome на овом рачунару као <ph name="ACCOUNT_EMAIL_LAST" />. Направите новог корисника Chrome-а да би информације биле раздвојене.</translation>
-<translation id="7908168227788431038">Ажурирање је скоро готово! Поново покрените Google Chrome да бисте довршили ажурирање.</translation>
 <translation id="7962410387636238736">Овај рачунар више неће добијати ажурирања за Google Chrome јер Windows XP и Windows Vista више нису подржани</translation>
 <translation id="8008534537613507642">Поново инсталирај Chrome</translation>
 <translation id="8013993649590906847">Ако слика нема користан опис, Chrome ће пробати да вам га пружи. Слике се шаљу Google-у ради прављења описа.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">Контролише и страницу која се приказује када покренете Chrome.</translation>
 <translation id="870251953148363156">Ажурирај &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome не може да одреди ни да подеси подразумевани прегледач</translation>
-<translation id="8736674169840206667">Администратор захтева да поново покренете Chrome да бисте применили ажурирање</translation>
 <translation id="8823341990149967727">Chrome је застарео</translation>
 <translation id="884296878221830158">Контролише и страницу која се приказује када покренете Chrome или кликнете на дугме Почетна.</translation>
 <translation id="8862326446509486874">Немате одговарајућа права за инсталацију на нивоу система. Пробајте поново да покренете програм за инсталацију, овога пута као администратор.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index 2f106a4..e4a3dd1 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -43,7 +43,6 @@
 <translation id="1877026089748256423">Den här versionen av Chrome är inaktuell</translation>
 <translation id="1900795423379050516">Om en inställning saknas på den här sidan tittar du i <ph name="LINK_BEGIN" />
       inställningarna för webbläsaren Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Det finns en ny Chrome-uppdatering som tillämpas så snart du startar om.</translation>
 <translation id="1919130412786645364">Tillåt inloggning i Chrome</translation>
 <translation id="2063848847527508675">Chrome OS måste startas om för att uppdateringen ska börja gälla.</translation>
 <translation id="2094919256425865063">Vill du avsluta Chrome ändå?</translation>
@@ -59,7 +58,6 @@
 <translation id="2467438592969358367">Lösenorden exporteras från Google Chrome. Skriv ditt Windows-lösenord om du tillåter detta.</translation>
 <translation id="2485422356828889247">Avinstallera</translation>
 <translation id="2534507159460261402">Google Pay (har kopierats till Chrome)</translation>
-<translation id="2535429035253759792">Administratören meddelar att du bör starta om Chrome så att uppdateringen tillämpas</translation>
 <translation id="2580411288591421699">Det går inte att installera samma version av Google Chrome som redan körs. Stäng Google Chrome och försök igen.</translation>
 <translation id="2586406160782125153">Webbinformationen raderas från enheten. Logga in i Chrome som <ph name="USER_EMAIL" /> om du vill kunna återställa datan senare.</translation>
 <translation id="2588322182880276190">Logotypen för Chrome</translation>
@@ -217,7 +215,6 @@
 <translation id="7855730255114109580">Google Chrome behöver inte uppdateras</translation>
 <translation id="7890208801193284374">Om du delar en dator med vänner och familj kan de konfigurera Chrome precis som de vill och surfa separat.</translation>
 <translation id="7896673875602241923">Någon har tidigare loggat in i Chrome som <ph name="ACCOUNT_EMAIL_LAST" /> på den här datorn. Skapa en ny Chrome-användare så att dina uppgifter hålls separat.</translation>
-<translation id="7908168227788431038">Nästan klart! Slutför uppdateringen genom att starta om Google Chrome.</translation>
 <translation id="7962410387636238736">Den här datorn får inte längre uppdateringar för Google Chrome eftersom Windows XP och Windows Vista inte längre stöds.</translation>
 <translation id="8008534537613507642">Installera om Chrome</translation>
 <translation id="8013993649590906847">Om en bild inte har någon användbar beskrivning görs ett försök att beskriva den åt dig i Chrome. Bilderna skickas till Google så att beskrivningen kan genereras.</translation>
@@ -240,7 +237,6 @@
 <translation id="8679801911857917785">Det styr också vilken sida som visas när du startar Chrome.</translation>
 <translation id="870251953148363156">Uppdatera &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome kan inte fastställa eller ange standardwebbläsaren</translation>
-<translation id="8736674169840206667">Administratören meddelar att du måste starta om Chrome så att en uppdatering tillämpas</translation>
 <translation id="8823341990149967727">Den här versionen av Chrome är inaktuell</translation>
 <translation id="884296878221830158">Det styr också vilken sida som visas när du startar Chrome eller klickar på hemknappen.</translation>
 <translation id="8862326446509486874">Du har inte behörighet att göra en installation på systemnivå. Försök köra installationsprogrammet igen som administratör.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index 170a8d9..2abb25cd 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -42,7 +42,6 @@
 <translation id="1874309113135274312">Google Chrome Beta (mDNS-In)</translation>
 <translation id="1877026089748256423">Toleo hili la Chrome limepitwa na wakati</translation>
 <translation id="1900795423379050516">Ikiwa mipangilio haionekani kwenye ukurasa huu, angalia katika <ph name="LINK_BEGIN" />mipangilio ya kivinjari chako kwenye Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Sasisho jipya la Chrome linapatikana na litaanza kutumika pindi utakapofungua tena.</translation>
 <translation id="1919130412786645364">Ruhusu kuingia katika akaunti ya Chrome</translation>
 <translation id="2063848847527508675">Mfumo wa Uendeshaji wa Chrome unahitaji kuzimwa na kuwashwa upya ili utumie sasisho.</translation>
 <translation id="2094919256425865063">Ungependa kufunga Chrome?</translation>
@@ -58,7 +57,6 @@
 <translation id="2467438592969358367">Google Chrome ingependa kuhamisha manenosiri yako. Andika nenosiri lako la Windows ili uruhusu shughuli hii.</translation>
 <translation id="2485422356828889247">Ondoa</translation>
 <translation id="2534507159460261402">Google Pay (imenakiliwa kwenye Chrome)</translation>
-<translation id="2535429035253759792">Msimamizi wako anakushauri uwashe Chrome upya ili utumie sasisho hili</translation>
 <translation id="2580411288591421699">Huwezi kusakinisha toleo la Google Chrome ambalo tayari linatumika. Tafadhali funga Google Chrome na ujaribu tena.</translation>
 <translation id="2586406160782125153">Hatua hii itafuta data yako ya kuvinjari kwenye kifaa hiki. Ili urejeshe data yako baadaye, ingia katika Chrome ukitumia <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Nembo ya Chrome</translation>
@@ -216,7 +214,6 @@
 <translation id="7855730255114109580">Google Chrome imesasishwa</translation>
 <translation id="7890208801193284374">Kama unatumia kompyuta pamoja na wengine, marafiki na familia wanaweza kuvinjari tofauti na kusanidi Chrome jinsi wapendavyo.</translation>
 <translation id="7896673875602241923">Kuna mtu aliingia katika Chrome kwenye kompyuta hii akitumia <ph name="ACCOUNT_EMAIL_LAST" />. Tafadhali ongeza wasifu mwingine wa Chrome ili utenganishe maelezo yako.</translation>
-<translation id="7908168227788431038">Inakaribia kusasishwa! Anzisha Google Chrome upya ili imalize kusasisha.</translation>
 <translation id="7962410387636238736">Kompyuta hii haitapokea tena masasisho ya Google Chrome kwa sababu Windows XP na Windows Vista hazitumiki tena</translation>
 <translation id="8008534537613507642">Sakinisha Chrome Upya</translation>
 <translation id="8013993649590906847">Ikiwa picha haina ufafanuzi muhimu, Chrome itajaribu kukuwekea. Ili kuweka ufafanuzi, tutatuma picha kwa Google.</translation>
@@ -239,7 +236,6 @@
 <translation id="8679801911857917785">Pia inadhibiti ukurasa unaoonyeshwa unapoanzisha Chrome.</translation>
 <translation id="870251953148363156">Sasisha &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome haijafaulu kubainisha wala kuweka kivinjari chaguomsingi</translation>
-<translation id="8736674169840206667">Msimamizi wako anakushauri uwashe Chrome upya ili utumie sasisho</translation>
 <translation id="8823341990149967727">Toleo hili la Chrome Limepitwa na Wakati</translation>
 <translation id="884296878221830158">Pia inadhibiti ukurasa unaoonyeshwa unapoanzisha Chrome au unapobofya kitufe cha Mwanzo.</translation>
 <translation id="8862326446509486874">Huna haki zifaazo ili kufanya usakinishaji wa kiwango cha mfumo. Jaribu kutumia kisakinishi kama msimamiaji kompyuta.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index 8481fc1..79f6c96 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome காலாவதியானது</translation>
 <translation id="1900795423379050516">இந்தப் பக்கத்தில் ஏதேனும் ஓர் அமைப்பு காட்டப்படவில்லை எனில் அதை <ph name="LINK_BEGIN" />
       Chrome உலாவி அமைப்புகளில்<ph name="LINK_END" /> பார்க்கவும்</translation>
-<translation id="1915828456209461693">Chromeமின் புதிய புதுப்பிப்பு உள்ளது, மீண்டும் தொடங்கும்போது அது பயன்படுத்தப்படும்.</translation>
 <translation id="1919130412786645364">Chrome உள்நுழைவை அனுமதித்தல்</translation>
 <translation id="2063848847527508675">புதுப்பிப்பைப் பயன்படுத்த, Chrome OSஐ மீண்டும் தொடங்க வேண்டும்.</translation>
 <translation id="2094919256425865063">Chrome இலிருந்து வெளியேறவா?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome உங்கள் கடவுச்சொற்களை ஏற்ற விரும்புகிறது. இதை அனுமதிக்க, உங்கள் Windows கடவுச்சொல்லை உள்ளிடவும்.</translation>
 <translation id="2485422356828889247">நிறுவல் நீக்கு</translation>
 <translation id="2534507159460261402">Google Pay (Chromeக்கு நகலெடுக்கப்பட்டது)</translation>
-<translation id="2535429035253759792">இந்தப் புதுப்பிப்பைப் பயன்படுத்த, Chromeஐ மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி பரிந்துரைக்கிறார்</translation>
 <translation id="2580411288591421699">நடப்பில் இயங்கிக்கொண்டிருக்கும் அதே Google Chrome பதிப்பை நிறுவ முடியாது. Google Chromeமை மூடிவிட்டு மீண்டும் முயற்சி செய்க.</translation>
 <translation id="2586406160782125153">வெளியேறினால், இந்தச் சாதனத்திலிருந்து நீங்கள் உலாவிய தரவு நீக்கப்படும். பின்னர் தரவை மீட்டமைக்க, Chromeல் <ph name="USER_EMAIL" /> எனும் முகவரியின் மூலம் உள்நுழையவும்.</translation>
 <translation id="2588322182880276190">Chrome லோகோ</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome புதுப்பித்த நிலையில் உள்ளது</translation>
 <translation id="7890208801193284374">நீங்கள் கம்ப்யூட்டரைப் பகிர்ந்தால், நண்பர்களும் குடும்பத்தினரும் தனிப்பட்ட முறையில் உலாவலாம், மேலும் Chromeமை அவர்கள் விருப்பத்திற்கு ஏற்ப அமைத்துக்கொள்ளலாம்.</translation>
 <translation id="7896673875602241923">இதற்கு முன்னர் ஒருவர் இந்தக் கம்ப்யூட்டரில் Chromeமில் <ph name="ACCOUNT_EMAIL_LAST" /> எனும் முகவரியைப் பயன்படுத்தி உள்நுழைந்திருந்தார். உங்கள் தகவலைத் தனிப்பட்டதாக வைத்திருக்க, புதிய Chrome பயனரை உருவாக்கவும்.</translation>
-<translation id="7908168227788431038">கிட்டத்தட்ட புதுப்பிக்கப்பட்டது! புதுப்பிப்பதை முடிக்க, Google Chromeஐ மீண்டும் தொடங்கவும்.</translation>
 <translation id="7962410387636238736">Windows XP மற்றும் Windows Vista ஆகியவை இனி ஆதரிக்கப்படாது என்பதால் இந்தக் கம்ப்யூட்டர் இனி Google Chrome புதுப்பிப்புகளைப் பெறாது</translation>
 <translation id="8008534537613507642">Chrome ஐ மீண்டும்நிறுவு</translation>
 <translation id="8013993649590906847">ஒரு படத்திற்குப் பயனுள்ள விளக்கம் இல்லாதபட்சத்தில் Chrome உங்களுக்காக அதை வழங்க முயலும். விளக்கங்களை உருவாக்குவதற்காக படங்கள் Googleளுக்கு அனுப்பப்படும்.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Chrome ஐத் தொடங்கும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
 <translation id="870251953148363156">&amp;Google Chrome ஐப் புதுப்பி</translation>
 <translation id="873133009373065397">இயல்புநிலை உலாவியைக் கண்டறியவோ அமைக்கவோ Google Chrome ஆல் முடியவில்லை</translation>
-<translation id="8736674169840206667">புதுப்பிப்பைப் பயன்படுத்த, Chromeஐ மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி சொல்கிறார்</translation>
 <translation id="8823341990149967727">Chrome காலாவதியானது</translation>
 <translation id="884296878221830158">Chromeமைத் தொடங்கும்போது அல்லது முகப்புப் பொத்தானைக் கிளிக் செய்யும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
 <translation id="8862326446509486874">கம்ப்யூட்டர்-சார்ந்த நிறுவலுக்கான முறையான உரிமைகள் உங்களிடம் இல்லை. அதனால் நிர்வாகியாக மீண்டும் நிறுவலை இயக்க முயற்சி செய்க.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index 61953ee..c53f179 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome కాలం చెల్లినది</translation>
 <translation id="1900795423379050516">ఏదైనా సెట్టింగ్ ఈ పేజీలో కనపడకపోతే, మీ <ph name="LINK_BEGIN" />
       Chrome బ్రౌజర్ సెట్టింగ్‌లు<ph name="LINK_END" />లో చూడండి</translation>
-<translation id="1915828456209461693">Chrome కోసం కొత్త అప్‌డేట్ అందుబాటులో ఉంది మరియు మీరు పునఃప్రారంభించిన వెంటనే వర్తించబడుతుంది.</translation>
 <translation id="1919130412786645364">Chrome సైన్-ఇన్‌ని అనుమతించండి</translation>
 <translation id="2063848847527508675">అప్‌డేట్‌ను వర్తింపజేయడానికి Chrome OSను పునఃప్రారంభించాలి.</translation>
 <translation id="2094919256425865063">ఏదేమైనా Chromeని మూసివేయాలా?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome మీ పాస్‌వర్డ్‌లను ఎగుమతి చేయాలనుకుంటోంది. దీనిని అనుమతించడం కోసం మీ Windows పాస్‌వర్డ్‌ని టైప్ చేయండి.</translation>
 <translation id="2485422356828889247">అన్ఇన్‌స్టాల్ చేయి</translation>
 <translation id="2534507159460261402">Google Pay (Chromeకి కాపీ చేయబడింది)</translation>
-<translation id="2535429035253759792">ఈ అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromeను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు</translation>
 <translation id="2580411288591421699">ప్రస్తుతం అమలవుతున్న Google Chrome వెర్షన్‌నే ఇన్‌స్టాల్ చేయడం సాధ్యపడదు. దయచేసి Google Chromeను మూసివేసి, మళ్ళీ ప్రయత్నించండి.</translation>
 <translation id="2586406160782125153">ఇది ఈ పరికరం నుండి మీ బ్రౌజింగ్ డేటాను తొలగిస్తుంది. మీ డేటాను తర్వాత తిరిగి పొందడానికి, Chromeకు <ph name="USER_EMAIL" /> లాగా సైన్ ఇన్ చేయండి.</translation>
 <translation id="2588322182880276190">Chrome లోగో</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome తాజాగా ఉంది</translation>
 <translation id="7890208801193284374">మీరు కంప్యూటర్‌ను షేర్‌ చేస్తే, స్నేహితులు, కుటుంబ సభ్యులు విడివిడిగా బ్రౌజ్ చేయవచ్చు. Chromeను వారికి నచ్చిన రీతిలో సెటప్ చేసుకోవచ్చు.</translation>
 <translation id="7896673875602241923">మునుపు ఒకరు ఈ కంప్యూటర్‌లో Chromeకు <ph name="ACCOUNT_EMAIL_LAST" /> లాగా సైన్ ఇన్ చేశారు. దయచేసి మీ సమాచారాన్ని విడిగా ఉంచడానికి కొత్త Chrome వినియోగదారును సృష్టించండి.</translation>
-<translation id="7908168227788431038">దాదాపుగా నవీకృతంగా ఉంది! నవీకరణను పూర్తి చేయడానికి Google Chromeని పునఃప్రారంభించండి.</translation>
 <translation id="7962410387636238736">Windows XP మరియు Windows Vistaలకు ఇప్పుడు మద్దతు లేనందున ఈ కంప్యూటర్ ఇకపై Google Chrome అప్‌డేట్‌లను స్వీకరించదు</translation>
 <translation id="8008534537613507642">Chromeను మళ్లీ ఇన్‌స్టాల్ చేయి</translation>
 <translation id="8013993649590906847">చిత్రంలో ఉపయోగకరమైన వివరణ లేకుంటే, మీ కోసం ఒక వివరణను అందించడానికి Chrome ప్రయత్నిస్తుంది. వివరణలను సృష్టించడానికి, చిత్రాలు Googleకు పంపబడతాయి.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">ఇది మీరు Chromeని ప్రారంభించేటప్పుడు చూపబడే పేజీని కూడా నియంత్రిస్తుంది.</translation>
 <translation id="870251953148363156">&amp;Google Chromeను అప్‌డేట్ చేయి</translation>
 <translation id="873133009373065397">Google Chrome డిఫాల్ట్ బ్రౌజర్‌ను నిశ్చయించలేదు లేదా సెట్ చేయలేదు</translation>
-<translation id="8736674169840206667">అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromeను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు</translation>
 <translation id="8823341990149967727">Chrome కాలం చెల్లినది</translation>
 <translation id="884296878221830158">ఇది మీరు Chromeను ప్రారంభించేటప్పుడు లేదా హోమ్ బటన్‌ను క్లిక్ చేసేటప్పుడు చూపబడే పేజీని కూడా నియంత్రిస్తుంది.</translation>
 <translation id="8862326446509486874">సిస్టమ్-స్థాయిలో ఇన్‌స్టాల్‌ చేయ‌డానికి మీకు సరైన హక్కులు లేవు. నిర్వాహకుడి లాగా ఇన్‌స్టాలర్‌ను మ‌ళ్లీ రన్ చేయ‌డానికి ప్రయత్నించండి.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index a10c50b6..fdd2a9f0 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -38,7 +38,6 @@
 <translation id="1874309113135274312">Google Chrome เบต้า (mDNS-In)</translation>
 <translation id="1877026089748256423">Chrome ล้าสมัย</translation>
 <translation id="1900795423379050516">หากการตั้งค่าไม่แสดงในหน้านี้ โปรดดูที่<ph name="LINK_BEGIN" />การตั้งค่าเบราว์เซอร์ Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">อัปเดตใหม่ของ Chrome พร้อมให้ใช้งานแล้วและระบบจะใช้อัปเดตดังกล่าวเมื่อคุณเปิด Chrome ขึ้นมาใหม่</translation>
 <translation id="1919130412786645364">อนุญาตให้ลงชื่อเข้าใช้ Chrome</translation>
 <translation id="2063848847527508675">ต้องรีสตาร์ท Chrome OS เพื่อใช้การอัปเดต</translation>
 <translation id="2094919256425865063">ปิด Chrome ใช่ไหม</translation>
@@ -54,7 +53,6 @@
 <translation id="2467438592969358367">Google Chrome ต้องการส่งออกรหัสผ่านของคุณ พิมพ์รหัสผ่าน Windows เพื่ออนุญาตให้ดำเนินการ</translation>
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
 <translation id="2534507159460261402">Google Pay (คัดลอกไปยัง Chrome)</translation>
-<translation id="2535429035253759792">ผู้ดูแลระบบขอให้คุณเปิด Chrome ขึ้นมาใหม่เพื่อใช้การอัปเดตนี้</translation>
 <translation id="2580411288591421699">ไม่สามารถติดตั้ง Google Chrome รุ่นเดียวกับที่กำลังเรียกใช้อยู่ได้ โปรดปิด Google Chrome แล้วลองใหม่อีกครั้ง</translation>
 <translation id="2586406160782125153">การดำเนินการนี้จะลบข้อมูลการท่องเว็บออกจากอุปกรณ์นี้ หากต้องการดึงข้อมูลภายหลัง ให้ลงชื่อเข้าใช้ Chrome ด้วย <ph name="USER_EMAIL" /></translation>
 <translation id="2588322182880276190">โลโก้ Chrome</translation>
@@ -207,7 +205,6 @@
 <translation id="7855730255114109580">Google Chrome อัปเดตแล้ว</translation>
 <translation id="7890208801193284374">ถ้าคุณให้ผู้อื่นใช้คอมพิวเตอร์ร่วมด้วย เพื่อนๆ และครอบครัวของคุณสามารถท่องเว็บแยกกันได้และตั้งค่า Chrome ได้ตามที่พวกเขาต้องการ</translation>
 <translation id="7896673875602241923">ก่อนหน้านี้มีผู้ลงชื่อเข้าใช้ Chrome ในคอมพิวเตอร์นี้ด้วยชื่อ <ph name="ACCOUNT_EMAIL_LAST" /> โปรดสร้างผู้ใช้ Chrome ใหม่เพื่อเก็บข้อมูลแยก</translation>
-<translation id="7908168227788431038">การอัปเดตใกล้จะเสร็จเรียบร้อยแล้ว เปิด Google Chrome อีกครั้งเพื่อให้การอัปเดตเสร็จสิ้น</translation>
 <translation id="7962410387636238736">คอมพิวเตอร์เครื่องนี้จะไม่ได้รับการอัปเดต Google Chrome อีกต่อไปเพราะระบบไม่รองรับ Windows XP และ Windows Vista แล้ว</translation>
 <translation id="8008534537613507642">ติดตั้ง Chrome ใหม่</translation>
 <translation id="8013993649590906847">หากรูปภาพไม่มีคำอธิบายที่เป็นประโยชน์ Chrome จะพยายามใส่คำอธิบายให้คุณ รูปภาพจะส่งมายัง Google เพื่อสร้างคำอธิบาย</translation>
@@ -230,7 +227,6 @@
 <translation id="8679801911857917785">อีกทั้งยังควบคุมหน้าที่จะแสดงเมื่อคุณเปิด Chrome ด้วย</translation>
 <translation id="870251953148363156">อัปเดต &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome ไม่สามารถกำหนดหรือตั้งค่าเบราว์เซอร์เริ่มต้น</translation>
-<translation id="8736674169840206667">ผู้ดูแลระบบต้องการให้คุณเปิด Chrome ขึ้นมาใหม่เพื่อใช้การอัปเดต</translation>
 <translation id="8823341990149967727">Chrome ล้าสมัย</translation>
 <translation id="884296878221830158">อีกทั้งยังควบคุมหน้าที่จะแสดงเมื่อคุณเปิด Chrome หรือคลิกปุ่ม "หน้าแรก"</translation>
 <translation id="8862326446509486874">คุณไม่มีสิทธิ์ในการติดตั้งระดับระบบ ทดลองใช้งานโปรแกรมติดตั้งอีกครั้งโดยกำหนดให้เป็นผู้ดูแลระบบ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 9102399..951760e5 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome sürümü eski</translation>
 <translation id="1900795423379050516">Bir ayar bu sayfada görünmüyorsa <ph name="LINK_BEGIN" />
       Chrome tarayıcı ayarlarınıza<ph name="LINK_END" /> bakın</translation>
-<translation id="1915828456209461693">Chrome için yeni bir güncelleme var. Yeniden başlattığınızda güncelleme hemen uygulanacaktır.</translation>
 <translation id="1919130412786645364">Chrome'da oturum açmaya izin verin</translation>
 <translation id="2063848847527508675">Güncellemenin uygulanması için Chrome OS yeniden başlatılmalıdır.</translation>
 <translation id="2094919256425865063">Yine de Chrome'dan çıkılsın mı?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome şifrelerinizi dışa aktarmak istiyor. Buna izin vermek için Windows şifrenizi yazın.</translation>
 <translation id="2485422356828889247">Yüklemeyi Kaldır</translation>
 <translation id="2534507159460261402">Google Pay (Chrome'a kopyalandı)</translation>
-<translation id="2535429035253759792">Yöneticiniz bu güncellemeyi uygulamak için Chrome'u yeniden başlatmanızı istiyor</translation>
 <translation id="2580411288591421699">Şu anda çalışmakta olan Google Chrome ile aynı sürüm yüklenemez. Lütfen Google Chrome'u kapatın ve tekrar deneyin.</translation>
 <translation id="2586406160782125153">Bu işlem, tarama verilerinizi bu cihazdan silecektir. Verilerinizi daha sonra geri almak için Chrome'da <ph name="USER_EMAIL" /> hesabıyla oturum açın.</translation>
 <translation id="2588322182880276190">Chrome logosu</translation>
@@ -211,7 +209,6 @@
 <translation id="7855730255114109580">Google Chrome güncel durumda</translation>
 <translation id="7890208801193284374">Bir bilgisayarı paylaşıyorsanız arkadaşlarınız ve aileniz web'e ayrı olarak göz atabilir ve Chrome'u tam olarak istedikleri şekilde ayarlayabilirler.</translation>
 <translation id="7896673875602241923">Birisi daha önce bu bilgisayarda <ph name="ACCOUNT_EMAIL_LAST" /> olarak Chrome oturumu açmış. Bilgilerinizi ayrı tutmak için yeni bir Chrome kullanıcısı oluşturun.</translation>
-<translation id="7908168227788431038">Az kaldı! Güncellemeyi tamamlamak için Google Chrome'u yeniden başlatın.</translation>
 <translation id="7962410387636238736">Windows XP ve Windows Vista artık desteklenmediğinden, bu bilgisayar bundan böyle Google Chrome güncellemelerini almayacaktır</translation>
 <translation id="8008534537613507642">Chrome'u yeniden yükle</translation>
 <translation id="8013993649590906847">Bir resmin işe yarar bir açıklaması yoksa, Chrome sizin için bir açıklama sağlamaya çalışır. Açıklama oluşturmak için resimler Google'a gönderilir.</translation>
@@ -234,7 +231,6 @@
 <translation id="8679801911857917785">Ayrıca Chrome'u başlattığınızda gösterilecek sayfayı da denetler.</translation>
 <translation id="870251953148363156">&amp;Google Chrome'u güncelle</translation>
 <translation id="873133009373065397">Google Chrome, varsayılan tarayıcıyı tespit edemiyor veya ayarlayamıyor</translation>
-<translation id="8736674169840206667">Yöneticiniz bir güncellemeyi uygulamak için Chrome'u yeniden başlatmanızı gerektiriyor</translation>
 <translation id="8823341990149967727">Chrome Sürümü Eski</translation>
 <translation id="884296878221830158">Ayrıca Chrome'u başlattığınızda veya Ana Sayfa düğmesini tıkladığınızda gösterilecek sayfayı da denetler.</translation>
 <translation id="8862326446509486874">Sistem düzeyinde yükleme için gerekli haklara sahip değilsiniz. Yükleyiciyi Yönetici olarak tekrar çalıştırmayı deneyin.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index d4b1fee..60789ec 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Версія Chrome застаріла</translation>
 <translation id="1900795423379050516">Якщо налаштування не з'явиться на цій сторінці, пошукайте його в <ph name="LINK_BEGIN" />
       налаштуваннях веб-переглядача Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Доступне оновлення Chrome, його буде застосовано відразу після перезапуску.</translation>
 <translation id="1919130412786645364">Дозволити вхід у Chrome</translation>
 <translation id="2063848847527508675">Щоб застосувати це оновлення, потрібно перезапустити ОС Chrome.</translation>
 <translation id="2094919256425865063">Усе одно вийти з Chrome?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome хоче експортувати ваші паролі. Щоб дозволити, введіть свій пароль Windows.</translation>
 <translation id="2485422356828889247">Видалити</translation>
 <translation id="2534507159460261402">Google Pay (скопійовано в Chrome)</translation>
-<translation id="2535429035253759792">Адміністратор просить перезапустити Chrome, щоб застосувати це оновлення</translation>
 <translation id="2580411288591421699">Поки Google Chrome працює, неможливо встановити версію, аналогічну поточній. Закрийте Google Chrome і повторіть спробу.</translation>
 <translation id="2586406160782125153">Дані веб-перегляду буде видалено з цього пристрою. Щоб відновити дані пізніше, увійдіть в обліковий запис Chrome як <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Логотип Chrome</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">У вас остання версія Google Chrome</translation>
 <translation id="7890208801193284374">Якщо вашим комп’ютером користуєтесь не лише ви, а й ваші друзі чи сім’я, вони можуть налаштувати Chrome на свій смак.</translation>
 <translation id="7896673875602241923">Хтось раніше входив у Chrome на цьому комп’ютері як <ph name="ACCOUNT_EMAIL_LAST" />. Створіть нового користувача Chrome, щоб зберігати свою інформацію окремо.</translation>
-<translation id="7908168227788431038">Майже оновлено. Перезапустіть Google Chrome, щоб завершити оновлення.</translation>
 <translation id="7962410387636238736">На цей комп’ютер не надходитимуть оновлення Google Chrome, оскільки Windows XP та Windows Vista більше не підтримуються</translation>
 <translation id="8008534537613507642">Перевстановити Chrome</translation>
 <translation id="8013993649590906847">Якщо зображення не має корисного опису, Chrome спробує додати його. Для цього зображення надсилаються в Google.</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">Розширення також змінило сторінку, яка відкривається під час запуску Chrome.</translation>
 <translation id="870251953148363156">Оновити &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome не може визначити чи встановити веб-переглядач за умовчанням</translation>
-<translation id="8736674169840206667">Адміністратор вимагає перезапустити Chrome, щоб застосувати оновлення</translation>
 <translation id="8823341990149967727">Версія Chrome застаріла</translation>
 <translation id="884296878221830158">Розширення також змінило сторінку, яка відкривається під час запуску Chrome або натискання кнопки "Домашня сторінка".</translation>
 <translation id="8862326446509486874">У вас немає відповідних прав для встановлення на рівні системи. Спробуйте запустити програму встановлення, увійшовши з правами адміністратора.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 040f96f6..71b43ad 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -41,7 +41,6 @@
 <translation id="1877026089748256423">Chrome đã lỗi thời</translation>
 <translation id="1900795423379050516">Nếu một tùy chọn cài đặt không hiển thị trên trang này, hãy tìm trong phần <ph name="LINK_BEGIN" />
       cài đặt trên trình duyệt Chrome<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">Đã có bản cập nhật Chrome mới và bản cập nhật này sẽ áp dụng ngay khi bạn chạy lại.</translation>
 <translation id="1919130412786645364">Cho phép đăng nhập vào Chrome</translation>
 <translation id="2063848847527508675">Chrome OS cần được khởi động lại để áp dụng bản cập nhật.</translation>
 <translation id="2094919256425865063">Bạn vẫn muốn thoát khỏi Chrome?</translation>
@@ -57,7 +56,6 @@
 <translation id="2467438592969358367">Google Chrome muốn xuất các mật khẩu của bạn. Hãy nhập mật khẩu Windows để cho phép thực hiện việc này.</translation>
 <translation id="2485422356828889247">Gỡ cài đặt</translation>
 <translation id="2534507159460261402">Google Pay (đã sao chép vào Chrome)</translation>
-<translation id="2535429035253759792">Quản trị viên của bạn yêu cầu bạn chạy lại Chrome để áp dụng bản cập nhật này</translation>
 <translation id="2580411288591421699">Không thể cài đặt phiên bản Google Chrome giống với phiên bản hiện đang chạy. Vui lòng đóng Google Chrome và thử lại.</translation>
 <translation id="2586406160782125153">Thao tác này sẽ xóa dữ liệu duyệt web của bạn khỏi thiết bị này. Để truy xuất dữ liệu của bạn sau, hãy đăng nhập vào Chrome dưới dạng <ph name="USER_EMAIL" />.</translation>
 <translation id="2588322182880276190">Biểu trưng Chrome</translation>
@@ -213,7 +211,6 @@
 <translation id="7855730255114109580">Google Chrome đã được cập nhật</translation>
 <translation id="7890208801193284374">Nếu bạn chia sẻ máy tính, bạn bè và gia đình có thể duyệt web một cách riêng biệt và thiết lập Chrome theo ý của họ.</translation>
 <translation id="7896673875602241923">Ai đó trước đây đã đăng nhập vào Chrome trên máy tính này bằng <ph name="ACCOUNT_EMAIL_LAST" />. Vui lòng tạo người dùng Chrome mới để giữ riêng biệt thông tin của bạn.</translation>
-<translation id="7908168227788431038">Gần được cập nhật! Hãy khởi chạy lại Google Chrome để hoàn tất cập nhật.</translation>
 <translation id="7962410387636238736">Máy tính này sẽ không còn nhận được bản cập nhật Google Chrome do Windows XP và Windows Vista không còn được hỗ trợ</translation>
 <translation id="8008534537613507642">Cài đặt lại Chrome</translation>
 <translation id="8013993649590906847">Chrome sẽ cố gắng mô tả cho bạn những hình ảnh không có nội dung mô tả hữu ích. Để tạo nội dung mô tả, các hình ảnh sẽ được gửi đến Google.</translation>
@@ -236,7 +233,6 @@
 <translation id="8679801911857917785">Tiện ích này cũng điều khiển trang nào được hiển thị khi bạn khởi động Chrome.</translation>
 <translation id="870251953148363156">Cập nhật &amp;Google Chrome</translation>
 <translation id="873133009373065397">Google Chrome không thể xác định hoặc đặt trình duyệt mặc định</translation>
-<translation id="8736674169840206667">Quản trị viên của bạn yêu cầu bạn chạy lại Chrome để áp dụng bản cập nhật</translation>
 <translation id="8823341990149967727">Chrome đã lỗi thời</translation>
 <translation id="884296878221830158">Tiện ích này cũng điều khiển trang nào được hiển thị khi bạn khởi động Chrome hoặc nhấp vào nút Trang chủ.</translation>
 <translation id="8862326446509486874">Bạn không có quyền thích hợp để cài đặt cấp hệ thống. Thử chạy lại trình cài đặt với vai trò Quản trị viên.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index 1226a78..ddad9c8 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome版本太旧</translation>
 <translation id="1900795423379050516">如果此页面中未显示某项设置,请在 <ph name="LINK_BEGIN" />
       Chrome 浏览器设置<ph name="LINK_END" />中查找</translation>
-<translation id="1915828456209461693">Chrome 有一项新的可用更新;一旦您重新启动,系统即会应用这项更新。</translation>
 <translation id="1919130412786645364">允许登录 Chrome</translation>
 <translation id="2063848847527508675">需要重新启动 Chrome 操作系统以应用更新。</translation>
 <translation id="2094919256425865063">仍要退出 Chrome?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome 想导出您的密码。请输入您的 Windows 密码以允许此操作。</translation>
 <translation id="2485422356828889247">卸载</translation>
 <translation id="2534507159460261402">Google Pay(已复制到 Chrome)</translation>
-<translation id="2535429035253759792">您的管理员要求您重新启动 Chrome 以应用此项更新</translation>
 <translation id="2580411288591421699">无法安装与当前运行版本相同的 Google Chrome 浏览器。请关闭 Google Chrome 浏览器,然后重试。</translation>
 <translation id="2586406160782125153">这会从这台设备上删除您的浏览数据。如果日后想要检索您的数据,届时请以 <ph name="USER_EMAIL" /> 的身份登录 Chrome。</translation>
 <translation id="2588322182880276190">Chrome 徽标</translation>
@@ -209,7 +207,6 @@
 <translation id="7855730255114109580">Google Chrome 已是最新版本</translation>
 <translation id="7890208801193284374">如果您与亲朋好友共用计算机,他们将能够使用单独的帐号进行浏览,并可随心所欲地设置Chrome。</translation>
 <translation id="7896673875602241923">之前已有人在此计算机上以 <ph name="ACCOUNT_EMAIL_LAST" /> 的身份登录了 Chrome。请新建一个 Chrome 用户来单独保存您的信息。</translation>
-<translation id="7908168227788431038">即将更新到最新版本!重新启动 Google Chrome 即可完成更新。</translation>
 <translation id="7962410387636238736">此计算机将不会再收到 Google Chrome 更新,因为 Windows XP 和 Windows Vista 已不再受支持</translation>
 <translation id="8008534537613507642">重新安装Chrome</translation>
 <translation id="8013993649590906847">如果图片缺少有用的说明,则 Chrome 会尝试为您提供一条说明。为便于创建说明,系统会将图片发送给 Google。</translation>
@@ -232,7 +229,6 @@
 <translation id="8679801911857917785">它还能够控制Chrome启动后显示的页面。</translation>
 <translation id="870251953148363156">更新 Google Chrome(&amp;G)</translation>
 <translation id="873133009373065397">Google Chrome 无法确定或设置默认浏览器</translation>
-<translation id="8736674169840206667">您的管理员要求您重新启动 Chrome 以应用一项更新</translation>
 <translation id="8823341990149967727">Chrome版本太旧</translation>
 <translation id="884296878221830158">它还能够控制您启动Chrome或点击“主页”按钮后系统显示的页面。</translation>
 <translation id="8862326446509486874">您的权限不足,无法进行系统级安装。请尝试以管理员身份再次运行安装程序。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
index ffb7a06a..7066bda 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -39,7 +39,6 @@
 <translation id="1877026089748256423">Chrome 版本過舊</translation>
 <translation id="1900795423379050516">如果這個頁面上並未顯示你的設定,請檢查 <ph name="LINK_BEGIN" />
       Chrome 瀏覽器設定<ph name="LINK_END" /></translation>
-<translation id="1915828456209461693">有可用的 Chrome 更新,只要重新啟動 Chrome 即可套用。</translation>
 <translation id="1919130412786645364">允許登入 Chrome</translation>
 <translation id="2063848847527508675">Chrome 作業系統必須重新啟動,才能套用更新。</translation>
 <translation id="2094919256425865063">確定要關閉 Chrome 嗎?</translation>
@@ -55,7 +54,6 @@
 <translation id="2467438592969358367">Google Chrome 要求匯出你的密碼。如果允許,請輸入你的 Windows 密碼。</translation>
 <translation id="2485422356828889247">解除安裝</translation>
 <translation id="2534507159460261402">Google Pay (已複製到 Chrome)</translation>
-<translation id="2535429035253759792">你的管理員請你重新啟動 Chrome,以套用這項更新</translation>
 <translation id="2580411288591421699">你無法安裝這個版本的 Google Chrome,因為相同的版本目前正在執行中。請關閉 Google Chrome 然後再試一次。</translation>
 <translation id="2586406160782125153">登出後,系統會將你的瀏覽資料從這個裝置上刪除。日後如要重新取得你的資料,請以 <ph name="USER_EMAIL" /> 身分登入 Chrome。</translation>
 <translation id="2588322182880276190">Chrome 標誌</translation>
@@ -211,7 +209,6 @@
 <translation id="7855730255114109580">Google Chrome 目前是最新版本</translation>
 <translation id="7890208801193284374">如果你與親朋好友共用電腦,人人皆可享有獨立的瀏覽空間,依照自己的偏好設定 Chrome。</translation>
 <translation id="7896673875602241923">先前已有其他使用者使用 <ph name="ACCOUNT_EMAIL_LAST" /> 在這部電腦上登入 Chrome。請建立新的 Chrome 使用者,以便另行保存你的資訊。</translation>
-<translation id="7908168227788431038">即將更新為最新版本!重新啟動 Google Chrome 即可完成更新程序。</translation>
 <translation id="7962410387636238736">Google Chrome 已停止支援 Windows XP 和 Windows Vista,因此這部電腦不會再收到 Google Chrome 更新</translation>
 <translation id="8008534537613507642">重新安裝 Chrome</translation>
 <translation id="8013993649590906847">如果圖片缺少有用的說明,Chrome 會嘗試為你提供說明。系統會將圖片傳送給 Google,以便產生說明。</translation>
@@ -234,7 +231,6 @@
 <translation id="8679801911857917785">這個擴充功能也會控管 Chrome 啟動時所顯示的網頁。</translation>
 <translation id="870251953148363156">更新 Google Chrome(&amp;G)</translation>
 <translation id="873133009373065397">Google Chrome 無法偵測或設定預設瀏覽器</translation>
-<translation id="8736674169840206667">你的管理員要求你重新啟動 Chrome,以套用更新</translation>
 <translation id="8823341990149967727">Chrome 版本過舊</translation>
 <translation id="884296878221830158">這個擴充功能也會控管 Chrome 啟動時或你點選 [首頁] 按鈕時所顯示的網頁。</translation>
 <translation id="8862326446509486874">你沒有在系統層級進行安裝的權限,請以管理員的身分執行安裝檔。</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index f8fac54..3f9d5c2 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1511,6 +1511,9 @@
     <message name="IDS_SETTINGS_PRINTING_CUPS_SAVED_PRINTERS_TITLE" desc="Text for the title of the user's saved printers list.">
       Your saved printers
     </message>
+    <message name="IDS_SETTINGS_PRINTING_CUPS_SHOW_MORE" desc="Text for the button to show more printers when there are more printers than currently displayed to the user.">
+      Show more
+    </message>
     <message name="IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTERS_NEARBY_TITLE" desc="Text for the title of the dialog that is used to add nearby printers.">
       Add a nearby printer
     </message>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index f1f4a26..44ad6717 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -285,6 +285,7 @@
     "chrome_content_browser_client.cc",
     "chrome_content_browser_client.h",
     "chrome_content_browser_client_parts.h",
+    "chrome_content_browser_client_receiver_bindings.cc",
     "chrome_notification_types.h",
     "chrome_quota_permission_context.cc",
     "chrome_quota_permission_context.h",
diff --git a/chrome/browser/OWNERS b/chrome/browser/OWNERS
index 040bb33..d2aac33 100644
--- a/chrome/browser/OWNERS
+++ b/chrome/browser/OWNERS
@@ -71,6 +71,8 @@
 # For security review.
 per-file chrome_browser_interface_binders.cc=set noparent
 per-file chrome_browser_interface_binders.cc=file://ipc/SECURITY_OWNERS
+per-file chrome_content_browser_client_receiver_bindings.cc=set noparent
+per-file chrome_content_browser_client_receiver_bindings.cc=file://ipc/SECURITY_OWNERS
 
 # BackForwardCache
 per-file chrome_back_forward_cache_browsertest.cc=arthursonzogni@chromium.org
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index ae1545374..e609459 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -339,7 +339,9 @@
     {flag_descriptions::kUseAngleD3D11, switches::kUseANGLE,
      gl::kANGLEImplementationD3D11Name},
     {flag_descriptions::kUseAngleD3D9, switches::kUseANGLE,
-     gl::kANGLEImplementationD3D9Name}};
+     gl::kANGLEImplementationD3D9Name},
+    {flag_descriptions::kUseAngleD3D11on12, switches::kUseANGLE,
+     gl::kANGLEImplementationD3D11on12Name}};
 #endif
 
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
diff --git a/chrome/browser/android/omnibox/autocomplete_controller_android.cc b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
index 35fddab..212117ea 100644
--- a/chrome/browser/android/omnibox/autocomplete_controller_android.cc
+++ b/chrome/browser/android/omnibox/autocomplete_controller_android.cc
@@ -128,16 +128,18 @@
   // Creating an arbitrary fake_request_source to avoid passing in an invalid
   // AutocompleteInput object. This source is ignored entirely when
   // kZeroSuggestionsOnNTP feature flag is enabled.
-  base::string16 fake_request_source =
-      base::ASCIIToUTF16("chrome-native://newtab");
-  auto context = metrics::OmniboxEventProto::NTP;
+  base::string16 fake_request_source = base::ASCIIToUTF16("chrome://newtab");
+  base::string16 fake_omnibox_content;
+  auto context =
+      metrics::OmniboxEventProto::INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS;
 
   if (!base::FeatureList::IsEnabled(omnibox::kZeroSuggestionsOnNTP)) {
     fake_request_source = base::ASCIIToUTF16("http://www.foobarbazblah.com");
+    fake_omnibox_content = fake_request_source;
     context = metrics::OmniboxEventProto::OTHER;
   }
 
-  AutocompleteInput input(fake_request_source, context,
+  AutocompleteInput input(fake_omnibox_content, context,
                           ChromeAutocompleteSchemeClassifier(profile));
   input.set_current_url(GURL(fake_request_source));
   input.set_from_omnibox_focus(true);
diff --git a/chrome/browser/android/vr/OWNERS b/chrome/browser/android/vr/OWNERS
index 18816d0..370201a 100644
--- a/chrome/browser/android/vr/OWNERS
+++ b/chrome/browser/android/vr/OWNERS
@@ -1,3 +1,5 @@
+alcooper@chromium.org
+bialpio@chromium.org
 cjgrant@chromium.org
 mthiesse@chromium.org
 tiborg@chromium.org
diff --git a/chrome/browser/apps/app_service/app_service_metrics.cc b/chrome/browser/apps/app_service/app_service_metrics.cc
index 77800c1..cb2ca3b 100644
--- a/chrome/browser/apps/app_service/app_service_metrics.cc
+++ b/chrome/browser/apps/app_service/app_service_metrics.cc
@@ -67,6 +67,10 @@
       UMA_HISTOGRAM_ENUMERATION("Apps.DefaultAppLaunch.FromFileManager",
                                 default_app_name);
       break;
+    // TODO(crbug.com/853604): Add metrics.
+    case apps::mojom::LaunchSource::kFromLink:
+    case apps::mojom::LaunchSource::kFromOmnibox:
+      return;
   }
 }
 
@@ -89,6 +93,8 @@
       break;
     case apps::mojom::LaunchSource::kFromShelf:
     case apps::mojom::LaunchSource::kFromFileManager:
+    case apps::mojom::LaunchSource::kFromLink:
+    case apps::mojom::LaunchSource::kFromOmnibox:
       break;
   }
 }
diff --git a/chrome/browser/apps/app_service/arc_apps.cc b/chrome/browser/apps/app_service/arc_apps.cc
index 9a80e6d2..9871e36 100644
--- a/chrome/browser/apps/app_service/arc_apps.cc
+++ b/chrome/browser/apps/app_service/arc_apps.cc
@@ -133,6 +133,13 @@
       user_interaction_type =
           arc::UserInteractionType::APP_STARTED_FROM_FILE_MANAGER;
       break;
+    case apps::mojom::LaunchSource::kFromLink:
+      user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_LINK;
+      break;
+    case apps::mojom::LaunchSource::kFromOmnibox:
+      user_interaction_type =
+          arc::UserInteractionType::APP_STARTED_FROM_OMNIBOX;
+      break;
     default:
       NOTREACHED();
       return base::nullopt;
diff --git a/chrome/browser/apps/app_service/extension_apps.cc b/chrome/browser/apps/app_service/extension_apps.cc
index 2cdfe80a..a6ce080 100644
--- a/chrome/browser/apps/app_service/extension_apps.cc
+++ b/chrome/browser/apps/app_service/extension_apps.cc
@@ -101,6 +101,8 @@
     case apps::mojom::LaunchSource::kFromShelf:
       return ash::LAUNCH_FROM_SHELF;
     case apps::mojom::LaunchSource::kFromFileManager:
+    case apps::mojom::LaunchSource::kFromLink:
+    case apps::mojom::LaunchSource::kFromOmnibox:
       return ash::LAUNCH_FROM_UNKNOWN;
   }
 }
@@ -321,6 +323,8 @@
     case apps::mojom::LaunchSource::kFromAppListRecommendation:
     case apps::mojom::LaunchSource::kFromShelf:
     case apps::mojom::LaunchSource::kFromFileManager:
+    case apps::mojom::LaunchSource::kFromLink:
+    case apps::mojom::LaunchSource::kFromOmnibox:
       break;
   }
 
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc b/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc
index 9a0b24e..a40fbdf 100644
--- a/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc
+++ b/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc
@@ -8,7 +8,6 @@
 #include <utility>
 
 #include "base/bind.h"
-#include "base/feature_list.h"
 #include "base/metrics/histogram_macros.h"
 #include "chrome/browser/apps/intent_helper/intent_picker_auto_display_service.h"
 #include "chrome/browser/apps/intent_helper/page_transition_util.h"
@@ -342,6 +341,13 @@
   return PickerAction::INVALID;
 }
 
+std::vector<IntentPickerAppInfo> AppsNavigationThrottle::FindAppsForUrl(
+    content::WebContents* web_contents,
+    const GURL& url,
+    std::vector<IntentPickerAppInfo> apps) {
+  return FindPwaForUrl(web_contents, url, std::move(apps));
+}
+
 // static
 std::vector<IntentPickerAppInfo> AppsNavigationThrottle::FindPwaForUrl(
     content::WebContents* web_contents,
@@ -508,7 +514,7 @@
 
   // We didn't query ARC, so proceed with the navigation and query if we have an
   // installed desktop PWA to handle the URL.
-  std::vector<IntentPickerAppInfo> apps = FindPwaForUrl(web_contents, url, {});
+  std::vector<IntentPickerAppInfo> apps = FindAppsForUrl(web_contents, url, {});
 
   if (!apps.empty())
     ui_displayed_ = true;
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_throttle.h b/chrome/browser/apps/intent_helper/apps_navigation_throttle.h
index 28b8214..0c59b4c 100644
--- a/chrome/browser/apps/intent_helper/apps_navigation_throttle.h
+++ b/chrome/browser/apps/intent_helper/apps_navigation_throttle.h
@@ -173,6 +173,16 @@
                                       IntentPickerCloseReason close_reason,
                                       bool should_persist);
 
+  // This is a wrapper method for querying apps for a URL. Normally this
+  // method will simply querying PWAs that can handle the URL from. If we are
+  // using App Service Intent Handling to support intent picker (currently not
+  // feature complete), this method will query all types of apps that that could
+  // handle the URL from CommonAppsNavigationThrottle.
+  virtual std::vector<IntentPickerAppInfo> FindAppsForUrl(
+      content::WebContents* web_contents,
+      const GURL& url,
+      std::vector<IntentPickerAppInfo> apps);
+
   // If an installed PWA exists that can handle |url|, prepends it to |apps| and
   // returns the new list.
   static std::vector<IntentPickerAppInfo> FindPwaForUrl(
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 0f337a1..3f706706 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -45,8 +45,6 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/browsing_data/browsing_data_helper.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
-#include "chrome/browser/cache_stats_recorder.h"
-#include "chrome/browser/chrome_browser_interface_binders.h"
 #include "chrome/browser/chrome_content_browser_client_parts.h"
 #include "chrome/browser/chrome_quota_permission_context.h"
 #include "chrome/browser/content_settings/cookie_settings_factory.h"
@@ -78,7 +76,6 @@
 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
 #include "chrome/browser/net/chrome_network_delegate.h"
 #include "chrome/browser/net/system_network_context_manager.h"
-#include "chrome/browser/net_benchmarking.h"
 #include "chrome/browser/notifications/platform_notification_service_factory.h"
 #include "chrome/browser/notifications/platform_notification_service_impl.h"
 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
@@ -91,8 +88,6 @@
 #include "chrome/browser/platform_util.h"
 #include "chrome/browser/plugins/pdf_iframe_navigation_throttle.h"
 #include "chrome/browser/plugins/plugin_utils.h"
-#include "chrome/browser/predictors/loading_predictor.h"
-#include "chrome/browser/predictors/loading_predictor_factory.h"
 #include "chrome/browser/prerender/prerender_final_status.h"
 #include "chrome/browser/prerender/prerender_manager.h"
 #include "chrome/browser/prerender/prerender_manager_factory.h"
@@ -185,13 +180,11 @@
 #include "chrome/grit/browser_resources.h"
 #include "chrome/grit/generated_resources.h"
 #include "chrome/installer/util/google_update_settings.h"
-#include "components/autofill/content/browser/content_autofill_driver_factory.h"
 #include "components/autofill/core/common/autofill_switches.h"
 #include "components/browsing_data/core/browsing_data_utils.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"
-#include "components/content_capture/browser/content_capture_receiver_manager.h"
 #include "components/content_settings/core/browser/content_settings_utils.h"
 #include "components/content_settings/core/browser/cookie_settings.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -213,7 +206,6 @@
 #include "components/feature_engagement/public/feature_list.h"
 #include "components/google/core/common/google_util.h"
 #include "components/language/core/browser/pref_names.h"
-#include "components/metrics/call_stack_profile_collector.h"
 #include "components/metrics/client_info.h"
 #include "components/nacl/common/buildflags.h"
 #include "components/nacl/common/nacl_constants.h"
@@ -221,7 +213,6 @@
 #include "components/page_load_metrics/browser/metrics_navigation_throttle.h"
 #include "components/page_load_metrics/browser/metrics_web_contents_observer.h"
 #include "components/page_load_metrics/browser/page_load_metrics_util.h"
-#include "components/password_manager/content/browser/content_password_manager_driver_factory.h"
 #include "components/payments/content/payment_request_display_manager.h"
 #include "components/policy/content/policy_blacklist_navigation_throttle.h"
 #include "components/policy/content/policy_blacklist_service.h"
@@ -239,10 +230,8 @@
 #include "components/previews/core/previews_features.h"
 #include "components/previews/core/previews_switches.h"
 #include "components/rappor/public/rappor_utils.h"
-#include "components/rappor/rappor_recorder_impl.h"
 #include "components/rappor/rappor_service_impl.h"
 #include "components/safe_browsing/browser/browser_url_loader_throttle.h"
-#include "components/safe_browsing/browser/mojo_safe_browsing_impl.h"
 #include "components/safe_browsing/browser/url_checker_delegate.h"
 #include "components/safe_browsing/buildflags.h"
 #include "components/safe_browsing/common/safe_browsing_prefs.h"
@@ -251,8 +240,6 @@
 #include "components/safe_browsing/password_protection/password_protection_navigation_throttle.h"
 #include "components/security_interstitials/content/origin_policy_ui.h"
 #include "components/signin/public/identity_manager/identity_manager.h"
-#include "components/spellcheck/spellcheck_buildflags.h"
-#include "components/startup_metric_utils/browser/startup_metric_host_impl.h"
 #include "components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h"
 #include "components/translate/core/common/translate_switches.h"
 #include "components/url_formatter/url_fixer.h"
@@ -361,8 +348,6 @@
 #if defined(OS_WIN)
 #include "base/strings/string_tokenizer.h"
 #include "chrome/browser/chrome_browser_main_win.h"
-#include "chrome/browser/win/conflicts/module_database.h"
-#include "chrome/browser/win/conflicts/module_event_sink_impl.h"
 #include "chrome/install_static/install_util.h"
 #include "sandbox/win/src/sandbox_policy.h"
 #elif defined(OS_MACOSX)
@@ -372,7 +357,6 @@
 #include "ash/public/cpp/tablet_mode.h"
 #include "ash/public/mojom/constants.mojom.h"
 #include "chrome/app/chrome_crash_reporter_client.h"
-#include "chrome/browser/ash_service_registry.h"
 #include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_backend_delegate.h"
 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.h"
 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h"
@@ -478,6 +462,7 @@
 #if !defined(OS_ANDROID)
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h"
+#include "chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.h"
 #else
 #include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h"
 #endif
@@ -568,17 +553,12 @@
 
 #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
 #include "chrome/browser/media/output_protection_impl.h"
-#include "chrome/browser/media/platform_verification_impl.h"
 #if defined(OS_WIN) && BUILDFLAG(ENABLE_WIDEVINE)
 #include "chrome/browser/media/widevine_hardware_caps_win.h"
 #include "third_party/widevine/cdm/widevine_cdm_common.h"
 #endif
 #endif
 
-#if BUILDFLAG(ENABLE_MOJO_CDM) && defined(OS_ANDROID)
-#include "chrome/browser/media/android/cdm/media_drm_storage_factory.h"
-#endif
-
 #if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
 #include "media/mojo/mojom/constants.mojom.h"           // nogncheck
 #include "media/mojo/services/media_service_factory.h"  // nogncheck
@@ -601,14 +581,6 @@
 #include "device/vr/public/mojom/isolated_xr_service.mojom.h"
 #endif
 
-#if BUILDFLAG(ENABLE_SPELLCHECK)
-#include "chrome/browser/spellchecker/spell_check_host_chrome_impl.h"
-#include "components/spellcheck/common/spellcheck.mojom.h"
-#if BUILDFLAG(HAS_SPELLCHECK_PANEL)
-#include "chrome/browser/spellchecker/spell_check_panel_host_impl.h"
-#endif
-#endif
-
 using base::FileDescriptor;
 using content::BrowserThread;
 using content::BrowserURLHandler;
@@ -2738,24 +2710,6 @@
   return nullptr;
 }
 
-void AddDataReductionProxyReceiver(
-    int render_process_id,
-    mojo::PendingReceiver<data_reduction_proxy::mojom::DataReductionProxy>
-        receiver) {
-  DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  auto* rph = content::RenderProcessHost::FromID(render_process_id);
-  if (!rph)
-    return;
-
-  auto* drp_settings =
-      DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
-          rph->GetBrowserContext());
-  if (!drp_settings)
-    return;
-
-  drp_settings->data_reduction_proxy_service()->Clone(std::move(receiver));
-}
-
 }  // namespace
 
 base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
@@ -3688,131 +3642,6 @@
 
 #endif  // defined(OS_WIN)
 
-void ChromeContentBrowserClient::ExposeInterfacesToRenderer(
-    service_manager::BinderRegistry* registry,
-    blink::AssociatedInterfaceRegistry* associated_registry,
-    content::RenderProcessHost* render_process_host) {
-  // The CacheStatsRecorder is an associated binding, instead of a
-  // non-associated one, because the sender (in the renderer process) posts the
-  // message after a time delay, in order to rate limit. The association
-  // protects against the render process host ID being recycled in that time
-  // gap between the preparation and the execution of that IPC.
-  associated_registry->AddInterface(
-      base::Bind(&CacheStatsRecorder::Create, render_process_host->GetID()));
-
-  scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner =
-      base::CreateSingleThreadTaskRunner({content::BrowserThread::UI});
-  registry->AddInterface(base::Bind(&rappor::RapporRecorderImpl::Create,
-                                    g_browser_process->rappor_service()),
-                         ui_task_runner);
-  registry->AddInterface(
-      base::BindRepeating(&metrics::CallStackProfileCollector::Create));
-
-  if (NetBenchmarking::CheckBenchmarkingEnabled()) {
-    Profile* profile =
-        Profile::FromBrowserContext(render_process_host->GetBrowserContext());
-    auto* loading_predictor =
-        predictors::LoadingPredictorFactory::GetForProfile(profile);
-    registry->AddInterface(
-        base::BindRepeating(
-            &NetBenchmarking::Create,
-            loading_predictor ? loading_predictor->GetWeakPtr() : nullptr,
-            render_process_host->GetID()),
-        ui_task_runner);
-  }
-
-#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL) || BUILDFLAG(SAFE_BROWSING_DB_REMOTE)
-  if (safe_browsing_service_) {
-    content::ResourceContext* resource_context =
-        render_process_host->GetBrowserContext()->GetResourceContext();
-    registry->AddInterface(
-        base::Bind(
-            &safe_browsing::MojoSafeBrowsingImpl::MaybeCreate,
-            render_process_host->GetID(), resource_context,
-            base::Bind(
-                &ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate,
-                base::Unretained(this), resource_context)),
-        base::CreateSingleThreadTaskRunner({BrowserThread::IO}));
-  }
-#endif
-
-  if (data_reduction_proxy::params::IsEnabledWithNetworkService()) {
-    registry->AddInterface(base::BindRepeating(&AddDataReductionProxyReceiver,
-                                               render_process_host->GetID()),
-                           ui_task_runner);
-  }
-
-#if defined(OS_WIN)
-  // Add the ModuleEventSink interface. This is the interface used by renderer
-  // processes to notify the browser of modules in their address space. The
-  // process handle is not yet available at this point so pass in a callback
-  // to allow to retrieve a duplicate at the time the interface is actually
-  // created.
-  auto get_process = base::BindRepeating(
-      [](int id) -> base::Process {
-        auto* host = content::RenderProcessHost::FromID(id);
-        if (host)
-          return host->GetProcess().Duplicate();
-        return base::Process();
-      },
-      render_process_host->GetID());
-  registry->AddInterface(
-      base::BindRepeating(
-          &ModuleEventSinkImpl::Create, std::move(get_process),
-          content::PROCESS_TYPE_RENDERER,
-          base::BindRepeating(&ModuleDatabase::HandleModuleLoadEvent)),
-      ui_task_runner);
-#endif
-#if defined(OS_ANDROID)
-  Profile* profile =
-      Profile::FromBrowserContext(render_process_host->GetBrowserContext());
-  registry->AddInterface(
-      base::BindRepeating(&android::AvailableOfflineContentProvider::Create,
-                          profile),
-      base::CreateSingleThreadTaskRunner({BrowserThread::UI}));
-#endif
-
-  for (auto* ep : extra_parts_) {
-    ep->ExposeInterfacesToRenderer(registry, associated_registry,
-                                   render_process_host);
-  }
-}
-
-void ChromeContentBrowserClient::ExposeInterfacesToMediaService(
-    service_manager::BinderRegistry* registry,
-    content::RenderFrameHost* render_frame_host) {
-#if BUILDFLAG(ENABLE_LIBRARY_CDMS)
-  registry->AddInterface(
-      base::Bind(&OutputProtectionImpl::Create, render_frame_host));
-  registry->AddInterface(
-      base::Bind(&PlatformVerificationImpl::Create, render_frame_host));
-#endif  // BUILDFLAG(ENABLE_LIBRARY_CDMS)
-
-#if BUILDFLAG(ENABLE_MOJO_CDM) && defined(OS_ANDROID)
-  registry->AddInterface(base::Bind(&CreateMediaDrmStorage, render_frame_host));
-#endif
-}
-
-void ChromeContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
-    service_manager::BinderMapWithContext<content::RenderFrameHost*>* map) {
-  chrome::internal::PopulateChromeFrameBinders(map);
-}
-
-void ChromeContentBrowserClient::BindInterfaceRequestFromFrame(
-    content::RenderFrameHost* render_frame_host,
-    const std::string& interface_name,
-    mojo::ScopedMessagePipeHandle interface_pipe) {
-  if (!frame_interfaces_ && !frame_interfaces_parameterized_ &&
-      !worker_interfaces_parameterized_) {
-    InitWebContextInterfaces();
-  }
-
-  if (!frame_interfaces_parameterized_->TryBindInterface(
-          interface_name, &interface_pipe, render_frame_host)) {
-    frame_interfaces_->TryBindInterface(interface_name, &interface_pipe);
-  }
-}
-
 void ChromeContentBrowserClient::BindCredentialManagerReceiver(
     content::RenderFrameHost* render_frame_host,
     mojo::PendingReceiver<blink::mojom::CredentialManager> receiver) {
@@ -3820,88 +3649,6 @@
                                                      render_frame_host);
 }
 
-bool ChromeContentBrowserClient::BindAssociatedReceiverFromFrame(
-    content::RenderFrameHost* render_frame_host,
-    const std::string& interface_name,
-    mojo::ScopedInterfaceEndpointHandle* handle) {
-  if (interface_name == autofill::mojom::AutofillDriver::Name_) {
-    autofill::ContentAutofillDriverFactory::BindAutofillDriver(
-        mojo::PendingAssociatedReceiver<autofill::mojom::AutofillDriver>(
-            std::move(*handle)),
-        render_frame_host);
-    return true;
-  }
-  if (interface_name == autofill::mojom::PasswordManagerDriver::Name_) {
-    password_manager::ContentPasswordManagerDriverFactory::
-        BindPasswordManagerDriver(
-            mojo::PendingAssociatedReceiver<
-                autofill::mojom::PasswordManagerDriver>(std::move(*handle)),
-            render_frame_host);
-    return true;
-  }
-  if (interface_name == content_capture::mojom::ContentCaptureReceiver::Name_) {
-    content_capture::ContentCaptureReceiverManager::BindContentCaptureReceiver(
-        mojo::PendingAssociatedReceiver<
-            content_capture::mojom::ContentCaptureReceiver>(std::move(*handle)),
-        render_frame_host);
-    return true;
-  }
-
-  return false;
-}
-
-void ChromeContentBrowserClient::BindInterfaceRequestFromWorker(
-    content::RenderProcessHost* render_process_host,
-    const url::Origin& origin,
-    const std::string& interface_name,
-    mojo::ScopedMessagePipeHandle interface_pipe) {
-  if (!frame_interfaces_ && !frame_interfaces_parameterized_ &&
-      !worker_interfaces_parameterized_) {
-    InitWebContextInterfaces();
-  }
-
-  worker_interfaces_parameterized_->BindInterface(
-      interface_name, std::move(interface_pipe), render_process_host, origin);
-}
-
-void ChromeContentBrowserClient::BindGpuHostReceiver(
-    mojo::GenericPendingReceiver receiver) {
-  if (auto r = receiver.As<metrics::mojom::CallStackProfileCollector>())
-    metrics::CallStackProfileCollector::Create(std::move(r));
-}
-
-void ChromeContentBrowserClient::BindHostReceiverForRenderer(
-    content::RenderProcessHost* render_process_host,
-    mojo::GenericPendingReceiver receiver) {
-#if BUILDFLAG(ENABLE_SPELLCHECK)
-  if (auto host_receiver = receiver.As<spellcheck::mojom::SpellCheckHost>()) {
-    SpellCheckHostChromeImpl::Create(render_process_host->GetID(),
-                                     std::move(host_receiver));
-    return;
-  }
-
-#if BUILDFLAG(HAS_SPELLCHECK_PANEL)
-  if (auto panel_host_receiver =
-          receiver.As<spellcheck::mojom::SpellCheckPanelHost>()) {
-    SpellCheckPanelHostImpl::Create(render_process_host->GetID(),
-                                    std::move(panel_host_receiver));
-    return;
-  }
-#endif  // BUILDFLAG(HAS_SPELLCHECK_PANEL)
-#endif  // BUILDFLAG(ENABLE_SPELLCHECK)
-}
-
-void ChromeContentBrowserClient::BindHostReceiverForRendererOnIOThread(
-    int render_process_id,
-    mojo::GenericPendingReceiver* receiver) {
-  if (auto host_receiver =
-          receiver->As<startup_metric_utils::mojom::StartupMetricHost>()) {
-    startup_metric_utils::StartupMetricHostImpl::Create(
-        std::move(host_receiver));
-    return;
-  }
-}
-
 void ChromeContentBrowserClient::WillStartServiceManager() {
 #if defined(OS_WIN) || defined(OS_MACOSX) || \
     (defined(OS_LINUX) && !defined(OS_CHROMEOS))
@@ -3944,27 +3691,6 @@
 #endif
 }
 
-void ChromeContentBrowserClient::RunServiceInstance(
-    const service_manager::Identity& identity,
-    mojo::PendingReceiver<service_manager::mojom::Service>* receiver) {
-  const std::string& service_name = identity.name();
-  ALLOW_UNUSED_LOCAL(service_name);
-#if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
-  if (service_name == media::mojom::kMediaServiceName) {
-    service_manager::Service::RunAsyncUntilTermination(
-        media::CreateMediaService(std::move(*receiver)));
-    return;
-  }
-#endif
-
-#if defined(OS_CHROMEOS)
-  auto service = ash_service_registry::HandleServiceRequest(
-      service_name, std::move(*receiver));
-  if (service)
-    service_manager::Service::RunAsyncUntilTermination(std::move(service));
-#endif  // defined(OS_CHROMEOS)
-}
-
 base::Optional<service_manager::Manifest>
 ChromeContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
   if (name == content::mojom::kBrowserServiceName)
@@ -4125,7 +3851,9 @@
   if (base::FeatureList::IsEnabled(features::kIntentPicker)) {
     auto url_to_apps_throttle =
 #if defined(OS_CHROMEOS)
-        chromeos::ChromeOsAppsNavigationThrottle::MaybeCreate(handle);
+        base::FeatureList::IsEnabled(features::kAppServiceIntentHandling)
+            ? apps::CommonAppsNavigationThrottle::MaybeCreate(handle)
+            : chromeos::ChromeOsAppsNavigationThrottle::MaybeCreate(handle);
 #else
         apps::AppsNavigationThrottle::MaybeCreate(handle);
 #endif
diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
new file mode 100644
index 0000000..577e91ea
--- /dev/null
+++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
@@ -0,0 +1,313 @@
+// 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.
+
+// This file exposes services from the browser to child processes.
+
+#include "chrome/browser/chrome_content_browser_client.h"
+
+#include "base/bind.h"
+#include "base/task/post_task.h"
+#include "build/build_config.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/cache_stats_recorder.h"
+#include "chrome/browser/chrome_browser_interface_binders.h"
+#include "chrome/browser/chrome_content_browser_client_parts.h"
+#include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.h"
+#include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
+#include "chrome/browser/net_benchmarking.h"
+#include "chrome/browser/predictors/loading_predictor.h"
+#include "chrome/browser/predictors/loading_predictor_factory.h"
+#include "components/autofill/content/browser/content_autofill_driver_factory.h"
+#include "components/content_capture/browser/content_capture_receiver_manager.h"
+#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h"
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
+#include "components/metrics/call_stack_profile_collector.h"
+#include "components/password_manager/content/browser/content_password_manager_driver_factory.h"
+#include "components/rappor/public/rappor_utils.h"
+#include "components/rappor/rappor_recorder_impl.h"
+#include "components/rappor/rappor_service_impl.h"
+#include "components/safe_browsing/browser/mojo_safe_browsing_impl.h"
+#include "components/safe_browsing/buildflags.h"
+#include "components/spellcheck/spellcheck_buildflags.h"
+#include "components/startup_metric_utils/browser/startup_metric_host_impl.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/render_process_host.h"
+#include "media/mojo/buildflags.h"
+#include "third_party/widevine/cdm/buildflags.h"
+
+#if defined(OS_ANDROID)
+#include "chrome/browser/download/android/available_offline_content_provider.h"
+#elif defined(OS_CHROMEOS)
+#include "chrome/browser/ash_service_registry.h"
+#include "services/service_manager/public/cpp/service.h"
+#elif defined(OS_WIN)
+#include "chrome/browser/win/conflicts/module_database.h"
+#include "chrome/browser/win/conflicts/module_event_sink_impl.h"
+#endif
+
+#if BUILDFLAG(ENABLE_LIBRARY_CDMS)
+#include "chrome/browser/media/output_protection_impl.h"
+#include "chrome/browser/media/platform_verification_impl.h"
+#endif
+
+#if BUILDFLAG(ENABLE_MOJO_CDM) && defined(OS_ANDROID)
+#include "chrome/browser/media/android/cdm/media_drm_storage_factory.h"
+#endif
+
+#if BUILDFLAG(ENABLE_SPELLCHECK)
+#include "chrome/browser/spellchecker/spell_check_host_chrome_impl.h"
+#include "components/spellcheck/common/spellcheck.mojom.h"
+#if BUILDFLAG(HAS_SPELLCHECK_PANEL)
+#include "chrome/browser/spellchecker/spell_check_panel_host_impl.h"
+#endif
+#endif
+
+namespace {
+
+void AddDataReductionProxyReceiver(
+    int render_process_id,
+    mojo::PendingReceiver<data_reduction_proxy::mojom::DataReductionProxy>
+        receiver) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+  auto* rph = content::RenderProcessHost::FromID(render_process_id);
+  if (!rph)
+    return;
+
+  auto* drp_settings =
+      DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
+          rph->GetBrowserContext());
+  if (!drp_settings)
+    return;
+
+  drp_settings->data_reduction_proxy_service()->Clone(std::move(receiver));
+}
+
+}  // namespace
+
+void ChromeContentBrowserClient::ExposeInterfacesToRenderer(
+    service_manager::BinderRegistry* registry,
+    blink::AssociatedInterfaceRegistry* associated_registry,
+    content::RenderProcessHost* render_process_host) {
+  // The CacheStatsRecorder is an associated binding, instead of a
+  // non-associated one, because the sender (in the renderer process) posts the
+  // message after a time delay, in order to rate limit. The association
+  // protects against the render process host ID being recycled in that time
+  // gap between the preparation and the execution of that IPC.
+  associated_registry->AddInterface(
+      base::Bind(&CacheStatsRecorder::Create, render_process_host->GetID()));
+
+  scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner =
+      base::CreateSingleThreadTaskRunner({content::BrowserThread::UI});
+  registry->AddInterface(base::Bind(&rappor::RapporRecorderImpl::Create,
+                                    g_browser_process->rappor_service()),
+                         ui_task_runner);
+  registry->AddInterface(
+      base::BindRepeating(&metrics::CallStackProfileCollector::Create));
+
+  if (NetBenchmarking::CheckBenchmarkingEnabled()) {
+    Profile* profile =
+        Profile::FromBrowserContext(render_process_host->GetBrowserContext());
+    auto* loading_predictor =
+        predictors::LoadingPredictorFactory::GetForProfile(profile);
+    registry->AddInterface(
+        base::BindRepeating(
+            &NetBenchmarking::Create,
+            loading_predictor ? loading_predictor->GetWeakPtr() : nullptr,
+            render_process_host->GetID()),
+        ui_task_runner);
+  }
+
+#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL) || BUILDFLAG(SAFE_BROWSING_DB_REMOTE)
+  if (safe_browsing_service_) {
+    content::ResourceContext* resource_context =
+        render_process_host->GetBrowserContext()->GetResourceContext();
+    registry->AddInterface(
+        base::Bind(
+            &safe_browsing::MojoSafeBrowsingImpl::MaybeCreate,
+            render_process_host->GetID(), resource_context,
+            base::Bind(
+                &ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate,
+                base::Unretained(this), resource_context)),
+        base::CreateSingleThreadTaskRunner({content::BrowserThread::IO}));
+  }
+#endif
+
+  if (data_reduction_proxy::params::IsEnabledWithNetworkService()) {
+    registry->AddInterface(base::BindRepeating(&AddDataReductionProxyReceiver,
+                                               render_process_host->GetID()),
+                           ui_task_runner);
+  }
+
+#if defined(OS_WIN)
+  // Add the ModuleEventSink interface. This is the interface used by renderer
+  // processes to notify the browser of modules in their address space. The
+  // process handle is not yet available at this point so pass in a callback
+  // to allow to retrieve a duplicate at the time the interface is actually
+  // created.
+  auto get_process = base::BindRepeating(
+      [](int id) -> base::Process {
+        auto* host = content::RenderProcessHost::FromID(id);
+        if (host)
+          return host->GetProcess().Duplicate();
+        return base::Process();
+      },
+      render_process_host->GetID());
+  registry->AddInterface(
+      base::BindRepeating(
+          &ModuleEventSinkImpl::Create, std::move(get_process),
+          content::PROCESS_TYPE_RENDERER,
+          base::BindRepeating(&ModuleDatabase::HandleModuleLoadEvent)),
+      ui_task_runner);
+#endif
+#if defined(OS_ANDROID)
+  Profile* profile =
+      Profile::FromBrowserContext(render_process_host->GetBrowserContext());
+  registry->AddInterface(
+      base::BindRepeating(&android::AvailableOfflineContentProvider::Create,
+                          profile),
+      base::CreateSingleThreadTaskRunner({content::BrowserThread::UI}));
+#endif
+
+  for (auto* ep : extra_parts_) {
+    ep->ExposeInterfacesToRenderer(registry, associated_registry,
+                                   render_process_host);
+  }
+}
+
+void ChromeContentBrowserClient::ExposeInterfacesToMediaService(
+    service_manager::BinderRegistry* registry,
+    content::RenderFrameHost* render_frame_host) {
+#if BUILDFLAG(ENABLE_LIBRARY_CDMS)
+  registry->AddInterface(
+      base::Bind(&OutputProtectionImpl::Create, render_frame_host));
+  registry->AddInterface(
+      base::Bind(&PlatformVerificationImpl::Create, render_frame_host));
+#endif  // BUILDFLAG(ENABLE_LIBRARY_CDMS)
+
+#if BUILDFLAG(ENABLE_MOJO_CDM) && defined(OS_ANDROID)
+  registry->AddInterface(base::Bind(&CreateMediaDrmStorage, render_frame_host));
+#endif
+}
+
+void ChromeContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
+    service_manager::BinderMapWithContext<content::RenderFrameHost*>* map) {
+  chrome::internal::PopulateChromeFrameBinders(map);
+}
+
+void ChromeContentBrowserClient::BindInterfaceRequestFromFrame(
+    content::RenderFrameHost* render_frame_host,
+    const std::string& interface_name,
+    mojo::ScopedMessagePipeHandle interface_pipe) {
+  if (!frame_interfaces_ && !frame_interfaces_parameterized_ &&
+      !worker_interfaces_parameterized_) {
+    InitWebContextInterfaces();
+  }
+
+  if (!frame_interfaces_parameterized_->TryBindInterface(
+          interface_name, &interface_pipe, render_frame_host)) {
+    frame_interfaces_->TryBindInterface(interface_name, &interface_pipe);
+  }
+}
+bool ChromeContentBrowserClient::BindAssociatedReceiverFromFrame(
+    content::RenderFrameHost* render_frame_host,
+    const std::string& interface_name,
+    mojo::ScopedInterfaceEndpointHandle* handle) {
+  if (interface_name == autofill::mojom::AutofillDriver::Name_) {
+    autofill::ContentAutofillDriverFactory::BindAutofillDriver(
+        mojo::PendingAssociatedReceiver<autofill::mojom::AutofillDriver>(
+            std::move(*handle)),
+        render_frame_host);
+    return true;
+  }
+  if (interface_name == autofill::mojom::PasswordManagerDriver::Name_) {
+    password_manager::ContentPasswordManagerDriverFactory::
+        BindPasswordManagerDriver(
+            mojo::PendingAssociatedReceiver<
+                autofill::mojom::PasswordManagerDriver>(std::move(*handle)),
+            render_frame_host);
+    return true;
+  }
+  if (interface_name == content_capture::mojom::ContentCaptureReceiver::Name_) {
+    content_capture::ContentCaptureReceiverManager::BindContentCaptureReceiver(
+        mojo::PendingAssociatedReceiver<
+            content_capture::mojom::ContentCaptureReceiver>(std::move(*handle)),
+        render_frame_host);
+    return true;
+  }
+
+  return false;
+}
+
+void ChromeContentBrowserClient::BindInterfaceRequestFromWorker(
+    content::RenderProcessHost* render_process_host,
+    const url::Origin& origin,
+    const std::string& interface_name,
+    mojo::ScopedMessagePipeHandle interface_pipe) {
+  if (!frame_interfaces_ && !frame_interfaces_parameterized_ &&
+      !worker_interfaces_parameterized_) {
+    InitWebContextInterfaces();
+  }
+
+  worker_interfaces_parameterized_->BindInterface(
+      interface_name, std::move(interface_pipe), render_process_host, origin);
+}
+
+void ChromeContentBrowserClient::BindGpuHostReceiver(
+    mojo::GenericPendingReceiver receiver) {
+  if (auto r = receiver.As<metrics::mojom::CallStackProfileCollector>())
+    metrics::CallStackProfileCollector::Create(std::move(r));
+}
+
+void ChromeContentBrowserClient::BindHostReceiverForRenderer(
+    content::RenderProcessHost* render_process_host,
+    mojo::GenericPendingReceiver receiver) {
+#if BUILDFLAG(ENABLE_SPELLCHECK)
+  if (auto host_receiver = receiver.As<spellcheck::mojom::SpellCheckHost>()) {
+    SpellCheckHostChromeImpl::Create(render_process_host->GetID(),
+                                     std::move(host_receiver));
+    return;
+  }
+
+#if BUILDFLAG(HAS_SPELLCHECK_PANEL)
+  if (auto panel_host_receiver =
+          receiver.As<spellcheck::mojom::SpellCheckPanelHost>()) {
+    SpellCheckPanelHostImpl::Create(render_process_host->GetID(),
+                                    std::move(panel_host_receiver));
+    return;
+  }
+#endif  // BUILDFLAG(HAS_SPELLCHECK_PANEL)
+#endif  // BUILDFLAG(ENABLE_SPELLCHECK)
+}
+
+void ChromeContentBrowserClient::BindHostReceiverForRendererOnIOThread(
+    int render_process_id,
+    mojo::GenericPendingReceiver* receiver) {
+  if (auto host_receiver =
+          receiver->As<startup_metric_utils::mojom::StartupMetricHost>()) {
+    startup_metric_utils::StartupMetricHostImpl::Create(
+        std::move(host_receiver));
+    return;
+  }
+}
+
+void ChromeContentBrowserClient::RunServiceInstance(
+    const service_manager::Identity& identity,
+    mojo::PendingReceiver<service_manager::mojom::Service>* receiver) {
+  const std::string& service_name = identity.name();
+  ALLOW_UNUSED_LOCAL(service_name);
+#if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
+  if (service_name == media::mojom::kMediaServiceName) {
+    service_manager::Service::RunAsyncUntilTermination(
+        media::CreateMediaService(std::move(*receiver)));
+    return;
+  }
+#endif
+
+#if defined(OS_CHROMEOS)
+  auto service = ash_service_registry::HandleServiceRequest(
+      service_name, std::move(*receiver));
+  if (service)
+    service_manager::Service::RunAsyncUntilTermination(std::move(service));
+#endif  // defined(OS_CHROMEOS)
+}
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index e7f2d93..f721c9bd 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -432,6 +432,8 @@
     "apps/apk_web_app_service_factory.h",
     "apps/intent_helper/chromeos_apps_navigation_throttle.cc",
     "apps/intent_helper/chromeos_apps_navigation_throttle.h",
+    "apps/intent_helper/common_apps_navigation_throttle.cc",
+    "apps/intent_helper/common_apps_navigation_throttle.h",
     "arc/accessibility/accessibility_node_info_data_wrapper.cc",
     "arc/accessibility/accessibility_node_info_data_wrapper.h",
     "arc/accessibility/accessibility_window_info_data_wrapper.cc",
diff --git a/chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.cc b/chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.cc
new file mode 100644
index 0000000..f810a9f
--- /dev/null
+++ b/chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.cc
@@ -0,0 +1,157 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.h"
+
+#include <utility>
+
+#include "base/bind.h"
+#include "chrome/browser/apps/app_service/app_service_proxy.h"
+#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
+#include "chrome/browser/extensions/menu_manager.h"
+#include "chrome/browser/profiles/profile.h"
+#include "content/public/browser/navigation_handle.h"
+#include "content/public/browser/web_contents.h"
+#include "ui/display/types/display_constants.h"
+
+namespace apps {
+
+// static
+std::unique_ptr<apps::AppsNavigationThrottle>
+CommonAppsNavigationThrottle::MaybeCreate(content::NavigationHandle* handle) {
+  if (!handle->IsInMainFrame())
+    return nullptr;
+
+  content::WebContents* web_contents = handle->GetWebContents();
+
+  if (!apps::AppsNavigationThrottle::CanCreate(web_contents))
+    return nullptr;
+
+  return std::make_unique<CommonAppsNavigationThrottle>(handle);
+}
+
+// static
+void CommonAppsNavigationThrottle::ShowIntentPickerBubble(
+    content::WebContents* web_contents,
+    IntentPickerAutoDisplayService* ui_auto_display_service,
+    const GURL& url) {
+  std::vector<apps::IntentPickerAppInfo> apps_for_picker =
+      FindAllAppsForUrl(web_contents, url, {});
+
+  apps::AppsNavigationThrottle::ShowIntentPickerBubbleForApps(
+      web_contents, std::move(apps_for_picker),
+      /*show_stay_in_chrome=*/false,
+      /*show_remember_selection=*/false,
+      base::BindOnce(&OnIntentPickerClosed, web_contents,
+                     ui_auto_display_service, url));
+}
+
+// static
+void CommonAppsNavigationThrottle::OnIntentPickerClosed(
+    content::WebContents* web_contents,
+    IntentPickerAutoDisplayService* ui_auto_display_service,
+    const GURL& url,
+    const std::string& launch_name,
+    apps::PickerEntryType entry_type,
+    apps::IntentPickerCloseReason close_reason,
+    bool should_persist) {
+  const bool should_launch_app =
+      close_reason == apps::IntentPickerCloseReason::OPEN_APP;
+
+  Profile* profile =
+      Profile::FromBrowserContext(web_contents->GetBrowserContext());
+
+  apps::AppServiceProxy* proxy =
+      apps::AppServiceProxyFactory::GetForProfile(profile);
+
+  if (!proxy)
+    return;
+
+  if (should_launch_app) {
+    // TODO(crbug.com/853604): Distinguish the source from link and omnibox.
+    apps::mojom::LaunchSource launch_source =
+        apps::mojom::LaunchSource::kFromLink;
+    proxy->LaunchAppWithUrl(launch_name, url, launch_source,
+                            display::kDefaultDisplayId);
+    CloseOrGoBack(web_contents);
+  }
+}
+
+CommonAppsNavigationThrottle::CommonAppsNavigationThrottle(
+    content::NavigationHandle* navigation_handle)
+    : apps::AppsNavigationThrottle(navigation_handle) {}
+
+CommonAppsNavigationThrottle::~CommonAppsNavigationThrottle() = default;
+
+std::vector<apps::IntentPickerAppInfo>
+CommonAppsNavigationThrottle::FindAppsForUrl(
+    content::WebContents* web_contents,
+    const GURL& url,
+    std::vector<apps::IntentPickerAppInfo> apps) {
+  return FindAllAppsForUrl(web_contents, url, std::move(apps));
+}
+
+// static
+std::vector<apps::IntentPickerAppInfo>
+CommonAppsNavigationThrottle::FindAllAppsForUrl(
+    content::WebContents* web_contents,
+    const GURL& url,
+    std::vector<apps::IntentPickerAppInfo> apps) {
+  Profile* profile =
+      Profile::FromBrowserContext(web_contents->GetBrowserContext());
+
+  apps::AppServiceProxy* proxy =
+      apps::AppServiceProxyFactory::GetForProfile(profile);
+
+  if (!proxy)
+    return apps;
+
+  std::vector<std::string> app_ids = proxy->GetAppIdsForUrl(url);
+  auto* menu_manager =
+      extensions::MenuManager::Get(web_contents->GetBrowserContext());
+  for (const std::string app_id : app_ids) {
+    proxy->AppRegistryCache().ForOneApp(
+        app_id, [&apps, menu_manager](const apps::AppUpdate& update) {
+          PickerEntryType type = PickerEntryType::kUnknown;
+          switch (update.AppType()) {
+            case apps::mojom::AppType::kUnknown:
+            case apps::mojom::AppType::kBuiltIn:
+            case apps::mojom::AppType::kCrostini:
+            case apps::mojom::AppType::kExtension:
+              break;
+            case apps::mojom::AppType::kArc:
+              type = PickerEntryType::kArc;
+              break;
+            case apps::mojom::AppType::kWeb:
+              type = PickerEntryType::kWeb;
+              break;
+            default:
+              NOTREACHED();
+          }
+          // TODO(crbug.com/853604): Get icon from App Service.
+          apps.emplace(apps.begin(), type,
+                       menu_manager->GetIconForExtension(update.AppId()),
+                       update.AppId(), update.Name());
+        });
+  }
+
+  return apps;
+}
+
+apps::AppsNavigationThrottle::PickerShowState
+CommonAppsNavigationThrottle::GetPickerShowState(
+    const std::vector<apps::IntentPickerAppInfo>& apps_for_picker,
+    content::WebContents* web_contents,
+    const GURL& url) {
+  return PickerShowState::kOmnibox;
+}
+
+IntentPickerResponse CommonAppsNavigationThrottle::GetOnPickerClosedCallback(
+    content::WebContents* web_contents,
+    IntentPickerAutoDisplayService* ui_auto_display_service,
+    const GURL& url) {
+  return base::BindOnce(&OnIntentPickerClosed, web_contents,
+                        ui_auto_display_service, url);
+}
+}  // namespace apps
diff --git a/chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.h b/chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.h
new file mode 100644
index 0000000..6f05e07
--- /dev/null
+++ b/chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.h
@@ -0,0 +1,91 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_APPS_INTENT_HELPER_COMMON_APPS_NAVIGATION_THROTTLE_H_
+#define CHROME_BROWSER_CHROMEOS_APPS_INTENT_HELPER_COMMON_APPS_NAVIGATION_THROTTLE_H_
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h"
+#include "chrome/services/app_service/public/mojom/types.mojom.h"
+#include "content/public/browser/navigation_throttle.h"
+#include "url/gurl.h"
+
+namespace content {
+class NavigationHandle;
+class WebContents;
+}  // namespace content
+
+namespace apps {
+
+// Allows navigation to be routed to an installed app, and provides
+// a static method for showing an intent picker for the current URL to display
+// any handling apps. This is a common throttle that work with the App Service.
+// This only works with Chrome OS at the moment and will work with all platforms
+// after the App Service supports apps for all platforms.
+// TODO(crbug.com/853604): Add metrics, add ARC auto pop up, add persistency.
+class CommonAppsNavigationThrottle : public apps::AppsNavigationThrottle {
+ public:
+  // Possibly creates a navigation throttle that checks if any installed apps
+  // can handle the URL being navigated to. The user is prompted if they wish to
+  // open the app or remain in the browser.
+  static std::unique_ptr<apps::AppsNavigationThrottle> MaybeCreate(
+      content::NavigationHandle* handle);
+
+  // Queries for installed apps which can handle |url|, and displays the intent
+  // picker bubble for |web_contents|.
+  static void ShowIntentPickerBubble(
+      content::WebContents* web_contents,
+      IntentPickerAutoDisplayService* ui_auto_display_service,
+      const GURL& url);
+
+  // Called when the intent picker is closed for |url|, in |web_contents|, with
+  // |launch_name| as the (possibly empty) action to be triggered based on
+  // |entry_type|. |close_reason| gives the reason for the picker being closed,
+  // and |should_persist| is true if the user indicated they wish to remember
+  // the choice made. |ui_auto_display_service| keeps track of whether or not
+  // the user dismissed the ui without engaging with it.
+  static void OnIntentPickerClosed(
+      content::WebContents* web_contents,
+      IntentPickerAutoDisplayService* ui_auto_display_service,
+      const GURL& url,
+      const std::string& launch_name,
+      apps::PickerEntryType entry_type,
+      apps::IntentPickerCloseReason close_reason,
+      bool should_persist);
+
+  explicit CommonAppsNavigationThrottle(
+      content::NavigationHandle* navigation_handle);
+  ~CommonAppsNavigationThrottle() override;
+
+ private:
+  std::vector<IntentPickerAppInfo> FindAppsForUrl(
+      content::WebContents* web_contents,
+      const GURL& url,
+      std::vector<IntentPickerAppInfo> apps) override;
+
+  static std::vector<apps::IntentPickerAppInfo> FindAllAppsForUrl(
+      content::WebContents* web_contents,
+      const GURL& url,
+      std::vector<apps::IntentPickerAppInfo> apps);
+
+  PickerShowState GetPickerShowState(
+      const std::vector<apps::IntentPickerAppInfo>& apps_for_picker,
+      content::WebContents* web_contents,
+      const GURL& url) override;
+
+  IntentPickerResponse GetOnPickerClosedCallback(
+      content::WebContents* web_contents,
+      IntentPickerAutoDisplayService* ui_auto_display_service,
+      const GURL& url) override;
+
+  DISALLOW_COPY_AND_ASSIGN(CommonAppsNavigationThrottle);
+};
+
+}  // namespace apps
+
+#endif  // CHROME_BROWSER_CHROMEOS_APPS_INTENT_HELPER_COMMON_APPS_NAVIGATION_THROTTLE_H_
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 2fb8c96..a465f1b 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
@@ -110,6 +110,9 @@
     return base::Singleton<ArcAccessibilityHelperBridgeFactory>::get();
   }
 
+ protected:
+  bool ServiceIsCreatedWithBrowserContext() const override { return true; }
+
  private:
   friend struct base::DefaultSingletonTraits<
       ArcAccessibilityHelperBridgeFactory>;
@@ -183,6 +186,11 @@
 }
 
 // static
+void ArcAccessibilityHelperBridge::CreateFactory() {
+  ArcAccessibilityHelperBridgeFactory::GetInstance();
+}
+
+// static
 ArcAccessibilityHelperBridge*
 ArcAccessibilityHelperBridge::GetForBrowserContext(
     content::BrowserContext* context) {
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h
index dba47819..9a5387c 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h
@@ -53,6 +53,9 @@
       public arc::ArcInputMethodManagerService::Observer,
       public ash::ArcNotificationSurfaceManager::Observer {
  public:
+  // Builds the ArcAccessibilityHelperBridgeFactory.
+  static void CreateFactory();
+
   // Returns singleton instance for the given BrowserContext,
   // or nullptr if the browser |context| is not allowed to use ARC.
   static ArcAccessibilityHelperBridge* GetForBrowserContext(
diff --git a/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc b/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
index f40f9774..8d8f76b 100644
--- a/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
+++ b/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/chromeos/device_sync/device_sync_client_factory.h"
 
 #include "base/macros.h"
+#include "base/timer/timer.h"
 #include "chrome/browser/chromeos/cryptauth/client_app_metadata_provider_service.h"
 #include "chrome/browser/chromeos/cryptauth/client_app_metadata_provider_service_factory.h"
 #include "chrome/browser/chromeos/cryptauth/gcm_device_info_provider_impl.h"
@@ -12,9 +13,7 @@
 #include "chrome/browser/gcm/gcm_profile_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/common/pref_names.h"
-#include "chromeos/constants/chromeos_features.h"
-#include "chromeos/services/device_sync/device_sync_service.h"
+#include "chromeos/services/device_sync/device_sync_impl.h"
 #include "chromeos/services/device_sync/public/cpp/device_sync_client.h"
 #include "chromeos/services/device_sync/public/cpp/device_sync_client_impl.h"
 #include "chromeos/services/multidevice_setup/public/cpp/prefs.h"
@@ -22,12 +21,7 @@
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/prefs/pref_service.h"
-#include "content/public/browser/browser_context.h"
-#include "mojo/public/cpp/bindings/pending_remote.h"
-#include "mojo/public/cpp/bindings/remote.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
-#include "services/preferences/public/mojom/preferences.mojom.h"
-#include "services/service_manager/public/cpp/connector.h"
 
 namespace chromeos {
 
@@ -43,24 +37,14 @@
       Profile::FromBrowserContext(context)->GetPrefs());
 }
 
-std::unique_ptr<DeviceSyncService> CreateServiceInstanceForProfile(
-    Profile* profile,
-    mojo::Remote<chromeos::device_sync::mojom::DeviceSyncService>* remote) {
-  mojo::Remote<chromeos::device_sync::mojom::DeviceSyncServiceInitializer>
-      initializer;
-  auto service = std::make_unique<DeviceSyncService>(
+std::unique_ptr<DeviceSyncBase> CreateDeviceSyncImplForProfile(
+    Profile* profile) {
+  return DeviceSyncImpl::Factory::Get()->BuildInstance(
       IdentityManagerFactory::GetForProfile(profile),
       gcm::GCMProfileServiceFactory::GetForProfile(profile)->driver(),
-      chromeos::GcmDeviceInfoProviderImpl::GetInstance(),
+      profile->GetPrefs(), chromeos::GcmDeviceInfoProviderImpl::GetInstance(),
       chromeos::ClientAppMetadataProviderServiceFactory::GetForProfile(profile),
-      profile->GetURLLoaderFactory(), initializer.BindNewPipeAndPassReceiver());
-  mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector;
-  content::BrowserContext::GetConnectorFor(profile)->Connect(
-      prefs::mojom::kServiceName,
-      pref_store_connector.InitWithNewPipeAndPassReceiver());
-  initializer->Initialize(remote->BindNewPipeAndPassReceiver(),
-                          std::move(pref_store_connector));
-  return service;
+      profile->GetURLLoaderFactory(), std::make_unique<base::OneShotTimer>());
 }
 
 }  // namespace
@@ -69,27 +53,29 @@
 class DeviceSyncClientHolder : public KeyedService {
  public:
   explicit DeviceSyncClientHolder(content::BrowserContext* context)
-      : service_(CreateServiceInstanceForProfile(
-            Profile::FromBrowserContext(context),
-            &remote_service_)),
-        device_sync_client_(DeviceSyncClientImpl::Factory::Get()->BuildInstance(
-            remote_service_.get())) {}
+      : device_sync_(CreateDeviceSyncImplForProfile(
+            Profile::FromBrowserContext(context))),
+        device_sync_client_(
+            DeviceSyncClientImpl::Factory::Get()->BuildInstance()) {
+    // Connect the client's mojo interface pointer to the implementation.
+    device_sync_->BindRequest(
+        mojo::MakeRequest(device_sync_client_->GetDeviceSyncPtr()));
+    // Finish client initialization.
+    device_sync_client_->Initialize(base::ThreadTaskRunnerHandle::Get());
+  }
 
+  DeviceSyncBase* device_sync() { return device_sync_.get(); }
   DeviceSyncClient* device_sync_client() { return device_sync_client_.get(); }
 
  private:
   // KeyedService:
   void Shutdown() override {
     device_sync_client_.reset();
-    service_.reset();
+    device_sync_->CloseAllBindings();
+    device_sync_.reset();
   }
 
-  mojo::Remote<chromeos::device_sync::mojom::DeviceSyncService> remote_service_;
-
-  // The in-process service instance. Never exposed publicly except through the
-  // DeviceSyncClient, which is isolated from the service by Mojo interfaces.
-  std::unique_ptr<chromeos::device_sync::DeviceSyncService> service_;
-
+  std::unique_ptr<DeviceSyncBase> device_sync_;
   std::unique_ptr<DeviceSyncClient> device_sync_client_;
 
   DISALLOW_COPY_AND_ASSIGN(DeviceSyncClientHolder);
@@ -118,6 +104,15 @@
   return base::Singleton<DeviceSyncClientFactory>::get();
 }
 
+// static
+void DeviceSyncClientFactory::OnProfileInitialized(Profile* profile) {
+  DeviceSyncClientHolder* holder = static_cast<DeviceSyncClientHolder*>(
+      GetInstance()->GetServiceForBrowserContext(profile, true));
+
+  if (holder)
+    holder->device_sync()->OnProfileInitialized();
+}
+
 KeyedService* DeviceSyncClientFactory::BuildServiceInstanceFor(
     content::BrowserContext* context) const {
   // TODO(crbug.com/848347): Check prohibited by policy in services that depend
diff --git a/chrome/browser/chromeos/device_sync/device_sync_client_factory.h b/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
index 2328827..73d08b274 100644
--- a/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
+++ b/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
@@ -24,6 +24,9 @@
 
   static DeviceSyncClientFactory* GetInstance();
 
+  // Notifies the DeviceSync subsystem that the profile is ready.
+  static void OnProfileInitialized(Profile* profile);
+
  private:
   friend struct base::DefaultSingletonTraits<DeviceSyncClientFactory>;
 
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc
index 0075785..327c980 100644
--- a/chrome/browser/chromeos/login/session/user_session_manager.cc
+++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -47,6 +47,7 @@
 #include "chrome/browser/chromeos/child_accounts/consumer_status_reporting_service_factory.h"
 #include "chrome/browser/chromeos/child_accounts/screen_time_controller_factory.h"
 #include "chrome/browser/chromeos/crostini/crostini_manager.h"
+#include "chrome/browser/chromeos/device_sync/device_sync_client_factory.h"
 #include "chrome/browser/chromeos/first_run/first_run.h"
 #include "chrome/browser/chromeos/first_run/goodies_displayer.h"
 #include "chrome/browser/chromeos/lock_screen_apps/state_controller.h"
@@ -1464,6 +1465,9 @@
       user_manager::known_user::UpdateGaiaID(user_context.GetAccountId(),
                                              gaia_id);
     }
+
+    // DeviceSync initialization must occur after primary profile is available.
+    device_sync::DeviceSyncClientFactory::OnProfileInitialized(profile);
   }
 }
 
diff --git a/chrome/browser/chromeos/policy/status_collector/child_status_collector.cc b/chrome/browser/chromeos/policy/status_collector/child_status_collector.cc
index 7c418f8..9ef0467 100644
--- a/chrome/browser/chromeos/policy/status_collector/child_status_collector.cc
+++ b/chrome/browser/chromeos/policy/status_collector/child_status_collector.cc
@@ -219,8 +219,7 @@
   }
 
   // Activity times.
-  report_activity_times_ =
-      base::FeatureList::IsEnabled(features::kUsageTimeLimitPolicy);
+  report_activity_times_ = true;
 
   // Settings related.
   report_version_info_ = true;
diff --git a/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc
index 88af6aaa..d2525e9 100644
--- a/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc
+++ b/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc
@@ -12,12 +12,12 @@
 
 #include "base/bind.h"
 #include "base/environment.h"
+#include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/system/sys_info.h"
-#include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_path_override.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/chrome_content_browser_client.h"
@@ -28,7 +28,6 @@
 #include "chrome/browser/chromeos/settings/scoped_testing_cros_settings.h"
 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
 #include "chrome/common/chrome_content_client.h"
-#include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/chrome_unit_test_suite.h"
@@ -73,6 +72,7 @@
 constexpr TimeDelta kHour = TimeDelta::FromHours(1);
 
 constexpr int64_t kMillisecondsPerDay = Time::kMicrosecondsPerDay / 1000;
+
 const char kArcStatus[] = R"(
 {
    "applications":[
@@ -187,9 +187,9 @@
 // Though it is a unit test, this test is linked with browser_tests so that it
 // runs in a separate process. The intention is to avoid overriding the timezone
 // environment variable for other tests.
-class BaseChildStatusCollectorTest : public testing::Test {
+class ChildStatusCollectorTest : public testing::Test {
  public:
-  BaseChildStatusCollectorTest()
+  ChildStatusCollectorTest()
       : user_manager_(new chromeos::MockUserManager()),
         user_manager_enabler_(base::WrapUnique(user_manager_)),
         user_data_dir_override_(chrome::DIR_USER_DATA),
@@ -229,9 +229,11 @@
 
     chromeos::PowerManagerClient::InitializeFake();
     chromeos::LoginState::Initialize();
+
+    MockChildUser(AccountId::FromUserEmail("user0@gmail.com"));
   }
 
-  ~BaseChildStatusCollectorTest() override {
+  ~ChildStatusCollectorTest() override {
     chromeos::LoginState::Shutdown();
     chromeos::PowerManagerClient::Shutdown();
     TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
@@ -306,17 +308,16 @@
           android_status_fetcher,
       const TimeDelta activity_day_start = kMidnight) {
     status_collector_ = std::make_unique<TestingChildStatusCollector>(
-        &local_state_, &fake_statistics_provider_, android_status_fetcher,
-        activity_day_start);
+        &profile_pref_service_, &fake_statistics_provider_,
+        android_status_fetcher, activity_day_start);
   }
 
   void GetStatus() {
     device_status_.Clear();
     session_status_.Clear();
     run_loop_.reset(new base::RunLoop());
-    status_collector_->GetStatusAsync(
-        base::BindRepeating(&BaseChildStatusCollectorTest::OnStatusReceived,
-                            base::Unretained(this)));
+    status_collector_->GetStatusAsync(base::BindRepeating(
+        &ChildStatusCollectorTest::OnStatusReceived, base::Unretained(this)));
     run_loop_->Run();
     run_loop_.reset();
   }
@@ -353,12 +354,6 @@
         .WillRepeatedly(Return(false));
   }
 
-  void MockRegularUserWithAffiliation(const AccountId& account_id,
-                                      bool is_affiliated) {
-    MockUserWithTypeAndAffiliation(account_id, user_manager::USER_TYPE_REGULAR,
-                                   is_affiliated);
-  }
-
   void MockChildUser(const AccountId& account_id) {
     MockUserWithTypeAndAffiliation(account_id, user_manager::USER_TYPE_CHILD,
                                    false);
@@ -378,6 +373,29 @@
     return policy::ChildStatusCollector::kIdlePollIntervalSeconds * 1000;
   }
 
+  void ExpectChildScreenTimeMilliseconds(int64_t duration) {
+    profile_pref_service_.CommitPendingWrite(
+        base::OnceClosure(),
+        base::BindOnce(
+            [](int64_t duration,
+               TestingPrefServiceSimple* profile_pref_service_) {
+              EXPECT_EQ(duration, profile_pref_service_->GetInteger(
+                                      prefs::kChildScreenTimeMilliseconds));
+            },
+            duration, &profile_pref_service_));
+  }
+
+  void ExpectLastChildScreenTimeReset(Time time) {
+    profile_pref_service_.CommitPendingWrite(
+        base::OnceClosure(),
+        base::BindOnce(
+            [](Time time, TestingPrefServiceSimple* profile_pref_service_) {
+              EXPECT_EQ(time, profile_pref_service_->GetTime(
+                                  prefs::kLastChildScreenTimeReset));
+            },
+            time, &profile_pref_service_));
+  }
+
   // Since this is a unit test running in browser_tests we must do additional
   // unit test setup and make a TestingBrowserProcess. Must be first member.
   TestingBrowserProcessInitializer initializer_;
@@ -408,59 +426,10 @@
   session_manager::SessionManager session_manager_;
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(BaseChildStatusCollectorTest);
+  DISALLOW_COPY_AND_ASSIGN(ChildStatusCollectorTest);
 };
 
-// Tests collecting device status for registered consumer device.
-class ChildStatusCollectorTimeLimitDisabledTest
-    : public BaseChildStatusCollectorTest {
- public:
-  ChildStatusCollectorTimeLimitDisabledTest() {
-    user_account_id_ = AccountId::FromUserEmail("user0@gmail.com");
-    MockChildUser(user_account_id_);
-    scoped_feature_list_.InitAndDisableFeature(features::kUsageTimeLimitPolicy);
-  }
-
-  ~ChildStatusCollectorTimeLimitDisabledTest() override = default;
-
- protected:
-  void RestartStatusCollector(
-      const policy::ChildStatusCollector::AndroidStatusFetcher&
-          android_status_fetcher,
-      const TimeDelta activity_day_start = kMidnight) override {
-    status_collector_ = std::make_unique<TestingChildStatusCollector>(
-        &profile_pref_service_, &fake_statistics_provider_,
-        android_status_fetcher, activity_day_start);
-  }
-
-  void ExpectChildScreenTimeMilliseconds(int64_t duration) {
-    profile_pref_service_.CommitPendingWrite(
-        base::OnceClosure(),
-        base::BindOnce(
-            [](int64_t duration,
-               TestingPrefServiceSimple* profile_pref_service_) {
-              EXPECT_EQ(duration, profile_pref_service_->GetInteger(
-                                      prefs::kChildScreenTimeMilliseconds));
-            },
-            duration, &profile_pref_service_));
-  }
-
-  void ExpectLastChildScreenTimeReset(Time time) {
-    profile_pref_service_.CommitPendingWrite(
-        base::OnceClosure(),
-        base::BindOnce(
-            [](Time time, TestingPrefServiceSimple* profile_pref_service_) {
-              EXPECT_EQ(time, profile_pref_service_->GetTime(
-                                  prefs::kLastChildScreenTimeReset));
-            },
-            time, &profile_pref_service_));
-  }
-
-  AccountId user_account_id_;
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, ReportingBootMode) {
+TEST_F(ChildStatusCollectorTest, ReportingBootMode) {
   fake_statistics_provider_.SetMachineStatistic(
       chromeos::system::kDevSwitchBootKey,
       chromeos::system::kDevSwitchBootValueVerified);
@@ -477,8 +446,7 @@
 }
 
 // TODO(crbug.com/827386): remove after migration.
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest,
-       NotReportingWriteProtectSwitch) {
+TEST_F(ChildStatusCollectorTest, NotReportingWriteProtectSwitch) {
   fake_statistics_provider_.SetMachineStatistic(
       chromeos::system::kFirmwareWriteProtectBootKey,
       chromeos::system::kFirmwareWriteProtectBootValueOn);
@@ -489,7 +457,7 @@
 }
 // END.
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, ReportingArcStatus) {
+TEST_F(ChildStatusCollectorTest, ReportingArcStatus) {
   RestartStatusCollector(
       base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo));
   testing_profile_->GetPrefs()->SetBoolean(prefs::kReportArcStatusEnabled,
@@ -509,7 +477,7 @@
   EXPECT_EQ(kFakeDmToken, child_status_.user_dm_token());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, ReportingPartialVersionInfo) {
+TEST_F(ChildStatusCollectorTest, ReportingPartialVersionInfo) {
   GetStatus();
 
   // TODO(crbug.com/827386): remove after migration.
@@ -525,7 +493,7 @@
 }
 
 // TODO(crbug.com/827386): remove after migration.
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, NotReportingVolumeInfo) {
+TEST_F(ChildStatusCollectorTest, NotReportingVolumeInfo) {
   RestartStatusCollector(base::BindRepeating(&GetEmptyAndroidStatus));
   content::RunAllTasksUntilIdle();
 
@@ -534,7 +502,7 @@
   EXPECT_EQ(0, device_status_.volume_infos_size());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, NotReportingUsers) {
+TEST_F(ChildStatusCollectorTest, NotReportingUsers) {
   const AccountId account_id0(AccountId::FromUserEmail("user0@gmail.com"));
   const AccountId account_id1(AccountId::FromUserEmail("user1@gmail.com"));
   user_manager_->AddUserWithAffiliationAndType(account_id0, true,
@@ -547,7 +515,7 @@
   EXPECT_EQ(0, device_status_.users_size());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, NotReportingOSUpdateStatus) {
+TEST_F(ChildStatusCollectorTest, NotReportingOSUpdateStatus) {
   MockPlatformVersion("1234.0.0");
 
   GetStatus();
@@ -555,8 +523,7 @@
   EXPECT_FALSE(device_status_.has_os_update_status());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest,
-       NotReportingDeviceHardwareStatus) {
+TEST_F(ChildStatusCollectorTest, NotReportingDeviceHardwareStatus) {
   EXPECT_FALSE(device_status_.has_sound_volume());
   EXPECT_EQ(0, device_status_.cpu_utilization_pct_samples().size());
   EXPECT_EQ(0, device_status_.cpu_temp_infos_size());
@@ -564,9 +531,8 @@
   EXPECT_FALSE(device_status_.has_system_ram_total());
   EXPECT_FALSE(device_status_.has_tpm_status_info());
 }
-// END.
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, TimeZoneReporting) {
+TEST_F(ChildStatusCollectorTest, TimeZoneReporting) {
   const std::string timezone =
       base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance()
                             ->GetCurrentTimezoneID());
@@ -582,48 +548,7 @@
   EXPECT_EQ(timezone, child_status_.time_zone());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitDisabledTest, ActivityTimesFeatureDisable) {
-  scoped_testing_cros_settings_.device_settings()->SetBoolean(
-      chromeos::kReportDeviceActivityTimes, true);
-  scoped_testing_cros_settings_.device_settings()->SetBoolean(
-      chromeos::kReportDeviceUsers, true);
-  DeviceStateTransitions test_states[] = {
-      DeviceStateTransitions::kEnterSessionActive,
-      DeviceStateTransitions::kPeriodicCheckTriggered,
-      DeviceStateTransitions::kPeriodicCheckTriggered,
-      DeviceStateTransitions::kLeaveSessionActive,
-      DeviceStateTransitions::kPeriodicCheckTriggered,  // Check while inactive
-      DeviceStateTransitions::kEnterSessionActive,
-      DeviceStateTransitions::kPeriodicCheckTriggered,
-      DeviceStateTransitions::kLeaveSessionActive};
-  SimulateStateChanges(test_states,
-                       sizeof(test_states) / sizeof(DeviceStateTransitions));
-
-  GetStatus();
-
-  // TODO(crbug.com/827386): remove after migration.
-  EXPECT_EQ(0, device_status_.active_periods_size());
-  // END.
-
-  EXPECT_EQ(0, child_status_.screen_time_span_size());
-}
-
-// Tests collecting device status for registered consumer device when time
-// limit feature is enabled.
-class ChildStatusCollectorTimeLimitEnabledTest
-    : public ChildStatusCollectorTimeLimitDisabledTest {
- public:
-  ChildStatusCollectorTimeLimitEnabledTest() {
-    scoped_feature_list_.InitAndEnableFeature(features::kUsageTimeLimitPolicy);
-  }
-  ~ChildStatusCollectorTimeLimitEnabledTest() override = default;
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest,
-       ReportingActivityTimesSessionTransistions) {
+TEST_F(ChildStatusCollectorTest, ReportingActivityTimesSessionTransistions) {
   DeviceStateTransitions test_states[] = {
       DeviceStateTransitions::kEnterSessionActive,
       DeviceStateTransitions::kPeriodicCheckTriggered,
@@ -652,8 +577,7 @@
   ExpectChildScreenTimeMilliseconds(5 * ActivePeriodMilliseconds());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest,
-       ReportingActivityTimesSleepTransistions) {
+TEST_F(ChildStatusCollectorTest, ReportingActivityTimesSleepTransistions) {
   DeviceStateTransitions test_states[] = {
       DeviceStateTransitions::kEnterSessionActive,
       DeviceStateTransitions::kPeriodicCheckTriggered,
@@ -684,8 +608,7 @@
   ExpectChildScreenTimeMilliseconds(4 * ActivePeriodMilliseconds());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest,
-       ReportingActivityTimesIdleTransitions) {
+TEST_F(ChildStatusCollectorTest, ReportingActivityTimesIdleTransitions) {
   DeviceStateTransitions test_states[] = {
       DeviceStateTransitions::kEnterSessionActive,
       DeviceStateTransitions::kPeriodicCheckTriggered,
@@ -715,7 +638,7 @@
   ExpectChildScreenTimeMilliseconds(5 * ActivePeriodMilliseconds());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest, ActivityKeptInPref) {
+TEST_F(ChildStatusCollectorTest, ActivityKeptInPref) {
   EXPECT_TRUE(
       profile_pref_service_.GetDictionary(prefs::kUserActivityTimes)->empty());
   base::Time initial_time = base::Time::Now() + kHour;
@@ -757,8 +680,7 @@
             GetActiveMilliseconds(child_status_));
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest,
-       ActivityNotWrittenToLocalState) {
+TEST_F(ChildStatusCollectorTest, ActivityNotWrittenToLocalState) {
   DeviceStateTransitions test_states[] = {
       DeviceStateTransitions::kEnterSessionActive,
       DeviceStateTransitions::kPeriodicCheckTriggered,
@@ -789,7 +711,7 @@
   // enterprise reporting.
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest, BeforeDayStart) {
+TEST_F(ChildStatusCollectorTest, BeforeDayStart) {
   RestartStatusCollector(base::BindRepeating(&GetEmptyAndroidStatus), kSixAm);
   // 04:00 AM
   Time initial_time = Time::Now().LocalMidnight() + TimeDelta::FromHours(4);
@@ -819,7 +741,7 @@
   ExpectLastChildScreenTimeReset(initial_time);
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest, ActivityCrossingMidnight) {
+TEST_F(ChildStatusCollectorTest, ActivityCrossingMidnight) {
   DeviceStateTransitions test_states[] = {
       DeviceStateTransitions::kEnterSessionActive,
       DeviceStateTransitions::kLeaveSessionActive};
@@ -872,7 +794,7 @@
   ExpectChildScreenTimeMilliseconds(0.5 * ActivePeriodMilliseconds());
 }
 
-TEST_F(ChildStatusCollectorTimeLimitEnabledTest, ClockChanged) {
+TEST_F(ChildStatusCollectorTest, ClockChanged) {
   DeviceStateTransitions test_states[1] = {
       DeviceStateTransitions::kEnterSessionActive};
   base::Time initial_time =
diff --git a/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.cc b/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.cc
index b205fb6e..bbcd397 100644
--- a/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.cc
+++ b/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.cc
@@ -45,6 +45,14 @@
   return printers_manager_->IsPrinterInstalled(printer);
 }
 
+// Expects |printer| is known by the printers_manager_.
+void CupsProxyServiceDelegateImpl::PrinterInstalled(const Printer& printer) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(GetPrinter(printer.id()));
+  printers_manager_->PrinterInstalled(
+      printer, false /* unused */, PrinterSetupSource::kMaxValue /* unused */);
+}
+
 scoped_refptr<base::SingleThreadTaskRunner>
 CupsProxyServiceDelegateImpl::GetIOTaskRunner() {
   return base::CreateSingleThreadTaskRunner({content::BrowserThread::IO});
diff --git a/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.h b/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.h
index e399573..7cb6913 100644
--- a/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.h
+++ b/chrome/browser/chromeos/printing/cups_proxy_service_delegate_impl.h
@@ -43,6 +43,9 @@
   // Returns whether |printer| is currently installed in CUPS with this config.
   bool IsPrinterInstalled(const Printer& printer) override;
 
+  // Records that |printer| has been installed into CUPS with this config.
+  void PrinterInstalled(const Printer& printer) override;
+
   // Returns an IO-thread task runner.
   scoped_refptr<base::SingleThreadTaskRunner> GetIOTaskRunner() override;
 
diff --git a/chrome/browser/chromeos/tether/tether_service_unittest.cc b/chrome/browser/chromeos/tether/tether_service_unittest.cc
index d367a888..9df3ad3 100644
--- a/chrome/browser/chromeos/tether/tether_service_unittest.cc
+++ b/chrome/browser/chromeos/tether/tether_service_unittest.cc
@@ -266,8 +266,8 @@
   ~FakeDeviceSyncClientImplFactory() override = default;
 
   // chromeos::device_sync::DeviceSyncClientImpl::Factory:
-  std::unique_ptr<chromeos::device_sync::DeviceSyncClient> BuildInstance(
-      chromeos::device_sync::mojom::DeviceSyncService* service) override {
+  std::unique_ptr<chromeos::device_sync::DeviceSyncClient> BuildInstance()
+      override {
     auto fake_device_sync_client =
         std::make_unique<chromeos::device_sync::FakeDeviceSyncClient>();
     fake_device_sync_client->NotifyReady();
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
index c0d0aca..7ecbb77 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -24,7 +24,6 @@
 #include "base/time/time.h"
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/download/download_completion_blocker.h"
 #include "chrome/browser/download/download_core_service.h"
 #include "chrome/browser/download/download_core_service_factory.h"
 #include "chrome/browser/download/download_crx_util.h"
@@ -121,26 +120,6 @@
 
 namespace {
 
-#if BUILDFLAG(FULL_SAFE_BROWSING)
-
-// String pointer used for identifying safebrowing data associated with
-// a download item.
-const char kSafeBrowsingUserDataKey[] = "Safe Browsing ID";
-
-// The state of a safebrowsing check.
-class SafeBrowsingState : public DownloadCompletionBlocker {
- public:
-  SafeBrowsingState() {}
-  ~SafeBrowsingState() override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(SafeBrowsingState);
-};
-
-SafeBrowsingState::~SafeBrowsingState() {}
-
-#endif  // FULL_SAFE_BROWSING
-
 // Used with GetPlatformDownloadPath() to indicate which platform path to
 // return.
 enum PlatformDownloadPathType {
@@ -456,10 +435,12 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 #if BUILDFLAG(FULL_SAFE_BROWSING)
   SafeBrowsingState* state = static_cast<SafeBrowsingState*>(
-      item->GetUserData(&kSafeBrowsingUserDataKey));
+      item->GetUserData(&SafeBrowsingState::kSafeBrowsingUserDataKey));
   if (!state) {
-    state = new SafeBrowsingState();
-    item->SetUserData(&kSafeBrowsingUserDataKey, base::WrapUnique(state));
+    auto new_state = std::make_unique<SafeBrowsingState>();
+    state = new_state.get();
+    item->SetUserData(&SafeBrowsingState::kSafeBrowsingUserDataKey,
+                      std::move(new_state));
   }
   state->CompleteDownload();
 #endif
@@ -476,7 +457,7 @@
   }
 
   SafeBrowsingState* state = static_cast<SafeBrowsingState*>(
-      item->GetUserData(&kSafeBrowsingUserDataKey));
+      item->GetUserData(&SafeBrowsingState::kSafeBrowsingUserDataKey));
   if (!state) {
     // Begin the safe browsing download protection check.
     DownloadProtectionService* service = GetDownloadProtectionService();
@@ -485,7 +466,8 @@
                << item->DebugString(false);
       state = new SafeBrowsingState();
       state->set_callback(internal_complete_callback);
-      item->SetUserData(&kSafeBrowsingUserDataKey, base::WrapUnique(state));
+      item->SetUserData(&SafeBrowsingState::kSafeBrowsingUserDataKey,
+                        base::WrapUnique(state));
       service->CheckClientDownload(
           item,
           base::Bind(&ChromeDownloadManagerDelegate::CheckClientDownloadDone,
@@ -1096,8 +1078,11 @@
     uint32_t download_id,
     safe_browsing::DownloadCheckResult result) {
   DownloadItem* item = download_manager_->GetDownload(download_id);
-  if (!item || (item->GetState() != DownloadItem::IN_PROGRESS))
+  if (!item || (item->GetState() != DownloadItem::IN_PROGRESS &&
+                item->GetDangerType() !=
+                    download::DOWNLOAD_DANGER_TYPE_ASYNC_SCANNING)) {
     return;
+  }
 
   DVLOG(2) << __func__ << "() download = " << item->DebugString(false)
            << " verdict = " << static_cast<int>(result);
@@ -1154,7 +1139,18 @@
     DCHECK_NE(danger_type,
               download::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT);
 
-    if (ShouldBlockFile(danger_type, item)) {
+    if (item->GetDangerType() ==
+        download::DOWNLOAD_DANGER_TYPE_ASYNC_SCANNING) {
+      // If the file was opened during async scanning, we override the danger
+      // type, since the user can no longer discard the download.
+      if (item->GetState() == DownloadItem::COMPLETE &&
+          danger_type != download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS) {
+        item->OnAsyncScanningCompleted(
+            download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_OPENED_DANGEROUS);
+      } else {
+        item->OnAsyncScanningCompleted(danger_type);
+      }
+    } else if (ShouldBlockFile(danger_type, item)) {
       item->OnContentCheckCompleted(
           // Specifying a dangerous type here would take precedence over the
           // blocking of the file.
@@ -1168,7 +1164,7 @@
 
   if (!is_pending_scanning) {
     SafeBrowsingState* state = static_cast<SafeBrowsingState*>(
-        item->GetUserData(&kSafeBrowsingUserDataKey));
+        item->GetUserData(&SafeBrowsingState::kSafeBrowsingUserDataKey));
     state->CompleteDownload();
   }
 }
@@ -1414,3 +1410,10 @@
 
   std::move(check_download_allowed_cb).Run(allow);
 }
+
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+ChromeDownloadManagerDelegate::SafeBrowsingState::~SafeBrowsingState() {}
+
+const char ChromeDownloadManagerDelegate::SafeBrowsingState::
+    kSafeBrowsingUserDataKey[] = "Safe Browsing ID";
+#endif  // FULL_SAFE_BROWSING
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
index 5b4a3d3..bb543502 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.h
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
@@ -19,6 +19,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "build/build_config.h"
+#include "chrome/browser/download/download_completion_blocker.h"
 #include "chrome/browser/download/download_target_determiner_delegate.h"
 #include "chrome/browser/download/download_target_info.h"
 #include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
@@ -133,6 +134,22 @@
 
   DownloadPrefs* download_prefs() { return download_prefs_.get(); }
 
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+  // The state of a safebrowsing check.
+  class SafeBrowsingState : public DownloadCompletionBlocker {
+   public:
+    SafeBrowsingState() = default;
+    ~SafeBrowsingState() override;
+
+    // String pointer used for identifying safebrowing data associated with
+    // a download item.
+    static const char kSafeBrowsingUserDataKey[];
+
+   private:
+    DISALLOW_COPY_AND_ASSIGN(SafeBrowsingState);
+  };
+#endif  // FULL_SAFE_BROWSING
+
  protected:
   virtual safe_browsing::DownloadProtectionService*
       GetDownloadProtectionService();
diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc
index c0642884..661681eb 100644
--- a/chrome/browser/download/download_item_model.cc
+++ b/chrome/browser/download/download_item_model.cc
@@ -705,3 +705,14 @@
 bool DownloadItemModel::IsExtensionDownload() const {
   return download_crx_util::IsExtensionDownload(*download_);
 }
+
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+void DownloadItemModel::CompleteSafeBrowsingScan() {
+  ChromeDownloadManagerDelegate::SafeBrowsingState* state =
+      static_cast<ChromeDownloadManagerDelegate::SafeBrowsingState*>(
+          download_->GetUserData(
+              &ChromeDownloadManagerDelegate::SafeBrowsingState::
+                  kSafeBrowsingUserDataKey));
+  state->CompleteDownload();
+}
+#endif
diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/download/download_item_model.h
index 7d326552..31e5bdd2 100644
--- a/chrome/browser/download/download_item_model.h
+++ b/chrome/browser/download/download_item_model.h
@@ -13,6 +13,7 @@
 #include "chrome/browser/download/download_ui_model.h"
 #include "chrome/common/safe_browsing/download_file_types.pb.h"
 #include "components/download/public/common/download_item.h"
+#include "components/safe_browsing/buildflags.h"
 
 // Implementation of DownloadUIModel that wrappers around a |DownloadItem*|. As
 // such, the caller is expected to ensure that the |download| passed into the
@@ -87,6 +88,10 @@
                       DownloadCommands::Command command) override;
 #endif
 
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+  void CompleteSafeBrowsingScan() override;
+#endif
+
   // download::DownloadItem::Observer implementation.
   void OnDownloadUpdated(download::DownloadItem* download) override;
   void OnDownloadOpened(download::DownloadItem* download) override;
diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc
index a0da457..4b5c344 100644
--- a/chrome/browser/download/download_ui_model.cc
+++ b/chrome/browser/download/download_ui_model.cc
@@ -660,3 +660,7 @@
   // Instead of displaying "0 B" we say "Starting..."
   return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING);
 }
+
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+void DownloadUIModel::CompleteSafeBrowsingScan() {}
+#endif
diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/download/download_ui_model.h
index d53ead3..b7eb87fd 100644
--- a/chrome/browser/download/download_ui_model.h
+++ b/chrome/browser/download/download_ui_model.h
@@ -17,6 +17,7 @@
 #include "chrome/common/safe_browsing/download_file_types.pb.h"
 #include "components/download/public/common/download_item.h"
 #include "components/offline_items_collection/core/offline_item.h"
+#include "components/safe_browsing/buildflags.h"
 
 #if !defined(OS_ANDROID)
 #include "chrome/browser/download/download_commands.h"
@@ -300,6 +301,11 @@
                               DownloadCommands::Command command);
 #endif
 
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+  // Complete the Safe Browsing scan early.
+  virtual void CompleteSafeBrowsingScan();
+#endif
+
  protected:
   // Returns the MIME type of the download.
   virtual std::string GetMimeType() const;
diff --git a/chrome/browser/enterprise_reporting/prefs.cc b/chrome/browser/enterprise_reporting/prefs.cc
index f878e69..28261aff 100644
--- a/chrome/browser/enterprise_reporting/prefs.cc
+++ b/chrome/browser/enterprise_reporting/prefs.cc
@@ -23,6 +23,7 @@
 
 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
   registry->RegisterBooleanPref(prefs::kCloudExtensionRequestEnabled, false);
+  registry->RegisterListPref(prefs::kCloudExtensionRequestIds);
 }
 
 }  // namespace enterprise_reporting
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index a51022b7..13c8d41 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3063,6 +3063,7 @@
 const char kUseAngleGL[] = "OpenGL";
 const char kUseAngleD3D11[] = "D3D11";
 const char kUseAngleD3D9[] = "D3D9";
+const char kUseAngleD3D11on12[] = "D3D11on12";
 
 const char kUseWinrtMidiApiName[] = "Use Windows Runtime MIDI API";
 const char kUseWinrtMidiApiDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index ed8b9f9..fb879734 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1793,6 +1793,7 @@
 extern const char kUseAngleGL[];
 extern const char kUseAngleD3D11[];
 extern const char kUseAngleD3D9[];
+extern const char kUseAngleD3D11on12[];
 
 extern const char kUseWinrtMidiApiName[];
 extern const char kUseWinrtMidiApiDescription[];
diff --git a/chrome/browser/geolocation/geolocation_browsertest.cc b/chrome/browser/geolocation/geolocation_browsertest.cc
index a2feb74..83b24c1 100644
--- a/chrome/browser/geolocation/geolocation_browsertest.cc
+++ b/chrome/browser/geolocation/geolocation_browsertest.cc
@@ -506,7 +506,14 @@
   ExpectPosition(fake_latitude(), fake_longitude());
 }
 
-IN_PROC_BROWSER_TEST_F(GeolocationBrowserTest, PromptForOffTheRecord) {
+// Crashes on Win only.  http://crbug.com/1014506
+#if defined(OS_WIN)
+#define MAYBE_PromptForOffTheRecord DISABLED_PromptForOffTheRecord
+#else
+#define MAYBE_PromptForOffTheRecord PromptForOffTheRecord
+#endif
+
+IN_PROC_BROWSER_TEST_F(GeolocationBrowserTest, MAYBE_PromptForOffTheRecord) {
   // For a regular profile the user is prompted, and when granted the position
   // gets to the script.
   ASSERT_NO_FATAL_FAILURE(Initialize(INITIALIZATION_DEFAULT));
diff --git a/chrome/browser/google/google_brand_code_map_chromeos.cc b/chrome/browser/google/google_brand_code_map_chromeos.cc
index 7f8f870..38f659a 100644
--- a/chrome/browser/google/google_brand_code_map_chromeos.cc
+++ b/chrome/browser/google/google_brand_code_map_chromeos.cc
@@ -24,76 +24,140 @@
       kBrandCodeMap({{"ACAC", {"CFZM", "BEUH", "GUTN"}},
                      {"ACAG", {"KSOU", "MUHR", "YYJR"}},
                      {"ACAH", {"KEFG", "RYNH", "HHAZ"}},
+                     {"ACAI", {"BKWQ", "CMVE", "VNFQ"}},
                      {"ACAJ", {"KVPC", "UHAI", "CPNG"}},
+                     {"ACAK", {"PQNT", "MDWH", "AJKH"}},
                      {"ACAM", {"HBCZ", "ZGSZ", "MFUO"}},
                      {"ACAO", {"MWDF", "BNNY", "SYIY"}},
                      {"ACAP", {"LKNW", "SVFL", "FGKR"}},
+                     {"ACAQ", {"JXWA", "PZLO", "AKLZ"}},
                      {"ACAR", {"EAQE", "UHHJ", "ZYFW"}},
+                     {"ACAS", {"JEHD", "XUID", "FNGA"}},
                      {"ACAT", {"RJNJ", "CKCB", "VHGI"}},
+                     {"ACAU", {"DXIN", "LPNB", "FIXM"}},
                      {"ACAV", {"TTSD", "XTQQ", "TIQC"}},
+                     {"ACAX", {"CFKW", "QKXN", "VXIS"}},
                      {"ACAY", {"HKDC", "RYKK", "KSIY"}},
+                     {"ACAZ", {"VHDQ", "AOTU", "WAMY"}},
                      {"ACBA", {"TVZD", "HLQR", "DOWV"}},
+                     {"ACBB", {"ABIB", "LFJO", "ZQSG"}},
+                     {"ACBC", {"UFPX", "WVQM", "MLYC"}},
+                     {"ACBD", {"BRFU", "HBXU", "FAQM"}},
+                     {"ACBE", {"JQFF", "GOJK", "ALHM"}},
+                     {"ACBF", {"SSNP", "VHIH", "QMFD"}},
                      {"ADGK", {"PKUQ", "AEMI", "CUUL"}},
+                     {"ALRH", {"XDKE", "TDIH", "VLER"}},
                      {"AOKF", {"ZKSY", "KRPA", "QAZL"}},
+                     {"AOPA", {"TTBL", "HHHA", "SADO"}},
+                     {"AOPB", {"WFJJ", "ZQCN", "OMBM"}},
+                     {"AOPC", {"CAKV", "AASR", "BXLX"}},
+                     {"AOPD", {"PFAH", "NIUP", "MQIF"}},
+                     {"AOPE", {"ZMYO", "BBQM", "UOUV"}},
+                     {"ARBI", {"GFHA", "FBQD", "WRQR"}},
                      {"ASCT", {"CTRF", "LBBD", "YBND"}},
                      {"ASUA", {"IEIT", "JAIV", "MURN"}},
+                     {"ASUB", {"QBBW", "RUGL", "UVVX"}},
                      {"ASUD", {"QLMM", "CRUA", "JSID"}},
                      {"ASUE", {"XLEN", "KECH", "HBGX"}},
                      {"ASUF", {"IVGE", "VNTM", "XELD"}},
+                     {"ASUG", {"TSGW", "DZUL", "HFLO"}},
+                     {"ASUH", {"DDNS", "OMSX", "VVWZ"}},
                      {"ASUJ", {"HJUL", "XWWL", "WSCY"}},
                      {"ASUK", {"RGUX", "OXBQ", "LDTL"}},
+                     {"ASUL", {"ZJXP", "HGDC", "OFPC"}},
+                     {"ASUN", {"ERAF", "HZQI", "JBDP"}},
+                     {"ASUO", {"RCMY", "NLPS", "JOKT"}},
                      {"AYMH", {"BBMB", "VBWP", "BVTP"}},
                      {"BAQN", {"YJJJ", "LDCA", "QSJF"}},
                      {"BAUA", {"UWIF", "EOEW", "RPDR"}},
                      {"BCOL", {"YJDV", "GSIC", "BAUL"}},
                      {"BDIW", {"UDUG", "TRYQ", "PWFV"}},
+                     {"CBUY", {"POUW", "GHJY", "USXU"}},
+                     {"CLSF", {"OWOB", "RLJX", "OZWK"}},
+                     {"CPPT", {"CQFF", "PCCZ", "HZEW"}},
                      {"CQPQ", {"GATZ", "QAVU", "WRXC"}},
                      {"CSLV", {"BZSH", "ZDXA", "HGGZ"}},
+                     {"CTIE", {"EURD", "HZJV", "WBJJ"}},
                      {"CYQR", {"XGJJ", "DRMC", "RUQD"}},
                      {"CYSQ", {"NHHD", "TAVM", "FHSA"}},
                      {"DEAA", {"HXUG", "BJUN", "IYTV"}},
+                     {"DEAB", {"ARPQ", "MFRJ", "JWTH"}},
                      {"DEAC", {"DSMM", "IXET", "KQDV"}},
+                     {"DEAD", {"QJXG", "AGGP", "GYQT"}},
+                     {"DEAE", {"NZAS", "IHEL", "JSYE"}},
                      {"DEAF", {"TATK", "RWXF", "DQDT"}},
                      {"DEAG", {"JFEX", "CVLN", "UFWN"}},
+                     {"DEAH", {"HRBU", "DJKF", "CMPZ"}},
                      {"DRYI", {"LWTQ", "OLEY", "NWUA"}},
                      {"DVUG", {"HJHV", "KPAH", "DCQS"}},
+                     {"DXZT", {"WNSK", "WNDA", "DZWQ"}},
                      {"ELQA", {"GTJZ", "DTIH", "IXVN"}},
                      {"FCVS", {"HOBX", "YMDN", "GKTP"}},
                      {"FQPJ", {"ZTQG", "ZNEO", "LYMZ"}},
+                     {"FQZI", {"WPBA", "YZDA", "FXCI"}},
                      {"FSFR", {"ZDAR", "BERM", "COKX"}},
                      {"FSGY", {"PJQC", "RHZW", "POVI"}},
                      {"FWVK", {"MUTD", "GWKK", "SQSC"}},
+                     {"GBWE", {"DKLE", "OUDI", "VWJC"}},
                      {"GJZV", {"BUSA", "GIOS", "UYOM"}},
+                     {"GOKU", {"PRAG", "PQVF", "PIDI"}},
+                     {"HDPY", {"JCUZ", "TMKK", "XMVQ"}},
+                     {"HFRG", {"YGYA", "IWET", "PSFN"}},
+                     {"HHRN", {"IGZW", "ICRP", "QQKJ"}},
                      {"HOMH", {"BXHI", "WXYD", "VRZY"}},
                      {"HOWM", {"MJNG", "XPYN", "IRWY"}},
+                     {"HPZO", {"SICM", "XEGH", "TDJJ"}},
                      {"HPZP", {"NQDY", "QIMT", "QKAK"}},
                      {"HPZQ", {"XGER", "OLTF", "DVQA"}},
+                     {"HPZR", {"ZAQH", "WPSK", "TCHA"}},
                      {"HPZS", {"QRFK", "SQGI", "VESI"}},
                      {"HPZT", {"IUCU", "WDAV", "LOLH"}},
                      {"HPZV", {"WAFN", "PQVW", "MJVM"}},
+                     {"HPZW", {"TLLY", "WNPD", "XIFO"}},
+                     {"HPZX", {"DNXN", "VHRG", "XTRZ"}},
                      {"HPZY", {"RAWP", "CNRC", "TPIA"}},
+                     {"HPZZ", {"FJGP", "GMLT", "SZQX"}},
                      {"HUIJ", {"EVJI", "RNMR", "JQZR"}},
                      {"IHZG", {"MLLN", "EZTK", "GJEJ"}},
+                     {"INUT", {"BRSN", "OJOO", "DWSP"}},
                      {"JBPA", {"VUZL", "XYPI", "XOWE"}},
+                     {"JFZB", {"PFDC", "XJDX", "CPXX"}},
                      {"JLRH", {"SAMJ", "GLJZ", "SKTN"}},
                      {"JPZQ", {"CCBQ", "ABTW", "KFNE"}},
+                     {"JXIS", {"ZYZD", "TEIT", "ILLN"}},
                      {"JYXK", {"USZT", "XXPU", "LJHH"}},
+                     {"KABJ", {"ISGW", "KOHG", "BPGB"}},
+                     {"KLKW", {"PIDD", "JIKU", "QTVN"}},
                      {"KXUH", {"RIFT", "DZUO", "ZSEI"}},
                      {"LASN", {"ILWC", "BQYG", "RROZ"}},
+                     {"LEAA", {"DHUB", "OBDS", "YMSJ"}},
+                     {"LEAB", {"LRHX", "EFFC", "SZFH"}},
                      {"LEAC", {"DMEA", "EXWD", "PBTU"}},
+                     {"LEAD", {"QXLJ", "GDOH", "RJNB"}},
                      {"LEAE", {"QFVM", "GACH", "BMXB"}},
+                     {"LEAF", {"KGXB", "OUVB", "GTLI"}},
                      {"LEAG", {"XTLW", "WLQO", "QVKP"}},
                      {"LEAH", {"QIDR", "XBTQ", "QYUO"}},
                      {"LEAI", {"KCSV", "PRBF", "FVDO"}},
+                     {"LEAJ", {"OBPJ", "NJJS", "WOFS"}},
                      {"LEAK", {"CGWM", "ZLOS", "JGTD"}},
                      {"LEAL", {"EYPX", "SOCH", "PFPW"}},
+                     {"LEAM", {"ZGEL", "KZQA", "PSAL"}},
+                     {"LEAN", {"MEYH", "PXTT", "LFVK"}},
                      {"LEAO", {"MKOE", "YJSI", "QQMN"}},
                      {"LEAP", {"AEZG", "JOYE", "JHWK"}},
+                     {"LGAA", {"YOGJ", "UGWO", "DAMU"}},
+                     {"LOEB", {"HPPW", "LGZO", "NZIZ"}},
+                     {"LOEM", {"XQSP", "HYHH", "GQQF"}},
+                     {"LOFP", {"DGNA", "ZXHN", "ARBG"}},
+                     {"LOFR", {"ZOWO", "ZSTS", "JXBM"}},
+                     {"LOFY", {"SCIO", "HJKR", "TBOP"}},
                      {"LYLN", {"XXWY", "JEUV", "RSOC"}},
                      {"MAII", {"EOHR", "XZOT", "VJJS"}},
                      {"MCDN", {"BAOV", "GLVV", "XHGO"}},
                      {"MCOO", {"IPNW", "CRSK", "QTAX"}},
                      {"MNZG", {"PPTP", "OFXE", "ROJJ"}},
+                     {"MXUY", {"IRZH", "ADQR", "PCST"}},
                      {"NBQS", {"KMJF", "MFWA", "UWRX"}},
                      {"NOMD", {"GZLV", "UNZR", "FVOP"}},
                      {"NPEC", {"BMGD", "YETH", "XAWJ"}},
@@ -101,25 +165,38 @@
                      {"OKWC", {"RGFB", "UPFP", "HUVK"}},
                      {"PAZD", {"VARX", "KZSU", "WPLH"}},
                      {"PGQF", {"USPJ", "SFKO", "KNBH"}},
+                     {"PHYB", {"EGXD", "KHYC", "QUPU"}},
                      {"PXDO", {"ZXCF", "TQWC", "HOAL"}},
+                     {"QKTA", {"USGV", "UPMS", "ZVTZ"}},
+                     {"QYGU", {"FYBR", "QLFJ", "OLRV"}},
+                     {"QZUX", {"HNBM", "BUJY", "FFDE"}},
                      {"RKRB", {"OPOY", "QMZZ", "FAGR"}},
                      {"RVRM", {"MZJU", "IGXP", "DSJP"}},
+                     {"SHAN", {"OERN", "XNHK", "GVYX"}},
+                     {"SMAC", {"FDEX", "ZFXY", "DJMW"}},
+                     {"SMAD", {"AADC", "URZK", "UBVE"}},
                      {"SMAE", {"SUUV", "QXWL", "LYKX"}},
                      {"SMAF", {"HKPA", "NFCE", "UBOP"}},
+                     {"SMAG", {"DPGH", "PQFA", "ROEP"}},
                      {"SMAH", {"EXLB", "YYYY", "LLLA"}},
                      {"SMAI", {"PPDO", "ISMM", "BKNT"}},
                      {"SMAJ", {"PVCB", "UCIK", "XVBK"}},
                      {"SMAK", {"WOMZ", "OHAX", "JSTF"}},
                      {"SMAL", {"OWLX", "YXSA", "TXJR"}},
+                     {"SOCA", {"AJGR", "IYZW", "NPDX"}},
                      {"TAAB", {"ZBMY", "NYDT", "CXYZ"}},
+                     {"TAAC", {"YBVP", "RXXN", "HMDY"}},
                      {"TKER", {"KOSM", "IUCL", "LIIM"}},
                      {"TKZT", {"KWCM", "APLN", "STGO"}},
+                     {"TMTX", {"CNAW", "BEDK", "HGOT"}},
                      {"UGAY", {"YDHM", "HVCY", "ILHO"}},
                      {"UMAU", {"FKAK", "JCTZ", "GDUU"}},
                      {"VEUT", {"JDFA", "ALIR", "DDJM"}},
                      {"VHUH", {"JYDF", "SFJY", "JMBU"}},
+                     {"VVUC", {"WQCU", "YUMW", "YHYC"}},
                      {"WBZQ", {"LAYK", "LQDM", "QBFV"}},
                      {"WJOZ", {"BASQ", "BRTL", "CQAV"}},
+                     {"WMVU", {"GMMR", "AVVS", "IMDF"}},
                      {"XFUX", {"UHAM", "NEHU", "SHMG"}},
                      {"XVTK", {"TMUU", "BTWW", "THQH"}},
                      {"XVYQ", {"UAVB", "OEMI", "VQVK"}},
@@ -127,11 +204,17 @@
                      {"YHYU", {"CDLM", "QDXQ", "HPTE"}},
                      {"YMJL", {"LBTX", "YPBE", "LHMF"}},
                      {"YMMU", {"ZVIA", "CFKN", "ERLO"}},
+                     {"YPCE", {"CCCC", "VHQK", "PYBL"}},
                      {"YVRQ", {"LBMS", "AKKB", "UFNF"}},
+                     {"YXBK", {"VKAU", "HUNQ", "AFRP"}},
+                     {"YXED", {"KDUD", "MTUI", "WLHI"}},
                      {"ZDKS", {"UBRP", "AWQF", "GOVG"}},
                      {"ZFCZ", {"JQUA", "SEEH", "RJVV"}},
+                     {"ZIWS", {"GSAE", "JJUF", "ZPRA"}},
+                     {"ZKJH", {"OBDQ", "OUAQ", "SPYY"}},
                      {"ZSKM", {"JPEZ", "FTUS", "ZFUF"}},
                      {"ZZAB", {"WVIK", "IUXK", "ZCIK"}},
+                     {"ZZAC", {"MBDD", "SMUW", "JEIY"}},
                      {"ZZAD", {"KSTH", "CBJY", "TSID"}},
                      {"ZZAF", {"OTWH", "RRNB", "VNXA"}}});
 
diff --git a/chrome/browser/page_load_metrics/observers/click_input_tracker.cc b/chrome/browser/page_load_metrics/observers/click_input_tracker.cc
index 9a6c55db..85505e8 100644
--- a/chrome/browser/page_load_metrics/observers/click_input_tracker.cc
+++ b/chrome/browser/page_load_metrics/observers/click_input_tracker.cc
@@ -6,11 +6,14 @@
 
 #include "base/metrics/field_trial_params.h"
 #include "base/metrics/histogram_macros.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
 #include "third_party/blink/public/platform/web_gesture_event.h"
 #include "third_party/blink/public/platform/web_mouse_event.h"
 
 namespace page_load_metrics {
 
+const int kMaxCountForUkm = 50;
+
 ClickInputTracker::ClickInputTracker() {
   // Set thresholds per Feature parameters as appropriate.
   time_delta_threshold_ =
@@ -68,13 +71,17 @@
   last_click_position_ = position;
 }
 
-void ClickInputTracker::RecordClickBurst() {
+void ClickInputTracker::RecordClickBurst(ukm::SourceId source_id) {
   if (!base::FeatureList::IsEnabled(kClickInputTracker))
     return;
 
   if (max_click_input_burst_ >= burst_count_threshold_) {
     UMA_HISTOGRAM_COUNTS_100("PageLoad.Experimental.ClickInputBurst",
                              max_click_input_burst_);
+    ukm::builders::ClickInput(source_id)
+        .SetExperimental_ClickInputBurst(
+            std::min(max_click_input_burst_, kMaxCountForUkm))
+        .Record(ukm::UkmRecorder::Get());
   }
 }
 
diff --git a/chrome/browser/page_load_metrics/observers/click_input_tracker.h b/chrome/browser/page_load_metrics/observers/click_input_tracker.h
index 1509775..d45d108 100644
--- a/chrome/browser/page_load_metrics/observers/click_input_tracker.h
+++ b/chrome/browser/page_load_metrics/observers/click_input_tracker.h
@@ -7,6 +7,7 @@
 
 #include "base/feature_list.h"
 #include "base/time/time.h"
+#include "services/metrics/public/cpp/ukm_source_id.h"
 #include "third_party/blink/public/platform/web_float_point.h"
 #include "third_party/blink/public/platform/web_input_event.h"
 
@@ -28,7 +29,7 @@
   void OnUserInput(const blink::WebInputEvent& event);
 
   // If this tracker identified a click burst, this will report metrics for it.
-  void RecordClickBurst();
+  void RecordClickBurst(ukm::SourceId source_id);
 
   int GetCurrentBurstCountForTesting() const {
     return current_click_input_burst_;
diff --git a/chrome/browser/page_load_metrics/observers/click_input_tracker_unittest.cc b/chrome/browser/page_load_metrics/observers/click_input_tracker_unittest.cc
index d804fbcc..d805a64b 100644
--- a/chrome/browser/page_load_metrics/observers/click_input_tracker_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/click_input_tracker_unittest.cc
@@ -5,13 +5,31 @@
 #include "chrome/browser/page_load_metrics/observers/click_input_tracker.h"
 
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/test_simple_task_runner.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "components/ukm/test_ukm_recorder.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/platform/web_gesture_event.h"
 #include "third_party/blink/public/platform/web_mouse_event.h"
 
 namespace page_load_metrics {
 
-TEST(ClickInputTrackerTest, OnUserInputGestureTapClickBurst) {
+class ClickInputTrackerTest : public testing::Test {
+ public:
+  ClickInputTrackerTest()
+      : task_runner_(new base::TestSimpleTaskRunner),
+        task_runner_handle_(task_runner_) {}
+
+ protected:
+  scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
+  base::ThreadTaskRunnerHandle task_runner_handle_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ClickInputTrackerTest);
+};
+
+TEST_F(ClickInputTrackerTest, OnUserInputGestureTapClickBurst) {
   ClickInputTracker click_tracker;
 
   base::TimeTicks timestamp = base::TimeTicks::Now();
@@ -54,12 +72,23 @@
   EXPECT_EQ(4, click_tracker.GetMaxBurstCountForTesting());
 
   base::HistogramTester histogram_tester;
-  click_tracker.RecordClickBurst();
+  ukm::TestAutoSetUkmRecorder test_ukm_recorder;
+  ukm::SourceId ukm_source_id = ukm::SourceId(1);
+  click_tracker.RecordClickBurst(ukm_source_id);
   histogram_tester.ExpectUniqueSample("PageLoad.Experimental.ClickInputBurst",
                                       4, 1);
+
+  // Verify UKM entry.
+  task_runner_->RunUntilIdle();
+  using UkmEntry = ukm::builders::ClickInput;
+  auto entries = test_ukm_recorder.GetEntriesByName(UkmEntry::kEntryName);
+  ASSERT_EQ(1u, entries.size());
+  auto* entry = entries.at(0);
+  test_ukm_recorder.ExpectEntryMetric(
+      entry, UkmEntry::kExperimental_ClickInputBurstName, 4);
 }
 
-TEST(ClickInputTrackerTest, OnUserInputMouseUpClickBurst) {
+TEST_F(ClickInputTrackerTest, OnUserInputMouseUpClickBurst) {
   ClickInputTracker click_tracker;
 
   base::TimeTicks timestamp = base::TimeTicks::Now();
@@ -123,7 +152,8 @@
   EXPECT_EQ(5, click_tracker.GetMaxBurstCountForTesting());
 
   base::HistogramTester histogram_tester;
-  click_tracker.RecordClickBurst();
+  ukm::SourceId ukm_source_id = ukm::SourceId(1);
+  click_tracker.RecordClickBurst(ukm_source_id);
   histogram_tester.ExpectUniqueSample("PageLoad.Experimental.ClickInputBurst",
                                       5, 1);
 }
diff --git a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
index c0ebc7ef..1e0cd58c 100644
--- a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
@@ -965,7 +965,7 @@
   PAGE_RESOURCE_COUNT_HISTOGRAM(internal::kHistogramTotalCompletedResources,
                                 num_cache_resources_ + num_network_resources_);
 
-  click_tracker_.RecordClickBurst();
+  click_tracker_.RecordClickBurst(GetDelegate().GetSourceId());
 }
 
 void CorePageLoadMetricsObserver::OnTimingUpdate(
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index b3a255b6..68b0d6e 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -1586,13 +1586,11 @@
       prefs::kNoteTakingAppsLockScreenWhitelist, false /*allow_wildcards*/));
   handlers->AddHandler(
       std::make_unique<SecondaryGoogleAccountSigninPolicyHandler>());
-  if (base::FeatureList::IsEnabled(features::kUsageTimeLimitPolicy)) {
-    handlers->AddHandler(std::make_unique<SimpleSchemaValidatingPolicyHandler>(
-        key::kUsageTimeLimit, prefs::kUsageTimeLimit, chrome_schema,
-        SCHEMA_ALLOW_UNKNOWN,
-        SimpleSchemaValidatingPolicyHandler::RECOMMENDED_PROHIBITED,
-        SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED));
-  }
+  handlers->AddHandler(std::make_unique<SimpleSchemaValidatingPolicyHandler>(
+      key::kUsageTimeLimit, prefs::kUsageTimeLimit, chrome_schema,
+      SCHEMA_ALLOW_UNKNOWN,
+      SimpleSchemaValidatingPolicyHandler::RECOMMENDED_PROHIBITED,
+      SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED));
   handlers->AddHandler(std::make_unique<ArcServicePolicyHandler>(
       key::kArcBackupRestoreServiceEnabled,
       arc::prefs::kArcBackupRestoreEnabled));
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 22ada1c..b99be9bc 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -308,6 +308,7 @@
 #include "chromeos/network/fast_transition_observer.h"
 #include "chromeos/network/proxy/proxy_config_handler.h"
 #include "chromeos/services/assistant/public/cpp/assistant_prefs.h"
+#include "chromeos/services/device_sync/device_sync_impl.h"
 #include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
 #include "chromeos/timezone/timezone_resolver.h"
 #include "components/arc/arc_prefs.h"
@@ -913,6 +914,7 @@
   chromeos::AccountManager::RegisterPrefs(registry);
   chromeos::assistant::prefs::RegisterProfilePrefsForBrowser(registry);
   chromeos::CupsPrintersManager::RegisterProfilePrefs(registry);
+  chromeos::device_sync::DeviceSyncImpl::RegisterProfilePrefs(registry);
   chromeos::first_run::RegisterProfilePrefs(registry);
   chromeos::file_system_provider::RegisterProfilePrefs(registry);
   chromeos::KerberosCredentialsManager::RegisterProfilePrefs(registry);
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 b8d65a5..edf19f00 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -110,6 +110,7 @@
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h"
+#include "chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h"
 #include "chrome/browser/chromeos/bluetooth/debug_logs_manager_factory.h"
 #include "chrome/browser/chromeos/crostini/crostini_registry_service_factory.h"
 #include "chrome/browser/chromeos/extensions/login_screen/login_state/session_state_changed_event_dispatcher.h"
@@ -236,6 +237,9 @@
   AccountConsistencyModeManagerFactory::GetInstance();
   AccountInvestigatorFactory::GetInstance();
   AccountReconcilorFactory::GetInstance();
+#if defined(OS_CHROMEOS)
+  arc::ArcAccessibilityHelperBridge::CreateFactory();
+#endif
   AutocompleteClassifierFactory::GetInstance();
   autofill::PersonalDataManagerFactory::GetInstance();
 #if BUILDFLAG(ENABLE_BACKGROUND_CONTENTS)
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
index 4fb266c..b242b95 100644
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -171,7 +171,6 @@
 #include "chrome/browser/chromeos/android_sms/android_sms_app_manager.h"
 #include "chrome/browser/chromeos/android_sms/android_sms_pairing_state_tracker_impl.h"
 #include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h"
-#include "chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h"
 #include "chrome/browser/chromeos/arc/session/arc_service_launcher.h"
 #include "chrome/browser/chromeos/authpolicy/auth_policy_credentials_manager.h"
 #include "chrome/browser/chromeos/cryptauth/gcm_device_info_provider_impl.h"
@@ -975,7 +974,6 @@
 
 #if defined(OS_CHROMEOS)
   arc::ArcServiceLauncher::Get()->MaybeSetProfile(this);
-  arc::ArcAccessibilityHelperBridge::GetForBrowserContext(this);
 #endif
 
   FullBrowserTransitionManager::Get()->OnProfileCreated(this);
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
index f621ecf1..388c3c5 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
@@ -61,7 +61,7 @@
 <translation id="1339428534620983148">Coluna anterior da tabela</translation>
 <translation id="1342835525016946179">article</translation>
 <translation id="1346059596910821859">Dica</translation>
-<translation id="1346748346194534595">Para a direita</translation>
+<translation id="1346748346194534595">À direita</translation>
 <translation id="135978014023467274">Você recebeu a atualização para o ChromeVox 63.</translation>
 <translation id="1360699455582016846">Clique no item abaixo da tecla de roteamento <ph name="ROUTING_KEY_NUMBER" /></translation>
 <translation id="136718599399906424">Próxima linha de tabela</translation>
@@ -76,7 +76,7 @@
 <translation id="1439316808600711881">rgn</translation>
 <translation id="1452236308086741652">Caixa de texto de senha <ph name="VALUE" /></translation>
 <translation id="146450394670219700">Objeto gráfico</translation>
-<translation id="1467432559032391204">Para a esquerda</translation>
+<translation id="1467432559032391204">À esquerda</translation>
 <translation id="1474557363159888097">Nenhuma âncora anterior.</translation>
 <translation id="1480046233931937785">Créditos</translation>
 <translation id="1487494366197411587">No Chromebook, a tecla Pesquisa fica imediatamente acima da tecla Shift do lado esquerdo.</translation>
diff --git a/chrome/browser/resources/chromeos/login/discover/discover_app.js b/chrome/browser/resources/chromeos/login/discover/discover_app.js
index 2dc0cd6..c24b76a 100644
--- a/chrome/browser/resources/chromeos/login/discover/discover_app.js
+++ b/chrome/browser/resources/chromeos/login/discover/discover_app.js
@@ -31,6 +31,9 @@
     enableKeyboardFlow: function(data) {},
     refreshA11yInfo: function(data) {},
     setClientAreaSize: function(data) {},
+    setLabelText: function(data) {},
+    setShelfHeight: function(data) {},
+    setVirtualKeyboardShown: function(data) {},
     showAPIKeysNotice: function(data) {},
     showOobeUI: function(data) {},
     showVersion: function(data) {},
diff --git a/chrome/browser/resources/feedback/html/default.html b/chrome/browser/resources/feedback/html/default.html
index 4443627..c2e2f27 100644
--- a/chrome/browser/resources/feedback/html/default.html
+++ b/chrome/browser/resources/feedback/html/default.html
@@ -47,13 +47,14 @@
     <!-- Attach a file -->
     <div id="attach-file-container" class="text-field-container">
       <label id="attach-file-label" i18n-content="attach-file-label"></label>
-      <input id="attach-file" type="file" aria-labelledby="attach-file-label">
+      <input id="attach-file" type="file" aria-labelledby="attach-file-label"
+           aria-describedby="attach-file-note">
       <div id="custom-file-container" hidden>
         <label id="attached-filename-text"></label>
         <button id="remove-attached-file" class="remove-file-button"></button>
       </div>
       <div id="attach-error" class="attach-file-notification"
-          i18n-content="attach-file-to-big" hidden></div>
+          role="alert" i18n-content="attach-file-to-big" hidden></div>
     </div>
     <div id="attach-file-note" i18n-content="attach-file-note"></div>
     <!-- Screenshot -->
diff --git a/chrome/browser/resources/settings/printing_page/cups_printer_dialog_util.js b/chrome/browser/resources/settings/printing_page/cups_printer_dialog_util.js
index e6cece7..46b1be62 100644
--- a/chrome/browser/resources/settings/printing_page/cups_printer_dialog_util.js
+++ b/chrome/browser/resources/settings/printing_page/cups_printer_dialog_util.js
@@ -166,6 +166,15 @@
     return printer.printerName.toLowerCase().includes(searchTerm.toLowerCase());
   }
 
+  /**
+   * @param {!PrinterListEntry} first
+   * @param {!PrinterListEntry} second
+   * @return {boolean}
+   */
+  function arePrinterIdsEqual(first, second) {
+    return first.printerInfo.printerId == second.printerInfo.printerId;
+  }
+
   return {
     isNetworkProtocol: isNetworkProtocol,
     isNameAndAddressValid: isNameAndAddressValid,
@@ -175,5 +184,6 @@
     getErrorText: getErrorText,
     sortPrinters: sortPrinters,
     matchesSearchTerm: matchesSearchTerm,
+    arePrinterIdsEqual: arePrinterIdsEqual,
   };
 });
diff --git a/chrome/browser/resources/settings/printing_page/cups_printers.js b/chrome/browser/resources/settings/printing_page/cups_printers.js
index ebd1009..ece6184 100644
--- a/chrome/browser/resources/settings/printing_page/cups_printers.js
+++ b/chrome/browser/resources/settings/printing_page/cups_printers.js
@@ -156,7 +156,7 @@
    * }>} event
    * @private
    */
-   openResultToast_: function(event) {
+  openResultToast_: function(event) {
     const printerName = event.detail.printerName;
     switch (event.detail.resultCode) {
       case PrinterSetupResult.SUCCESS:
diff --git a/chrome/browser/resources/settings/printing_page/cups_printers_entry_list_behavior.js b/chrome/browser/resources/settings/printing_page/cups_printers_entry_list_behavior.js
index 9b557ff..59588b2 100644
--- a/chrome/browser/resources/settings/printing_page/cups_printers_entry_list_behavior.js
+++ b/chrome/browser/resources/settings/printing_page/cups_printers_entry_list_behavior.js
@@ -56,7 +56,7 @@
   },
 
   /**
-   * Non-empty/null fields indicate the applicable change to be notified.
+   * Non-empty params indicate the applicable change to be notified.
    * @param {!Array<!PrinterListEntry>} savedPrinters
    * @param {!Array<!PrinterListEntry>} addedPrinters
    * @param {!Array<!PrinterListEntry>} removedPrinters
@@ -67,6 +67,14 @@
     this.updateList(
         'savedPrinters', printer => printer.printerInfo.printerId,
         savedPrinters);
+
+    assert(!(addedPrinters.length && removedPrinters.length));
+
+    if (addedPrinters.length) {
+      this.onSavedPrintersAdded(addedPrinters);
+    } else if (removedPrinters.length) {
+      this.onSavedPrintersRemoved(removedPrinters);
+    }
   },
 
   /**
@@ -77,5 +85,14 @@
     this.updateList(
         'nearbyPrinters', printer => printer.printerInfo.printerId,
         printerList);
-  }
+  },
+
+  // CupsPrintersEntryListBehavior methods. Override these in the
+  // implementations.
+
+  /** @param{!Array<!PrinterListEntry>} addedPrinters */
+  onSavedPrintersAdded: function(addedPrinters) {},
+
+  /** @param{!Array<!PrinterListEntry>} removedPrinters */
+  onSavedPrintersRemoved: function(removedPrinters) {},
 };
\ No newline at end of file
diff --git a/chrome/browser/resources/settings/printing_page/cups_printers_entry_manager.js b/chrome/browser/resources/settings/printing_page/cups_printers_entry_manager.js
index 0beacd37..86908fb 100644
--- a/chrome/browser/resources/settings/printing_page/cups_printers_entry_manager.js
+++ b/chrome/browser/resources/settings/printing_page/cups_printers_entry_manager.js
@@ -23,16 +23,6 @@
 
 cr.define('settings.printing', function() {
   /**
-   * @param {!PrinterListEntry} first
-   * @param {!PrinterListEntry} second
-   * @return {boolean}
-   * @private
-   */
-  function arePrinterIdsEqual_(first, second) {
-    return first.printerInfo.printerId == second.printerInfo.printerId;
-  }
-
-  /**
    * Finds the printers that are in |firstArr| but not in |secondArr|.
    * @param {!Array<!PrinterListEntry>} firstArr
    * @param {!Array<!PrinterListEntry>} secondArr
@@ -41,7 +31,8 @@
    */
   function findDifference_(firstArr, secondArr) {
     return firstArr.filter((firstArrEntry) => {
-      return !secondArr.some(arePrinterIdsEqual_.bind(this, firstArrEntry));
+      return !secondArr.some(
+          p => p.printerInfo.printerId == firstArrEntry.printerInfo.printerId);
     });
   }
 
diff --git a/chrome/browser/resources/settings/printing_page/cups_saved_printers.html b/chrome/browser/resources/settings/printing_page/cups_saved_printers.html
index 969697f..17ef75b 100644
--- a/chrome/browser/resources/settings/printing_page/cups_saved_printers.html
+++ b/chrome/browser/resources/settings/printing_page/cups_saved_printers.html
@@ -3,6 +3,7 @@
 <link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html">
 <link rel="import" href="chrome://resources/html/list_property_update_behavior.html">
 <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-list/iron-list.html">
 <link rel="import" href="cups_printer_types.html">
 <link rel="import" href="cups_printers_browser_proxy.html">
@@ -12,7 +13,8 @@
 
 <dom-module id="settings-cups-saved-printers">
   <template>
-    <style include="cups-printer-shared">
+    <style include="settings-shared iron-flex iron-flex-alignment
+        iron-flex-factors">
       :host {
         display: flex;
         flex-direction: column;
@@ -21,6 +23,28 @@
       #no-search-results {
         margin-bottom: 20px;
       }
+
+      /** Height of iron list row entry. */
+      #show-more-container {
+        min-height: var(--settings-row-min-height);
+      }
+
+      /** Border line that is the same size as a list entry's border. */
+      #show-more-line-separator {
+        border-bottom: var(--cr-separator-line);
+        left: 60px;
+        position: relative;
+        right: 20px;
+        width: 596px;
+      }
+
+      #show-more-icon {
+        --cr-icon-button-margin-end: 0;
+      }
+
+      #show-more-text {
+        flex: 1;
+      }
     </style>
 
     <cr-action-menu>
@@ -39,6 +63,20 @@
         </settings-cups-printers-entry>
       </template>
     </iron-list>
+    <template is="dom-if" id="show-more-button-section"
+        if="[[shouldPrinterListBeCollapsed_(searchTerm, savedPrinters.*,
+            newPrinters_.*, hasShowMoreBeenTapped_)]]" restamp>
+      <div id="show-more-line-separator"></div>
+      <div class="list-frame layout horizontal" id="show-more-container">
+        <div id="show-more-text">$i18n{showMorePrinters}</div>
+        <cr-icon-button class="action-button" id="show-more-icon"
+            iron-icon="cr:expand-more"
+            on-click="onShowMoreTap_"
+            title=$i18n{showMorePrinters}>
+        </cr-icon-button>
+      </div>
+    </template>
+
     <div id="no-search-results"
         hidden="[[!showNoSearchResultsMessage_(searchTerm,
             filteredPrinters_.*)]]">
diff --git a/chrome/browser/resources/settings/printing_page/cups_saved_printers.js b/chrome/browser/resources/settings/printing_page/cups_saved_printers.js
index 4fff9981..948bc052 100644
--- a/chrome/browser/resources/settings/printing_page/cups_saved_printers.js
+++ b/chrome/browser/resources/settings/printing_page/cups_saved_printers.js
@@ -2,6 +2,24 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+(function() {
+
+// If the Show more button is visible, the minimum number of printers we show
+// is 3.
+const kMinVisiblePrinters = 3;
+
+/**
+ * Move a printer's position in |printerArr| from |fromIndex| to |toIndex|.
+ * @param {!Array<!PrinterListEntry>} printerArr
+ * @param {number} fromIndex
+ * @param {number} toIndex
+ */
+function moveEntryInPrinters(printerArr, fromIndex, toIndex) {
+  const element = printerArr[fromIndex];
+  printerArr.splice(fromIndex, 1);
+  printerArr.splice(toIndex, 0, element);
+}
+
 /**
  * @fileoverview 'settings-cups-saved-printers' is a list container for Saved
  * Printers.
@@ -50,17 +68,49 @@
       type: Array,
       value: () => [],
     },
+
+    /**
+     * Array of new PrinterListEntry's that were added during this session.
+     * @type {!Array<!PrinterListEntry>}
+     * @private
+     */
+    newPrinters_: {
+      type: Array,
+      value: () => [],
+    },
+
+    /**
+     * Keeps track of whether the user has tapped the Show more button. A search
+     * term will expand the collapsed list, so we need to keep track of whether
+     * the list expanded because of a search term or because the user tapped on
+     * the Show more button.
+     * @private
+     */
+    hasShowMoreBeenTapped_: {
+      type: Boolean,
+      value: false,
+    },
   },
 
   listeners: {
     'open-action-menu': 'onOpenActionMenu_',
   },
 
-  observers: ['onSearchOrPrintersChanged_(savedPrinters.*, searchTerm)'],
+  observers: [
+      'onSearchOrPrintersChanged_(savedPrinters.*, searchTerm,' +
+          'hasShowMoreBeenTapped_, newPrinters_.*)'
+  ],
 
   /** @private {settings.CupsPrintersBrowserProxy} */
   browserProxy_: null,
 
+  /**
+   * The number of printers we display if hidden printers are allowed.
+   * kMinVisiblePrinters is the default value and we never show fewer printers
+   * if the Show more button is visible.
+   */
+  visiblePrinterCounter_: kMinVisiblePrinters,
+
   /** @override */
   created: function() {
     this.browserProxy_ = settings.CupsPrintersBrowserProxyImpl.getInstance();
@@ -74,15 +124,8 @@
     if (!this.savedPrinters) {
       return;
     }
-    // Filter printers through |searchTerm|. If |searchTerm| is empty,
-    // |filteredPrinters_| is just |savedPrinters|.
-    const updatedPrinters = this.searchTerm ?
-        this.savedPrinters.filter(
-            item => settings.printing.matchesSearchTerm(
-                item.printerInfo, this.searchTerm)) :
-        this.savedPrinters.slice();
 
-    updatedPrinters.sort(settings.printing.sortPrinters);
+    const updatedPrinters = this.getVisiblePrinters_();
 
     this.updateList(
         'filteredPrinters_', printer => printer.printerInfo.printerId,
@@ -122,6 +165,40 @@
   },
 
   /** @private */
+  onShowMoreTap_: function() {
+    this.hasShowMoreBeenTapped_ = true;
+  },
+
+  /**
+   * Gets the printers to be shown in the UI. These printers are filtered
+   * by the search term, alphabetically sorted (if applicable), and are the
+   * printers not hidden by the Show more section.
+   * @return {!Array<!PrinterListEntry>} Returns only the visible printers.
+   * @private
+   */
+  getVisiblePrinters_: function() {
+    // Filter printers through |searchTerm|. If |searchTerm| is empty,
+    // |filteredPrinters_| is just |savedPrinters|.
+    const updatedPrinters = this.searchTerm ?
+        this.savedPrinters.filter(
+            item => settings.printing.matchesSearchTerm(
+                item.printerInfo, this.searchTerm)) :
+        this.savedPrinters.slice();
+
+    updatedPrinters.sort(settings.printing.sortPrinters);
+
+    this.moveNewlyAddedPrinters_(updatedPrinters, 0 /* toIndex */);
+
+    if (this.shouldPrinterListBeCollapsed_()) {
+      // If the Show more button is visible, we only display the first
+      // N < |visiblePrinterCounter_| printers and the rest are hidden.
+      return updatedPrinters.filter(
+          (printer, idx) => idx < this.visiblePrinterCounter_);
+    }
+    return updatedPrinters;
+  },
+
+  /** @private */
   closeActionMenu_: function() {
     this.$$('cr-action-menu').close();
   },
@@ -132,6 +209,87 @@
    */
   showNoSearchResultsMessage_: function() {
     return !!this.searchTerm && !this.filteredPrinters_.length;
-  }
+  },
 
+  /** @param{!Array<!PrinterListEntry>} addedPrinters */
+  onSavedPrintersAdded: function(addedPrinters) {
+    const currArr = this.newPrinters_.slice();
+    for (const printer of addedPrinters) {
+      this.visiblePrinterCounter_++;
+      currArr.push(printer);
+    }
+
+    this.set('newPrinters_', currArr);
+  },
+
+  /** @param{!Array<!PrinterListEntry>} removedPrinters */
+  onSavedPrintersRemoved: function(removedPrinters) {
+    const currArr = this.newPrinters_.slice();
+    for (const printer of removedPrinters) {
+      const newPrinterRemovedIdx = currArr.findIndex(
+          p => p.printerInfo.printerId == printer.printerInfo.printerId);
+      // If the removed printer is a recently added printer, remove it from
+      // |currArr|.
+      if (newPrinterRemovedIdx > -1) {
+        currArr.splice(newPrinterRemovedIdx, 1);
+      }
+
+      this.visiblePrinterCounter_ = Math.max(
+          kMinVisiblePrinters, --this.visiblePrinterCounter_);
+    }
+
+    this.set('newPrinters_', currArr);
+  },
+
+  /**
+   * Keeps track of whether the Show more button should be visible which means
+   * that the printer list is collapsed. There are two ways a collapsed list
+   * may be expanded: the Show more button is tapped or if there is a search
+   * term.
+   * @return {boolean} True if the printer list should be collapsed.
+   * @private
+   */
+  shouldPrinterListBeCollapsed_: function() {
+    // If |searchTerm| is set, never collapse the list.
+    if (this.searchTerm) {
+      return false;
+    }
+
+    // If |hasShowMoreBeenTapped_| is set to true, never collapse the list.
+    if (this.hasShowMoreBeenTapped_) {
+      return false;
+    }
+
+    // If the total number of saved printers does not exceed the number of
+    // visible printers, there is no need for the list to be collapsed.
+    if (this.savedPrinters.length - this.visiblePrinterCounter_ < 1) {
+      return false;
+    }
+
+    return true;
+  },
+
+  /**
+   * Moves printers that are in |newPrinters_| to position |toIndex| of
+   * |printerArr|. This moves all recently added printers to the top of the
+   * printer list.
+   * @param {!Array<!PrinterListEntry>} printerArr
+   * @param {number} toIndex
+   * @private
+   */
+  moveNewlyAddedPrinters_: function(printerArr, toIndex) {
+    if (!this.newPrinters_.length) {
+      return;
+    }
+
+    // We have newly added printers, move them to the top of the list.
+    for (const printer of this.newPrinters_) {
+      const idx = printerArr.findIndex(
+          p => p.printerInfo.printerId == printer.printerInfo.printerId);
+      if (idx > -1) {
+        moveEntryInPrinters(printerArr, idx, toIndex);
+      }
+    }
+  }
 });
+})();
diff --git a/chrome/browser/resources/vr/OWNERS b/chrome/browser/resources/vr/OWNERS
index 33672fa4..f8d52f3 100644
--- a/chrome/browser/resources/vr/OWNERS
+++ b/chrome/browser/resources/vr/OWNERS
@@ -1,3 +1,5 @@
+alcooper@chromium.org
+bialpio@chromium.org
 cjgrant@chromium.org
 tiborg@chromium.org
 
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
index 2fb8722c..f4af9f3 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
@@ -289,7 +289,7 @@
   if (!profile)
     return false;
 
-  return ShouldDelayVerdicts();
+  return true;
 }
 
 bool CheckClientDownloadRequest::ShouldDelayVerdicts() {
@@ -311,7 +311,7 @@
     return;
 
   auto request = std::make_unique<DownloadItemRequest>(
-      item_, ShouldDelayVerdicts(),
+      item_, /*read_immediately=*/true,
       base::BindOnce(&CheckClientDownloadRequest::OnDeepScanningComplete,
                      weakptr_factory_.GetWeakPtr()));
 
@@ -422,9 +422,6 @@
         item_->GetTotalBytes(), result, response);
   }
 
-  if (!ShouldDelayVerdicts())
-    return;
-
   DownloadCheckResult download_result = DownloadCheckResult::SAFE;
   DownloadCheckResultReason download_reason =
       DownloadCheckResultReason::REASON_DOWNLOAD_SAFE;
diff --git a/chrome/browser/signin/signin_ui_util_unittest.cc b/chrome/browser/signin/signin_ui_util_unittest.cc
index a40daf93..9f4ef3fe 100644
--- a/chrome/browser/signin/signin_ui_util_unittest.cc
+++ b/chrome/browser/signin/signin_ui_util_unittest.cc
@@ -411,7 +411,9 @@
       active_contents->GetVisibleURL());
 }
 
-TEST_F(DiceSigninUiUtilTest, EnableSyncForNewAccountWithNoTabWithExisting) {
+// TODO(https://crbug.com/1014790): This is flaky on several bots.
+TEST_F(DiceSigninUiUtilTest,
+       DISABLED_EnableSyncForNewAccountWithNoTabWithExisting) {
   base::HistogramTester histogram_tester;
   base::UserActionTester user_action_tester;
 
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 8990c66..eca7d00 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -3081,6 +3081,8 @@
       "views/relaunch_notification/wall_clock_timer.h",
       "views/sad_tab_view.cc",
       "views/sad_tab_view.h",
+      "views/safe_browsing/deep_scanning_modal_dialog.cc",
+      "views/safe_browsing/deep_scanning_modal_dialog.h",
       "views/safe_browsing/password_reuse_modal_warning_dialog.cc",
       "views/safe_browsing/password_reuse_modal_warning_dialog.h",
       "views/send_tab_to_self/send_tab_to_self_bubble_device_button.cc",
diff --git a/chrome/browser/ui/android/ssl_client_certificate_request.cc b/chrome/browser/ui/android/ssl_client_certificate_request.cc
index b61eb8c..c3899a9e 100644
--- a/chrome/browser/ui/android/ssl_client_certificate_request.cc
+++ b/chrome/browser/ui/android/ssl_client_certificate_request.cc
@@ -160,7 +160,7 @@
         key_types.push_back("RSA");
         break;
       case net::CLIENT_CERT_ECDSA_SIGN:
-        key_types.push_back("ECDSA");
+        key_types.push_back("EC");
         break;
       default:
         // Ignore unknown types.
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 eb495db..1049dbe 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
@@ -52,17 +52,27 @@
                             error);
 }
 
+void LogDriveFSMounted(bool mounted) {
+  UMA_HISTOGRAM_BOOLEAN("Apps.AppList.DriveQuickAccessProvider.DriveFSMounted",
+                        mounted);
+}
+
 // Given a vector of QuickAccessItems, return only those that exist on-disk.
 std::vector<drive::QuickAccessItem> FilterResults(
     const drive::DriveIntegrationService* drive_service,
     const std::vector<drive::QuickAccessItem>& drive_results) {
   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))) {
       valid_results.emplace_back(result);
+      ++num_filtered;
     }
   }
+  UMA_HISTOGRAM_EXACT_LINEAR(
+      "Apps.AppList.DriveQuickAccessProvider.ValidResults", num_filtered,
+      2 * kMaxItems);
   return valid_results;
 }
 
@@ -77,27 +87,32 @@
   task_runner_ = base::CreateSequencedTaskRunner(
       {base::ThreadPool(), base::TaskPriority::BEST_EFFORT, base::MayBlock(),
        base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
-
-  // Warm up the cache.
-  AppListShown();
 }
 
 DriveQuickAccessProvider::~DriveQuickAccessProvider() = default;
 
 void DriveQuickAccessProvider::Start(const base::string16& query) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (!query.empty())
+    return;
+
   query_start_time_ = base::TimeTicks::Now();
   UMA_HISTOGRAM_TIMES(
       "Apps.AppList.DriveQuickAccessProvider.TimeFromFetchToZeroStateStart",
       base::TimeTicks::Now() - latest_fetch_start_time_);
+
   ClearResultsSilently();
   // Results are launched via DriveFS, so DriveFS must be mounted.
-  if (!query.empty() || !drive_service_ || !drive_service_->IsMounted())
+  bool drive_fs_mounted = drive_service_ && drive_service_->IsMounted();
+  LogDriveFSMounted(drive_fs_mounted);
+  if (!drive_fs_mounted)
     return;
 
   // If there are no items in the cache, the previous call may have failed so
   // retry. We return no results in this case, because waiting for the new
   // results would introduce too much latency.
+  UMA_HISTOGRAM_BOOLEAN("Apps.AppList.DriveQuickAccessProvider.CacheEmpty",
+                        results_cache_.empty());
   if (results_cache_.empty()) {
     GetQuickAccessItems();
     return;
@@ -116,12 +131,14 @@
 
 void DriveQuickAccessProvider::AppListShown() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (!drive_service_)
-    return;
   GetQuickAccessItems();
 }
 
 void DriveQuickAccessProvider::GetQuickAccessItems() {
+  LogDriveFSMounted(drive_service_);
+  if (!drive_service_)
+    return;
+
   // Invalidate weak pointers for existing callbacks to the Quick Access API.
   weak_factory_.InvalidateWeakPtrs();
   latest_fetch_start_time_ = base::TimeTicks::Now();
@@ -137,11 +154,15 @@
     std::vector<drive::QuickAccessItem> drive_results) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  UMA_HISTOGRAM_TIMES(
-      "Apps.AppList.DriveQuickAccessProvider.GetQuickAccessItemsLatency",
-      base::TimeTicks::Now() - latest_fetch_start_time_);
-  UMA_HISTOGRAM_EXACT_LINEAR("Apps.AppList.DriveQuickAccessProvider.ApiResults",
-                             drive_results.size(), 2 * kMaxItems);
+  if (error == drive::FILE_ERROR_OK) {
+    UMA_HISTOGRAM_TIMES(
+        "Apps.AppList.DriveQuickAccessProvider.GetQuickAccessItemsLatency",
+        base::TimeTicks::Now() - latest_fetch_start_time_);
+    UMA_HISTOGRAM_EXACT_LINEAR(
+        "Apps.AppList.DriveQuickAccessProvider.ApiResults",
+        drive_results.size(), 2 * kMaxItems);
+  }
+
   // Error codes are in the range [-18, 0], convert to the histogram enum values
   // in [1,19]. If the value is outside the expected range, log
   // FileError::kUnknown.
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.cc b/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.cc
index b07b6d8..664e655 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.cc
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.cc
@@ -14,6 +14,7 @@
 #include "base/macros.h"
 #include "base/metrics/field_trial_params.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/post_task.h"
@@ -26,6 +27,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/app_list/search/chrome_search_result.h"
+#include "chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder.h"
 #include "chrome/browser/ui/app_list/search/search_result_ranker/app_search_result_ranker.h"
 #include "chrome/browser/ui/app_list/search/search_result_ranker/histogram_util.h"
 #include "chrome/browser/ui/app_list/search/search_result_ranker/ranking_item_util.h"
@@ -586,9 +588,25 @@
 void SearchResultRanker::OnFilesOpened(
     const std::vector<FileOpenEvent>& file_opens) {
   // Log the open type of file open events
-  for (const auto& file_open : file_opens)
+  for (const auto& file_open : file_opens) {
     UMA_HISTOGRAM_ENUMERATION(kLogFileOpenType,
                               GetTypeFromFileTaskNotifier(file_open.open_type));
+    // TODO(chareszhao): move this outside of SearchResultRanker.
+    CrOSActionRecorder::GetCrosActionRecorder()->RecordAction(
+        {base::StrCat({"FileOpened-", file_open.path.value()})},
+        {{"open_type", static_cast<int>(file_open.open_type)}});
+  }
+}
+
+void SearchResultRanker::OnURLVisited(history::HistoryService* history_service,
+                                      ui::PageTransition transition,
+                                      const history::URLRow& row,
+                                      const history::RedirectList& redirects,
+                                      base::Time visit_time) {
+  // TODO(chareszhao): move this outside of SearchResultRanker.
+  CrOSActionRecorder::GetCrosActionRecorder()->RecordAction(
+      {base::StrCat({"URLVisited-", row.url().spec()})},
+      {{"PageTransition", static_cast<int>(transition)}});
 }
 
 void SearchResultRanker::OnURLsDeleted(
diff --git a/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.h b/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.h
index 315cce42..d955450b 100644
--- a/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.h
+++ b/chrome/browser/ui/app_list/search/search_result_ranker/search_result_ranker.h
@@ -71,6 +71,13 @@
   // file_manager::file_tasks::FileTaskObserver:
   void OnFilesOpened(const std::vector<FileOpenEvent>& file_opens) override;
 
+  // history::HistoryService::HistoryServiceObserver:
+  void OnURLVisited(history::HistoryService* history_service,
+                    ui::PageTransition transition,
+                    const history::URLRow& row,
+                    const history::RedirectList& redirects,
+                    base::Time visit_time) override;
+
   // history::HistoryServiceObserver:
   void OnURLsDeleted(history::HistoryService* history_service,
                      const history::DeletionInfo& deletion_info) override;
diff --git a/chrome/browser/ui/ash/assistant/assistant_client.cc b/chrome/browser/ui/ash/assistant/assistant_client.cc
index 6a42b323..1500a67 100644
--- a/chrome/browser/ui/ash/assistant/assistant_client.cc
+++ b/chrome/browser/ui/ash/assistant/assistant_client.cc
@@ -121,10 +121,9 @@
       std::move(receiver));
 }
 
-void AssistantClient::OnAssistantStatusChanged(bool running) {
-  ash::AssistantState::Get()->NotifyStatusChanged(
-      running ? ash::mojom::AssistantState::READY
-              : ash::mojom::AssistantState::NOT_READY);
+void AssistantClient::OnAssistantStatusChanged(
+    ash::mojom::AssistantState new_state) {
+  ash::AssistantState::Get()->NotifyStatusChanged(new_state);
 }
 
 void AssistantClient::RequestAssistantStructure(
diff --git a/chrome/browser/ui/ash/assistant/assistant_client.h b/chrome/browser/ui/ash/assistant/assistant_client.h
index 245ae02..7f4e471 100644
--- a/chrome/browser/ui/ash/assistant/assistant_client.h
+++ b/chrome/browser/ui/ash/assistant/assistant_client.h
@@ -40,7 +40,7 @@
       mojo::PendingReceiver<chromeos::assistant::mojom::Assistant> receiver);
 
   // assistant::mojom::Client overrides:
-  void OnAssistantStatusChanged(bool running) override;
+  void OnAssistantStatusChanged(ash::mojom::AssistantState new_state) override;
   void RequestAssistantStructure(
       RequestAssistantStructureCallback callback) override;
   void RequestAssistantController(
diff --git a/chrome/browser/ui/page_info/page_info_ui.cc b/chrome/browser/ui/page_info/page_info_ui.cc
index f9778c7..28ab89a 100644
--- a/chrome/browser/ui/page_info/page_info_ui.cc
+++ b/chrome/browser/ui/page_info/page_info_ui.cc
@@ -186,14 +186,12 @@
 std::unique_ptr<PageInfoUI::SecurityDescription> CreateSecurityDescription(
     PageInfoUI::SecuritySummaryColor style,
     int summary_id,
-    int details_id,
-    PageInfoUI::SecurityDescriptionType type) {
+    int details_id) {
   std::unique_ptr<PageInfoUI::SecurityDescription> security_description(
       new PageInfoUI::SecurityDescription());
   security_description->summary_style = style;
   security_description->summary = l10n_util::GetStringUTF16(summary_id);
   security_description->details = l10n_util::GetStringUTF16(details_id);
-  security_description->type = type;
   return security_description;
 }
 
@@ -257,18 +255,15 @@
     case PageInfo::SAFE_BROWSING_STATUS_MALWARE:
       return CreateSecurityDescription(SecuritySummaryColor::RED,
                                        IDS_PAGE_INFO_MALWARE_SUMMARY,
-                                       IDS_PAGE_INFO_MALWARE_DETAILS,
-                                       SecurityDescriptionType::SAFE_BROWSING);
+                                       IDS_PAGE_INFO_MALWARE_DETAILS);
     case PageInfo::SAFE_BROWSING_STATUS_SOCIAL_ENGINEERING:
-      return CreateSecurityDescription(SecuritySummaryColor::RED,
-                                       IDS_PAGE_INFO_SOCIAL_ENGINEERING_SUMMARY,
-                                       IDS_PAGE_INFO_SOCIAL_ENGINEERING_DETAILS,
-                                       SecurityDescriptionType::SAFE_BROWSING);
+      return CreateSecurityDescription(
+          SecuritySummaryColor::RED, IDS_PAGE_INFO_SOCIAL_ENGINEERING_SUMMARY,
+          IDS_PAGE_INFO_SOCIAL_ENGINEERING_DETAILS);
     case PageInfo::SAFE_BROWSING_STATUS_UNWANTED_SOFTWARE:
       return CreateSecurityDescription(SecuritySummaryColor::RED,
                                        IDS_PAGE_INFO_UNWANTED_SOFTWARE_SUMMARY,
-                                       IDS_PAGE_INFO_UNWANTED_SOFTWARE_DETAILS,
-                                       SecurityDescriptionType::SAFE_BROWSING);
+                                       IDS_PAGE_INFO_UNWANTED_SOFTWARE_DETAILS);
     case PageInfo::SAFE_BROWSING_STATUS_SAVED_PASSWORD_REUSE:
     case PageInfo::SAFE_BROWSING_STATUS_SIGNED_IN_SYNC_PASSWORD_REUSE:
     case PageInfo::SAFE_BROWSING_STATUS_SIGNED_IN_NON_SYNC_PASSWORD_REUSE:
@@ -281,8 +276,7 @@
     case PageInfo::SAFE_BROWSING_STATUS_BILLING:
       return CreateSecurityDescription(SecuritySummaryColor::RED,
                                        IDS_PAGE_INFO_BILLING_SUMMARY,
-                                       IDS_PAGE_INFO_BILLING_DETAILS,
-                                       SecurityDescriptionType::SAFE_BROWSING);
+                                       IDS_PAGE_INFO_BILLING_DETAILS);
   }
 
   switch (identity_info.safety_tip_status) {
@@ -290,8 +284,7 @@
       return CreateSecurityDescription(
           SecuritySummaryColor::RED,
           IDS_PAGE_INFO_SAFETY_TIP_BAD_REPUTATION_TITLE,
-          IDS_PAGE_INFO_SAFETY_TIP_BAD_REPUTATION_DESCRIPTION,
-          SecurityDescriptionType::SAFETY_TIP);
+          IDS_PAGE_INFO_SAFETY_TIP_BAD_REPUTATION_DESCRIPTION);
     case security_state::SafetyTipStatus::kLookalike:
       // Lookalikes have their own strings, but they're suggestions, not
       // warnings, so we leave Page Info alone.
@@ -308,9 +301,9 @@
 #if defined(OS_ANDROID)
       // We provide identical summary and detail strings for Android, which
       // deduplicates them in the UI code.
-      return CreateSecurityDescription(
-          SecuritySummaryColor::GREEN, IDS_PAGE_INFO_INTERNAL_PAGE,
-          IDS_PAGE_INFO_INTERNAL_PAGE, SecurityDescriptionType::INTERNAL);
+      return CreateSecurityDescription(SecuritySummaryColor::GREEN,
+                                       IDS_PAGE_INFO_INTERNAL_PAGE,
+                                       IDS_PAGE_INFO_INTERNAL_PAGE);
 #else
       // Internal pages on desktop have their own UI implementations which
       // should never call this function.
@@ -326,28 +319,23 @@
         case PageInfo::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE:
           return CreateSecurityDescription(SecuritySummaryColor::RED,
                                            IDS_PAGE_INFO_NOT_SECURE_SUMMARY,
-                                           IDS_PAGE_INFO_NOT_SECURE_DETAILS,
-                                           SecurityDescriptionType::CONNECTION);
+                                           IDS_PAGE_INFO_NOT_SECURE_DETAILS);
         case PageInfo::SITE_CONNECTION_STATUS_INSECURE_FORM_ACTION:
           return CreateSecurityDescription(SecuritySummaryColor::RED,
                                            IDS_PAGE_INFO_MIXED_CONTENT_SUMMARY,
-                                           IDS_PAGE_INFO_NOT_SECURE_DETAILS,
-                                           SecurityDescriptionType::CONNECTION);
+                                           IDS_PAGE_INFO_NOT_SECURE_DETAILS);
         case PageInfo::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE:
           return CreateSecurityDescription(SecuritySummaryColor::RED,
                                            IDS_PAGE_INFO_MIXED_CONTENT_SUMMARY,
-                                           IDS_PAGE_INFO_MIXED_CONTENT_DETAILS,
-                                           SecurityDescriptionType::CONNECTION);
+                                           IDS_PAGE_INFO_MIXED_CONTENT_DETAILS);
         case PageInfo::SITE_CONNECTION_STATUS_LEGACY_TLS:
           return CreateSecurityDescription(SecuritySummaryColor::RED,
                                            IDS_PAGE_INFO_MIXED_CONTENT_SUMMARY,
-                                           IDS_PAGE_INFO_LEGACY_TLS_DETAILS,
-                                           SecurityDescriptionType::CONNECTION);
+                                           IDS_PAGE_INFO_LEGACY_TLS_DETAILS);
         default:
           return CreateSecurityDescription(SecuritySummaryColor::GREEN,
                                            IDS_PAGE_INFO_SECURE_SUMMARY,
-                                           IDS_PAGE_INFO_SECURE_DETAILS,
-                                           SecurityDescriptionType::CONNECTION);
+                                           IDS_PAGE_INFO_SECURE_DETAILS);
       }
     case PageInfo::SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM:
     case PageInfo::SITE_IDENTITY_STATUS_UNKNOWN:
@@ -355,8 +343,7 @@
     default:
       return CreateSecurityDescription(SecuritySummaryColor::RED,
                                        IDS_PAGE_INFO_NOT_SECURE_SUMMARY,
-                                       IDS_PAGE_INFO_NOT_SECURE_DETAILS,
-                                       SecurityDescriptionType::CONNECTION);
+                                       IDS_PAGE_INFO_NOT_SECURE_DETAILS);
   }
 }
 
diff --git a/chrome/browser/ui/page_info/page_info_ui.h b/chrome/browser/ui/page_info/page_info_ui.h
index af9ee1b4..3e8bd69 100644
--- a/chrome/browser/ui/page_info/page_info_ui.h
+++ b/chrome/browser/ui/page_info/page_info_ui.h
@@ -43,19 +43,6 @@
     GREEN,
   };
 
-  enum class SecurityDescriptionType {
-    // The UI describes whether the connection is secure, e.g. secure
-    // HTTPS, non-secure HTTP.
-    CONNECTION,
-    // The UI describes e.g. an internal (chrome://) page or extension page.
-    INTERNAL,
-    // The UI describes a Safe Browsing warning, e.g. site deceptive or contains
-    // malware.
-    SAFE_BROWSING,
-    // The UI shows a Safety Tip.
-    SAFETY_TIP,
-  };
-
   struct SecurityDescription {
     // The text style for |summary| used to color it. This provides an
     // opinionated guide to the user on the overall security state of the site.
@@ -65,9 +52,6 @@
     // A short paragraph with more details about the state, and how
     // the user should treat it.
     base::string16 details;
-    // The category of the security description, used to determine which help
-    // center article to link to.
-    SecurityDescriptionType type;
   };
 
   // |CookieInfo| contains information about the cookies from a specific source.
diff --git a/chrome/browser/ui/page_info/page_info_unittest.cc b/chrome/browser/ui/page_info/page_info_unittest.cc
index 5b0fde0..c8a7fb7 100644
--- a/chrome/browser/ui/page_info/page_info_unittest.cc
+++ b/chrome/browser/ui/page_info/page_info_unittest.cc
@@ -116,7 +116,6 @@
         l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_SUMMARY);
     security_description->details =
         l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS);
-    security_description->type = SecurityDescriptionType::SAFE_BROWSING;
     return security_description;
   }
 #endif
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc
index 7254520..48a5362 100644
--- a/chrome/browser/ui/views/download/download_item_view.cc
+++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -35,12 +35,15 @@
 #include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
 #include "chrome/browser/themes/theme_properties.h"
+#include "chrome/browser/ui/tab_modal_confirm_dialog.h"
 #include "chrome/browser/ui/views/download/download_shelf_context_menu_view.h"
 #include "chrome/browser/ui/views/download/download_shelf_view.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/download/public/common/download_danger_type.h"
+#include "components/download/public/common/download_item.h"
 #include "components/prefs/pref_service.h"
 #include "components/safe_browsing/buildflags.h"
 #include "components/safe_browsing/common/safe_browsing_prefs.h"
@@ -190,7 +193,9 @@
       creation_time_(base::Time::Now()),
       time_download_warning_shown_(base::Time()),
       accessible_alert_(accessible_alert),
-      announce_accessible_alert_soon_(false) {
+      announce_accessible_alert_soon_(false),
+      deep_scanning_label_(nullptr),
+      open_now_button_(nullptr) {
   views::InstallRectHighlightPathGenerator(this);
   SetInkDropMode(InkDropMode::ON_NO_GESTURE_HANDLER);
   model_->AddObserver(this);
@@ -294,10 +299,19 @@
   bool is_danger_type_async_scanning =
       (model_->GetDangerType() ==
        download::DOWNLOAD_DANGER_TYPE_ASYNC_SCANNING);
-  if (model_->IsDangerous() && !IsShowingWarningDialog()) {
-    TransitionToWarningDialog();
-  } else if (is_danger_type_async_scanning && !IsShowingDeepScanning()) {
-    TransitionToDeepScanningDialog();
+  if (model_->IsDangerous()) {
+    if (!IsShowingWarningDialog())
+      TransitionToWarningDialog();
+  } else if (is_danger_type_async_scanning &&
+             model_->GetState() != DownloadItem::CANCELLED) {
+    if (!IsShowingDeepScanning())
+      TransitionToDeepScanningDialog();
+
+    if (should_open_while_scanning_ &&
+        model_->GetState() == DownloadItem::COMPLETE) {
+      should_open_while_scanning_ = false;
+      model_->OpenDownload();
+    }
   } else {
     TransitionToNormalMode();
   }
@@ -442,6 +456,14 @@
     gfx::Point child_origin(kStartPadding + kWarningIconSize + kStartPadding,
                             (height() - deep_scanning_label_->height()) / 2);
     deep_scanning_label_->SetPosition(child_origin);
+
+    if (open_now_button_) {
+      child_origin.set_y(
+          (height() - open_now_button_->GetPreferredSize().height()) / 2);
+      child_origin.Offset(deep_scanning_label_->width() + kLabelPadding, 0);
+      open_now_button_->SetBoundsRect(
+          gfx::Rect(child_origin, open_now_button_->GetPreferredSize()));
+    }
   } else {
     int mirrored_x = GetMirroredXWithWidthInView(
         kStartPadding + DownloadShelf::kProgressIndicatorSize +
@@ -490,6 +512,18 @@
     // Height: make sure the button fits and the warning icon fits.
     child_height =
         std::max({child_height, button_size.height(), kWarningIconSize});
+  } else if (IsShowingDeepScanning()) {
+    width = kStartPadding + kWarningIconSize + kStartPadding +
+            deep_scanning_label_->width() + kLabelPadding;
+    if (open_now_button_) {
+      width += open_now_button_->GetPreferredSize().width();
+      // Height: make sure the button fits and the warning icon fits.
+      child_height =
+          std::max({child_height, open_now_button_->GetPreferredSize().height(),
+                    kWarningIconSize});
+      width += kEndPadding;
+    }
+
   } else {
     width = kStartPadding + DownloadShelf::kProgressIndicatorSize +
             kProgressTextPadding + kTextWidth + kEndPadding;
@@ -582,6 +616,23 @@
 
 void DownloadItemView::ButtonPressed(views::Button* sender,
                                      const ui::Event& event) {
+  if (sender == open_now_button_) {
+    OpenDownloadDuringAsyncScanning();
+    return;
+  }
+
+  if (IsShowingDeepScanning() && sender == open_button_) {
+    content::WebContents* current_web_contents =
+        shelf_->browser()->tab_strip_model()->GetActiveWebContents();
+    open_now_modal_dialog_ = TabModalConfirmDialog::Create(
+        std::make_unique<safe_browsing::DeepScanningModalDialog>(
+            current_web_contents,
+            base::BindOnce(&DownloadItemView::OpenDownloadDuringAsyncScanning,
+                           weak_ptr_factory_.GetWeakPtr())),
+        current_web_contents);
+    return;
+  }
+
   if (sender == dropdown_button_) {
     // TODO(estade): this is copied from ToolbarActionView but should be shared
     // one way or another.
@@ -788,6 +839,10 @@
     shelf_->ConfigureButtonForTheme(save_button_);
   if (discard_button_)
     shelf_->ConfigureButtonForTheme(discard_button_);
+  if (deep_scanning_label_)
+    deep_scanning_label_->SetEnabledColor(GetTextColor());
+  if (open_now_button_)
+    shelf_->ConfigureButtonForTheme(open_now_button_);
 }
 
 void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect,
@@ -997,7 +1052,18 @@
   deep_scanning_label_ = AddChildView(std::move(deep_scanning_label));
   deep_scanning_label_->SetSize(AdjustTextAndGetSize(deep_scanning_label_));
 
-  open_button_->SetEnabled(false);
+  int delay_delivery = g_browser_process->local_state()->GetInteger(
+      prefs::kDelayDeliveryUntilVerdict);
+  if (delay_delivery != safe_browsing::DELAY_DOWNLOADS &&
+      delay_delivery != safe_browsing::DELAY_UPLOADS_AND_DOWNLOADS) {
+    auto open_now_button = views::MdTextButton::Create(
+        this, l10n_util::GetStringUTF16(IDS_OPEN_DOWNLOAD_NOW));
+    open_now_button_ = AddChildView(std::move(open_now_button));
+    open_button_->SetEnabled(true);
+  } else {
+    open_button_->SetEnabled(false);
+  }
+
   file_name_label_->SetVisible(false);
   status_label_->SetVisible(false);
 }
@@ -1011,6 +1077,9 @@
   delete deep_scanning_label_;
   deep_scanning_label_ = nullptr;
 
+  delete open_now_button_;
+  open_now_button_ = nullptr;
+
   LoadIcon();
 
   open_button_->SetEnabled(true);
@@ -1278,3 +1347,8 @@
   return gfx::ElideFilename(model_->GetFileNameToReportUser(), font_list_,
                             kTextWidth);
 }
+
+void DownloadItemView::OpenDownloadDuringAsyncScanning() {
+  model_->CompleteSafeBrowsingScan();
+  should_open_while_scanning_ = true;
+}
diff --git a/chrome/browser/ui/views/download/download_item_view.h b/chrome/browser/ui/views/download/download_item_view.h
index de10068..4a244e00 100644
--- a/chrome/browser/ui/views/download/download_item_view.h
+++ b/chrome/browser/ui/views/download/download_item_view.h
@@ -28,6 +28,7 @@
 #include "chrome/browser/download/download_commands.h"
 #include "chrome/browser/download/download_ui_model.h"
 #include "chrome/browser/icon_manager.h"
+#include "chrome/browser/ui/tab_modal_confirm_dialog.h"
 #include "components/download/public/common/download_item.h"
 #include "content/public/browser/download_manager.h"
 #include "ui/gfx/font_list.h"
@@ -301,6 +302,9 @@
   // the text width.
   base::string16 ElidedFilename();
 
+  // Opens a file while async scanning is still pending.
+  void OpenDownloadDuringAsyncScanning();
+
   // The download shelf that owns us.
   DownloadShelfView* shelf_;
 
@@ -410,7 +414,17 @@
   base::FilePath last_download_item_path_;
 
   // Deep scanning mode label.
-  views::Label* deep_scanning_label_;
+  views::Label* deep_scanning_label_ = nullptr;
+
+  // Deep scanning open now button.
+  views::MdTextButton* open_now_button_ = nullptr;
+
+  // Whether the user has selected "open now" on a download pending asynchronous
+  // scanning.
+  bool should_open_while_scanning_ = false;
+
+  // Deep scanning modal dialog confirming choice to "open now".
+  TabModalConfirmDialog* open_now_modal_dialog_;
 
   // Method factory used to delay reenabling of the item when opening the
   // downloaded file.
diff --git a/chrome/browser/ui/views/location_bar/intent_picker_view.cc b/chrome/browser/ui/views/location_bar/intent_picker_view.cc
index f03479d..1072692 100644
--- a/chrome/browser/ui/views/location_bar/intent_picker_view.cc
+++ b/chrome/browser/ui/views/location_bar/intent_picker_view.cc
@@ -11,12 +11,14 @@
 #include "chrome/browser/ui/intent_picker_tab_helper.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/views/intent_picker_bubble_view.h"
+#include "chrome/common/chrome_features.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/vector_icons/vector_icons.h"
 #include "ui/base/l10n/l10n_util.h"
 
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h"
+#include "chrome/browser/chromeos/apps/intent_helper/common_apps_navigation_throttle.h"
 #endif  //  defined(OS_CHROMEOS)
 
 namespace content {
@@ -46,8 +48,13 @@
   content::WebContents* web_contents = GetWebContents();
   const GURL& url = chrome::GetURLToBookmark(web_contents);
 #if defined(OS_CHROMEOS)
-  chromeos::ChromeOsAppsNavigationThrottle::ShowIntentPickerBubble(
-      web_contents, /*ui_auto_display_service=*/nullptr, url);
+  if (base::FeatureList::IsEnabled(features::kAppServiceIntentHandling)) {
+    apps::CommonAppsNavigationThrottle::ShowIntentPickerBubble(
+        web_contents, /*ui_auto_display_service=*/nullptr, url);
+  } else {
+    chromeos::ChromeOsAppsNavigationThrottle::ShowIntentPickerBubble(
+        web_contents, /*ui_auto_display_service=*/nullptr, url);
+  }
 #else
   apps::AppsNavigationThrottle::ShowIntentPickerBubble(
       web_contents, /*ui_auto_display_service=*/nullptr, url);
diff --git a/chrome/browser/ui/views/omnibox/omnibox_match_cell_view.cc b/chrome/browser/ui/views/omnibox/omnibox_match_cell_view.cc
index 2ceac78b..fc554d2 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_match_cell_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_match_cell_view.cc
@@ -176,8 +176,8 @@
                                     : separator_view_->GetPreferredSize());
 
   // Set up the small icon.
-  icon_view_->SetSize(
-      is_rich_suggestion_ ? gfx::Size() : icon_view_->CalculatePreferredSize());
+  icon_view_->SetSize(is_rich_suggestion_ ? gfx::Size()
+                                          : icon_view_->GetPreferredSize());
 
   const auto apply_vector_icon = [=](const gfx::VectorIcon& vector_icon) {
     const auto& icon = gfx::CreateVectorIcon(vector_icon, SK_ColorWHITE);
@@ -333,6 +333,7 @@
 
 void OmniboxMatchCellView::SetTailSuggestCommonPrefixWidth(
     const base::string16& common_prefix) {
+  InvalidateLayout();
   if (common_prefix.empty()) {
     tail_suggest_common_prefix_width_ = 0;
     return;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
index ecfd0aa..08518664 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.cc
@@ -57,9 +57,7 @@
         new RoundedOmniboxResultsFrame(contents, contents->location_bar_view_));
   }
 
-  void SetTargetBounds(const gfx::Rect& bounds) {
-    SetBounds(bounds);
-  }
+  void SetTargetBounds(const gfx::Rect& bounds) { SetBounds(bounds); }
 
   void ShowAnimated() {
     // Set the initial opacity to 0 and ease into fully opaque.
@@ -134,9 +132,6 @@
   DISALLOW_COPY_AND_ASSIGN(AutocompletePopupWidget);
 };
 
-////////////////////////////////////////////////////////////////////////////////
-// OmniboxPopupContentsView, public:
-
 OmniboxPopupContentsView::OmniboxPopupContentsView(
     OmniboxViewViews* omnibox_view,
     OmniboxEditModel* edit_model,
@@ -152,10 +147,8 @@
       views::BoxLayout::Orientation::kVertical));
 
   for (size_t i = 0; i < AutocompleteResult::GetMaxMatches(); ++i) {
-    OmniboxResultView* result_view =
-        new OmniboxResultView(this, i, theme_provider);
-    result_view->SetVisible(false);
-    AddChildView(result_view);
+    AddChildView(std::make_unique<OmniboxResultView>(this, i, theme_provider))
+        ->SetVisible(false);
   }
 }
 
@@ -179,10 +172,7 @@
 void OmniboxPopupContentsView::OpenMatch(
     WindowOpenDisposition disposition,
     base::TimeTicks match_selection_timestamp) {
-  size_t index = model_->selected_line();
-  omnibox_view_->OpenMatch(model_->result().match_at(index), disposition,
-                           GURL(), base::string16(), index,
-                           match_selection_timestamp);
+  OpenMatch(model_->selected_line(), disposition, match_selection_timestamp);
 }
 
 gfx::Image OmniboxPopupContentsView::GetMatchIcon(
@@ -193,7 +183,6 @@
 
 void OmniboxPopupContentsView::SetSelectedLine(size_t index) {
   DCHECK(HasMatchAt(index));
-
   model_->SetSelectedLine(index, false, false);
 }
 
@@ -218,9 +207,6 @@
   return model_->edit_model()->InExplicitExperimentalKeywordMode();
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// OmniboxPopupContentsView, OmniboxPopupView overrides:
-
 bool OmniboxPopupContentsView::IsOpen() const {
   return popup_ != nullptr;
 }
@@ -228,11 +214,11 @@
 void OmniboxPopupContentsView::InvalidateLine(size_t line) {
   OmniboxResultView* result = result_view_at(line);
   result->Invalidate();
-  result->SchedulePaint();
 
   if (HasMatchAt(line) && GetMatchAtIndex(line).associated_keyword.get()) {
     result->ShowKeyword(IsSelectedIndex(line) &&
-        model_->selected_line_state() == OmniboxPopupModel::KEYWORD);
+                        model_->selected_line_state() ==
+                            OmniboxPopupModel::KEYWORD);
   }
 }
 
@@ -264,9 +250,8 @@
     view->SetMatch(match);
     view->SetVisible(true);
     const SkBitmap* bitmap = model_->RichSuggestionBitmapAt(i);
-    if (bitmap != nullptr) {
+    if (bitmap)
       view->SetRichSuggestionImage(gfx::ImageSkia::CreateFrom1xBitmap(*bitmap));
-    }
   }
 
   for (auto i = children().begin() + result_size; i != children().end(); ++i)
@@ -276,39 +261,37 @@
 
   if (popup_) {
     popup_->SetTargetBounds(new_target_bounds);
-    InvalidateLayout();
-    return;
-  }
+  } else {
+    views::Widget* popup_parent = location_bar_view_->GetWidget();
 
-  views::Widget* popup_parent = location_bar_view_->GetWidget();
+    // If the popup is currently closed, we need to create it.
+    popup_ = (new AutocompletePopupWidget(popup_parent))->AsWeakPtr();
+    popup_->InitOmniboxPopup(popup_parent, new_target_bounds);
+    // Third-party software such as DigitalPersona identity verification can
+    // hook the underlying window creation methods and use SendMessage to
+    // synchronously change focus/activation, resulting in the popup being
+    // destroyed by the time control returns here.  Bail out in this case to
+    // avoid a nullptr dereference.
+    if (!popup_)
+      return;
 
-  // If the popup is currently closed, we need to create it.
-  popup_ = (new AutocompletePopupWidget(popup_parent))->AsWeakPtr();
-  popup_->InitOmniboxPopup(popup_parent, new_target_bounds);
-  // Third-party software such as DigitalPersona identity verification can hook
-  // the underlying window creation methods and use SendMessage to synchronously
-  // change focus/activation, resulting in the popup being destroyed by the time
-  // control returns here.  Bail out in this case to avoid a nullptr
-  // dereference.
-  if (!popup_)
-    return;
+    popup_->SetVisibilityAnimationTransition(views::Widget::ANIMATE_NONE);
+    popup_->SetPopupContentsView(this);
+    popup_->StackAbove(omnibox_view_->GetRelativeWindowForPopup());
+    // For some IMEs GetRelativeWindowForPopup triggers the omnibox to lose
+    // focus, thereby closing (and destroying) the popup. TODO(sky): this won't
+    // be needed once we close the omnibox on input window showing.
+    if (!popup_)
+      return;
 
-  popup_->SetVisibilityAnimationTransition(views::Widget::ANIMATE_NONE);
-  popup_->SetPopupContentsView(this);
-  popup_->StackAbove(omnibox_view_->GetRelativeWindowForPopup());
-  // For some IMEs GetRelativeWindowForPopup triggers the omnibox to lose focus,
-  // thereby closing (and destroying) the popup. TODO(sky): this won't be needed
-  // once we close the omnibox on input window showing.
-  if (!popup_)
-    return;
+    popup_->ShowAnimated();
 
-  popup_->ShowAnimated();
-
-  // Popup is now expanded and first item will be selected.
-  NotifyAccessibilityEvent(ax::mojom::Event::kExpandedChanged, true);
-  if (result_view_at(0)) {
-    result_view_at(0)->NotifyAccessibilityEvent(ax::mojom::Event::kSelection,
-                                                true);
+    // Popup is now expanded and first item will be selected.
+    NotifyAccessibilityEvent(ax::mojom::Event::kExpandedChanged, true);
+    if (result_view_at(0)) {
+      result_view_at(0)->NotifyAccessibilityEvent(ax::mojom::Event::kSelection,
+                                                  true);
+    }
   }
   InvalidateLayout();
 }
@@ -321,9 +304,6 @@
   SetMouseHandler(nullptr);
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// OmniboxPopupContentsView, views::View overrides:
-
 bool OmniboxPopupContentsView::OnMouseDragged(const ui::MouseEvent& event) {
   size_t index = GetIndexForPoint(event.location());
 
@@ -362,9 +342,6 @@
   event->SetHandled();
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// OmniboxPopupContentsView, private:
-
 gfx::Rect OmniboxPopupContentsView::GetTargetBounds() {
   DCHECK_GE(children().size(), model_->result().size());
   int popup_height = std::accumulate(
@@ -435,9 +412,6 @@
   }
 }
 
-////////////////////////////////////////////////////////////////////////////////
-// OmniboxPopupContentsView, views::View overrides, private:
-
 const char* OmniboxPopupContentsView::GetClassName() const {
   return "OmniboxPopupContentsView";
 }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
index 092edef8f..4ef3ece 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_result_view.cc
@@ -42,8 +42,6 @@
 #include "base/win/atl.h"
 #endif
 
-static size_t kKeywordSuggestionIndent = 70;
-
 ////////////////////////////////////////////////////////////////////////////////
 // OmniboxResultView, public:
 
@@ -59,32 +57,40 @@
       animation_(new gfx::SlideAnimation(this)) {
   CHECK_GE(model_index, 0);
 
-  AddChildView(suggestion_view_ = new OmniboxMatchCellView(this));
-  AddChildView(keyword_view_ = new OmniboxMatchCellView(this));
+  suggestion_view_ = AddChildView(std::make_unique<OmniboxMatchCellView>(this));
 
+  suggestion_tab_switch_button_ =
+      AddChildView(std::make_unique<OmniboxTabSwitchButton>(
+          popup_contents_view_, this,
+          l10n_util::GetStringUTF16(IDS_OMNIBOX_TAB_SUGGEST_HINT),
+          l10n_util::GetStringUTF16(IDS_OMNIBOX_TAB_SUGGEST_SHORT_HINT),
+          omnibox::kSwitchIcon, theme_provider_));
+
+  // This is intentionally not in the tab order by default, but should be if the
+  // user has full-acessibility mode on. This is because this is a tertiary
+  // priority button, which already has a Shift+Delete shortcut.
+  // TODO(tommycli): Make sure we announce the Shift+Delete capability in the
+  // accessibility node data for removable suggestions.
+  remove_suggestion_button_ =
+      AddChildView(views::CreateVectorImageButton(this));
+  views::InstallCircleHighlightPathGenerator(remove_suggestion_button_);
+  // TODO(tommycli): We may need to update the color for theme changes.
+  views::SetImageFromVectorIcon(remove_suggestion_button_,
+                                vector_icons::kCloseRoundedIcon,
+                                GetColor(OmniboxPart::RESULTS_ICON));
+
+  keyword_view_ = AddChildView(std::make_unique<OmniboxMatchCellView>(this));
   keyword_view_->icon()->EnableCanvasFlippingForRTLUI(true);
   keyword_view_->icon()->SetImage(gfx::CreateVectorIcon(
       omnibox::kKeywordSearchIcon, GetLayoutConstant(LOCATION_BAR_ICON_SIZE),
       GetColor(OmniboxPart::RESULTS_ICON)));
   keyword_view_->icon()->SizeToPreferredSize();
 
-  if (base::FeatureList::IsEnabled(
-          omnibox::kOmniboxSuggestionTransparencyOptions)) {
-    // This is intentionally not in the tab order by default, but should be
-    // if the user has full-acessibility mode on. This is because this is a
-    // tertiary priority button, which already has a Shift+Delete shortcut.
-    // TODO(tommycli): Make sure we announce the Shift+Delete capability in the
-    // accessibility node data for removable suggestions.
-    AddChildView(remove_suggestion_button_ =
-                     views::CreateVectorImageButton(this).release());
-
-    views::InstallCircleHighlightPathGenerator(remove_suggestion_button_);
-
-    // TODO(tommycli): We may need to update the color for theme changes.
-    views::SetImageFromVectorIcon(remove_suggestion_button_,
-                                  vector_icons::kCloseRoundedIcon,
-                                  GetColor(OmniboxPart::RESULTS_ICON));
-  }
+  // Calling SetMatch() will result in the child OmniboxMatchCellViews
+  // constructing their RenderTexts.  Without this, the first time the popup is
+  // opened, it will call Invalidate() before SetMatch(), which will try to
+  // apply styles to nonexistent RenderTexts, which will crash.
+  SetMatch(AutocompleteMatch());
 }
 
 OmniboxResultView::~OmniboxResultView() {}
@@ -97,30 +103,40 @@
   match_ = match.GetMatchWithContentsAndDescriptionPossiblySwapped();
   animation_->Reset();
   is_hovered_ = false;
+
   suggestion_view_->OnMatchUpdate(this, match_);
   keyword_view_->OnMatchUpdate(this, match_);
+  suggestion_tab_switch_button_->SetVisible(match.ShouldShowTabMatchButton());
+  // To avoid clutter, don't show the Remove button for matches with keyword.
+  remove_suggestion_button_->SetVisible(
+      match_.SupportsDeletion() && !match.associated_keyword &&
+      base::FeatureList::IsEnabled(
+          omnibox::kOmniboxSuggestionTransparencyOptions));
 
-  // Set up possible button.
-  if (match.ShouldShowTabMatchButton()) {
-    suggestion_tab_switch_button_ = std::make_unique<OmniboxTabSwitchButton>(
-        popup_contents_view_, this,
-        l10n_util::GetStringUTF16(IDS_OMNIBOX_TAB_SUGGEST_HINT),
-        l10n_util::GetStringUTF16(IDS_OMNIBOX_TAB_SUGGEST_SHORT_HINT),
-        omnibox::kSwitchIcon, theme_provider_);
-    suggestion_tab_switch_button_->set_owned_by_client();
-    AddChildView(suggestion_tab_switch_button_.get());
+  suggestion_view_->content()->SetText(match_.contents, match_.contents_class);
+  if (match_.answer) {
+    suggestion_view_->content()->AppendExtraText(match_.answer->first_line());
+    suggestion_view_->description()->SetText(match_.answer->second_line(),
+                                             true);
   } else {
-    suggestion_tab_switch_button_.reset();
+    const bool deemphasize =
+        match_.type == AutocompleteMatchType::SEARCH_SUGGEST_ENTITY ||
+        match_.type == AutocompleteMatchType::PEDAL;
+    suggestion_view_->description()->SetText(
+        match_.description, match_.description_class, deemphasize);
   }
 
-  if (remove_suggestion_button_) {
-    // To avoid clutter, don't show the Remove button for matches with keyword.
-    remove_suggestion_button_->SetVisible(match.SupportsDeletion() &&
-                                          !match.associated_keyword);
+  AutocompleteMatch* keyword_match = match_.associated_keyword.get();
+  keyword_view_->SetVisible(keyword_match);
+  if (keyword_match) {
+    keyword_view_->content()->SetText(keyword_match->contents,
+                                      keyword_match->contents_class);
+    keyword_view_->description()->SetText(keyword_match->description,
+                                          keyword_match->description_class);
   }
 
+  InvalidateLayout();
   Invalidate();
-  Layout();
 }
 
 void OmniboxResultView::ShowKeyword(bool show_keyword) {
@@ -144,7 +160,7 @@
   suggestion_view_->separator()->ApplyTextColor(
       OmniboxPart::RESULTS_TEXT_DIMMED);
   keyword_view_->separator()->ApplyTextColor(OmniboxPart::RESULTS_TEXT_DIMMED);
-  if (suggestion_tab_switch_button_)
+  if (suggestion_tab_switch_button_->GetVisible())
     suggestion_tab_switch_button_->UpdateBackground();
 
   // Recreate the icons in case the color needs to change.
@@ -157,52 +173,22 @@
       omnibox::kKeywordSearchIcon, GetLayoutConstant(LOCATION_BAR_ICON_SIZE),
       GetColor(OmniboxPart::RESULTS_ICON)));
 
-  // Answers use their own styling for additional content text and the
-  // description text, whereas non-answer suggestions use the match text and
-  // calculated classifications for the description text.
   if (match_.answer) {
-    suggestion_view_->content()->SetText(match_.contents,
-                                         match_.contents_class);
     suggestion_view_->content()->ApplyTextColor(
         OmniboxPart::RESULTS_TEXT_DEFAULT);
-    suggestion_view_->content()->AppendExtraText(match_.answer->first_line());
-    suggestion_view_->description()->SetText(match_.answer->second_line(),
-                                             true);
   } else if (match_.type == AutocompleteMatchType::SEARCH_SUGGEST_ENTITY ||
              match_.type == AutocompleteMatchType::PEDAL) {
-    // Entities use match text and calculated classifications, but with style
-    // adjustments like answers above.  Pedals do likewise.
-    suggestion_view_->content()->SetText(match_.contents,
-                                         match_.contents_class);
-    suggestion_view_->description()->SetText(match_.description,
-                                             match_.description_class, -1);
     suggestion_view_->description()->ApplyTextColor(
         OmniboxPart::RESULTS_TEXT_DIMMED);
-  } else {
-    // Content and description use match text and calculated classifications.
-    suggestion_view_->content()->SetText(match_.contents,
-                                         match_.contents_class);
-    suggestion_view_->description()->SetText(match_.description,
-                                             match_.description_class);
-
+  } else if (high_contrast || force_reapply_styles) {
     // Normally, OmniboxTextView caches its appearance, but in high contrast,
     // selected-ness changes the text colors, so the styling of the text part of
     // the results needs to be recomputed.
-    if (high_contrast || force_reapply_styles) {
-      suggestion_view_->content()->ReapplyStyling();
-      suggestion_view_->description()->ReapplyStyling();
-    }
+    suggestion_view_->content()->ReapplyStyling();
+    suggestion_view_->description()->ReapplyStyling();
   }
 
-  AutocompleteMatch* keyword_match = match_.associated_keyword.get();
-  // Setting the keyword_view_ invisible is a minor optimization (it avoids
-  // some OnPaint calls); it is not required.
-  keyword_view_->SetVisible(keyword_match);
-  if (keyword_match) {
-    keyword_view_->content()->SetText(keyword_match->contents,
-                                      keyword_match->contents_class);
-    keyword_view_->description()->SetText(keyword_match->description,
-                                          keyword_match->description_class);
+  if (keyword_view_->GetVisible()) {
     keyword_view_->description()->ApplyTextColor(
         OmniboxPart::RESULTS_TEXT_DIMMED);
   }
@@ -238,13 +224,10 @@
 void OmniboxResultView::OnMatchIconUpdated() {
   // The new icon will be fetched during Invalidate().
   Invalidate();
-  SchedulePaint();
 }
 
 void OmniboxResultView::SetRichSuggestionImage(const gfx::ImageSkia& image) {
   suggestion_view_->SetImage(image);
-  Layout();
-  SchedulePaint();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -253,7 +236,7 @@
 // |button| is the tab switch button.
 void OmniboxResultView::ButtonPressed(views::Button* button,
                                       const ui::Event& event) {
-  if (button == suggestion_tab_switch_button_.get()) {
+  if (button == suggestion_tab_switch_button_) {
     OpenMatch(WindowOpenDisposition::SWITCH_TO_TAB, event.time_stamp());
   } else if (button == remove_suggestion_button_) {
     // Temporarily inhibit the popup closing on blur while we open the remove
@@ -287,16 +270,17 @@
   views::View::Layout();
   // NOTE: While animating the keyword match, both matches may be visible.
   int suggestion_width = width();
-  AutocompleteMatch* keyword_match = match_.associated_keyword.get();
-  if (keyword_match) {
+  if (keyword_view_->GetVisible()) {
     const int max_kw_x =
         suggestion_width - OmniboxMatchCellView::GetTextIndent();
     suggestion_width = animation_->CurrentValueBetween(max_kw_x, 0);
+    keyword_view_->SetBounds(suggestion_width, 0, width() - suggestion_width,
+                             height());
   }
 
   // Add buttons from right to left, shrinking the suggestion width as we go.
   // TODO(tommycli): We should probably use a layout manager here.
-  if (remove_suggestion_button_ && remove_suggestion_button_->GetVisible()) {
+  if (remove_suggestion_button_->GetVisible()) {
     const gfx::Size button_size = remove_suggestion_button_->GetPreferredSize();
     suggestion_width -=
         button_size.width() + OmniboxMatchCellView::kMarginRight;
@@ -308,7 +292,7 @@
                                          button_size.width(),
                                          button_size.height());
   }
-  if (suggestion_tab_switch_button_) {
+  if (match_.ShouldShowTabMatchButton()) {
     suggestion_tab_switch_button_->ProvideWidthHint(suggestion_width);
     const gfx::Size ts_button_size =
         suggestion_tab_switch_button_->GetPreferredSize();
@@ -330,16 +314,13 @@
     }
   }
 
-  keyword_view_->SetBounds(suggestion_width, 0, width() - suggestion_width,
-                           height());
-  if (popup_contents_view_->InExplicitExperimentalKeywordMode() ||
-      match_.IsSubMatch()) {
-    suggestion_view_->SetBounds(kKeywordSuggestionIndent, 0,
-                                suggestion_width - kKeywordSuggestionIndent,
-                                height());
-  } else {
-    suggestion_view_->SetBounds(0, 0, suggestion_width, height());
-  }
+  const int suggestion_indent =
+      (popup_contents_view_->InExplicitExperimentalKeywordMode() ||
+       match_.IsSubMatch())
+          ? 70
+          : 0;
+  suggestion_view_->SetBounds(suggestion_indent, 0,
+                              suggestion_width - suggestion_indent, height());
 }
 
 bool OmniboxResultView::OnMousePressed(const ui::MouseEvent& event) {
@@ -357,11 +338,11 @@
         popup_contents_view_->SetSelectedLine(model_index_);
       if (suggestion_tab_switch_button_) {
         gfx::Point point_in_child_coords(event.location());
-        View::ConvertPointToTarget(this, suggestion_tab_switch_button_.get(),
+        View::ConvertPointToTarget(this, suggestion_tab_switch_button_,
                                    &point_in_child_coords);
         if (suggestion_tab_switch_button_->HitTestPoint(
                 point_in_child_coords)) {
-          SetMouseHandler(suggestion_tab_switch_button_.get());
+          SetMouseHandler(suggestion_tab_switch_button_);
           return false;
         }
       }
@@ -423,15 +404,14 @@
 }
 
 gfx::Size OmniboxResultView::CalculatePreferredSize() const {
-  // The keyword_view_ is not added because keyword_view_ uses the same space as
-  // suggestion_view_. So the 'preferred' size is just the suggestion_view_
-  // size.
-  return suggestion_view_->CalculatePreferredSize();
+  gfx::Size size = suggestion_view_->GetPreferredSize();
+  if (keyword_view_->GetVisible())
+    size.SetToMax(keyword_view_->GetPreferredSize());
+  return size;
 }
 
 void OmniboxResultView::OnThemeChanged() {
   Invalidate(true);
-  SchedulePaint();
 }
 
 void OmniboxResultView::ProvideButtonFocusHint() {
@@ -474,7 +454,6 @@
   if (is_hovered_ != hovered) {
     is_hovered_ = hovered;
     Invalidate();
-    SchedulePaint();
   }
 }
 
@@ -493,13 +472,12 @@
 
 void OmniboxResultView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
   animation_->SetSlideDuration(base::TimeDelta::FromMilliseconds(width() / 4));
-  Layout();
+  InvalidateLayout();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// OmniboxResultView, gfx::AnimationProgressed overrides, private:
+// OmniboxResultView, views::AnimationDelegateViews overrides, private:
 
 void OmniboxResultView::AnimationProgressed(const gfx::Animation* animation) {
-  Layout();
-  SchedulePaint();
+  InvalidateLayout();
 }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_result_view.h b/chrome/browser/ui/views/omnibox/omnibox_result_view.h
index e7d8927..20f759c 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_result_view.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_result_view.h
@@ -144,10 +144,10 @@
   // Weak pointers for easy reference.
   OmniboxMatchCellView* suggestion_view_;  // The leading (or left) view.
   OmniboxMatchCellView* keyword_view_;     // The trailing (or right) view.
-  std::unique_ptr<OmniboxTabSwitchButton> suggestion_tab_switch_button_;
+  OmniboxTabSwitchButton* suggestion_tab_switch_button_;
 
   // The "X" button at the end of the match cell, used to remove suggestions.
-  views::ImageButton* remove_suggestion_button_ = nullptr;
+  views::ImageButton* remove_suggestion_button_;
 
   base::WeakPtrFactory<OmniboxResultView> weak_factory_{this};
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc b/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc
index 88c20d0..4826b06 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc
@@ -22,6 +22,7 @@
 #include "ui/views/animation/ink_drop_mask.h"
 #include "ui/views/controls/highlight_path_generator.h"
 
+// static
 bool OmniboxTabSwitchButton::calculated_widths_ = false;
 int OmniboxTabSwitchButton::icon_only_width_;
 int OmniboxTabSwitchButton::short_text_width_;
@@ -56,9 +57,10 @@
   } else {
     SetText(hint_);
   }
-  SetPreferredSize({full_text_width_, kButtonHeight});
+  SetPreferredSize({full_text_width_, 32});
+  SetCornerRadius(views::LayoutProvider::Get()->GetCornerRadiusMetric(
+      views::EMPHASIS_MAXIMUM, GetPreferredSize()));
   SetTooltipText(hint_);
-  SetCornerRadius(kButtonHeight / 2.f);
   SetElideBehavior(gfx::FADE_TAIL);
 
   SetInstallFocusRingOnFocus(true);
@@ -82,14 +84,13 @@
       // Otherwise, the button was hovered. Update color if not selected.
       SetBgColorOverride(GetBackgroundColor());
     }
-  }
-  if (state() == STATE_HOVERED) {
+  } else if (state() == STATE_HOVERED) {
     if (old_state == STATE_NORMAL) {
       SetBgColorOverride(GetBackgroundColor());
     }
-  }
-  if (state() == STATE_PRESSED)
+  } else if (state() == STATE_PRESSED) {
     SetPressed();
+  }
   MdTextButton::StateChanged(old_state);
 }
 
@@ -102,7 +103,7 @@
   base::string16 text;
   int preferred_width = CalculateGoalWidth(parent_width, &text);
   SetText(text);
-  SetPreferredSize({preferred_width, kButtonHeight});
+  SetPreferredSize({preferred_width, GetPreferredSize().height()});
 }
 
 void OmniboxTabSwitchButton::ProvideFocusHint() {
@@ -123,13 +124,6 @@
   return result_view_->IsSelected() && popup_contents_view_->IsButtonSelected();
 }
 
-SkPath OmniboxTabSwitchButton::GetFocusRingPath() const {
-  SkPath path;
-  path.addRRect(SkRRect::MakeRectXY(RectToSkRect(GetLocalBounds()),
-                                    height() / 2.f, height() / 2.f));
-  return path;
-}
-
 SkColor OmniboxTabSwitchButton::GetBackgroundColor() const {
   return GetOmniboxColor(theme_provider_, OmniboxPart::RESULTS_BACKGROUND,
                          state() == STATE_HOVERED ? OmniboxPartState::HOVERED
@@ -154,7 +148,5 @@
     return short_text_width_;
   }
   *goal_text = base::string16();
-  if (icon_only_width_ * 5 <= parent_width)
-    return icon_only_width_;
-  return 0;
+  return (icon_only_width_ * 5 <= parent_width) ? icon_only_width_ : 0;
 }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.h b/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.h
index edac3a6..7afcbefd 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.h
@@ -55,8 +55,6 @@
   // pass back the text at that width.
   int CalculateGoalWidth(int parent_width, base::string16* goal_text);
 
-  static constexpr int kButtonHeight = 32;
-
   // The ancestor views.
   OmniboxPopupContentsView* const popup_contents_view_;
   OmniboxResultView* const result_view_;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
index 01906ca..7eb8bb3 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
@@ -113,17 +113,12 @@
 }  // namespace
 
 OmniboxTextView::OmniboxTextView(OmniboxResultView* result_view)
-    : result_view_(result_view),
-      font_height_(0),
-      use_deemphasized_font_(false),
-      wrap_text_lines_(false) {}
+    : result_view_(result_view) {}
 
-OmniboxTextView::~OmniboxTextView() {}
+OmniboxTextView::~OmniboxTextView() = default;
 
 gfx::Size OmniboxTextView::CalculatePreferredSize() const {
-  if (!render_text_)
-    return gfx::Size();
-  return render_text_->GetStringSize();
+  return render_text_ ? render_text_->GetStringSize() : gfx::Size();
 }
 
 bool OmniboxTextView::CanProcessEventsWithinSubtree() const {
@@ -138,9 +133,8 @@
   if (!render_text_)
     return 0;
   // If text wrapping is not called for we can simply return the font height.
-  if (!wrap_text_lines_) {
+  if (!wrap_text_lines_)
     return GetLineHeight();
-  }
   render_text_->SetDisplayRect(gfx::Rect(width, 0));
   gfx::Size string_size = render_text_->GetStringSize();
   return string_size.height() + kVerticalPadding;
@@ -149,44 +143,41 @@
 void OmniboxTextView::OnPaint(gfx::Canvas* canvas) {
   View::OnPaint(canvas);
 
-  if (!render_text_) {
+  if (!render_text_)
     return;
-  }
   render_text_->SetDisplayRect(GetContentsBounds());
   render_text_->Draw(canvas);
 }
 
 void OmniboxTextView::ApplyTextColor(OmniboxPart part) {
   render_text_->SetColor(result_view_->GetColor(part));
+  SchedulePaint();
 }
 
 const base::string16& OmniboxTextView::text() const {
-  if (!render_text_)
-    return base::EmptyString16();
-  return render_text_->text();
+  return render_text_ ? render_text_->text() : base::EmptyString16();
 }
 
-void OmniboxTextView::SetText(const base::string16& text, bool deemphasize) {
+void OmniboxTextView::SetText(const base::string16& new_text,
+                              bool deemphasize) {
   if (cached_classifications_) {
     cached_classifications_.reset();
-  } else if (render_text_ && render_text_->text() == text &&
-             deemphasize == use_deemphasized_font_) {
+  } else if (text() == new_text && deemphasize == use_deemphasized_font_) {
     // Only exit early if |cached_classifications_| was empty,
     // i.e. the last time text was set was through this method.
     return;
   }
 
   use_deemphasized_font_ = deemphasize;
-  render_text_ = CreateRenderText(text);
-  UpdateLineHeight();
-  SetPreferredSize(CalculatePreferredSize());
-  SchedulePaint();
+  render_text_ = CreateRenderText(new_text);
+
+  OnStyleChanged();
 }
 
-void OmniboxTextView::SetText(const base::string16& text,
+void OmniboxTextView::SetText(const base::string16& new_text,
                               const ACMatchClassifications& classifications,
                               bool deemphasize) {
-  if (render_text_ && render_text_->text() == text && cached_classifications_ &&
+  if (text() == new_text && cached_classifications_ &&
       classifications == *cached_classifications_ &&
       deemphasize == use_deemphasized_font_)
     return;
@@ -195,7 +186,7 @@
 
   cached_classifications_ =
       std::make_unique<ACMatchClassifications>(classifications);
-  render_text_ = CreateRenderText(text);
+  render_text_ = CreateRenderText(new_text);
 
   // ReapplyStyling will update the preferred size and request a repaint.
   ReapplyStyling();
@@ -224,9 +215,7 @@
   // Add the "additional" and "status" text from |line|, if any.
   AppendExtraText(line);
 
-  UpdateLineHeight();
-  SetPreferredSize(CalculatePreferredSize());
-  SchedulePaint();
+  OnStyleChanged();
 }
 
 void OmniboxTextView::AppendExtraText(const SuggestionAnswer::ImageLine& line) {
@@ -247,36 +236,34 @@
 }
 
 void OmniboxTextView::ReapplyStyling() {
-  const ACMatchClassifications& classifications = *cached_classifications_;
-  const size_t text_length = render_text_->text().length();
-  for (size_t i = 0; i < classifications.size(); ++i) {
-    const size_t text_start = classifications[i].offset;
+  const size_t text_length = text().length();
+  for (size_t i = 0; i < cached_classifications_->size(); ++i) {
+    const size_t text_start = (*cached_classifications_)[i].offset;
     if (text_start >= text_length)
       break;
 
     const size_t text_end =
-        (i < (classifications.size() - 1))
-            ? std::min(classifications[i + 1].offset, text_length)
+        (i < (cached_classifications_->size() - 1))
+            ? std::min((*cached_classifications_)[i + 1].offset, text_length)
             : text_length;
     const gfx::Range current_range(text_start, text_end);
 
     // Calculate style-related data.
-    if (classifications[i].style & ACMatchClassification::MATCH)
+    if ((*cached_classifications_)[i].style & ACMatchClassification::MATCH)
       render_text_->ApplyWeight(gfx::Font::Weight::BOLD, current_range);
 
     OmniboxPart part = OmniboxPart::RESULTS_TEXT_DEFAULT;
-    if (classifications[i].style & ACMatchClassification::URL) {
+    if ((*cached_classifications_)[i].style & ACMatchClassification::URL) {
       part = OmniboxPart::RESULTS_TEXT_URL;
       render_text_->SetDirectionalityMode(gfx::DIRECTIONALITY_AS_URL);
-    } else if (classifications[i].style & ACMatchClassification::DIM) {
+    } else if ((*cached_classifications_)[i].style &
+               ACMatchClassification::DIM) {
       part = OmniboxPart::RESULTS_TEXT_DIMMED;
     }
     render_text_->ApplyColor(result_view_->GetColor(part), current_range);
   }
 
-  UpdateLineHeight();
-  SetPreferredSize(CalculatePreferredSize());
-  SchedulePaint();
+  OnStyleChanged();
 }
 
 std::unique_ptr<gfx::RenderText> OmniboxTextView::CreateRenderText(
@@ -296,17 +283,17 @@
 
 void OmniboxTextView::AppendText(const SuggestionAnswer::TextField& field,
                                  const base::string16& prefix) {
-  const base::string16& text =
+  const base::string16& append_text =
       prefix.empty() ? field.text() : (prefix + field.text());
-  if (text.empty())
+  if (append_text.empty())
     return;
-  int offset = render_text_->text().length();
-  gfx::Range range(offset, offset + text.length());
-  render_text_->AppendText(text);
+  int offset = text().length();
+  gfx::Range range(offset, offset + append_text.length());
+  render_text_->AppendText(append_text);
   ApplyTextStyleForType(field.style(), result_view_, render_text_.get(), range);
 }
 
-void OmniboxTextView::UpdateLineHeight() {
+void OmniboxTextView::OnStyleChanged() {
   const int height_normal = render_text_->font_list().GetHeight();
   const int height_bold =
       ui::ResourceBundle::GetSharedInstance()
@@ -316,4 +303,7 @@
           .GetHeight();
   font_height_ = std::max(height_normal, height_bold);
   font_height_ += kVerticalPadding;
+
+  SetPreferredSize(CalculatePreferredSize());
+  SchedulePaint();
 }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.h b/chrome/browser/ui/views/omnibox/omnibox_text_view.h
index 9c79db3..74bff811 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_text_view.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.h
@@ -45,12 +45,12 @@
   // Returns the render text, or an empty string if there is none.
   const base::string16& text() const;
 
-  // Sets the render text with default rendering for the given |text|. The
+  // Sets the render text with default rendering for the given |new_text|. The
   // |classifications| are used to style the text. An ImageLine incorporates
   // both the text and the styling.
   // |deemphasize| specifies whether to use a slightly smaller font than normal.
-  void SetText(const base::string16& text, bool deemphasize = false);
-  void SetText(const base::string16& text,
+  void SetText(const base::string16& new_text, bool deemphasize = false);
+  void SetText(const base::string16& new_text,
                const ACMatchClassifications& classifications,
                bool deemphasize = false);
   void SetText(const SuggestionAnswer::ImageLine& line,
@@ -78,22 +78,22 @@
   void AppendText(const SuggestionAnswer::TextField& field,
                   const base::string16& prefix);
 
-  // Updates the cached maximum line height.
-  void UpdateLineHeight();
+  // Updates the cached maximum line height and recomputes the preferred size.
+  void OnStyleChanged();
 
   // To get color values.
   OmniboxResultView* result_view_;
 
   // Font settings for this view.
-  int font_height_;
+  int font_height_ = 0;
 
   // Whether to apply deemphasized font instead of primary omnibox font.
   // TODO(orinj): Use a more general ChromeTextContext for flexibility, or
   // otherwise clean up & unify the different ways of selecting fonts & styles.
-  bool use_deemphasized_font_;
+  bool use_deemphasized_font_ = false;
 
   // Whether to wrap lines if the width is too narrow for the whole string.
-  bool wrap_text_lines_;
+  bool wrap_text_lines_ = false;
 
   // The primary data for this class.
   std::unique_ptr<gfx::RenderText> render_text_;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
index 05b3b119..de22b4c 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -1106,6 +1106,13 @@
     filter_drag_events_for_unelision_ = true;
   }
 
+  // This is intended to cover the NTP case where the omnibox starts focused.
+  // The user can explicitly request on-focus suggestions by clicking or tapping
+  // the omnibox. Restricted to empty textfield to avoid disrupting selections.
+  if (HasFocus() && GetText().empty() && event.IsOnlyLeftMouseButton()) {
+    model()->ShowOnFocusSuggestionsIfAutocompleteIdle();
+  }
+
   return handled;
 }
 
@@ -1171,6 +1178,13 @@
       event->type() == ui::ET_GESTURE_LONG_TAP) {
     select_all_on_gesture_tap_ = false;
   }
+
+  // This is intended to cover the NTP case where the omnibox starts focused.
+  // The user can explicitly request on-focus suggestions by clicking or tapping
+  // the omnibox. Restricted to empty textfield to avoid disrupting selections.
+  if (HasFocus() && GetText().empty() && event->type() == ui::ET_GESTURE_TAP) {
+    model()->ShowOnFocusSuggestionsIfAutocompleteIdle();
+  }
 }
 
 void OmniboxViewViews::AboutToRequestFocusFromTabTraversal(bool reverse) {
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view.cc b/chrome/browser/ui/views/page_info/page_info_bubble_view.cc
index 0ae6580..a470642 100644
--- a/chrome/browser/ui/views/page_info/page_info_bubble_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_bubble_view.cc
@@ -20,7 +20,6 @@
 #include "build/build_config.h"
 #include "chrome/browser/certificate_viewer.h"
 #include "chrome/browser/infobars/infobar_service.h"
-#include "chrome/browser/lookalikes/safety_tips/safety_tip_ui_helper.h"
 #include "chrome/browser/platform_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
@@ -735,8 +734,8 @@
   std::unique_ptr<PageInfoUI::SecurityDescription> security_description =
       GetSecurityDescription(identity_info);
 
+  // Set the bubble title, update the title label text, then apply color.
   set_window_title(security_description->summary);
-  set_security_description(*security_description);
   GetBubbleFrameView()->UpdateWindowTitle();
   int text_style = views::style::STYLE_PRIMARY;
   switch (security_description->summary_style) {
@@ -927,7 +926,6 @@
       GetPasswordProtectionService(profile_);
   security_description->details = service->GetWarningDetailText(
       service->reused_password_account_type_for_last_shown_warning());
-  security_description->type = SecurityDescriptionType::SAFE_BROWSING;
   return security_description;
 }
 #endif
@@ -987,16 +985,12 @@
                                                 int event_flags) {
   switch (label->GetID()) {
     case PageInfoBubbleView::VIEW_ID_PAGE_INFO_LABEL_SECURITY_DETAILS:
-      if (GetSecurityDetails().type == SecurityDescriptionType::SAFETY_TIP) {
-        safety_tips::OpenHelpCenter(web_contents());
-      } else {
-        web_contents()->OpenURL(content::OpenURLParams(
-            GURL(chrome::kPageInfoHelpCenterURL), content::Referrer(),
-            WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK,
-            false));
-        presenter_->RecordPageInfoAction(
-            PageInfo::PAGE_INFO_CONNECTION_HELP_OPENED);
-      }
+      web_contents()->OpenURL(content::OpenURLParams(
+          GURL(chrome::kPageInfoHelpCenterURL), content::Referrer(),
+          WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK,
+          false));
+      presenter_->RecordPageInfoAction(
+          PageInfo::PAGE_INFO_CONNECTION_HELP_OPENED);
       break;
     case PageInfoBubbleView::
         VIEW_ID_PAGE_INFO_LABEL_RESET_CERTIFICATE_DECISIONS:
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view_base.cc b/chrome/browser/ui/views/page_info/page_info_bubble_view_base.cc
index 10d34ab8..d509153a 100644
--- a/chrome/browser/ui/views/page_info/page_info_bubble_view_base.cc
+++ b/chrome/browser/ui/views/page_info/page_info_bubble_view_base.cc
@@ -6,7 +6,6 @@
 
 #include "base/strings/string16.h"
 #include "chrome/browser/ui/page_info/page_info_dialog.h"
-#include "chrome/browser/ui/page_info/page_info_ui.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
 #include "ui/base/buildflags.h"
@@ -72,11 +71,6 @@
   g_page_info_bubble = nullptr;
 }
 
-PageInfoUI::SecurityDescription PageInfoBubbleViewBase::GetSecurityDetails()
-    const {
-  return security_description_;
-}
-
 void PageInfoBubbleViewBase::RenderFrameDeleted(
     content::RenderFrameHost* render_frame_host) {
   if (render_frame_host == web_contents()->GetMainFrame()) {
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view_base.h b/chrome/browser/ui/views/page_info/page_info_bubble_view_base.h
index 3fea985..1828b8d 100644
--- a/chrome/browser/ui/views/page_info/page_info_bubble_view_base.h
+++ b/chrome/browser/ui/views/page_info/page_info_bubble_view_base.h
@@ -5,7 +5,6 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_PAGE_INFO_PAGE_INFO_BUBBLE_VIEW_BASE_H_
 #define CHROME_BROWSER_UI_VIEWS_PAGE_INFO_PAGE_INFO_BUBBLE_VIEW_BASE_H_
 
-#include "chrome/browser/ui/page_info/page_info_ui.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "ui/gfx/native_widget_types.h"
 #include "ui/views/bubble/bubble_dialog_delegate_view.h"
@@ -57,12 +56,7 @@
   bool ShouldShowCloseButton() const override;
   void OnWidgetDestroying(views::Widget* widget) override;
 
-  PageInfoUI::SecurityDescription GetSecurityDetails() const;
   void set_window_title(const base::string16& title) { window_title_ = title; }
-  void set_security_description(
-      const PageInfoUI::SecurityDescription& description) {
-    security_description_ = description;
-  }
 
  private:
   // WebContentsObserver:
@@ -72,7 +66,6 @@
   void DidChangeVisibleSecurityState() override;
 
   base::string16 window_title_;
-  PageInfoUI::SecurityDescription security_description_;
 
   DISALLOW_COPY_AND_ASSIGN(PageInfoBubbleViewBase);
 };
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc b/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc
index f613505..de55789 100644
--- a/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc
+++ b/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc
@@ -88,9 +88,6 @@
   views::Widget::ClosedReason closed_reason() const { return *closed_reason_; }
 
   base::string16 GetWindowTitle() { return view_->GetWindowTitle(); }
-  PageInfoUI::SecurityDescription GetSecurityDetails() {
-    return view_->GetSecurityDetails();
-  }
 
   PermissionSelectorRow* GetPermissionSelectorAt(int index) {
     return view_->selector_rows_[index].get();
@@ -685,8 +682,6 @@
   api_->CreateView();
   EXPECT_EQ(l10n_util::GetStringUTF16(IDS_PAGE_INFO_NOT_SECURE_SUMMARY),
             api_->GetWindowTitle());
-  EXPECT_EQ(PageInfoUI::SecurityDescriptionType::CONNECTION,
-            api_->GetSecurityDetails().type);
 
   // Set up a test SSLInfo so that Page Info sees the connection as secure.
   uint16_t cipher_suite = 0xc02f;  // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
@@ -705,8 +700,6 @@
   navigation->Commit();
   EXPECT_EQ(l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURE_SUMMARY),
             api_->GetWindowTitle());
-  EXPECT_EQ(PageInfoUI::SecurityDescriptionType::CONNECTION,
-            api_->GetSecurityDetails().type);
 }
 
 TEST_F(PageInfoBubbleViewTest, EnsureCloseCallback) {
diff --git a/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc b/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc
index a9e4401..21d8730 100644
--- a/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc
+++ b/chrome/browser/ui/views/page_info/safety_tip_page_info_bubble_view_browsertest.cc
@@ -232,26 +232,22 @@
     }
 
     OpenPageInfoBubble(browser);
-    auto* page_info = static_cast<SafetyTipPageInfoBubbleView*>(
-        PageInfoBubbleViewBase::GetPageInfoBubbleForTesting());
+    views::BubbleDialogDelegateView* page_info =
+        PageInfoBubbleViewBase::GetPageInfoBubbleForTesting();
     ASSERT_TRUE(page_info);
     EXPECT_EQ(page_info->GetWindowTitle(),
               l10n_util::GetStringUTF16(
                   IDS_PAGE_INFO_SAFETY_TIP_BAD_REPUTATION_TITLE));
-    EXPECT_EQ(page_info->GetSecurityDetails().type,
-              PageInfoUI::SecurityDescriptionType::SAFETY_TIP);
   }
 
   void CheckPageInfoDoesNotShowSafetyTipInfo(Browser* browser) {
     OpenPageInfoBubble(browser);
-    auto* page_info = static_cast<SafetyTipPageInfoBubbleView*>(
-        PageInfoBubbleViewBase::GetPageInfoBubbleForTesting());
+    views::BubbleDialogDelegateView* page_info =
+        PageInfoBubbleViewBase::GetPageInfoBubbleForTesting();
     ASSERT_TRUE(page_info);
     EXPECT_NE(page_info->GetWindowTitle(),
               l10n_util::GetStringUTF16(
                   IDS_PAGE_INFO_SAFETY_TIP_BAD_REPUTATION_TITLE));
-    EXPECT_NE(page_info->GetSecurityDetails().type,
-              PageInfoUI::SecurityDescriptionType::SAFETY_TIP);
   }
 
  private:
diff --git a/chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.cc b/chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.cc
new file mode 100644
index 0000000..c1a6dd09
--- /dev/null
+++ b/chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.cc
@@ -0,0 +1,56 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.h"
+
+#include "base/callback_forward.h"
+#include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h"
+#include "chrome/grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/base/window_open_disposition.h"
+
+namespace safe_browsing {
+
+DeepScanningModalDialog::DeepScanningModalDialog(
+    content::WebContents* web_contents,
+    base::OnceClosure accept_callback)
+    : TabModalConfirmDialogDelegate(web_contents),
+      accept_callback_(std::move(accept_callback)) {}
+
+DeepScanningModalDialog::~DeepScanningModalDialog() {}
+
+base::string16 DeepScanningModalDialog::GetTitle() {
+  return l10n_util::GetStringUTF16(IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_TITLE);
+}
+
+base::string16 DeepScanningModalDialog::GetDialogMessage() {
+  return l10n_util::GetStringUTF16(IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_MESSAGE);
+}
+
+base::string16 DeepScanningModalDialog::GetAcceptButtonTitle() {
+  return l10n_util::GetStringUTF16(
+      IDS_DEEP_SCANNING_DIALOG_OPEN_NOW_ACCEPT_BUTTON);
+}
+
+base::string16 DeepScanningModalDialog::GetLinkText() const {
+  // TODO(drubery): Once we have an FAQ page for download deep scanning, link it
+  // here.
+  return base::string16();
+}
+
+int DeepScanningModalDialog::GetDialogButtons() const {
+  return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL;
+}
+
+void DeepScanningModalDialog::OnLinkClicked(WindowOpenDisposition disposition) {
+  // TODO(drubery): Once we have an FAQ page for download deep scanning, link it
+  // here;
+}
+
+void DeepScanningModalDialog::OnAccepted() {
+  std::move(accept_callback_).Run();
+}
+
+}  // namespace safe_browsing
diff --git a/chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.h b/chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.h
new file mode 100644
index 0000000..b064e9e
--- /dev/null
+++ b/chrome/browser/ui/views/safe_browsing/deep_scanning_modal_dialog.h
@@ -0,0 +1,44 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_DEEP_SCANNING_MODAL_DIALOG_H_
+#define CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_DEEP_SCANNING_MODAL_DIALOG_H_
+
+#include "base/callback_forward.h"
+#include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h"
+
+namespace content {
+class WebContents;
+}
+
+namespace safe_browsing {
+
+// A tab modal dialog that prompts the user to confirm their intent to open the
+// dialog while a scan is in progress.
+class DeepScanningModalDialog : public TabModalConfirmDialogDelegate {
+ public:
+  // Create a DeepScanningModalDialog attached to |web_contents|. The
+  // dialog will call |accept_callback| if the user accepts the prompt.
+  DeepScanningModalDialog(content::WebContents* web_contents,
+                          base::OnceClosure accept_callback);
+  DeepScanningModalDialog(const DeepScanningModalDialog&) = delete;
+  DeepScanningModalDialog& operator=(const DeepScanningModalDialog&) = delete;
+  ~DeepScanningModalDialog() override;
+
+ private:
+  // TabModalConfirmDialogDelegate implementation.
+  base::string16 GetTitle() override;
+  base::string16 GetDialogMessage() override;
+  base::string16 GetAcceptButtonTitle() override;
+  base::string16 GetLinkText() const override;
+  int GetDialogButtons() const override;
+  void OnLinkClicked(WindowOpenDisposition disposition) override;
+  void OnAccepted() override;
+
+  base::OnceClosure accept_callback_;
+};
+
+}  // namespace safe_browsing
+
+#endif  // CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_DEEP_SCANNING_MODAL_DIALOG_H_
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index 474446a..62cf0ff 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -1968,7 +1968,10 @@
   *drag_offset = point_in_screen - new_bounds.origin();
 
   Browser::CreateParams create_params =
-      BrowserList::GetInstance()->GetLastActive()->create_params();
+      BrowserView::GetBrowserViewForNativeWindow(
+          GetAttachedBrowserWidget()->GetNativeWindow())
+          ->browser()
+          ->create_params();
   create_params.user_gesture = true;
   create_params.in_tab_dragging = true;
   create_params.initial_bounds = new_bounds;
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 6502cc7..e458e1f39 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2363,6 +2363,7 @@
     {"printerModel", IDS_SETTINGS_PRINTING_CUPS_PRINTER_DETAILS_MODEL},
     {"printerQueue", IDS_SETTINGS_PRINTING_CUPS_PRINTER_DETAILS_QUEUE},
     {"savedPrintersTitle", IDS_SETTINGS_PRINTING_CUPS_SAVED_PRINTERS_TITLE},
+    {"showMorePrinters", IDS_SETTINGS_PRINTING_CUPS_SHOW_MORE},
     {"addPrintersNearbyTitle",
      IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTERS_NEARBY_TITLE},
     {"addPrintersManuallyTitle",
diff --git a/chrome/browser/web_applications/components/app_shortcut_manager.h b/chrome/browser/web_applications/components/app_shortcut_manager.h
index 6229d7fa..1822c589 100644
--- a/chrome/browser/web_applications/components/app_shortcut_manager.h
+++ b/chrome/browser/web_applications/components/app_shortcut_manager.h
@@ -5,13 +5,18 @@
 #ifndef CHROME_BROWSER_WEB_APPLICATIONS_COMPONENTS_APP_SHORTCUT_MANAGER_H_
 #define CHROME_BROWSER_WEB_APPLICATIONS_COMPONENTS_APP_SHORTCUT_MANAGER_H_
 
+#include <memory>
+
+#include "base/callback_forward.h"
 #include "base/macros.h"
+#include "chrome/browser/web_applications/components/web_app_helpers.h"
 
 class Profile;
 
 namespace web_app {
 
 class AppRegistrar;
+struct ShortcutInfo;
 
 // TODO(crbug.com/860581): Migrate functions from
 // web_app_extension_shortcut.(h|cc) and
@@ -24,6 +29,14 @@
 
   void SetSubsystems(AppRegistrar* registrar);
 
+  // The result of a call to GetShortcutInfo.
+  using GetShortcutInfoCallback =
+      base::OnceCallback<void(std::unique_ptr<ShortcutInfo>)>;
+  // Asynchronously gets the information required to create a shortcut for
+  // |app_id|.
+  virtual void GetShortcutInfoForApp(const AppId& app_id,
+                                     GetShortcutInfoCallback callback) = 0;
+
  protected:
   AppRegistrar* registrar() { return registrar_; }
   Profile* profile() { return profile_; }
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.cc b/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.cc
index 13a18c9..8f56264 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.cc
+++ b/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.cc
@@ -4,6 +4,12 @@
 
 #include "chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.h"
 
+#include "base/callback.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/web_applications/components/web_app_shortcut.h"
+#include "chrome/browser/web_applications/extensions/web_app_extension_shortcut.h"
+#include "extensions/browser/extension_registry.h"
+
 namespace extensions {
 
 BookmarkAppShortcutManager::BookmarkAppShortcutManager(Profile* profile)
@@ -11,4 +17,13 @@
 
 BookmarkAppShortcutManager::~BookmarkAppShortcutManager() = default;
 
+void BookmarkAppShortcutManager::GetShortcutInfoForApp(
+    const web_app::AppId& app_id,
+    GetShortcutInfoCallback callback) {
+  const Extension* extension =
+      ExtensionRegistry::Get(profile())->GetInstalledExtension(app_id);
+  DCHECK(extension);
+  web_app::GetShortcutInfoForApp(extension, profile(), std::move(callback));
+}
+
 }  // namespace extensions
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.h b/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.h
index 826a81c1..a9d8f729 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.h
+++ b/chrome/browser/web_applications/extensions/bookmark_app_shortcut_manager.h
@@ -17,6 +17,9 @@
   explicit BookmarkAppShortcutManager(Profile* profile);
   ~BookmarkAppShortcutManager() override;
 
+  void GetShortcutInfoForApp(const web_app::AppId& app_id,
+                             GetShortcutInfoCallback callback) override;
+
  private:
   DISALLOW_COPY_AND_ASSIGN(BookmarkAppShortcutManager);
 };
diff --git a/chrome/browser/web_applications/web_app_shortcut_manager.cc b/chrome/browser/web_applications/web_app_shortcut_manager.cc
index f0dd30f..dc9222f 100644
--- a/chrome/browser/web_applications/web_app_shortcut_manager.cc
+++ b/chrome/browser/web_applications/web_app_shortcut_manager.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/web_applications/web_app_shortcut_manager.h"
 
+#include "base/callback.h"
+
 namespace web_app {
 
 WebAppShortcutManager::WebAppShortcutManager(Profile* profile)
@@ -11,4 +13,10 @@
 
 WebAppShortcutManager::~WebAppShortcutManager() = default;
 
+void WebAppShortcutManager::GetShortcutInfoForApp(
+    const AppId& app_id,
+    GetShortcutInfoCallback callback) {
+  NOTIMPLEMENTED();
+}
+
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/web_app_shortcut_manager.h b/chrome/browser/web_applications/web_app_shortcut_manager.h
index 27b2983..e078b89 100644
--- a/chrome/browser/web_applications/web_app_shortcut_manager.h
+++ b/chrome/browser/web_applications/web_app_shortcut_manager.h
@@ -17,6 +17,9 @@
   explicit WebAppShortcutManager(Profile* profile);
   ~WebAppShortcutManager() override;
 
+  void GetShortcutInfoForApp(const AppId& app_id,
+                             GetShortcutInfoCallback callback) override;
+
  private:
   DISALLOW_COPY_AND_ASSIGN(WebAppShortcutManager);
 };
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 321ff9e..87a8864 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -223,10 +223,6 @@
 // Enable support for "Plugin VMs" on Chrome OS.
 const base::Feature kPluginVm{"PluginVm", base::FEATURE_DISABLED_BY_DEFAULT};
 
-// Whether the UsageTimeLimit policy should be applied to the user.
-const base::Feature kUsageTimeLimitPolicy{"UsageTimeLimitPolicy",
-                                          base::FEATURE_ENABLED_BY_DEFAULT};
-
 // Allow a Wilco DTC (diagnostics and telemetry controller) on Chrome OS.
 // More info about the project may be found here:
 // https://docs.google.com/document/d/18Ijj8YlC8Q3EWRzLspIi2dGxg4vIBVe5sJgMPt9SWYo
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index c7d9c731..54b189c 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -132,8 +132,6 @@
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kCupsPrintersUiOverhaul;
 COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kPluginVm;
-COMPONENT_EXPORT(CHROME_FEATURES)
-extern const base::Feature kUsageTimeLimitPolicy;
 COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWilcoDtc;
 COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kUploadZippedSystemLogs;
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index a902cfb..7452ee3 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -2471,6 +2471,12 @@
 // or not.
 const char kCloudExtensionRequestEnabled[] =
     "enterprise_reporting.extension_request.enabled";
+
+// A list of extension ids represents pending extension request. The ids are
+// stored once user sent the request until the request is canceled, approved or
+// denied.
+const char kCloudExtensionRequestIds[] =
+    "enterprise_reporting.extension_request.ids";
 #endif
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 52cb2bc..cb9d628 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -845,6 +845,7 @@
 #if !defined(OS_ANDROID)
 extern const char kCloudReportingEnabled[];
 extern const char kCloudExtensionRequestEnabled[];
+extern const char kCloudExtensionRequestIds[];
 #endif
 
 #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
index 9b3fed18..5c4d8b63 100644
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -47,6 +47,7 @@
     "benchmarking_extension.h",
     "chrome_content_renderer_client.cc",
     "chrome_content_renderer_client.h",
+    "chrome_content_renderer_client_receiver_bindings.cc",
     "chrome_render_frame_observer.cc",
     "chrome_render_frame_observer.h",
     "chrome_render_thread_observer.cc",
diff --git a/chrome/renderer/OWNERS b/chrome/renderer/OWNERS
index 1562c31..08914d1 100644
--- a/chrome/renderer/OWNERS
+++ b/chrome/renderer/OWNERS
@@ -7,6 +7,10 @@
 # Instant/Search files.
 per-file instant_restricted_id_cache*=file://chrome/browser/search/OWNERS
 
+# For security review.
+per-file chrome_content_renderer_client_receiver_bindings.cc=set noparent
+per-file chrome_content_renderer_client_receiver_bindings.cc=file://ipc/SECURITY_OWNERS
+
 # Content client.
 per-file chrome_content_renderer_client_browsertest.cc=*
 per-file chrome_content_renderer_client.cc=*
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 610b1d16..4d3cfef 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -155,21 +155,6 @@
 #include "chrome/renderer/searchbox/searchbox_extension.h"
 #endif
 
-#if defined(OS_LINUX)
-#include "base/allocator/buildflags.h"
-#if BUILDFLAG(USE_TCMALLOC)
-#include "chrome/common/performance_manager/mojom/tcmalloc.mojom.h"
-#include "chrome/renderer/performance_manager/mechanisms/tcmalloc_tunables_impl.h"
-#endif  // BUILDFLAG(USE_TCMALLOC)
-#endif  // defined(OS_LINUX)
-
-#if defined(OS_WIN)
-#endif
-
-#if BUILDFLAG(FULL_SAFE_BROWSING)
-#include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h"
-#endif
-
 #if BUILDFLAG(ENABLE_NACL)
 #include "components/nacl/common/nacl_constants.h"
 #include "components/nacl/renderer/nacl_helper.h"
@@ -1602,41 +1587,3 @@
 #endif
   return url.SchemeIs(content::kChromeUIScheme) && !can_use_polyfill;
 }
-
-void ChromeContentRendererClient::BindReceiverOnMainThread(
-    mojo::GenericPendingReceiver receiver) {
-  if (auto agent_receiver = receiver.As<chrome::mojom::WebRtcLoggingAgent>()) {
-    if (!webrtc_logging_agent_impl_) {
-      webrtc_logging_agent_impl_ =
-          std::make_unique<chrome::WebRtcLoggingAgentImpl>();
-    }
-    webrtc_logging_agent_impl_->AddReceiver(std::move(agent_receiver));
-    return;
-  }
-
-#if BUILDFLAG(FULL_SAFE_BROWSING)
-  if (auto setter_receiver =
-          receiver.As<safe_browsing::mojom::PhishingModelSetter>()) {
-    safe_browsing::PhishingClassifierFilter::Create(std::move(setter_receiver));
-    return;
-  }
-#endif
-
-#if defined(OS_LINUX)
-#if BUILDFLAG(USE_TCMALLOC)
-  if (auto setter_receiver = receiver.As<tcmalloc::mojom::TcmallocTunables>()) {
-    performance_manager::mechanism::TcmallocTunablesImpl::Create(
-        std::move(setter_receiver));
-    return;
-  }
-#endif  // BUILDFLAG(USE_TCMALLOC)
-#endif  // defined(OS_LINUX)
-
-  // TODO(crbug.com/977637): Get rid of the use of BinderRegistry here. This was
-  // done only to avoid churning spellcheck code while eliminting the "chrome"
-  // and "chrome_renderer" services. Spellcheck is (and should remain) the only
-  // user of |registry_|.
-  std::string interface_name = *receiver.interface_name();
-  auto pipe = receiver.PassPipe();
-  registry_.TryBindInterface(interface_name, &pipe);
-}
diff --git a/chrome/renderer/chrome_content_renderer_client_receiver_bindings.cc b/chrome/renderer/chrome_content_renderer_client_receiver_bindings.cc
new file mode 100644
index 0000000..a92b7674
--- /dev/null
+++ b/chrome/renderer/chrome_content_renderer_client_receiver_bindings.cc
@@ -0,0 +1,63 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file exposes services in the renderer to the browser.
+
+#include "chrome/renderer/chrome_content_renderer_client.h"
+
+#include <memory>
+
+#include "build/build_config.h"
+#include "chrome/renderer/media/webrtc_logging_agent_impl.h"
+#include "components/safe_browsing/buildflags.h"
+
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+#include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h"
+#endif
+
+#if defined(OS_LINUX)
+#include "base/allocator/buildflags.h"
+#if BUILDFLAG(USE_TCMALLOC)
+#include "chrome/common/performance_manager/mojom/tcmalloc.mojom.h"
+#include "chrome/renderer/performance_manager/mechanisms/tcmalloc_tunables_impl.h"
+#endif  // BUILDFLAG(USE_TCMALLOC)
+#endif  // defined(OS_LINUX)
+
+void ChromeContentRendererClient::BindReceiverOnMainThread(
+    mojo::GenericPendingReceiver receiver) {
+  if (auto agent_receiver = receiver.As<chrome::mojom::WebRtcLoggingAgent>()) {
+    if (!webrtc_logging_agent_impl_) {
+      webrtc_logging_agent_impl_ =
+          std::make_unique<chrome::WebRtcLoggingAgentImpl>();
+    }
+    webrtc_logging_agent_impl_->AddReceiver(std::move(agent_receiver));
+    return;
+  }
+
+#if BUILDFLAG(FULL_SAFE_BROWSING)
+  if (auto setter_receiver =
+          receiver.As<safe_browsing::mojom::PhishingModelSetter>()) {
+    safe_browsing::PhishingClassifierFilter::Create(std::move(setter_receiver));
+    return;
+  }
+#endif
+
+#if defined(OS_LINUX)
+#if BUILDFLAG(USE_TCMALLOC)
+  if (auto setter_receiver = receiver.As<tcmalloc::mojom::TcmallocTunables>()) {
+    performance_manager::mechanism::TcmallocTunablesImpl::Create(
+        std::move(setter_receiver));
+    return;
+  }
+#endif  // BUILDFLAG(USE_TCMALLOC)
+#endif  // defined(OS_LINUX)
+
+  // TODO(crbug.com/977637): Get rid of the use of BinderRegistry here. This was
+  // done only to avoid churning spellcheck code while eliminting the "chrome"
+  // and "chrome_renderer" services. Spellcheck is (and should remain) the only
+  // user of |registry_|.
+  std::string interface_name = *receiver.interface_name();
+  auto pipe = receiver.PassPipe();
+  registry_.TryBindInterface(interface_name, &pipe);
+}
diff --git a/chrome/service/BUILD.gn b/chrome/service/BUILD.gn
index 7046883..f6b6231 100644
--- a/chrome/service/BUILD.gn
+++ b/chrome/service/BUILD.gn
@@ -86,6 +86,7 @@
     sources += [
       "service_utility_process_host.cc",
       "service_utility_process_host.h",
+      "service_utility_process_host_receiver_bindings.cc",
     ]
   }
 }
diff --git a/chrome/service/OWNERS b/chrome/service/OWNERS
index 3b8d2d0..8c862b79 100644
--- a/chrome/service/OWNERS
+++ b/chrome/service/OWNERS
@@ -1,3 +1,6 @@
 file://cloud_print/OWNERS
 
+per-file service_utility_process_host_receiver_bindings.cc=set noparent
+per-file service_utility_process_host_receiver_bindings.cc=file://ipc/SECURITY_OWNERS
+
 # COMPONENT: Services>CloudPrint
diff --git a/chrome/service/service_utility_process_host.cc b/chrome/service/service_utility_process_host.cc
index 04f2b5e8..2ade433 100644
--- a/chrome/service/service_utility_process_host.cc
+++ b/chrome/service/service_utility_process_host.cc
@@ -483,14 +483,6 @@
       interface_name, std::move(interface_pipe));
 }
 
-void ServiceUtilityProcessHost::BindHostReceiver(
-    mojo::GenericPendingReceiver receiver) {
-  if (auto r = receiver.As<content::mojom::FontCacheWin>()) {
-    content::FontCacheDispatcher::Create(std::move(r));
-    return;
-  }
-}
-
 void ServiceUtilityProcessHost::OnMetafileSpooled(bool success) {
   if (!success || pdf_to_emf_state_->OnPageProcessed())
     OnPDFToEmfFinished(success);
diff --git a/chrome/service/service_utility_process_host_receiver_bindings.cc b/chrome/service/service_utility_process_host_receiver_bindings.cc
new file mode 100644
index 0000000..2959574
--- /dev/null
+++ b/chrome/service/service_utility_process_host_receiver_bindings.cc
@@ -0,0 +1,18 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This exposes services in the browser to utility processes.
+
+#include "chrome/service/service_utility_process_host.h"
+
+#include "content/public/common/font_cache_dispatcher_win.h"
+#include "content/public/common/font_cache_win.mojom.h"
+
+void ServiceUtilityProcessHost::BindHostReceiver(
+    mojo::GenericPendingReceiver receiver) {
+  if (auto r = receiver.As<content::mojom::FontCacheWin>()) {
+    content::FontCacheDispatcher::Create(std::move(r));
+    return;
+  }
+}
diff --git a/chrome/services/app_service/public/mojom/types.mojom b/chrome/services/app_service/public/mojom/types.mojom
index a2d8b6d..74796192 100644
--- a/chrome/services/app_service/public/mojom/types.mojom
+++ b/chrome/services/app_service/public/mojom/types.mojom
@@ -163,6 +163,8 @@
   kFromParentalControls,         // Parental Controls Settings Section.
   kFromShelf,                    // Shelf.
   kFromFileManager,              // FileManager.
+  kFromLink,                     // Left-licking on links in the browser.
+  kFromOmnibox,                  // Enter URL in the Omnibox in the browser.
 };
 
 enum TriState {
diff --git a/chrome/services/cups_proxy/cups_proxy_service_delegate.h b/chrome/services/cups_proxy/cups_proxy_service_delegate.h
index 5c38d59..19c75c5 100644
--- a/chrome/services/cups_proxy/cups_proxy_service_delegate.h
+++ b/chrome/services/cups_proxy/cups_proxy_service_delegate.h
@@ -36,6 +36,7 @@
   virtual base::Optional<chromeos::Printer> GetPrinter(
       const std::string& id) = 0;
   virtual bool IsPrinterInstalled(const chromeos::Printer& printer) = 0;
+  virtual void PrinterInstalled(const chromeos::Printer& printer) = 0;
   virtual scoped_refptr<base::SingleThreadTaskRunner> GetIOTaskRunner() = 0;
 
   // |cb| will be run on this delegate's sequenced context.
diff --git a/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.cc b/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.cc
index 4561a2ec..2c1a9cea 100644
--- a/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.cc
+++ b/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.cc
@@ -21,6 +21,9 @@
   return false;
 }
 
+void FakeCupsProxyServiceDelegate::PrinterInstalled(
+    const chromeos::Printer& printer) {}
+
 scoped_refptr<base::SingleThreadTaskRunner>
 FakeCupsProxyServiceDelegate::GetIOTaskRunner() {
   return nullptr;
diff --git a/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.h b/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.h
index 84ad98e..7449f78 100644
--- a/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.h
+++ b/chrome/services/cups_proxy/fake_cups_proxy_service_delegate.h
@@ -25,6 +25,7 @@
       chromeos::PrinterClass printer_class) override;
   base::Optional<chromeos::Printer> GetPrinter(const std::string& id) override;
   bool IsPrinterInstalled(const chromeos::Printer& printer) override;
+  void PrinterInstalled(const chromeos::Printer& printer) override;
   scoped_refptr<base::SingleThreadTaskRunner> GetIOTaskRunner() override;
   void SetupPrinter(const chromeos::Printer& printer,
                     SetupPrinterCallback cb) override;
diff --git a/chrome/services/cups_proxy/printer_installer.cc b/chrome/services/cups_proxy/printer_installer.cc
index 8cf967a..1a9fb24 100644
--- a/chrome/services/cups_proxy/printer_installer.cc
+++ b/chrome/services/cups_proxy/printer_installer.cc
@@ -44,16 +44,22 @@
 
   // Install printer.
   delegate_->SetupPrinter(
-      *printer, base::BindOnce(&PrinterInstaller::OnInstallPrinter,
-                               weak_factory_.GetWeakPtr(), std::move(cb)));
+      *printer,
+      base::BindOnce(&PrinterInstaller::OnInstallPrinter,
+                     weak_factory_.GetWeakPtr(), std::move(cb), *printer));
 }
 
 // TODO(crbug.com/945409): Test whether we need to call
 // CupsPrintersManager::PrinterInstalled here.
 void PrinterInstaller::OnInstallPrinter(InstallPrinterCallback cb,
+                                        const chromeos::Printer& printer,
                                         bool success) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
+  if (success) {
+    delegate_->PrinterInstalled(printer);
+  }
+
   Finish(std::move(cb),
          success ? InstallPrinterResult::kSuccess
                  : InstallPrinterResult::kPrinterInstallationFailure);
diff --git a/chrome/services/cups_proxy/printer_installer.h b/chrome/services/cups_proxy/printer_installer.h
index ffce3e5..d6fb94a 100644
--- a/chrome/services/cups_proxy/printer_installer.h
+++ b/chrome/services/cups_proxy/printer_installer.h
@@ -39,7 +39,9 @@
   void InstallPrinter(std::string printer_id, InstallPrinterCallback cb);
 
  private:
-  void OnInstallPrinter(InstallPrinterCallback cb, bool success);
+  void OnInstallPrinter(InstallPrinterCallback cb,
+                        const chromeos::Printer& printer,
+                        bool success);
   void Finish(InstallPrinterCallback cb, InstallPrinterResult res);
 
   // Unowned delegate granting access to printing stack dependencies.
diff --git a/chrome/services/cups_proxy/printer_installer_unittest.cc b/chrome/services/cups_proxy/printer_installer_unittest.cc
index fd9ce12..07236bb9 100644
--- a/chrome/services/cups_proxy/printer_installer_unittest.cc
+++ b/chrome/services/cups_proxy/printer_installer_unittest.cc
@@ -47,6 +47,11 @@
     return installed_printers_.at(printer.id());
   }
 
+  void PrinterInstalled(const Printer& printer) override {
+    DCHECK(base::Contains(installed_printers_, printer.id()));
+    installed_printers_[printer.id()] = true;
+  }
+
   base::Optional<Printer> GetPrinter(const std::string& id) override {
     if (!base::Contains(installed_printers_, id)) {
       return base::nullopt;
@@ -68,7 +73,6 @@
     }
 
     // Install printer.
-    installed_printers_[printer.id()] = true;
     return std::move(callback).Run(true);
   }
 
@@ -162,6 +166,7 @@
 
   auto ret = RunInstallPrinter(kGenericGUID);
   EXPECT_EQ(ret, InstallPrinterResult::kPrinterInstallationFailure);
+  EXPECT_FALSE(delegate_->IsPrinterInstalled(to_install));
 }
 
 }  // namespace
diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
index ffdd8bb9..e275db6 100644
--- a/chrome/test/android/BUILD.gn
+++ b/chrome/test/android/BUILD.gn
@@ -28,6 +28,7 @@
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/BySelectorIndexUi2Locator.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/BySelectorUi2Locator.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/ChildIndexUi2Locator.java",
+    "javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2Locator.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/IUi2Locator.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/PathUi2Locator.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2Locators.java",
@@ -52,8 +53,6 @@
   apk_name = "ChromePageControllerTests"
   apk_under_test = "//chrome/android:chrome_public_apk"
   android_manifest = "javatests/src/org/chromium/chrome/test/pagecontroller/tests/AndroidManifest.xml"
-  target_sdk_version = 28
-  testonly = true
   java_files = [
     "javatests/src/org/chromium/chrome/test/pagecontroller/tests/ExampleTest.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/tests/FirstRunControllerTest.java",
@@ -77,6 +76,7 @@
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/BySelectorIndexUi2LocatorTest.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/BySelectorUi2LocatorTest.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/ChildIndexUi2LocatorTest.java",
+    "javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2LocatorTest.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/PathUi2LocatorTest.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/TestUtils.java",
     "javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2LocatorsTest.java",
diff --git a/chrome/test/android/OWNERS b/chrome/test/android/OWNERS
index d85f2395..86470f1 100644
--- a/chrome/test/android/OWNERS
+++ b/chrome/test/android/OWNERS
@@ -2,5 +2,7 @@
 
 jbudorick@chromium.org
 
+per-file BUILD.gn=*
+
 # COMPONENT: Test>Android
 # OS: Android
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/README.md b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/README.md
index cf0468c..30b3cb2 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/README.md
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/README.md
@@ -33,9 +33,9 @@
     // Locators allow the controller to find UI elements on the page
     // It is preferred to use Resource Ids to find elements since they are
     // stable across minor UI changes.
-    private static final IUi2Locator LOCATOR_COOL_PAGE = Ui2Locators.withResIds("cool_page");
+    private static final IUi2Locator LOCATOR_COOL_PAGE = Ui2Locators.withAnyResEntry(R.id.cool_page);
     // Any of the resource ids in the list will result in a match.
-    private static final IUi2Locator LOCATOR_COOL_BUTTON = Ui2Locators.withResIds("cool_button_v1", "cool_button_v2");
+    private static final IUi2Locator LOCATOR_COOL_BUTTON = Ui2Locators.withAnyResEntry(R.id.cool_button_v1, R.id.cool_button_v2);
 
     public CoolerPageController clickButton() {
         // [UiAutomatorUtils.click](https://cs.chromium.org/chromium/src/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/UiAutomatorUtils.java?q=click) operates on UI elements via IUi2Locators.
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ElementController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ElementController.java
index 68344e2..1c57d99e 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ElementController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ElementController.java
@@ -8,8 +8,16 @@
 import org.chromium.chrome.test.pagecontroller.utils.UiLocatorHelper;
 
 /**
- * Base class for a Page Controller or Page Element Controller.
- * Allows Controllers to perform UI actions and verify UI state.
+ * Base class for any controller that needs to perform UI actions and verify UI
+ * state.
+ *
+ * Could represent anything from buttons to a news snippet on the New Tab Page,
+ * although simple elements such as buttons can be controlled by
+ * helper methods such as {@link UiAutomatorUtils#click} so that implementing
+ * ElementControllers for them is usually not necessary.
+ *
+ * For modal UI such as the 3-dot menu, its controller should subclass
+ * PageController.
  */
 public class ElementController {
     protected final UiAutomatorUtils mUtils;
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/PageController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/PageController.java
index 603dff9..2be2f059 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/PageController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/PageController.java
@@ -9,9 +9,24 @@
 import org.chromium.chrome.test.pagecontroller.utils.UiLocationException;
 
 /**
- * Base class for page controllers.
- * A page controller allows tests to interact with a single page (think Android activity)
- * in the app-under-test.
+ * Base class for Page Controllers.
+ *
+ * A Page Controller allows tests to interact with a single modal view in the
+ * app-under-test.  "Page" here does not mean a web-page, but more like Android
+ * Activity.  Although special pages such as "chrome://version" could be
+ * implemented as a distinct PageController which other normal webpages can be
+ * loaded in a more generic UrlPage controller.  Modal menus or dialogs
+ * controllers are also appropriate to implement as PageControllers.
+ *
+ * When implementing methods that would otherwise return void, but does not
+ * navigate to another PageController, consider returning "this" to facilitate
+ * chaining.
+ *
+ * When implementing methods that navigates to another PageController, consider
+ * returning a verified instance of that controller by returning the result of
+ * its verifyActive() method to facilitate chaining.  An exception to this
+ * would be if experiments could cause navigation to different PageControllers,
+ * then the return value should be void.
  */
 public abstract class PageController extends ElementController {
     public void pressAndroidBackButton() {
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/DataSaverController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/DataSaverController.java
index 55ddf50..d1a4a2c 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/DataSaverController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/DataSaverController.java
@@ -14,8 +14,8 @@
  */
 public class DataSaverController extends PageController {
     private static final IUi2Locator LOCATOR_DATA_SAVER =
-            Ui2Locators.withResEntries(R.id.enable_data_saver_switch);
-    private static final IUi2Locator LOCATOR_NEXT = Ui2Locators.withResEntries(R.id.next_button);
+            Ui2Locators.withAnyResEntry(R.id.enable_data_saver_switch);
+    private static final IUi2Locator LOCATOR_NEXT = Ui2Locators.withAnyResEntry(R.id.next_button);
 
     private static final DataSaverController sInstance = new DataSaverController();
     private DataSaverController() {}
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/SyncController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/SyncController.java
index e83fc0ea..c0540b5 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/SyncController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/SyncController.java
@@ -13,10 +13,10 @@
  * Sync Dialog (part of First Run Experience) Page Controller.
  */
 public class SyncController extends PageController {
-    private final static IUi2Locator LOCATOR_SYNC_CONTROLLER =
-            Ui2Locators.withResEntries(R.id.signin_sync_title);
-    private final static IUi2Locator LOCATOR_NO_THANKS =
-            Ui2Locators.withResEntries(R.id.negative_button);
+    private static final IUi2Locator LOCATOR_SYNC_CONTROLLER =
+            Ui2Locators.withAnyResEntry(R.id.signin_sync_title);
+    private static final IUi2Locator LOCATOR_NO_THANKS =
+            Ui2Locators.withAnyResEntry(R.id.negative_button);
 
     private static final SyncController sInstance = new SyncController();
     private SyncController() {}
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/TOSController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/TOSController.java
index f93540c..a43b061 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/TOSController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/first_run/TOSController.java
@@ -13,10 +13,12 @@
  * TOS Dialog (part of the First Run Experience) Page Controller.
  */
 public class TOSController extends PageController {
-    private static final IUi2Locator LOCATOR_TOS = Ui2Locators.withResEntries(R.id.tos_and_privacy);
+    private static final IUi2Locator LOCATOR_TOS =
+            Ui2Locators.withAnyResEntry(R.id.tos_and_privacy);
     private static final IUi2Locator LOCATOR_SEND_REPORT_CHECKBOX =
-            Ui2Locators.withResEntries(R.id.send_report_checkbox);
-    private static final IUi2Locator LOCATOR_ACCEPT = Ui2Locators.withResEntries(R.id.terms_accept);
+            Ui2Locators.withAnyResEntry(R.id.send_report_checkbox);
+    private static final IUi2Locator LOCATOR_ACCEPT =
+            Ui2Locators.withAnyResEntry(R.id.terms_accept);
 
     private static final TOSController sInstance = new TOSController();
     private TOSController() {}
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/notifications/DownloadNotificationController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/notifications/DownloadNotificationController.java
index 68d95a0..248bd45 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/notifications/DownloadNotificationController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/notifications/DownloadNotificationController.java
@@ -15,7 +15,7 @@
     private static final IUi2Locator LOCATOR_DOWNLOAD_NOTIFICATION =
             Ui2Locators.withTextContaining("needs storage access to download files");
     private static final IUi2Locator LOCATOR_CONTINUE =
-            Ui2Locators.withResEntries(android.R.id.button1);
+            Ui2Locators.withAnyResEntry(android.R.id.button1);
 
     private static final DownloadNotificationController sInstance =
             new DownloadNotificationController();
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleActionsMenu.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleActionsMenu.java
index 9d81f64..d64946b 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleActionsMenu.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleActionsMenu.java
@@ -17,20 +17,25 @@
 public class ArticleActionsMenu extends PageController {
     private static final IUi2Locator LOCATOR_MENU = Ui2Locators.withClassRegex(".*ListView");
 
-    private static final IUi2Locator LOCATOR_OPEN_NEW_TAB = Ui2Locators.withResEntriesByIndex(
-            0, org.chromium.chrome.R.id.title, R.id.feed_simple_list_item);
-    private static final IUi2Locator LOCATOR_OPEN_INCOGNITO = Ui2Locators.withResEntriesByIndex(
-            1, org.chromium.chrome.R.id.title, R.id.feed_simple_list_item);
-    private static final IUi2Locator LOCATOR_DOWNLOAD_LINK = Ui2Locators.withResEntriesByIndex(
-            2, org.chromium.chrome.R.id.title, R.id.feed_simple_list_item);
-    private static final IUi2Locator LOCATOR_REMOVE = Ui2Locators.withResEntriesByIndex(
-            3, org.chromium.chrome.R.id.title, R.id.feed_simple_list_item);
-    private static final IUi2Locator LOCATOR_LEARN_MORE = Ui2Locators.withResEntriesByIndex(
-            4, org.chromium.chrome.R.id.title, R.id.feed_simple_list_item);
+    private static final IUi2Locator LOCATOR_OPEN_NEW_TAB = Ui2Locators.withIndex(0,
+            Ui2Locators.withAnyResEntry(
+                    org.chromium.chrome.R.id.title, R.id.feed_simple_list_item));
+    private static final IUi2Locator LOCATOR_OPEN_INCOGNITO = Ui2Locators.withIndex(1,
+            Ui2Locators.withAnyResEntry(
+                    org.chromium.chrome.R.id.title, R.id.feed_simple_list_item));
+    private static final IUi2Locator LOCATOR_DOWNLOAD_LINK = Ui2Locators.withIndex(2,
+            Ui2Locators.withAnyResEntry(
+                    org.chromium.chrome.R.id.title, R.id.feed_simple_list_item));
+    private static final IUi2Locator LOCATOR_REMOVE = Ui2Locators.withIndex(3,
+            Ui2Locators.withAnyResEntry(
+                    org.chromium.chrome.R.id.title, R.id.feed_simple_list_item));
+    private static final IUi2Locator LOCATOR_LEARN_MORE = Ui2Locators.withIndex(4,
+            Ui2Locators.withAnyResEntry(
+                    org.chromium.chrome.R.id.title, R.id.feed_simple_list_item));
 
-    static private ArticleActionsMenu sInstance = new ArticleActionsMenu();
+    private static ArticleActionsMenu sInstance = new ArticleActionsMenu();
     private ArticleActionsMenu() {}
-    static public ArticleActionsMenu getInstance() {
+    public static ArticleActionsMenu getInstance() {
         return sInstance;
     }
 
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleCardController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleCardController.java
index 1fa0419..5b7b0bf1 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleCardController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ArticleCardController.java
@@ -32,7 +32,7 @@
      * Represents a single article, can be used by the NewTabPageController
      * to perform actions.
      */
-    static public class Info {
+    public static class Info {
         private final String mHeadline, mPublisher, mAge;
         private final ImplementationType mImplType;
 
@@ -83,9 +83,9 @@
         }
     }
 
-    private static abstract class ArticleImpl {
-        abstract public List<Info> parseScreenForArticles(UiLocatorHelper locatorHelper);
-        abstract public IUi2Locator getLocator(Info cardInfo);
+    private abstract static class ArticleImpl {
+        public abstract List<Info> parseScreenForArticles(UiLocatorHelper locatorHelper);
+        public abstract IUi2Locator getLocator(Info cardInfo);
         protected List<Info> parseScreenForArticles(final UiLocatorHelper locatorHelper,
                 final ImplementationType implementationType, final IUi2Locator cardsLocator,
                 final IUi2Locator headlineLocator, final IUi2Locator publisherLocator,
@@ -104,15 +104,16 @@
                             } else if (isLastAttempt) {
                                 return null;
                             } else {
-                                if (headline == null)
+                                if (headline == null) {
                                     throw new UiLocationException(
                                             "Headline not found.", headlineLocator, articleCard);
-                                else if (publisher == null)
+                                } else if (publisher == null) {
                                     throw new UiLocationException(
                                             "Publisher not found.", publisherLocator, articleCard);
-                                else
+                                } else {
                                     throw new UiLocationException(
                                             "Age not found.", ageLocator, articleCard);
+                                }
                             }
                         }
                     });
@@ -122,11 +123,11 @@
     private static class FeedArticleImpl extends ArticleImpl {
         private static final IUi2Locator LOCATOR_NON_EMPTY_STRING = withTextRegex(".+");
         private static final IUi2Locator LOCATOR_CARDS = Ui2Locators.withPath(
-                Ui2Locators.withResEntries(R.id.content),
-                Ui2Locators.withResEntries(com.google.android.libraries.feed.basicstream.R.id
-                                                   .feed_stream_recycler_view),
-                Ui2Locators.withResEntries(com.google.android.libraries.feed.basicstream.internal
-                                                   .viewholders.R.id.feed_content_card));
+                Ui2Locators.withAnyResEntry(R.id.content),
+                Ui2Locators.withAnyResEntry(com.google.android.libraries.feed.basicstream.R.id
+                                                    .feed_stream_recycler_view),
+                Ui2Locators.withAnyResEntry(com.google.android.libraries.feed.basicstream.internal
+                                                    .viewholders.R.id.feed_content_card));
         private static final IUi2Locator LOCATOR_HEADLINE =
                 Ui2Locators.withPath(Ui2Locators.withChildIndex(0, 6), LOCATOR_NON_EMPTY_STRING);
         private static final IUi2Locator LOCATOR_PUBLISHER =
@@ -148,13 +149,14 @@
 
     private static class ZineArticleImpl extends ArticleImpl {
         private static final IUi2Locator LOCATOR_CARDS =
-                Ui2Locators.withPath(Ui2Locators.withResEntries(R.id.content),
-                        Ui2Locators.withResEntries(R.id.card_contents));
+                Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.content),
+                        Ui2Locators.withAnyResEntry(R.id.card_contents));
         private static final IUi2Locator LOCATOR_HEADLINE =
-                Ui2Locators.withResEntries(R.id.article_headline);
+                Ui2Locators.withAnyResEntry(R.id.article_headline);
         private static final IUi2Locator LOCATOR_PUBLISHER =
-                Ui2Locators.withResEntries(R.id.article_publisher);
-        private static final IUi2Locator LOCATOR_AGE = Ui2Locators.withResEntries(R.id.article_age);
+                Ui2Locators.withAnyResEntry(R.id.article_publisher);
+        private static final IUi2Locator LOCATOR_AGE =
+                Ui2Locators.withAnyResEntry(R.id.article_age);
         @Override
         public List<Info> parseScreenForArticles(UiLocatorHelper locatorHelper) {
             return parseScreenForArticles(locatorHelper, ImplementationType.ZINE, LOCATOR_CARDS,
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ChromeMenu.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ChromeMenu.java
index 07ebe8d..ed1fedb 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ChromeMenu.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/ChromeMenu.java
@@ -14,18 +14,20 @@
  */
 public class ChromeMenu extends PageController {
     private static final IUi2Locator LOCATOR_CHROME_MENU_BOX =
-            Ui2Locators.withResEntries(R.id.app_menu_list);
+            Ui2Locators.withAnyResEntry(R.id.app_menu_list);
     private static final IUi2Locator LOCATOR_CHROME_MENU = Ui2Locators.withPath(
-            LOCATOR_CHROME_MENU_BOX, Ui2Locators.withResEntries(R.id.button_five));
+            LOCATOR_CHROME_MENU_BOX, Ui2Locators.withAnyResEntry(R.id.button_five));
 
     private static final IUi2Locator LOCATOR_NEW_TAB =
-            Ui2Locators.withResEntriesByIndex(0, R.id.menu_item_text);
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.menu_item_text),
+                    Ui2Locators.withTextString(R.string.menu_new_tab));
     private static final IUi2Locator LOCATOR_NEW_INCOGNITO_TAB =
-            Ui2Locators.withResEntriesByIndex(1, R.id.menu_item_text);
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.menu_item_text),
+                    Ui2Locators.withTextString(R.string.menu_new_incognito_tab));
 
     private static final ChromeMenu sInstance = new ChromeMenu();
     private ChromeMenu() {}
-    static public ChromeMenu getInstance() {
+    public static ChromeMenu getInstance() {
         return sInstance;
     }
 
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/IncognitoNewTabPageController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/IncognitoNewTabPageController.java
index caeefbc..0fdf4373 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/IncognitoNewTabPageController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/IncognitoNewTabPageController.java
@@ -14,7 +14,7 @@
  */
 public class IncognitoNewTabPageController extends PageController {
     private static final IUi2Locator LOCATOR_INCOGNITO_PAGE =
-            Ui2Locators.withResEntries(R.id.new_tab_incognito_container);
+            Ui2Locators.withAnyResEntry(R.id.new_tab_incognito_container);
 
     private static final IncognitoNewTabPageController sInstance =
             new IncognitoNewTabPageController();
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/NewTabPageController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/NewTabPageController.java
index 106beb9f..a16eac69 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/NewTabPageController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/NewTabPageController.java
@@ -30,31 +30,32 @@
     private static final String REGEX_TEXT_HEADER_STATUS = "^Hide|Show$";
 
     private static final IUi2Locator LOCATOR_SEARCH_BOX_TEXT =
-            Ui2Locators.withResEntries(R.id.search_box_text);
-    private static final IUi2Locator LOCATOR_URL_BAR = Ui2Locators.withResEntries(R.id.url_bar);
+            Ui2Locators.withAnyResEntry(R.id.search_box_text);
+    private static final IUi2Locator LOCATOR_URL_BAR = Ui2Locators.withAnyResEntry(R.id.url_bar);
     private static final IUi2Locator LOCATOR_SEARCH_PROVIDER_LOGO =
-            Ui2Locators.withResEntries(R.id.search_provider_logo);
+            Ui2Locators.withAnyResEntry(R.id.search_provider_logo);
     private static final IUi2Locator LOCATOR_MORE_BUTTON =
-            Ui2Locators.withResEntries(R.id.action_button);
+            Ui2Locators.withAnyResEntry(R.id.action_button);
     private static final IUi2Locator LOCATOR_MENU_BUTTON =
-            Ui2Locators.withResEntries(R.id.menu_button);
+            Ui2Locators.withAnyResEntry(R.id.menu_button);
     private static final IUi2Locator LOCATOR_BOTTOM_OF_PAGE =
-            Ui2Locators.withResEntries(R.id.progress_indicator, R.id.action_button);
-    private static final IUi2Locator LOCATOR_FEED_STREAM_RECYCLER_VIEW = Ui2Locators.withResEntries(
-            com.google.android.libraries.feed.basicstream.R.id.feed_stream_recycler_view);
+            Ui2Locators.withAnyResEntry(R.id.progress_indicator, R.id.action_button);
+    private static final IUi2Locator LOCATOR_FEED_STREAM_RECYCLER_VIEW =
+            Ui2Locators.withAnyResEntry(
+                    com.google.android.libraries.feed.basicstream.R.id.feed_stream_recycler_view);
     private static final IUi2Locator LOCATOR_HEADER_STATUS =
-            Ui2Locators.withPath(Ui2Locators.withResEntries(R.id.header_status),
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.header_status),
                     Ui2Locators.withTextRegex(REGEX_TEXT_HEADER_STATUS));
     private static final IUi2Locator LOCATOR_INFO_BAR_MESSAGE =
-            Ui2Locators.withResEntries(R.id.infobar_message, R.id.snackbar_message);
+            Ui2Locators.withAnyResEntry(R.id.infobar_message, R.id.snackbar_message);
     private static final IUi2Locator LOCATOR_INFO_BAR_CLOSE =
-            Ui2Locators.withResEntries(R.id.infobar_close_button);
+            Ui2Locators.withAnyResEntry(R.id.infobar_close_button);
 
     private static final IUi2Locator LOCATOR_TAB_SWITCHER =
-            Ui2Locators.withResEntries(R.id.tab_switcher_button);
+            Ui2Locators.withAnyResEntry(R.id.tab_switcher_button);
 
     private static final IUi2Locator LOCATOR_NEW_TAB_PAGE =
-            Ui2Locators.withResEntries(R.id.ntp_content,
+            Ui2Locators.withAnyResEntry(R.id.ntp_content,
                     com.google.android.libraries.feed.basicstream.R.id.feed_stream_recycler_view,
                     R.id.card_contents);
 
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/SuggestionTileController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/SuggestionTileController.java
index 2eaa52c..0800d85 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/SuggestionTileController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/ntp/SuggestionTileController.java
@@ -57,8 +57,8 @@
     }
 
     private static final IUi2Locator LOCATOR_TILE_TITLES =
-            Ui2Locators.withPath(Ui2Locators.withResEntries(R.id.tile_grid_layout),
-                    Ui2Locators.withResEntries(R.id.tile_view_title));
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.tile_grid_layout),
+                    Ui2Locators.withAnyResEntry(R.id.tile_view_title));
     private static final IUi2Locator LOCATOR_TILE_TITLE_TEXT = Ui2Locators.withTextRegex(".+");
 
     private static final SuggestionTileController sInstance = new SuggestionTileController();
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherController.java
index 8f8a6fb1..2971f533 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherController.java
@@ -20,16 +20,16 @@
 public class TabSwitcherController extends PageController {
     private static final Pattern PATTERN_NUMBER_OF_OPEN_TABS = Pattern.compile("^(\\d+) .*");
     private static final IUi2Locator LOCATOR_CLOSE_ALL_TABS =
-            Ui2Locators.withResEntries(R.id.close_all_tabs_button);
+            Ui2Locators.withAnyResEntry(R.id.close_all_tabs_button);
     private static final IUi2Locator LOCATOR_NEW_TAB =
-            Ui2Locators.withResEntries(R.id.tab_switcher_new_tab_button, R.id.new_tab_button);
-    private static final IUi2Locator LOCATOR_TAB_SWITCHER_BUTTON = Ui2Locators.withResEntries(
+            Ui2Locators.withAnyResEntry(R.id.tab_switcher_new_tab_button, R.id.new_tab_button);
+    private static final IUi2Locator LOCATOR_TAB_SWITCHER_BUTTON = Ui2Locators.withAnyResEntry(
             R.id.tab_switcher_button, R.id.tab_switcher_mode_tab_switcher_button);
-    private static final IUi2Locator LOCATOR_MENU = Ui2Locators.withResEntries(R.id.menu_button);
+    private static final IUi2Locator LOCATOR_MENU = Ui2Locators.withAnyResEntry(R.id.menu_button);
 
     private static final TabSwitcherController sInstance = new TabSwitcherController();
 
-    static public TabSwitcherController getInstance() {
+    public static TabSwitcherController getInstance() {
         return sInstance;
     }
 
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherMenuController.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherMenuController.java
index 4e453e9d..be4000f 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherMenuController.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/tabswitcher/TabSwitcherMenuController.java
@@ -14,23 +14,27 @@
  */
 public class TabSwitcherMenuController extends PageController {
     private static final IUi2Locator LOCATOR_MENU_BOX =
-            Ui2Locators.withResEntries(R.id.app_menu_list);
+            Ui2Locators.withAnyResEntry(R.id.app_menu_list);
 
     // TODO(aluo): Add resource ids for menus, using text will break when switching languages
     private static final IUi2Locator LOCATOR_MENU =
             Ui2Locators.withPath(LOCATOR_MENU_BOX, Ui2Locators.withText("Close all tabs"));
 
     private static final IUi2Locator LOCATOR_NEW_TAB =
-            Ui2Locators.withResEntriesByIndex(0, R.id.menu_item_text);
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.menu_item_text),
+                    Ui2Locators.withTextString(R.string.button_new_tab));
     private static final IUi2Locator LOCATOR_NEW_INCOGNITO_TAB =
-            Ui2Locators.withResEntriesByIndex(1, R.id.menu_item_text);
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.menu_item_text),
+                    Ui2Locators.withTextString(R.string.button_new_incognito_tab));
     private static final IUi2Locator LOCATOR_CLOSE_ALL_TABS =
-            Ui2Locators.withResEntriesByIndex(2, R.id.menu_item_text);
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.menu_item_text),
+                    Ui2Locators.withTextString(R.string.menu_close_all_tabs));
     private static final IUi2Locator LOCATOR_SETTINGS =
-            Ui2Locators.withResEntriesByIndex(3, R.id.menu_item_text);
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.menu_item_text),
+                    Ui2Locators.withTextString(R.string.menu_preferences));
 
-    static private final TabSwitcherMenuController sInstance = new TabSwitcherMenuController();
-    static public TabSwitcherMenuController getInstance() {
+    private static final TabSwitcherMenuController sInstance = new TabSwitcherMenuController();
+    public static TabSwitcherMenuController getInstance() {
         return sInstance;
     }
 
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/urlpage/UrlPage.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/urlpage/UrlPage.java
index 9971ba0..3228e761 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/urlpage/UrlPage.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/controllers/urlpage/UrlPage.java
@@ -18,12 +18,12 @@
 public class UrlPage extends PageController {
     private static final long PAGE_LOAD_TIMEOUT = 10000L;
     private static final IUi2Locator LOCATOR_WEB_VIEW =
-            Ui2Locators.withPath(Ui2Locators.withResEntries(R.id.content),
+            Ui2Locators.withPath(Ui2Locators.withAnyResEntry(R.id.content),
                     Ui2Locators.withClassRegex("android\\.webkit\\.WebView"));
-    private static final IUi2Locator LOCATOR_URL_BAR = Ui2Locators.withResEntries(R.id.url_bar);
+    private static final IUi2Locator LOCATOR_URL_BAR = Ui2Locators.withAnyResEntry(R.id.url_bar);
     private static final IUi2Locator LOCATOR_TAB_SWITCHER =
-            Ui2Locators.withResEntries(R.id.tab_switcher_button);
-    private static final IUi2Locator LOCATOR_MENU = Ui2Locators.withResEntries(R.id.menu_button);
+            Ui2Locators.withAnyResEntry(R.id.tab_switcher_button);
+    private static final IUi2Locator LOCATOR_MENU = Ui2Locators.withAnyResEntry(R.id.menu_button);
 
     private static final UrlPage sInstance = new UrlPage();
     private UrlPage() {}
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2Locator.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2Locator.java
new file mode 100644
index 0000000..aaaece6e
--- /dev/null
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2Locator.java
@@ -0,0 +1,59 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.test.pagecontroller.utils;
+
+import android.support.test.uiautomator.UiDevice;
+import android.support.test.uiautomator.UiObject2;
+
+import androidx.annotation.NonNull;
+
+import java.util.List;
+
+/**
+ * Locate the ith node in the nodes found by an IUi2Locator.
+ */
+class IndexUi2Locator implements IUi2Locator {
+    private final IUi2Locator mLocator;
+    private final int mIndex;
+
+    /**
+     * Locates the ith node(s) matching the locator.
+     *
+     * @param index   Value of i.
+     * @param locator First locator in the chain.
+     */
+    public IndexUi2Locator(int index, @NonNull IUi2Locator locator) {
+        mIndex = index;
+        mLocator = locator;
+    }
+
+    @Override
+    public UiObject2 locateOne(UiDevice device) {
+        List<UiObject2> candidates = mLocator.locateAll(device);
+        return Utils.nullableGet(candidates, mIndex);
+    }
+
+    @Override
+    public UiObject2 locateOne(UiObject2 root) {
+        List<UiObject2> candidates = mLocator.locateAll(root);
+        return Utils.nullableGet(candidates, mIndex);
+    }
+
+    @Override
+    public List<UiObject2> locateAll(UiDevice device) {
+        return Utils.nullableIntoList(locateOne(device));
+    }
+
+    @Override
+    public List<UiObject2> locateAll(UiObject2 root) {
+        return Utils.nullableIntoList(locateOne(root));
+    }
+
+    @Override
+    public String toString() {
+        return "IndexUi2Locator{"
+                + "mLocator=" + mLocator + ", index=" + mIndex + "}";
+    }
+}
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2LocatorTest.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2LocatorTest.java
new file mode 100644
index 0000000..0893985
--- /dev/null
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/IndexUi2LocatorTest.java
@@ -0,0 +1,85 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.test.pagecontroller.utils;
+
+import static org.mockito.Mockito.when;
+
+import static org.chromium.chrome.test.pagecontroller.utils.TestUtils.assertLocatorResults;
+
+import android.support.test.uiautomator.UiDevice;
+import android.support.test.uiautomator.UiObject2;
+
+import org.junit.Before;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Tests for IndexUi2Locator
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class IndexUi2LocatorTest {
+    @Mock
+    private IUi2Locator mLocator0;
+
+    @Mock
+    private UiObject2 mResult0;
+
+    @Mock
+    private UiObject2 mResult1;
+
+    @Mock
+    private List<UiObject2> mLocatorResults0;
+
+    @Mock
+    private List<UiObject2> mLocatorResults1;
+
+    @Mock
+    private UiObject2 mRoot;
+
+    @Mock
+    private UiDevice mDevice;
+
+    private List<UiObject2> mLocatorResults;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mLocatorResults0 = Collections.singletonList(mResult0);
+        mLocatorResults1 = Collections.singletonList(mResult1);
+
+        mLocatorResults = new ArrayList<>();
+        mLocatorResults.add(mResult0);
+        mLocatorResults.add(mResult1);
+
+        when(mLocator0.locateAll(mRoot)).thenReturn(mLocatorResults);
+        when(mLocator0.locateAll(mDevice)).thenReturn(mLocatorResults);
+    }
+
+    @Test
+    public void locateFirst() {
+        IndexUi2Locator locator = new IndexUi2Locator(0, mLocator0);
+        assertLocatorResults(mDevice, mRoot, locator, mResult0, mLocatorResults0);
+    }
+
+    @Test
+    public void locateSecond() {
+        IndexUi2Locator locator = new IndexUi2Locator(1, mLocator0);
+        assertLocatorResults(mDevice, mRoot, locator, mResult1, mLocatorResults1);
+    }
+}
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2Locators.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2Locators.java
index 04695211..f754a9a 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2Locators.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2Locators.java
@@ -4,18 +4,108 @@
 
 package org.chromium.chrome.test.pagecontroller.utils;
 
+import android.content.res.Resources;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.uiautomator.By;
 
 import androidx.annotation.IdRes;
 import androidx.annotation.NonNull;
 
+import org.chromium.base.VisibleForTesting;
+
 import java.util.regex.Pattern;
 
 /**
  * Locators that find UIObject2 nodes.
  */
 public final class Ui2Locators {
+    private static Resources sMockResources;
+
+    @VisibleForTesting
+    static void setResources(Resources mockResources) {
+        sMockResources = mockResources;
+    }
+
+    /**
+     * Returns a locator that find node(s) matching any one of R.id.* entry names (ignoring the
+     * package name).
+     *
+     * This is the preferred way to locate nodes if the R.id.* is available.
+     *
+     * @param id             The layout resource id of the corresponding view node.
+     * @param additionalIds  Optional additional layout resource ids to match.
+     * @return               A locator that will match against the any of the ids.
+     */
+    public static IUi2Locator withAnyResEntry(@IdRes int id, @IdRes int... additionalIds) {
+        return withAnyResId(getResourceEntryName(id), getResourceEntryNames(additionalIds));
+    }
+
+    /**
+     * Locates the node(s) having a resource id name among a list of names (excluding the
+     * package:id/ part).
+     *
+     * @param firstId       The first id to match against.
+     * @param additionalIds Optional ids to match against.
+     * @return              A locator that will find node(s) if they match any of the ids.
+     */
+    public static IUi2Locator withAnyResId(String firstId, String... additionalIds) {
+        StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder.append("(");
+        stringBuilder.append(firstId);
+        for (int i = 0; i < additionalIds.length; i++) {
+            stringBuilder.append("|" + additionalIds[i]);
+        }
+        stringBuilder.append(")");
+        return withResIdRegex(stringBuilder.toString());
+    }
+
+    /**
+     * Locates the node(s) having a resource id name that matches a regex (excluding the package:id/
+     * part).  Prefer using {@link #withAnyResIdEntry(int, int...)}
+     *
+     * @param idRegex Regular expression to match ids against.
+     * @return        A locator that will find node(s) whose ids match the given regular
+     *                expression.
+     */
+    public static IUi2Locator withResIdRegex(@NonNull String idRegex) {
+        return withResNameRegex("^.*:id/" + idRegex + "$");
+    }
+
+    /**
+     * Locates the node(s) having an exact resource name (including the package:id/ part).
+     *
+     * @param resourceName The resource name to find.
+     * @return             A locator that will find node(s) whose resource name matches.
+     */
+    public static IUi2Locator withResName(@NonNull String resourceName) {
+        return new BySelectorUi2Locator(By.res(resourceName));
+    }
+
+    /**
+     * Locates the node(s) having a resource name that match the regex (including the package:id/
+     * part).
+     *
+     * @param resourceNameRegex The resource name to find.
+     * @return                  A locator that will find node(s) whose resource name matches.
+     */
+    public static IUi2Locator withResNameRegex(@NonNull String resourceNameRegex) {
+        return new BySelectorUi2Locator(By.res(Pattern.compile(resourceNameRegex)));
+    }
+
+    /**
+     * Locates the node(s) having a text string from resource id.
+     *
+     * This is the preferred way to locate nodes by text content if the string
+     * resource id is available.
+     *
+     * @param idString  The id of the string.
+     * @return          A locator that will find the node(s) with text that matches the
+     *                  string identified by the given id.
+     */
+    public static IUi2Locator withTextString(int idString) {
+        return new BySelectorUi2Locator(By.text(getResourceStringName(idString)));
+    }
+
     /**
      * Locates the node(s) by position in the siblings list, recursively if more indices are
      * specified.
@@ -43,119 +133,17 @@
     }
 
     /**
-     * Locates the node(s) having a resource id name that matches a regex (excluding the package:id/
-     * part).
+     * Locates the node(s) having content description from string resource id.
      *
-     * @param idRegex Regular expression to match ids against.
-     * @return        A locator that will find node(s) whose ids match the given regular
-     *                expression.
+     * @param stringId The string resource id.
+     * @return         A locator that will find the node(s) with the given content
+     *                 description string id.
+     *
+     * @see <a
+     *         href="https://developer.android.com/reference/android/view/View.html#getContentDescription()">getContentDescription</a>
      */
-    public static IUi2Locator withResIdRegex(@NonNull String idRegex) {
-        return withResNameRegex("^.*:id/" + idRegex + "$");
-    }
-
-    /**
-     * Locates the node(s) having a resource id name among a list of names (excluding the
-     * package:id/ part).
-     *
-     * @param firstId       The first id to match against.
-     * @param additionalIds Optional ids to match against.
-     * @return              A locator that will find node(s) if they match any of the ids.
-     */
-    public static IUi2Locator withResIds(String firstId, String... additionalIds) {
-        StringBuilder stringBuilder = new StringBuilder();
-        stringBuilder.append("(");
-        stringBuilder.append(firstId);
-        for (int i = 0; i < additionalIds.length; i++) {
-            stringBuilder.append("|" + additionalIds[i]);
-        }
-        stringBuilder.append(")");
-        return withResIdRegex(stringBuilder.toString());
-    }
-
-    /**
-     * Locates the node(s) having a resource id name among a list of names (excluding the
-     * package:id/ part).
-     *
-     * @param index         The value of n.
-     * @param firstId       The first id to match against.
-     * @param additionalIds Optional ids to match against.
-     * @return       A locator that will find the nth node whose id matches.
-     */
-    public static IUi2Locator withResIdsByIndex(
-            int index, String firstId, String... additionalIds) {
-        StringBuilder stringBuilder = new StringBuilder();
-        stringBuilder.append("(");
-        stringBuilder.append(firstId);
-        for (int i = 0; i < additionalIds.length; i++) {
-            stringBuilder.append("|" + additionalIds[i]);
-        }
-        stringBuilder.append(")");
-        return withResNameRegexByIndex("^.*:id/" + stringBuilder.toString() + "$", index);
-    }
-
-    /**
-     * Returns a locator that find node(s) matching any one of R.id.* entry names (ignoring the
-     * package name).
-     *
-     * @param id             The layout resource id of the corresponding view node.
-     * @param additionalIds  Optional additional layout resource ids to match.
-     * @return               A locator that will match against the any of the ids.
-     */
-    public static IUi2Locator withResEntries(@IdRes int id, @IdRes int... additionalIds) {
-        return withResIds(getResourceEntryName(id), getResourceEntryNames(additionalIds));
-    }
-
-    /**
-     * Returns a locator that find the nth node matching any one of R.id.* entry names (ignoring
-     * the package name).
-     *
-     * @param index          The index into the list of matching nodes.
-     * @param id             The layout resource id of the corresponding view node.
-     * @param additionalIds  Optional additional layout resource ids to match.
-     * @return               A locator that will find the nth node whose id matches.
-     */
-    public static IUi2Locator withResEntriesByIndex(
-            int index, @IdRes int id, @IdRes int... additionalIds) {
-        return withResIdsByIndex(
-                index, getResourceEntryName(id), getResourceEntryNames(additionalIds));
-    }
-
-    /**
-     * Locates the node(s) having an exact resource name (including the package:id/ part).
-     *
-     * @param resourceName The resource name to find.
-     * @return             A locator that will find node(s) whose resource name matches.
-     */
-    public static IUi2Locator withResName(@NonNull String resourceName) {
-        return new BySelectorUi2Locator(By.res(resourceName));
-    }
-
-    /**
-     * Locates the node(s) having a resource name that match the regex (including the package:id/
-     * part).
-     *
-     * @param resourceNameRegex The resource name to find.
-     * @return                  A locator that will find node(s) whose resource name matches.
-     */
-    public static IUi2Locator withResNameRegex(@NonNull String resourceNameRegex) {
-        return new BySelectorUi2Locator(By.res(Pattern.compile(resourceNameRegex)));
-    }
-
-    /**
-     * Locates the nth node having a resource name matching the regex (including the package:id/
-     * part).
-     *
-     * The order of the nodes is determined by the implementation of UiObject2.findObjects,
-     * but not documented, at present it's pre-order.
-     *
-     * @param resourceNameRegex The resource name to find.
-     * @param index             The value of n.
-     * @return                  A locator that will find the nth node whose resource name matches.
-     */
-    public static IUi2Locator withResNameRegexByIndex(
-            @NonNull String resourceNameRegex, int index) {
-        return new BySelectorIndexUi2Locator(By.res(Pattern.compile(resourceNameRegex)), index);
+    public static IUi2Locator withContentDescString(int stringId) {
+        return new BySelectorUi2Locator(By.desc(getResourceStringName(stringId)));
     }
 
     /**
@@ -223,6 +211,17 @@
     }
 
     /**
+     * Locates the ith node(s) found by another locator.
+     *
+     * @param index   The value of i.
+     * @param locator First locator in the chain.
+     * @return        A locator that will find ith node in the results of locator.
+     */
+    public static IUi2Locator withIndex(int index, @NonNull IUi2Locator locator) {
+        return new IndexUi2Locator(index, locator);
+    }
+
+    /**
      * Locates the node(s) matching the chain of locators.
      *
      * @param locator            First locator in the chain.
@@ -253,7 +252,7 @@
      * @return   String resource entry name for id.
      */
     private static String getResourceEntryName(@IdRes int id) {
-        return InstrumentationRegistry.getTargetContext().getResources().getResourceEntryName(id);
+        return getTargetResources().getResourceEntryName(id);
     }
 
     /**
@@ -270,4 +269,22 @@
         }
         return names;
     }
+
+    /**
+     * This converts the integer string id to the localized string.
+     *
+     * @param idString The string id.
+     * @return         String value of idString.
+     */
+    private static String getResourceStringName(int idString) {
+        return getTargetResources().getString(idString);
+    }
+
+    private static Resources getTargetResources() {
+        if (sMockResources == null) {
+            return InstrumentationRegistry.getTargetContext().getResources();
+        } else {
+            return sMockResources;
+        }
+    }
 }
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2LocatorsTest.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2LocatorsTest.java
index aee0b14..bb307eea 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2LocatorsTest.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/Ui2LocatorsTest.java
@@ -12,9 +12,11 @@
 import static org.chromium.chrome.test.pagecontroller.utils.TestUtils.matchesByDepth;
 import static org.chromium.chrome.test.pagecontroller.utils.TestUtils.matchesByField;
 
+import android.content.res.Resources;
 import android.support.test.uiautomator.UiDevice;
 import android.support.test.uiautomator.UiObject2;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
@@ -41,6 +43,9 @@
     @Mock
     UiDevice mDevice;
 
+    @Mock
+    Resources mResources;
+
     List<UiObject2> mRootAsList, mChild0And1, mChild1AsList, mGrandchildren, mGrandchild1AsList;
 
     @Mock
@@ -75,10 +80,15 @@
         when(mChild1.getChildren()).thenReturn(Collections.emptyList());
     }
 
+    @After
+    public void tearDown() {
+        Ui2Locators.setResources(null);
+    }
+
     @Test
     public void withChildIndex() {
         Pattern p = Pattern.compile("name");
-        stuckMocksWithPattern(p, "mRes");
+        stubMocksWithPattern(p, "mRes");
         IUi2Locator locator = Ui2Locators.withChildIndex(0, 1);
         assertEquals(mChild1, locator.locateOne(mDevice));
         assertEquals(mChild1AsList, locator.locateAll(mDevice));
@@ -92,37 +102,33 @@
         assertLocatorResults(mDevice, mRoot, locator, mGrandchild0, mGrandchildren);
     }
 
-    private void stuckMocksWithPattern(Pattern p, String fieldName) {
-        when(mDevice.findObjects(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0And1);
-        when(mRoot.findObjects(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0And1);
-        when(mDevice.findObject(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0);
-        when(mRoot.findObject(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0);
-    }
-
-    private void assertDefaultResults(IUi2Locator locator) {
-        assertLocatorResults(mDevice, mRoot, locator, mChild0, mChild0And1);
-    }
-
     @Test
     public void withResIdRegex() {
         Pattern p = Pattern.compile("^.*:id/a.*b$");
-        stuckMocksWithPattern(p, "mRes");
+        stubMocksWithPattern(p, "mRes");
         IUi2Locator locator = Ui2Locators.withResIdRegex("a.*b");
         assertDefaultResults(locator);
     }
 
     @Test
-    public void withResIds() {
+    public void withAnyResId() {
         Pattern p = Pattern.compile("^.*:id/(a|b)$");
-        stuckMocksWithPattern(p, "mRes");
-        IUi2Locator locator = Ui2Locators.withResIds("a", "b");
+        stubMocksWithPattern(p, "mRes");
+        IUi2Locator locator = Ui2Locators.withAnyResId("a", "b");
+        assertDefaultResults(locator);
+    }
+
+    @Test
+    public void withAnyResEntry() {
+        stubMocksWithResEntry(123, "someEntry");
+        IUi2Locator locator = Ui2Locators.withAnyResEntry(123);
         assertDefaultResults(locator);
     }
 
     @Test
     public void withResName() {
         Pattern p = Pattern.compile(Pattern.quote("name"));
-        stuckMocksWithPattern(p, "mRes");
+        stubMocksWithPattern(p, "mRes");
         IUi2Locator locator = Ui2Locators.withResName("name");
         assertDefaultResults(locator);
     }
@@ -130,31 +136,30 @@
     @Test
     public void withResNameRegex() {
         Pattern p = Pattern.compile(".*name");
-        stuckMocksWithPattern(p, "mRes");
+        stubMocksWithPattern(p, "mRes");
         IUi2Locator locator = Ui2Locators.withResNameRegex(".*name");
         assertDefaultResults(locator);
     }
 
     @Test
-    public void withResNameRegexByIndex() {
-        Pattern p = Pattern.compile(".*name");
-        stuckMocksWithPattern(p, "mRes");
-        IUi2Locator locator = Ui2Locators.withResNameRegexByIndex(".*name", 1);
-        assertLocatorResults(mDevice, mRoot, locator, mChild1, mChild1AsList);
+    public void withContentDesc() {
+        Pattern p = Pattern.compile(Pattern.quote("desc"));
+        stubMocksWithPattern(p, "mDesc");
+        IUi2Locator locator = Ui2Locators.withContentDesc("desc");
+        assertDefaultResults(locator);
     }
 
     @Test
-    public void withContentDesc() {
-        Pattern p = Pattern.compile(Pattern.quote("desc"));
-        stuckMocksWithPattern(p, "mDesc");
-        IUi2Locator locator = Ui2Locators.withContentDesc("desc");
+    public void withContentDescString() {
+        stubMocksWithDescString(123, "someDesc");
+        IUi2Locator locator = Ui2Locators.withContentDescString(123);
         assertDefaultResults(locator);
     }
 
     @Test
     public void withText() {
         Pattern p = Pattern.compile(Pattern.quote("text"));
-        stuckMocksWithPattern(p, "mText");
+        stubMocksWithPattern(p, "mText");
         IUi2Locator locator = Ui2Locators.withText("text");
         assertDefaultResults(locator);
     }
@@ -162,7 +167,7 @@
     @Test
     public void withTextRegex() {
         Pattern p = Pattern.compile(".*text");
-        stuckMocksWithPattern(p, "mText");
+        stubMocksWithPattern(p, "mText");
         IUi2Locator locator = Ui2Locators.withTextRegex(".*text");
         assertDefaultResults(locator);
     }
@@ -170,15 +175,22 @@
     @Test
     public void withTextContaining() {
         Pattern p = Pattern.compile("^.*" + Pattern.quote("text") + ".*$");
-        stuckMocksWithPattern(p, "mText");
+        stubMocksWithPattern(p, "mText");
         IUi2Locator locator = Ui2Locators.withTextContaining("text");
         assertDefaultResults(locator);
     }
 
     @Test
+    public void withTextString() {
+        stubMocksWithTextString(123, "someString");
+        IUi2Locator locator = Ui2Locators.withTextString(123);
+        assertDefaultResults(locator);
+    }
+
+    @Test
     public void withClassRegex() {
         Pattern p = Pattern.compile(".*class");
-        stuckMocksWithPattern(p, "mClazz");
+        stubMocksWithPattern(p, "mClazz");
         IUi2Locator locator = Ui2Locators.withClassRegex(".*class");
         assertDefaultResults(locator);
     }
@@ -186,7 +198,7 @@
     @Test
     public void withPath() {
         Pattern p = Pattern.compile(".*class");
-        stuckMocksWithPattern(p, "mClazz");
+        stubMocksWithPattern(p, "mClazz");
         IUi2Locator locator0 = Ui2Locators.withClassRegex(".*class");
         IUi2Locator locator1 = Ui2Locators.withChildIndex(1);
         IUi2Locator locator = Ui2Locators.withPath(locator0, locator1);
@@ -196,8 +208,40 @@
     @Test
     public void withPackageName() {
         Pattern p = Pattern.compile(Pattern.quote("package"));
-        stuckMocksWithPattern(p, "mPkg");
+        stubMocksWithPattern(p, "mPkg");
         IUi2Locator locator = Ui2Locators.withPackageName("package");
         assertDefaultResults(locator);
     }
+
+    private void stubMocksWithPattern(Pattern p, String fieldName) {
+        when(mDevice.findObjects(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0And1);
+        when(mRoot.findObjects(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0And1);
+        when(mDevice.findObject(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0);
+        when(mRoot.findObject(argThat(matchesByField(p, fieldName)))).thenReturn(mChild0);
+    }
+
+    private void stubMocksWithResEntry(int stringId, String stringValue) {
+        when(mResources.getResourceEntryName(stringId)).thenReturn(stringValue);
+        Ui2Locators.setResources(mResources);
+        Pattern p = Pattern.compile("^.*:id/(" + stringValue + ")$");
+        stubMocksWithPattern(p, "mRes");
+    }
+
+    private void stubMocksWithDescString(int stringId, String stringValue) {
+        when(mResources.getString(stringId)).thenReturn(stringValue);
+        Ui2Locators.setResources(mResources);
+        Pattern p = Pattern.compile(Pattern.quote(stringValue));
+        stubMocksWithPattern(p, "mDesc");
+    }
+
+    private void stubMocksWithTextString(int stringId, String stringValue) {
+        when(mResources.getString(stringId)).thenReturn(stringValue);
+        Ui2Locators.setResources(mResources);
+        Pattern p = Pattern.compile(Pattern.quote(stringValue));
+        stubMocksWithPattern(p, "mText");
+    }
+
+    private void assertDefaultResults(IUi2Locator locator) {
+        assertLocatorResults(mDevice, mRoot, locator, mChild0, mChild0And1);
+    }
 }
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/UiLocatorHelper.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/UiLocatorHelper.java
index e85362ef..8ef9faf0 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/UiLocatorHelper.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/pagecontroller/utils/UiLocatorHelper.java
@@ -325,7 +325,7 @@
      * Delegate to be used with getCustomElements.
      * @param <T> The type of the element.
      */
-    static public interface CustomElementMaker<T> {
+    public static interface CustomElementMaker<T> {
         /**
          * Should construct an element given a node.
          * @param root          The input node.
@@ -403,10 +403,11 @@
 
     private <T> T getOneElement(IUi2Locator locator, ElementConverter<T> converter) {
         List<T> all = getAllElements(locator, converter);
-        if (all.size() > 0)
+        if (all.size() > 0) {
             return all.get(0);
-        else
+        } else {
             return null;
+        }
     }
 
     private <T> T getOneElementImmediate(
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md
index 26092f3..0e16b42 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md
@@ -75,6 +75,29 @@
 `//chrome/test/data/android/manage_render_test_goldens.py download` to ensure
 that the downloaded goldens are current for the git revision.
 
+### Generating golden images locally
+
+New golden images may be downloaded from the trybots or retrieved locally. This
+section elaborates how to do the latter.
+
+You should always create your reference images on the same device type as the
+one running the tests. This is because each device/API version may produce a
+slightly different image, eg. due to different screen dimensions, DPI setting,
+or styling used across OS versions. This is also why each golden image name
+includes the device name and API version.
+
+When running a test with no goldens on the correct device, your tests should
+fail with an exception:
+
+```
+RenderTest Goldens missing for: <reference>. See RENDER_TESTS.md for how to fix this failure.
+```
+
+You will be able to find the images the device captured on the device's SD card.
+
+```
+adb -d shell ls /sdcard/chromium_tests_root/chrome/test/data/android/render_tests/failures
+```
 
 ## Implementation Details
 
diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_process_browser_test.cc
index dfec8850..8793bc1e 100644
--- a/chrome/test/base/in_process_browser_test.cc
+++ b/chrome/test/base/in_process_browser_test.cc
@@ -126,8 +126,7 @@
   std::unique_ptr<chromeos::device_sync::DeviceSyncBase> BuildInstance(
       signin::IdentityManager* identity_manager,
       gcm::GCMDriver* gcm_driver,
-      mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-          pref_store_connector,
+      PrefService* profile_prefs,
       const chromeos::device_sync::GcmDeviceInfoProvider*
           gcm_device_info_provider,
       chromeos::device_sync::ClientAppMetadataProvider*
diff --git a/chrome/test/data/extensions/api_test/autotest_private/test.js b/chrome/test/data/extensions/api_test/autotest_private/test.js
index 7252b3b..87fb194 100644
--- a/chrome/test/data/extensions/api_test/autotest_private/test.js
+++ b/chrome/test/data/extensions/api_test/autotest_private/test.js
@@ -17,10 +17,6 @@
     chrome.autotestPrivate.shutdown(true);
     chrome.test.succeed();
   },
-  function lockScreen() {
-    chrome.autotestPrivate.lockScreen();
-    chrome.test.succeed();
-  },
   function simulateAsanMemoryBug() {
     chrome.autotestPrivate.simulateAsanMemoryBug();
     chrome.test.succeed();
@@ -501,6 +497,14 @@
     chrome.autotestPrivate.arcAppTracingStart(chrome.test.callbackFail(
         'Failed to start custom tracing.'));
   },
+
+  // KEEP |lockScreen()| TESTS AT THE BOTTOM OF THE defaultTests AS IT WILL
+  // CHANGE THE SESSION STATE TO LOCKED STATE.
+  function lockScreen() {
+    chrome.autotestPrivate.lockScreen();
+    chrome.test.succeed();
+  },
+  // ADD YOUR TEST BEFORE |lockScreen()| UNLESS YOU WANT TO RUN TEST IN LOCKED
 ];
 
 var arcEnabledTests = [
diff --git a/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js b/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js
index 277fb8f..a59e7ae 100644
--- a/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js
@@ -319,20 +319,9 @@
 
   setup(function() {
     const mojom = chromeos.networkConfig.mojom;
-    printerList = [
-      createCupsPrinterInfo('google', '4', 'id4'),
-      createCupsPrinterInfo('test1', '1', 'id1'),
-      createCupsPrinterInfo('test2', '2', 'id2'),
-      createCupsPrinterInfo('test3', '3', 'id3'),
-    ];
 
     cupsPrintersBrowserProxy =
         new printerBrowserProxy.TestCupsPrintersBrowserProxy;
-    // |cupsPrinterBrowserProxy| needs to have a list of saved printers before
-    // initializing the landing page.
-    cupsPrintersBrowserProxy.printerList = {printerList: printerList};
-    settings.CupsPrintersBrowserProxyImpl.instance_ = cupsPrintersBrowserProxy;
-
     // Simulate internet connection.
     mojoApi_.resetForTest();
     mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kWiFi, true);
@@ -343,15 +332,6 @@
 
     PolymerTest.clearBody();
     settings.navigateTo(settings.routes.CUPS_PRINTERS);
-
-    page = document.createElement('settings-cups-printers');
-    // Enable feature flag to show the new saved printers list.
-    // TODO(jimmyxgong): Remove this line when the feature flag is removed.
-    page.enableUpdatedUi_ = true;
-    document.body.appendChild(page);
-    assertTrue(!!page);
-
-    Polymer.dom.flush();
   });
 
   teardown(function() {
@@ -363,9 +343,38 @@
     page = null;
   });
 
-  /** @param {!CupsPrinterInfo} */
+  /** @param {!Array<!CupsPrinterInfo>} printerList */
+  function createCupsPrinterPage(printers) {
+    printerList = printers;
+    // |cupsPrinterBrowserProxy| needs to have a list of saved printers before
+    // initializing the landing page.
+    cupsPrintersBrowserProxy.printerList = {printerList: printerList};
+    settings.CupsPrintersBrowserProxyImpl.instance_ = cupsPrintersBrowserProxy;
+
+    page = document.createElement('settings-cups-printers');
+    // Enable feature flag to show the new saved printers list.
+    // TODO(jimmyxgong): Remove this line when the feature flag is removed.
+    page.enableUpdatedUi_ = true;
+    document.body.appendChild(page);
+    assertTrue(!!page);
+
+    Polymer.dom.flush();
+  }
+
+  /** @param {!CupsPrinterInfo} printer*/
   function addNewSavedPrinter(printer) {
     printerList.push(printer);
+    updateSavedPrinters();
+  }
+
+  /** @param {number} id*/
+  function removeSavedPrinter(id) {
+    const idx = printerList.findIndex(p => p.printerId == id);
+    printerList.splice(idx, 1);
+    updateSavedPrinters();
+  }
+
+  function updateSavedPrinters() {
     cupsPrintersBrowserProxy.printerList = {printerList: printerList};
     cr.webUIListenerCallback(
         'on-printers-changed', cupsPrintersBrowserProxy.printerList);
@@ -373,6 +382,11 @@
   }
 
   test('SavedPrintersSuccessfullyPopulates', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -388,17 +402,17 @@
           let printerListEntries = getPrinterEntries(savedPrintersElement);
 
           verifyPrintersList(printerListEntries, printerList);
-
-          addNewSavedPrinter(createCupsPrinterInfo('test5', '5', 'id5'));
-
-          printerListEntries = getPrinterEntries(savedPrintersElement);
-          verifyPrintersList(printerListEntries, printerList);
         });
   });
 
   test('SuccessfullyRemoveMultipleSavedPrinters', function() {
     let savedPrinterEntries = [];
 
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -421,6 +435,11 @@
     let savedPrintersList = [];
     let savedPrinterEntries = [];
 
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -451,6 +470,11 @@
     let editDialog = null;
     let savedPrinterEntries = null;
 
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -498,6 +522,11 @@
     let savedPrinterEntries = null;
     let editDialog = null;
 
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -546,6 +575,11 @@
   });
 
   test('SavedPrintersSearchTermFiltersCorrectPrinters', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -580,27 +614,31 @@
               [
                 createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
                 createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED),
-                createPrinterListEntry('test3', '3', 'id3', PrinterType.SAVED)
               ],
               searchTerm);
 
           // Add more printers and assert that they are correctly filtered.
-          addNewSavedPrinter(createCupsPrinterInfo('test4', '5', 'id5'));
+          addNewSavedPrinter(createCupsPrinterInfo('test3', '3', 'id3'));
           addNewSavedPrinter(createCupsPrinterInfo('google2', '6', 'id6'));
+          Polymer.dom.flush();
 
           verifySearchQueryResults(
               savedPrintersElement,
               [
-                createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
-                createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED),
                 createPrinterListEntry('test3', '3', 'id3', PrinterType.SAVED),
-                createPrinterListEntry('test4', '5', 'id5', PrinterType.SAVED)
+                createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+                createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
               ],
               searchTerm);
         });
   });
 
   test('SavedPrintersNoSearchFound', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
     return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
         .then(() => {
           // Wait for saved printers to populate.
@@ -642,6 +680,344 @@
               searchTerm);
         });
   });
+
+  test('ShowMoreButtonIsInitiallyHiddenAndANewPrinterIsAdded', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
+    return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
+        .then(() => {
+          // Wait for saved printers to populate.
+          Polymer.dom.flush();
+
+          savedPrintersElement = page.$$('settings-cups-saved-printers');
+          assertTrue(!!savedPrintersElement);
+
+          let printerEntryListTestElement =
+              savedPrintersElement.$$('#printerEntryList');
+
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
+          ]);
+          // Assert that the Show more button is hidden because printer list
+          // length is <= 3.
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Newly added printers will always be visible and inserted to the
+          // top of the list.
+          addNewSavedPrinter(createCupsPrinterInfo('test3', '3', 'id3'));
+          expectedVisiblePrinters = [
+            createPrinterListEntry('test3', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
+          ];
+          verifyVisiblePrinters(
+              printerEntryListTestElement, expectedVisiblePrinters);
+          // Assert that the Show more button is still hidden because all newly
+          // added printers are visible.
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+        });
+  });
+
+  test('PressShowMoreButton', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+      createCupsPrinterInfo('test3', '3', 'id3'),
+    ]);
+    return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
+        .then(() => {
+          // Wait for saved printers to populate.
+          Polymer.dom.flush();
+
+          savedPrintersElement = page.$$('settings-cups-saved-printers');
+          assertTrue(!!savedPrintersElement);
+
+          const printerEntryListTestElement =
+              savedPrintersElement.$$('#printerEntryList');
+
+          // There are 4 total printers but only 3 printers are visible and 1 is
+          // hidden underneath the Show more section.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED),
+          ]);
+          // Assert that the Show more button is shown since printer list length
+          // is > 3.
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Click on the Show more button.
+          savedPrintersElement.$$('#show-more-icon').click();
+          Polymer.dom.flush();
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+          // Clicking on the Show more button reveals all hidden printers.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED),
+            createPrinterListEntry('test3', '3', 'id3', PrinterType.SAVED)
+          ]);
+        });
+  });
+
+  test('ShowMoreButtonIsInitiallyShownAndWithANewPrinterAdded', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+      createCupsPrinterInfo('test3', '3', 'id3'),
+    ]);
+    return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
+        .then(() => {
+          // Wait for saved printers to populate.
+          Polymer.dom.flush();
+
+          savedPrintersElement = page.$$('settings-cups-saved-printers');
+          assertTrue(!!savedPrintersElement);
+
+          const printerEntryListTestElement =
+              savedPrintersElement.$$('#printerEntryList');
+
+          // There are 4 total printers but only 3 printers are visible and 1 is
+          // hidden underneath the Show more section.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED),
+          ]);
+          // Assert that the Show more button is shown since printer list length
+          // is > 3.
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Newly added printers will always be visible.
+          addNewSavedPrinter(createCupsPrinterInfo('test5', '5', 'id5'));
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('test5', '5', 'id5', PrinterType.SAVED),
+            createPrinterListEntry('google', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
+          ]);
+          // Assert that the Show more button is still shown.
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+        });
+  });
+
+  test('ShowMoreButtonIsShownAndRemovePrinters', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '3', 'id3'),
+      createCupsPrinterInfo('google2', '4', 'id4'),
+      createCupsPrinterInfo('google3', '5', 'id5'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
+    return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
+        .then(() => {
+          // Wait for saved printers to populate.
+          Polymer.dom.flush();
+
+          savedPrintersElement = page.$$('settings-cups-saved-printers');
+          assertTrue(!!savedPrintersElement);
+
+          const printerEntryListTestElement =
+              savedPrintersElement.$$('#printerEntryList');
+
+          // There are 5 total printers but only 3 printers are visible and 2
+          // are hidden underneath the Show more section.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('google3', '5', 'id5', PrinterType.SAVED)
+          ]);
+          // Assert that the Show more button is shown since printer list length
+          // is > 3.
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Simulate removing 'google' printer.
+          removeSavedPrinter('id3');
+          // Printer list has 4 elements now, but since the list is still
+          // collapsed we should still expect only 3 elements to be visible.
+          // Since printers were initially alphabetically sorted, we should
+          // expect 'test1' to be the next visible printer.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('google3', '5', 'id5', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED)
+          ]);
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Simulate removing 'google2' printer.
+          removeSavedPrinter('id4');
+          // Printer list has 3 elements now, the Show more button should be
+          // hidden.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google3', '5', 'id5', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
+          ]);
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+        });
+  });
+
+  test('ShowMoreButtonIsShownAndSearchQueryFiltersCorrectly', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '3', 'id3'),
+      createCupsPrinterInfo('google2', '4', 'id4'),
+      createCupsPrinterInfo('google3', '5', 'id5'),
+      createCupsPrinterInfo('google4', '6', 'id6'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
+    return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
+        .then(() => {
+          // Wait for saved printers to populate.
+          Polymer.dom.flush();
+
+          savedPrintersElement = page.$$('settings-cups-saved-printers');
+          assertTrue(!!savedPrintersElement);
+
+          const printerEntryListTestElement =
+              savedPrintersElement.$$('#printerEntryList');
+
+          // There are 6 total printers but only 3 printers are visible and 3
+          // are hidden underneath the Show more section.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('google3', '5', 'id5', PrinterType.SAVED)
+          ]);
+          // Assert that the Show more button is shown since printer list length
+          // is > 3.
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Set search term to 'google' and expect 4 visible printers.
+          searchTerm = 'google';
+          savedPrintersElement.searchTerm = searchTerm;
+          Polymer.dom.flush();
+          verifySearchQueryResults(
+              savedPrintersElement,
+              [
+                createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+                createPrinterListEntry(
+                    'google2', '4', 'id4', PrinterType.SAVED),
+                createPrinterListEntry(
+                    'google3', '5', 'id5', PrinterType.SAVED),
+                createPrinterListEntry('google4', '6', 'id6', PrinterType.SAVED)
+              ],
+              searchTerm);
+          // Having a search term should hide the Show more button.
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Search for a term with no matching printers. Expect Show more
+          // button to still be hidden.
+          searchTerm = 'noSearchFound';
+          savedPrintersElement.searchTerm = searchTerm;
+          Polymer.dom.flush();
+          verifySearchQueryResults(savedPrintersElement, [], searchTerm);
+
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Change search term and expect new set of visible printers.
+          searchTerm = 'test';
+          savedPrintersElement.searchTerm = searchTerm;
+          Polymer.dom.flush();
+          verifySearchQueryResults(
+              savedPrintersElement,
+              [
+                createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED),
+                createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
+              ],
+              searchTerm);
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Remove the search term and expect the collapsed list to appear
+          // again.
+          searchTerm = '';
+          savedPrintersElement.searchTerm = searchTerm;
+          Polymer.dom.flush();
+          const expectedVisiblePrinters = [
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('google3', '5', 'id5', PrinterType.SAVED)
+          ];
+          verifySearchQueryResults(
+              savedPrintersElement, expectedVisiblePrinters, searchTerm);
+          verifyVisiblePrinters(
+              printerEntryListTestElement, expectedVisiblePrinters);
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+        });
+  });
+
+  test('ShowMoreButtonAddAndRemovePrinters', function() {
+    createCupsPrinterPage([
+      createCupsPrinterInfo('google', '3', 'id3'),
+      createCupsPrinterInfo('google2', '4', 'id4'),
+      createCupsPrinterInfo('test1', '1', 'id1'),
+      createCupsPrinterInfo('test2', '2', 'id2'),
+    ]);
+    return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
+        .then(() => {
+          // Wait for saved printers to populate.
+          Polymer.dom.flush();
+
+          savedPrintersElement = page.$$('settings-cups-saved-printers');
+          assertTrue(!!savedPrintersElement);
+
+          const printerEntryListTestElement =
+              savedPrintersElement.$$('#printerEntryList');
+
+          // There are 4 total printers but only 3 printers are visible and 1 is
+          // hidden underneath the Show more section.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED)
+          ]);
+          // Assert that the Show more button is shown since printer list length
+          // is > 3.
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Add a new printer and expect it to be at the top of the list.
+          addNewSavedPrinter(createCupsPrinterInfo('newPrinter', '5', 'id5'));
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('newPrinter', '5', 'id5', PrinterType.SAVED),
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED),
+            createPrinterListEntry('test1', '1', 'id1', PrinterType.SAVED)
+          ]);
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Now simulate removing printer 'test1'.
+          removeSavedPrinter('id1');
+          // If the number of visible printers is > 3, removing printers will
+          // decrease the number of visible printers until there are only 3
+          // visible printers. In this case, we remove 'test1' and now only
+          // have 3 visible printers and 1 hidden printer: 'test2'.
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('newPrinter', '5', 'id5', PrinterType.SAVED),
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('google2', '4', 'id4', PrinterType.SAVED)
+          ]);
+          assertTrue(!!savedPrintersElement.$$('#show-more-container'));
+
+          // Remove another printer and assert that we still have 3 visible
+          // printers but now 'test2' is our third visible printer.
+          removeSavedPrinter('id4');
+          verifyVisiblePrinters(printerEntryListTestElement, [
+            createPrinterListEntry('newPrinter', '5', 'id5', PrinterType.SAVED),
+            createPrinterListEntry('google', '3', 'id3', PrinterType.SAVED),
+            createPrinterListEntry('test2', '2', 'id2', PrinterType.SAVED)
+          ]);
+          // Printer list length is <= 3, Show more button should be hidden.
+          assertFalse(!!savedPrintersElement.$$('#show-more-container'));
+        });
+  });
 });
 
 suite('CupsNearbyPrintersTests', function() {
diff --git a/chrome/test/vr/OWNERS b/chrome/test/vr/OWNERS
index 56462b4..4673f18 100644
--- a/chrome/test/vr/OWNERS
+++ b/chrome/test/vr/OWNERS
@@ -1,3 +1,5 @@
+alcooper@chromium.org
+bialpio@chromium.org
 bsheedy@chromium.org
 cjgrant@chromium.org
 mthiesse@chromium.org
diff --git a/chromeos/services/assistant/BUILD.gn b/chromeos/services/assistant/BUILD.gn
index e8f3afa6..7ecc782 100644
--- a/chromeos/services/assistant/BUILD.gn
+++ b/chromeos/services/assistant/BUILD.gn
@@ -17,7 +17,6 @@
   defines = [ "IS_ASSISTANT_SERVICE_IMPL" ]
 
   sources = [
-    "assistant_communication_error_observer.h",
     "assistant_manager_service.h",
     "assistant_settings_manager.h",
     "assistant_state_proxy.cc",
diff --git a/chromeos/services/assistant/assistant_communication_error_observer.h b/chromeos/services/assistant/assistant_communication_error_observer.h
deleted file mode 100644
index 89c883d..0000000
--- a/chromeos/services/assistant/assistant_communication_error_observer.h
+++ /dev/null
@@ -1,36 +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 CHROMEOS_SERVICES_ASSISTANT_ASSISTANT_COMMUNICATION_ERROR_OBSERVER_H_
-#define CHROMEOS_SERVICES_ASSISTANT_ASSISTANT_COMMUNICATION_ERROR_OBSERVER_H_
-
-#include "base/macros.h"
-#include "base/observer_list_types.h"
-
-namespace chromeos {
-namespace assistant {
-
-enum class CommunicationErrorType {
-  AuthenticationError,
-  Other,
-};
-
-// A checked observer that observes communication errors when communicating with
-// the Assistant backend.
-class AssistantCommunicationErrorObserver : public base::CheckedObserver {
- public:
-  AssistantCommunicationErrorObserver() = default;
-
-  virtual void OnCommunicationError(CommunicationErrorType error) = 0;
-
- protected:
-  ~AssistantCommunicationErrorObserver() override = default;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(AssistantCommunicationErrorObserver);
-};
-}  // namespace assistant
-}  // namespace chromeos
-
-#endif  // CHROMEOS_SERVICES_ASSISTANT_ASSISTANT_COMMUNICATION_ERROR_OBSERVER_H_
diff --git a/chromeos/services/assistant/assistant_manager_service.h b/chromeos/services/assistant/assistant_manager_service.h
index 16e6aaf..3fbb6e0 100644
--- a/chromeos/services/assistant/assistant_manager_service.h
+++ b/chromeos/services/assistant/assistant_manager_service.h
@@ -9,7 +9,6 @@
 #include <string>
 
 #include "ash/public/mojom/assistant_controller.mojom.h"
-#include "base/callback_forward.h"
 #include "base/component_export.h"
 #include "chromeos/services/assistant/assistant_settings_manager.h"
 #include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
@@ -17,12 +16,14 @@
 
 namespace chromeos {
 namespace assistant {
-class AssistantCommunicationErrorObserver;
 
 // Interface class that defines all assistant functionalities.
 class COMPONENT_EXPORT(ASSISTANT_SERVICE) AssistantManagerService
     : public mojom::Assistant {
  public:
+  class StateObserver;
+  class CommunicationErrorObserver;
+
   enum State {
     // Initial state, the service is created but not started yet.
     STOPPED = 0,
@@ -36,15 +37,20 @@
     RUNNING = 3
   };
 
+  enum class CommunicationErrorType {
+    AuthenticationError,
+    Other,
+  };
+
   ~AssistantManagerService() override = default;
 
   // Start the assistant in the background with |access_token|, where the
   // token can be nullopt when the service is being started under the signed
-  // out mode. When the service is fully started |callback| will be called on
-  // the thread where ctor was run.
+  // out mode.
+  // If you want to know when the service is started, use
+  // |AddAndFireStateObserver| to add an observer.
   virtual void Start(const base::Optional<std::string>& access_token,
-                     bool enable_hotword,
-                     base::OnceClosure callback) = 0;
+                     bool enable_hotword) = 0;
 
   // Stop the assistant.
   virtual void Stop() = 0;
@@ -69,11 +75,41 @@
   // Add/Remove an observer that is invoked when there is a communucation error
   // with the Assistant service.
   virtual void AddCommunicationErrorObserver(
-      AssistantCommunicationErrorObserver* observer) = 0;
+      CommunicationErrorObserver* observer) = 0;
   virtual void RemoveCommunicationErrorObserver(
-      AssistantCommunicationErrorObserver* observer) = 0;
+      const CommunicationErrorObserver* observer) = 0;
+
+  // Add/Remove an observer that is invoked when there is a change in the
+  // |AssistantManagerService::State| value.
+  // When adding an observer it will immediately be triggered with the current
+  // state value.
+  virtual void AddAndFireStateObserver(StateObserver* observer) = 0;
+  virtual void RemoveStateObserver(const StateObserver* observer) = 0;
 };
 
+// Observes all state changes made to the |AssistantManagerService::State|.
+class AssistantManagerService::StateObserver : public base::CheckedObserver {
+ public:
+  StateObserver() = default;
+  ~StateObserver() override = default;
+
+  virtual void OnStateChanged(AssistantManagerService::State new_state) = 0;
+};
+
+// Observes communication errors when communicating with the Assistant backend.
+class AssistantManagerService::CommunicationErrorObserver
+    : public base::CheckedObserver {
+ public:
+  CommunicationErrorObserver() = default;
+
+  virtual void OnCommunicationError(CommunicationErrorType error) = 0;
+
+ protected:
+  ~CommunicationErrorObserver() override = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(CommunicationErrorObserver);
+};
 }  // namespace assistant
 }  // namespace chromeos
 
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc
index 2e9db3e..c755f85 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -25,7 +25,6 @@
 #include "chromeos/assistant/internal/proto/google3/assistant/api/client_input/warmer_welcome_input.pb.h"
 #include "chromeos/assistant/internal/proto/google3/assistant/api/client_op/device_args.pb.h"
 #include "chromeos/dbus/util/version_loader.h"
-#include "chromeos/services/assistant/assistant_communication_error_observer.h"
 #include "chromeos/services/assistant/assistant_manager_service_delegate.h"
 #include "chromeos/services/assistant/constants.h"
 #include "chromeos/services/assistant/media_session/assistant_media_session.h"
@@ -58,6 +57,8 @@
 using ActionModule = assistant_client::ActionModule;
 using Resolution = assistant_client::ConversationStateListener::Resolution;
 using MediaStatus = assistant_client::MediaStatus;
+using CommunicationErrorType =
+    chromeos::assistant::AssistantManagerService::CommunicationErrorType;
 
 namespace api = ::assistant::api;
 
@@ -180,13 +181,12 @@
 
 void AssistantManagerServiceImpl::Start(
     const base::Optional<std::string>& access_token,
-    bool enable_hotword,
-    base::OnceClosure post_init_callback) {
+    bool enable_hotword) {
   DCHECK(!assistant_manager_);
-  DCHECK_EQ(state_, State::STOPPED);
+  DCHECK_EQ(GetState(), State::STOPPED);
 
   // Set the flag to avoid starting the service multiple times.
-  state_ = State::STARTING;
+  SetStateAndInformObservers(State::STARTING);
 
   started_time_ = base::TimeTicks::Now();
 
@@ -199,15 +199,14 @@
       base::BindOnce(&AssistantManagerServiceImpl::StartAssistantInternal,
                      base::Unretained(this), access_token),
       base::BindOnce(&AssistantManagerServiceImpl::PostInitAssistant,
-                     weak_factory_.GetWeakPtr(),
-                     std::move(post_init_callback)));
+                     weak_factory_.GetWeakPtr()));
 }
 
 void AssistantManagerServiceImpl::Stop() {
   // We cannot cleanly stop the service if it is in the process of starting up.
-  DCHECK_NE(state_, State::STARTING);
+  DCHECK_NE(GetState(), State::STARTING);
 
-  state_ = State::STOPPED;
+  SetStateAndInformObservers(State::STOPPED);
 
   // When user disables the feature, we also deletes all data.
   if (!assistant_state()->settings_enabled().value() && assistant_manager_)
@@ -331,7 +330,7 @@
 }
 
 void AssistantManagerServiceImpl::SetArcPlayStoreEnabled(bool enable) {
-  if (!HasStartFinished()) {
+  if (GetState() != State::RUNNING) {
     // Skip setting play store status if libassistant is not ready. The status
     // will be set when it is ready.
     return;
@@ -348,15 +347,26 @@
 }
 
 void AssistantManagerServiceImpl::AddCommunicationErrorObserver(
-    AssistantCommunicationErrorObserver* observer) {
+    CommunicationErrorObserver* observer) {
   error_observers_.AddObserver(observer);
 }
 
 void AssistantManagerServiceImpl::RemoveCommunicationErrorObserver(
-    AssistantCommunicationErrorObserver* observer) {
+    const CommunicationErrorObserver* observer) {
   error_observers_.RemoveObserver(observer);
 }
 
+void AssistantManagerServiceImpl::AddAndFireStateObserver(
+    StateObserver* observer) {
+  state_observers_.AddObserver(observer);
+  observer->OnStateChanged(GetState());
+}
+
+void AssistantManagerServiceImpl::RemoveStateObserver(
+    const StateObserver* observer) {
+  state_observers_.RemoveObserver(observer);
+}
+
 void AssistantManagerServiceImpl::StartVoiceInteraction() {
   platform_api_->SetMicState(true);
   assistant_manager_->StartAssistantInteraction();
@@ -1057,10 +1067,9 @@
   new_assistant_manager_->Start();
 }
 
-void AssistantManagerServiceImpl::PostInitAssistant(
-    base::OnceClosure post_init_callback) {
+void AssistantManagerServiceImpl::PostInitAssistant() {
   DCHECK(main_task_runner()->RunsTasksInCurrentSequence());
-  DCHECK_EQ(state_, State::STARTING);
+  DCHECK_EQ(GetState(), State::STARTING);
 
   {
     base::AutoLock lock(new_assistant_manager_lock_);
@@ -1071,7 +1080,6 @@
     // |new_assistant_manager_|, it is possible that |new_assistant_manager_| be
     // null if we moved it in previous |PostInitAssistant| runs.
     if (!new_assistant_manager_) {
-      std::move(post_init_callback).Run();
       return;
     }
 
@@ -1081,13 +1089,12 @@
     new_assistant_manager_internal_ = nullptr;
   }
 
-  state_ = State::STARTED;
-
   const base::TimeDelta time_since_started =
       base::TimeTicks::Now() - started_time_;
   UMA_HISTOGRAM_TIMES("Assistant.ServiceStartTime", time_since_started);
 
-  std::move(post_init_callback).Run();
+  SetStateAndInformObservers(State::STARTED);
+
   assistant_settings_manager_->UpdateServerDeviceSettings();
 
   if (base::FeatureList::IsEnabled(assistant::features::kAssistantAppSupport)) {
@@ -1145,12 +1152,10 @@
 
   // It is possible the |assistant_manager_| was destructed before the
   // rescheduled main thread task got a chance to run. We check this and also
-  // try to avoid double run by check |HasStartFinished()|.
-  if (!assistant_manager_ || HasStartFinished())
+  // try to avoid double run by checking |GetState()|.
+  if (!assistant_manager_ || (GetState() == State::RUNNING))
     return;
 
-  SetStartFinished();
-
   if (is_first_init) {
     is_first_init = false;
     // Only sync status at the first init to prevent unexpected corner cases.
@@ -1158,6 +1163,10 @@
       assistant_settings_manager_->SyncSpeakerIdEnrollmentStatus();
   }
 
+  const base::TimeDelta time_since_started =
+      base::TimeTicks::Now() - started_time_;
+  UMA_HISTOGRAM_TIMES("Assistant.ServiceReadyTime", time_since_started);
+
   RegisterFallbackMediaHandler();
   AddMediaControllerObserver();
 
@@ -1169,6 +1178,8 @@
     SetArcPlayStoreEnabled(assistant_state()->arc_play_store_enabled().value());
 
   RegisterAlarmsTimersListener();
+
+  SetStateAndInformObservers(State::RUNNING);
 }
 
 void AssistantManagerServiceImpl::OnAndroidAppListRefreshed(
@@ -1704,12 +1715,11 @@
   return context_->main_task_runner();
 }
 
-bool AssistantManagerServiceImpl::HasStartFinished() const {
-  return state_ == State::RUNNING;
-}
+void AssistantManagerServiceImpl::SetStateAndInformObservers(State new_state) {
+  state_ = new_state;
 
-void AssistantManagerServiceImpl::SetStartFinished() {
-  state_ = State::RUNNING;
+  for (auto& observer : state_observers_)
+    observer.OnStateChanged(state_);
 }
 
 }  // namespace assistant
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.h b/chromeos/services/assistant/assistant_manager_service_impl.h
index eddcf5a..a8da97f 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/assistant_manager_service_impl.h
@@ -16,7 +16,6 @@
 #include "chromeos/assistant/internal/action/cros_action_module.h"
 #include "chromeos/assistant/internal/cros_display_connection.h"
 #include "chromeos/assistant/internal/internal_util.h"
-#include "chromeos/services/assistant/assistant_communication_error_observer.h"
 #include "chromeos/services/assistant/assistant_manager_service.h"
 #include "chromeos/services/assistant/assistant_settings_manager_impl.h"
 #include "chromeos/services/assistant/chromium_api_delegate.h"
@@ -109,8 +108,7 @@
 
   // assistant::AssistantManagerService overrides
   void Start(const base::Optional<std::string>& access_token,
-             bool enable_hotword,
-             base::OnceClosure callback) override;
+             bool enable_hotword) override;
   void Stop() override;
   State GetState() const override;
   void SetAccessToken(const std::string& access_token) override;
@@ -119,9 +117,11 @@
   void SetArcPlayStoreEnabled(bool enable) override;
   AssistantSettingsManager* GetAssistantSettingsManager() override;
   void AddCommunicationErrorObserver(
-      AssistantCommunicationErrorObserver* observer) override;
+      CommunicationErrorObserver* observer) override;
   void RemoveCommunicationErrorObserver(
-      AssistantCommunicationErrorObserver* observer) override;
+      const CommunicationErrorObserver* observer) override;
+  void AddAndFireStateObserver(StateObserver* observer) override;
+  void RemoveStateObserver(const StateObserver* observer) override;
 
   // mojom::Assistant overrides:
   void StartCachedScreenContextInteraction() override;
@@ -228,7 +228,7 @@
 
  private:
   void StartAssistantInternal(const base::Optional<std::string>& access_token);
-  void PostInitAssistant(base::OnceClosure post_init_callback);
+  void PostInitAssistant();
 
   // Update device id, type and locale
   void UpdateDeviceSettings();
@@ -313,8 +313,7 @@
   mojom::DeviceActions* device_actions();
   scoped_refptr<base::SequencedTaskRunner> main_task_runner();
 
-  bool HasStartFinished() const;
-  void SetStartFinished();
+  void SetStateAndInformObservers(State new_state);
 
   mojom::Client* const client_;
   State state_ = State::STOPPED;
@@ -386,7 +385,8 @@
 
   mojo::Binding<mojom::AppListEventSubscriber> app_list_subscriber_binding_;
 
-  base::ObserverList<AssistantCommunicationErrorObserver> error_observers_;
+  base::ObserverList<CommunicationErrorObserver> error_observers_;
+  base::ObserverList<StateObserver> state_observers_;
 
   base::WeakPtrFactory<AssistantManagerServiceImpl> weak_factory_;
 
diff --git a/chromeos/services/assistant/assistant_manager_service_impl_unittest.cc b/chromeos/services/assistant/assistant_manager_service_impl_unittest.cc
index 804b699..02060f3 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl_unittest.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl_unittest.cc
@@ -10,7 +10,7 @@
 #include "chromeos/assistant/internal/test_support/fake_assistant_manager.h"
 #include "chromeos/assistant/internal/test_support/fake_assistant_manager_internal.h"
 #include "chromeos/dbus/power/fake_power_manager_client.h"
-#include "chromeos/services/assistant/assistant_communication_error_observer.h"
+#include "chromeos/services/assistant/assistant_manager_service.h"
 #include "chromeos/services/assistant/constants.h"
 #include "chromeos/services/assistant/fake_client.h"
 #include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
@@ -31,6 +31,8 @@
 namespace assistant {
 
 using media_session::mojom::MediaSessionAction;
+using testing::StrictMock;
+using CommunicationErrorType = AssistantManagerService::CommunicationErrorType;
 
 namespace {
 // Return the list of all libassistant error codes that are considered to be
@@ -132,16 +134,29 @@
   DISALLOW_COPY_AND_ASSIGN(FakeServiceContext);
 };
 
-class AssistantCommunicationErrorObserverMock
-    : public AssistantCommunicationErrorObserver {
+class CommunicationErrorObserverMock
+    : public AssistantManagerService::CommunicationErrorObserver {
  public:
-  AssistantCommunicationErrorObserverMock() = default;
-  ~AssistantCommunicationErrorObserverMock() override = default;
+  CommunicationErrorObserverMock() = default;
+  ~CommunicationErrorObserverMock() override = default;
 
-  MOCK_METHOD(void, OnCommunicationError, (CommunicationErrorType error));
+  MOCK_METHOD(void,
+              OnCommunicationError,
+              (AssistantManagerService::CommunicationErrorType error));
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(AssistantCommunicationErrorObserverMock);
+  DISALLOW_COPY_AND_ASSIGN(CommunicationErrorObserverMock);
+};
+
+class StateObserverMock : public AssistantManagerService::StateObserver {
+ public:
+  StateObserverMock() = default;
+  ~StateObserverMock() override = default;
+
+  MOCK_METHOD(void, OnStateChanged, (AssistantManagerService::State new_state));
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(StateObserverMock);
 };
 
 class AssistantManagerServiceImplTest : public testing::Test {
@@ -194,20 +209,21 @@
     return delegate_->assistant_manager_internal();
   }
 
-  base::OnceClosure GetDummyCallback() {
-    return base::BindOnce([] {});
-  }
-
-  void Start() { Start(GetDummyCallback()); }
-
-  void Start(base::OnceClosure callback) {
+  void Start() {
     assistant_manager_service()->Start("dummy-access-token",
-                                       /*enable_hotword=*/false,
-                                       std::move(callback));
+                                       /*enable_hotword=*/false);
   }
 
   void RunUntilIdle() { base::RunLoop().RunUntilIdle(); }
 
+  // Adds a state observer mock, and add the expectation for the fact that it
+  // auto-fires the observer.
+  void AddStateObserver(StateObserverMock* observer) {
+    EXPECT_CALL(*observer,
+                OnStateChanged(assistant_manager_service()->GetState()));
+    assistant_manager_service()->AddAndFireStateObserver(observer);
+  }
+
   void WaitUntilStartIsFinished() {
     assistant_manager_service()->WaitUntilStartIsFinishedForTesting();
   }
@@ -224,7 +240,7 @@
         fake_assistant_manager_internal()->assistant_manager_delegate();
 
     for (int code : libassistant_error_codes) {
-      AssistantCommunicationErrorObserverMock observer;
+      CommunicationErrorObserverMock observer;
       assistant_manager_service()->AddCommunicationErrorObserver(&observer);
 
       EXPECT_CALL(observer, OnCommunicationError(expected_error));
@@ -299,25 +315,6 @@
             assistant_manager_service()->GetState());
 }
 
-TEST_F(AssistantManagerServiceImplTest,
-       ShouldInvokeStartCallbackWhenLibassistantStartFinishes) {
-  bool callback_invoked = false;
-  base::OnceClosure callback = base::BindLambdaForTesting(
-      [&callback_invoked]() { callback_invoked = true; });
-
-  Start(std::move(callback));
-
-  fake_assistant_manager()->BlockStartCalls();
-  RunUntilIdle();
-
-  EXPECT_EQ(callback_invoked, false);
-
-  fake_assistant_manager()->UnblockStartCalls();
-  WaitUntilStartIsFinished();
-
-  EXPECT_EQ(callback_invoked, true);
-}
-
 TEST_F(AssistantManagerServiceImplTest, ShouldSetStateToStoppedAfterStopping) {
   Start();
   WaitUntilStartIsFinished();
@@ -376,7 +373,7 @@
 }
 
 TEST_F(AssistantManagerServiceImplTest, ShouldPauseMediaManagerOnPause) {
-  testing::StrictMock<MockMediaManager> mock;
+  StrictMock<MockMediaManager> mock;
   fake_assistant_manager()->SetMediaManager(&mock);
 
   Start();
@@ -389,7 +386,7 @@
 }
 
 TEST_F(AssistantManagerServiceImplTest, ShouldResumeMediaManagerOnPlay) {
-  testing::StrictMock<MockMediaManager> mock;
+  StrictMock<MockMediaManager> mock;
   fake_assistant_manager()->SetMediaManager(&mock);
 
   Start();
@@ -409,7 +406,7 @@
       MediaSessionAction::kSeekTo,        MediaSessionAction::kScrubTo,
   };
 
-  testing::StrictMock<MockMediaManager> mock;
+  StrictMock<MockMediaManager> mock;
   fake_assistant_manager()->SetMediaManager(&mock);
 
   Start();
@@ -430,5 +427,83 @@
       media_session::mojom::MediaSessionAction::kPlay);
 }
 
+TEST_F(AssistantManagerServiceImplTest, ShouldFireStateObserverWhenAddingIt) {
+  StrictMock<StateObserverMock> observer;
+  EXPECT_CALL(observer,
+              OnStateChanged(AssistantManagerService::State::STOPPED));
+
+  assistant_manager_service()->AddAndFireStateObserver(&observer);
+
+  assistant_manager_service()->RemoveStateObserver(&observer);
+}
+
+TEST_F(AssistantManagerServiceImplTest, ShouldFireStateObserverWhenStarting) {
+  StrictMock<StateObserverMock> observer;
+  AddStateObserver(&observer);
+
+  fake_assistant_manager()->BlockStartCalls();
+
+  EXPECT_CALL(observer,
+              OnStateChanged(AssistantManagerService::State::STARTING));
+  Start();
+
+  assistant_manager_service()->RemoveStateObserver(&observer);
+  fake_assistant_manager()->UnblockStartCalls();
+}
+
+TEST_F(AssistantManagerServiceImplTest, ShouldFireStateObserverWhenStarted) {
+  StrictMock<StateObserverMock> observer;
+  AddStateObserver(&observer);
+
+  EXPECT_CALL(observer,
+              OnStateChanged(AssistantManagerService::State::STARTING));
+  EXPECT_CALL(observer,
+              OnStateChanged(AssistantManagerService::State::STARTED));
+  Start();
+  WaitUntilStartIsFinished();
+
+  assistant_manager_service()->RemoveStateObserver(&observer);
+}
+
+TEST_F(AssistantManagerServiceImplTest,
+       ShouldFireStateObserverWhenLibAssistantSignalsOnStartFinished) {
+  Start();
+  WaitUntilStartIsFinished();
+
+  StrictMock<StateObserverMock> observer;
+  AddStateObserver(&observer);
+  EXPECT_CALL(observer,
+              OnStateChanged(AssistantManagerService::State::RUNNING));
+
+  fake_assistant_manager()->device_state_listener()->OnStartFinished();
+
+  assistant_manager_service()->RemoveStateObserver(&observer);
+}
+
+TEST_F(AssistantManagerServiceImplTest, ShouldFireStateObserverWhenStopping) {
+  Start();
+  WaitUntilStartIsFinished();
+
+  StrictMock<StateObserverMock> observer;
+  AddStateObserver(&observer);
+  EXPECT_CALL(observer,
+              OnStateChanged(AssistantManagerService::State::STOPPED));
+
+  assistant_manager_service()->Stop();
+
+  assistant_manager_service()->RemoveStateObserver(&observer);
+}
+
+TEST_F(AssistantManagerServiceImplTest,
+       ShouldNotFireStateObserverAfterItIsRemoved) {
+  StrictMock<StateObserverMock> observer;
+  AddStateObserver(&observer);
+
+  assistant_manager_service()->RemoveStateObserver(&observer);
+  EXPECT_CALL(observer, OnStateChanged).Times(0);
+
+  Start();
+}
+
 }  // namespace assistant
 }  // namespace chromeos
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
index 429cd1f..b98cc134 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
@@ -14,21 +14,17 @@
 FakeAssistantManagerServiceImpl::~FakeAssistantManagerServiceImpl() = default;
 
 void FakeAssistantManagerServiceImpl::FinishStart() {
-  DCHECK(start_callback_);
-  state_ = State::RUNNING;
-  std::move(start_callback_).Run();
+  SetStateAndInformObservers(State::RUNNING);
 }
 
 void FakeAssistantManagerServiceImpl::Start(
     const base::Optional<std::string>& access_token,
-    bool enable_hotword,
-    base::OnceClosure callback) {
-  state_ = State::STARTING;
-  start_callback_ = std::move(callback);
+    bool enable_hotword) {
+  SetStateAndInformObservers(State::STARTING);
 }
 
 void FakeAssistantManagerServiceImpl::Stop() {
-  state_ = State::STOPPED;
+  SetStateAndInformObservers(State::STOPPED);
 }
 
 void FakeAssistantManagerServiceImpl::SetAccessToken(
@@ -50,6 +46,17 @@
   return &assistant_settings_manager_;
 }
 
+void FakeAssistantManagerServiceImpl::AddAndFireStateObserver(
+    StateObserver* observer) {
+  state_observers_.AddObserver(observer);
+  observer->OnStateChanged(GetState());
+}
+
+void FakeAssistantManagerServiceImpl::RemoveStateObserver(
+    const StateObserver* observer) {
+  state_observers_.RemoveObserver(observer);
+}
+
 void FakeAssistantManagerServiceImpl::StartCachedScreenContextInteraction() {}
 
 void FakeAssistantManagerServiceImpl::StartEditReminderInteraction(
@@ -97,5 +104,28 @@
 void FakeAssistantManagerServiceImpl::StopAlarmTimerRinging() {}
 void FakeAssistantManagerServiceImpl::CreateTimer(base::TimeDelta duration) {}
 
+void FakeAssistantManagerServiceImpl::SetStateAndInformObservers(
+    State new_state) {
+  State old_state = state_;
+  state_ = new_state;
+
+  // In reality we will not skip states, i.e. we will always get |STARTING|
+  // before ever encountering |STARTED|. As such our fake implementation will
+  // send out all intermediate states between |old_state| and |new_state|.
+  MaybeSendStateChange(State::STOPPED, old_state, new_state);
+  MaybeSendStateChange(State::STARTING, old_state, new_state);
+  MaybeSendStateChange(State::STARTED, old_state, new_state);
+  MaybeSendStateChange(State::RUNNING, old_state, new_state);
+}
+
+void FakeAssistantManagerServiceImpl::MaybeSendStateChange(State state,
+                                                           State old_state,
+                                                           State target_state) {
+  if (state > old_state && state <= target_state) {
+    for (auto& observer : state_observers_)
+      observer.OnStateChanged(state);
+  }
+}
+
 }  // namespace assistant
 }  // namespace chromeos
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.h b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
index 1a500f91..3f85ac8 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
@@ -8,13 +8,11 @@
 #include <memory>
 #include <string>
 
-#include "ash/public/mojom/assistant_controller.mojom.h"
 #include "base/component_export.h"
 #include "base/macros.h"
-#include "base/timer/timer.h"
+#include "base/observer_list.h"
 #include "chromeos/services/assistant/assistant_manager_service.h"
 #include "chromeos/services/assistant/fake_assistant_settings_manager_impl.h"
-#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
 
 namespace chromeos {
 namespace assistant {
@@ -31,8 +29,7 @@
 
   // assistant::AssistantManagerService overrides
   void Start(const base::Optional<std::string>& access_token,
-             bool enable_hotword,
-             base::OnceClosure callback) override;
+             bool enable_hotword) override;
   void Stop() override;
   void SetAccessToken(const std::string& access_token) override;
   void EnableListening(bool enable) override;
@@ -41,9 +38,11 @@
   State GetState() const override;
   AssistantSettingsManager* GetAssistantSettingsManager() override;
   void AddCommunicationErrorObserver(
-      AssistantCommunicationErrorObserver* observer) override {}
+      CommunicationErrorObserver* observer) override {}
   void RemoveCommunicationErrorObserver(
-      AssistantCommunicationErrorObserver* observer) override {}
+      const CommunicationErrorObserver* observer) override {}
+  void AddAndFireStateObserver(StateObserver* observer) override;
+  void RemoveStateObserver(const StateObserver* observer) override;
 
   // mojom::Assistant overrides:
   void StartCachedScreenContextInteraction() override;
@@ -68,10 +67,18 @@
   void StopAlarmTimerRinging() override;
   void CreateTimer(base::TimeDelta duration) override;
 
+  // Update the state to the corresponding value, and inform the
+  // |AssistantStateObserver| of the change.
+  void SetStateAndInformObservers(State new_state);
+
  private:
+  // Send out a |AssistantStateObserver::OnStateChange(state)| event if we are
+  // transitioning from a prior state to a later state.
+  void MaybeSendStateChange(State state, State old_state, State target_state);
+
   State state_ = State::STOPPED;
-  base::OnceClosure start_callback_;
   FakeAssistantSettingsManagerImpl assistant_settings_manager_;
+  base::ObserverList<StateObserver> state_observers_;
 
   DISALLOW_COPY_AND_ASSIGN(FakeAssistantManagerServiceImpl);
 };
diff --git a/chromeos/services/assistant/fake_client.h b/chromeos/services/assistant/fake_client.h
index 9686268..7cb2fe8d 100644
--- a/chromeos/services/assistant/fake_client.h
+++ b/chromeos/services/assistant/fake_client.h
@@ -26,7 +26,8 @@
 
  protected:
   // mojom::Client implementation:
-  void OnAssistantStatusChanged(bool running) override {}
+  void OnAssistantStatusChanged(ash::mojom::AssistantState new_state) override {
+  }
   void RequestAssistantStructure(
       RequestAssistantStructureCallback callback) override {}
   void RequestAssistantController(
diff --git a/chromeos/services/assistant/public/mojom/assistant.mojom b/chromeos/services/assistant/public/mojom/assistant.mojom
index d8be54c..a145c512a 100644
--- a/chromeos/services/assistant/public/mojom/assistant.mojom
+++ b/chromeos/services/assistant/public/mojom/assistant.mojom
@@ -205,7 +205,7 @@
 // Interface for assistant to call into client.
 interface Client {
   // Notifies assistant client that assistant running status has changed.
-  OnAssistantStatusChanged(bool running);
+  OnAssistantStatusChanged(ash.mojom.AssistantState new_state);
 
   // Request context of current window from browser.
   RequestAssistantStructure() => (
diff --git a/chromeos/services/assistant/service.cc b/chromeos/services/assistant/service.cc
index 38d6fb9..d7cde5e 100644
--- a/chromeos/services/assistant/service.cc
+++ b/chromeos/services/assistant/service.cc
@@ -52,6 +52,8 @@
 
 namespace {
 
+using CommunicationErrorType = AssistantManagerService::CommunicationErrorType;
+
 constexpr char kScopeAuthGcm[] = "https://www.googleapis.com/auth/gcm";
 constexpr char kScopeAssistant[] =
     "https://www.googleapis.com/auth/assistant-sdk-prototype";
@@ -65,6 +67,22 @@
 // Testing override for the AssistantSettingsManager implementation.
 AssistantSettingsManager* g_settings_manager_override = nullptr;
 
+ash::mojom::AssistantState ToAssistantStatus(
+    AssistantManagerService::State state) {
+  using State = AssistantManagerService::State;
+  using ash::mojom::AssistantState;
+
+  switch (state) {
+    case State::STOPPED:
+    case State::STARTING:
+      return AssistantState::NOT_READY;
+    case State::STARTED:
+      return AssistantState::READY;
+    case State::RUNNING:
+      return AssistantState::NEW_READY;
+  }
+}
+
 }  // namespace
 
 class Service::Context : public ServiceContext {
@@ -233,19 +251,8 @@
   DCHECK(client_);
   session_active_ = activated;
 
-  bool is_assistant_running;
-  switch (assistant_manager_service_->GetState()) {
-    case AssistantManagerService::State::STOPPED:
-    case AssistantManagerService::State::STARTING:
-      is_assistant_running = false;
-      break;
-    case AssistantManagerService::State::STARTED:
-    case AssistantManagerService::State::RUNNING:
-      is_assistant_running = true;
-      break;
-  }
-  client_->OnAssistantStatusChanged(is_assistant_running &&
-                                    activated /* running */);
+  client_->OnAssistantStatusChanged(
+      ToAssistantStatus(assistant_manager_service_->GetState()));
   UpdateListeningState();
 }
 
@@ -289,6 +296,18 @@
     RequestAccessToken();
 }
 
+void Service::OnStateChanged(AssistantManagerService::State new_state) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  if (new_state == AssistantManagerService::State::STARTED)
+    FinalizeAssistantManagerService();
+  if (new_state == AssistantManagerService::State::RUNNING)
+    DVLOG(1) << "Assistant is running";
+
+  client_->OnAssistantStatusChanged(ToAssistantStatus(new_state));
+  UpdateListeningState();
+}
+
 void Service::UpdateAssistantManagerState() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -310,15 +329,7 @@
       if (assistant_state_.settings_enabled().value()) {
         assistant_manager_service_->Start(
             is_signed_out_mode_ ? base::nullopt : access_token_,
-            ShouldEnableHotword(),
-            base::BindOnce(
-                [](scoped_refptr<base::SequencedTaskRunner> task_runner,
-                   base::OnceCallback<void()> callback) {
-                  task_runner->PostTask(FROM_HERE, std::move(callback));
-                },
-                main_task_runner_,
-                base::BindOnce(&Service::FinalizeAssistantManagerService,
-                               weak_ptr_factory_.GetWeakPtr())));
+            ShouldEnableHotword());
         DVLOG(1) << "Request Assistant start";
       }
       break;
@@ -430,12 +441,17 @@
 void Service::CreateAssistantManagerService() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
+  assistant_manager_service_ = CreateAndReturnAssistantManagerService();
+  assistant_manager_service_->AddCommunicationErrorObserver(this);
+  assistant_manager_service_->AddAndFireStateObserver(this);
+}
+
+std::unique_ptr<AssistantManagerService>
+Service::CreateAndReturnAssistantManagerService() {
 #if BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
   if (is_test_) {
     // Use fake service in browser tests.
-    assistant_manager_service_ =
-        std::make_unique<FakeAssistantManagerServiceImpl>();
-    return;
+    return std::make_unique<FakeAssistantManagerServiceImpl>();
   }
 
   DCHECK(client_);
@@ -449,15 +465,12 @@
 
   // |assistant_manager_service_| is only created once.
   DCHECK(url_loader_factory_info_);
-  assistant_manager_service_ = std::make_unique<AssistantManagerServiceImpl>(
+  return std::make_unique<AssistantManagerServiceImpl>(
       client_.get(), context(), std::move(delegate),
       std::move(url_loader_factory_info_), is_signed_out_mode_);
 #else
-  assistant_manager_service_ =
-      std::make_unique<FakeAssistantManagerServiceImpl>();
+  return std::make_unique<FakeAssistantManagerServiceImpl>();
 #endif
-
-  assistant_manager_service_->AddCommunicationErrorObserver(this);
 }
 
 void Service::FinalizeAssistantManagerService() {
@@ -490,10 +503,6 @@
 
     AddAshSessionObserver();
   }
-
-  client_->OnAssistantStatusChanged(true /* running */);
-  UpdateListeningState();
-  DVLOG(1) << "Assistant is running";
 }
 
 void Service::StopAssistantManagerService() {
@@ -501,7 +510,7 @@
 
   assistant_manager_service_->Stop();
   weak_ptr_factory_.InvalidateWeakPtrs();
-  client_->OnAssistantStatusChanged(false /* running */);
+  client_->OnAssistantStatusChanged(ash::mojom::AssistantState::NOT_READY);
 }
 
 void Service::AddAshSessionObserver() {
diff --git a/chromeos/services/assistant/service.h b/chromeos/services/assistant/service.h
index 26a2a304..dfd84e8 100644
--- a/chromeos/services/assistant/service.h
+++ b/chromeos/services/assistant/service.h
@@ -20,7 +20,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/time/time.h"
 #include "chromeos/dbus/power/power_manager_client.h"
-#include "chromeos/services/assistant/assistant_communication_error_observer.h"
+#include "chromeos/services/assistant/assistant_manager_service.h"
 #include "chromeos/services/assistant/assistant_state_proxy.h"
 #include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
 #include "chromeos/services/assistant/public/mojom/settings.mojom.h"
@@ -50,7 +50,6 @@
 namespace chromeos {
 namespace assistant {
 
-class AssistantManagerService;
 class AssistantSettingsManager;
 class PrefConnectionDelegate;
 class ServiceContext;
@@ -65,9 +64,8 @@
       public chromeos::PowerManagerClient::Observer,
       public ash::SessionActivationObserver,
       public ash::AssistantStateObserver,
-      public AssistantCommunicationErrorObserver
-
-{
+      public AssistantManagerService::CommunicationErrorObserver,
+      public AssistantManagerService::StateObserver {
  public:
   Service(mojo::PendingReceiver<mojom::AssistantService> receiver,
           std::unique_ptr<network::SharedURLLoaderFactoryInfo>
@@ -109,7 +107,7 @@
   void OnSessionActivated(bool activated) override;
   void OnLockStateChanged(bool locked) override;
 
-  // ash::AssistantStateObserver:
+  // ash::AssistantStateObserver overrides:
   void OnAssistantHotwordAlwaysOn(bool hotword_always_on) override;
   void OnAssistantSettingsEnabled(bool enabled) override;
   void OnAssistantHotwordEnabled(bool enabled) override;
@@ -117,8 +115,12 @@
   void OnArcPlayStoreEnabledChanged(bool enabled) override;
   void OnLockedFullScreenStateChanged(bool enabled) override;
 
-  // AssistantCommunicationErrorObserver
-  void OnCommunicationError(CommunicationErrorType error_type) override;
+  // AssistantManagerService::CommunicationErrorObserver overrides:
+  void OnCommunicationError(
+      AssistantManagerService::CommunicationErrorType error_type) override;
+
+  // AssistantManagerService::StateObserver overrides:
+  void OnStateChanged(AssistantManagerService::State new_state) override;
 
   void UpdateAssistantManagerState();
 
@@ -138,6 +140,8 @@
   void RetryRefreshToken();
 
   void CreateAssistantManagerService();
+  std::unique_ptr<AssistantManagerService>
+  CreateAndReturnAssistantManagerService();
 
   void FinalizeAssistantManagerService();
 
diff --git a/chromeos/services/assistant/service_unittest.cc b/chromeos/services/assistant/service_unittest.cc
index 4c2d82b..778e7c3 100644
--- a/chromeos/services/assistant/service_unittest.cc
+++ b/chromeos/services/assistant/service_unittest.cc
@@ -129,10 +129,18 @@
 class FakeAssistantClient : public FakeClient {
  public:
   explicit FakeAssistantClient(ash::AssistantState* assistant_state)
-      : assistant_state_(assistant_state) {}
+      : assistant_state_(assistant_state),
+        status_(ash::mojom::AssistantState::NOT_READY) {}
+
+  ash::mojom::AssistantState status() { return status_; }
 
  private:
   // FakeClient:
+
+  void OnAssistantStatusChanged(ash::mojom::AssistantState new_state) override {
+    status_ = new_state;
+  }
+
   void RequestAssistantStateController(
       mojo::PendingReceiver<ash::mojom::AssistantStateController> receiver)
       override {
@@ -140,6 +148,7 @@
   }
 
   ash::AssistantState* const assistant_state_;
+  ash::mojom::AssistantState status_;
 
   DISALLOW_COPY_AND_ASSIGN(FakeAssistantClient);
 };
@@ -233,8 +242,10 @@
   Service* service() { return service_.get(); }
 
   FakeAssistantManagerServiceImpl* assistant_manager() {
-    return static_cast<FakeAssistantManagerServiceImpl*>(
+    auto* result = static_cast<FakeAssistantManagerServiceImpl*>(
         service_->assistant_manager_service_.get());
+    DCHECK(result);
+    return result;
   }
 
   FakeIdentityAccessor* identity_accessor() { return &fake_identity_accessor_; }
@@ -243,6 +254,8 @@
 
   PrefService* pref_service() { return pref_service_; }
 
+  FakeAssistantClient* client() { return &fake_assistant_client_; }
+
   base::TestMockTimeTaskRunner* mock_task_runner() {
     return mock_task_runner_.get();
   }
@@ -353,5 +366,40 @@
             AssistantManagerService::State::STOPPED);
 }
 
+TEST_F(AssistantServiceTest, ShouldSetClientStatusToNotReadyWhenStarting) {
+  assistant_manager()->SetStateAndInformObservers(
+      AssistantManagerService::State::STARTING);
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(client()->status(), ash::mojom::AssistantState::NOT_READY);
+}
+
+TEST_F(AssistantServiceTest, ShouldSetClientStatusToReadyWhenStarted) {
+  assistant_manager()->SetStateAndInformObservers(
+      AssistantManagerService::State::STARTED);
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(client()->status(), ash::mojom::AssistantState::READY);
+}
+
+TEST_F(AssistantServiceTest, ShouldSetClientStatusToNewReadyWhenRunning) {
+  assistant_manager()->SetStateAndInformObservers(
+      AssistantManagerService::State::RUNNING);
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(client()->status(), ash::mojom::AssistantState::NEW_READY);
+}
+
+TEST_F(AssistantServiceTest, ShouldSetClientStatusToNotReadyWhenStopped) {
+  assistant_manager()->SetStateAndInformObservers(
+      AssistantManagerService::State::RUNNING);
+  base::RunLoop().RunUntilIdle();
+
+  pref_service()->SetBoolean(prefs::kAssistantEnabled, false);
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(client()->status(), ash::mojom::AssistantState::NOT_READY);
+}
+
 }  // namespace assistant
 }  // namespace chromeos
diff --git a/chromeos/services/device_sync/BUILD.gn b/chromeos/services/device_sync/BUILD.gn
index 87620b14..ce3d03a 100644
--- a/chromeos/services/device_sync/BUILD.gn
+++ b/chromeos/services/device_sync/BUILD.gn
@@ -106,8 +106,6 @@
     "device_sync_base.h",
     "device_sync_impl.cc",
     "device_sync_impl.h",
-    "device_sync_service.cc",
-    "device_sync_service.h",
     "device_sync_type_converters.cc",
     "device_sync_type_converters.h",
     "network_request_error.cc",
@@ -152,8 +150,8 @@
     "//chromeos/services/device_sync/public/cpp",
     "//chromeos/services/device_sync/public/mojom",
     "//components/gcm_driver",
+    "//components/prefs",
     "//net",
-    "//services/preferences/public/cpp",
   ]
 
   visibility = [
diff --git a/chromeos/services/device_sync/DEPS b/chromeos/services/device_sync/DEPS
index f8cf07c4..7ab5e9d 100644
--- a/chromeos/services/device_sync/DEPS
+++ b/chromeos/services/device_sync/DEPS
@@ -8,6 +8,5 @@
   "+mojo/public/cpp",
   "+services/network/public",
   "+services/network/test",
-  "+services/preferences/public",
   "+components/cryptauth"
 ]
diff --git a/chromeos/services/device_sync/device_sync_base.cc b/chromeos/services/device_sync/device_sync_base.cc
index b64bd114..36c98f51 100644
--- a/chromeos/services/device_sync/device_sync_base.cc
+++ b/chromeos/services/device_sync/device_sync_base.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 "chromeos/services/device_sync/device_sync_base.h"
+
 #include <utility>
 
 #include "base/bind.h"
 #include "base/callback.h"
-#include "chromeos/services/device_sync/device_sync_base.h"
 
 namespace chromeos {
 
diff --git a/chromeos/services/device_sync/device_sync_base.h b/chromeos/services/device_sync/device_sync_base.h
index eae48ee..5d414bb 100644
--- a/chromeos/services/device_sync/device_sync_base.h
+++ b/chromeos/services/device_sync/device_sync_base.h
@@ -21,6 +21,9 @@
  public:
   ~DeviceSyncBase() override;
 
+  // Informs the implementation that accounts and preferences are ready to use.
+  virtual void OnProfileInitialized() {}
+
   // mojom::DeviceSync:
   void AddObserver(mojom::DeviceSyncObserverPtr observer,
                    AddObserverCallback callback) override;
diff --git a/chromeos/services/device_sync/device_sync_impl.cc b/chromeos/services/device_sync/device_sync_impl.cc
index 83c356264..12f4daf 100644
--- a/chromeos/services/device_sync/device_sync_impl.cc
+++ b/chromeos/services/device_sync/device_sync_impl.cc
@@ -11,7 +11,7 @@
 #include "base/no_destructor.h"
 #include "base/optional.h"
 #include "base/time/default_clock.h"
-#include "base/token.h"
+#include "base/unguessable_token.h"
 #include "chromeos/components/multidevice/logging/logging.h"
 #include "chromeos/components/multidevice/secure_message_delegate_impl.h"
 #include "chromeos/constants/chromeos_features.h"
@@ -41,19 +41,6 @@
 
 namespace {
 
-void RegisterDeviceSyncPrefs(PrefRegistrySimple* registry) {
-  CryptAuthGCMManager::RegisterPrefs(registry);
-  CryptAuthDeviceManager::RegisterPrefs(registry);
-  if (base::FeatureList::IsEnabled(
-          chromeos::features::kCryptAuthV2Enrollment)) {
-    CryptAuthV2EnrollmentManagerImpl::RegisterPrefs(registry);
-    CryptAuthKeyRegistryImpl::RegisterPrefs(registry);
-    CryptAuthSchedulerImpl::RegisterPrefs(registry);
-  } else {
-    CryptAuthEnrollmentManagerImpl::RegisterPrefs(registry);
-  }
-}
-
 constexpr base::TimeDelta kSetFeatureEnabledTimeout =
     base::TimeDelta::FromSeconds(5);
 
@@ -220,32 +207,15 @@
 std::unique_ptr<DeviceSyncBase> DeviceSyncImpl::Factory::BuildInstance(
     signin::IdentityManager* identity_manager,
     gcm::GCMDriver* gcm_driver,
-    mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector,
+    PrefService* profile_prefs,
     const GcmDeviceInfoProvider* gcm_device_info_provider,
     ClientAppMetadataProvider* client_app_metadata_provider,
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     std::unique_ptr<base::OneShotTimer> timer) {
   return base::WrapUnique(new DeviceSyncImpl(
-      identity_manager, gcm_driver, std::move(pref_store_connector),
-      gcm_device_info_provider, client_app_metadata_provider,
-      std::move(url_loader_factory), base::DefaultClock::GetInstance(),
-      std::make_unique<PrefConnectionDelegate>(), std::move(timer)));
-}
-
-DeviceSyncImpl::PrefConnectionDelegate::~PrefConnectionDelegate() = default;
-
-scoped_refptr<PrefRegistrySimple>
-DeviceSyncImpl::PrefConnectionDelegate::CreatePrefRegistry() {
-  return base::MakeRefCounted<PrefRegistrySimple>();
-}
-
-void DeviceSyncImpl::PrefConnectionDelegate::ConnectToPrefService(
-    mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector,
-    scoped_refptr<PrefRegistrySimple> pref_registry,
-    prefs::ConnectCallback callback) {
-  prefs::ConnectToPrefService(std::move(pref_store_connector),
-                              std::move(pref_registry),
-                              base::Token::CreateRandom(), std::move(callback));
+      identity_manager, gcm_driver, profile_prefs, gcm_device_info_provider,
+      client_app_metadata_provider, std::move(url_loader_factory),
+      base::DefaultClock::GetInstance(), std::move(timer)));
 }
 
 DeviceSyncImpl::PendingSetSoftwareFeatureRequest::
@@ -299,29 +269,42 @@
   std::move(callback_).Run(result);
 }
 
+// static
+void DeviceSyncImpl::RegisterProfilePrefs(PrefRegistrySimple* registry) {
+  CryptAuthGCMManager::RegisterPrefs(registry);
+  CryptAuthDeviceManager::RegisterPrefs(registry);
+  if (base::FeatureList::IsEnabled(
+          chromeos::features::kCryptAuthV2Enrollment)) {
+    CryptAuthV2EnrollmentManagerImpl::RegisterPrefs(registry);
+    CryptAuthKeyRegistryImpl::RegisterPrefs(registry);
+    CryptAuthSchedulerImpl::RegisterPrefs(registry);
+  } else {
+    CryptAuthEnrollmentManagerImpl::RegisterPrefs(registry);
+  }
+}
+
 DeviceSyncImpl::DeviceSyncImpl(
     signin::IdentityManager* identity_manager,
     gcm::GCMDriver* gcm_driver,
-    mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector,
+    PrefService* profile_prefs,
     const GcmDeviceInfoProvider* gcm_device_info_provider,
     ClientAppMetadataProvider* client_app_metadata_provider,
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     base::Clock* clock,
-    std::unique_ptr<PrefConnectionDelegate> pref_connection_delegate,
     std::unique_ptr<base::OneShotTimer> timer)
     : DeviceSyncBase(),
       identity_manager_(identity_manager),
       gcm_driver_(gcm_driver),
-      pref_store_connector_(std::move(pref_store_connector)),
+      profile_prefs_(profile_prefs),
       gcm_device_info_provider_(gcm_device_info_provider),
       client_app_metadata_provider_(client_app_metadata_provider),
       url_loader_factory_(std::move(url_loader_factory)),
       clock_(clock),
-      pref_connection_delegate_(std::move(pref_connection_delegate)),
       set_software_feature_timer_(std::move(timer)),
-      status_(Status::FETCHING_ACCOUNT_INFO) {
+      status_(Status::WAITING_FOR_PROFILE_INIT) {
+  DCHECK(profile_prefs_);
   PA_LOG(VERBOSE) << "DeviceSyncImpl: Initializing.";
-  ProcessPrimaryAccountInfo(identity_manager_->GetPrimaryAccountInfo());
+  // Initialization will complete when the profile is fully loaded.
 }
 
 DeviceSyncImpl::~DeviceSyncImpl() {
@@ -551,6 +534,11 @@
   }
 }
 
+void DeviceSyncImpl::OnProfileInitialized() {
+  PA_LOG(VERBOSE) << "DeviceSyncImpl: OnProfileInitialized";
+  ProcessPrimaryAccountInfo(identity_manager_->GetPrimaryAccountInfo());
+}
+
 void DeviceSyncImpl::Shutdown() {
   software_feature_manager_.reset();
   remote_device_provider_.reset();
@@ -560,10 +548,10 @@
   cryptauth_key_registry_.reset();
   cryptauth_client_factory_.reset();
   cryptauth_gcm_manager_.reset();
-  pref_connection_delegate_.reset();
 
   identity_manager_ = nullptr;
   gcm_driver_ = nullptr;
+  profile_prefs_ = nullptr;
   gcm_device_info_provider_ = nullptr;
   client_app_metadata_provider_ = nullptr;
   url_loader_factory_ = nullptr;
@@ -582,31 +570,12 @@
   }
 
   primary_account_info_ = primary_account_info;
-  ConnectToPrefStore();
-}
 
-void DeviceSyncImpl::ConnectToPrefStore() {
-  DCHECK(status_ == Status::FETCHING_ACCOUNT_INFO);
-  status_ = Status::CONNECTING_TO_USER_PREFS;
-
-  auto pref_registry = pref_connection_delegate_->CreatePrefRegistry();
-  RegisterDeviceSyncPrefs(pref_registry.get());
-
-  PA_LOG(VERBOSE) << "DeviceSyncImpl: Connecting to pref service.";
-  pref_connection_delegate_->ConnectToPrefService(
-      std::move(pref_store_connector_), std::move(pref_registry),
-      base::Bind(&DeviceSyncImpl::OnConnectedToPrefService,
-                 weak_ptr_factory_.GetWeakPtr()));
-}
-
-void DeviceSyncImpl::OnConnectedToPrefService(
-    std::unique_ptr<PrefService> pref_service) {
-  DCHECK(status_ == Status::CONNECTING_TO_USER_PREFS);
+  DCHECK(status_ == Status::WAITING_FOR_PROFILE_INIT);
   status_ = Status::WAITING_FOR_ENROLLMENT;
 
-  PA_LOG(VERBOSE) << "DeviceSyncImpl: Connected to pref service; initializing "
+  PA_LOG(VERBOSE) << "DeviceSyncImpl: Profile initialized; initializing "
                   << "CryptAuth managers.";
-  pref_service_ = std::move(pref_service);
   InitializeCryptAuthManagementObjects();
 
   // If enrollment has not yet completed successfully, initialization cannot
@@ -626,7 +595,7 @@
   // Initialize |cryptauth_gcm_manager_| and have it start listening for GCM
   // tickles.
   cryptauth_gcm_manager_ = CryptAuthGCMManagerImpl::Factory::NewInstance(
-      gcm_driver_, pref_service_.get());
+      gcm_driver_, profile_prefs_);
   cryptauth_gcm_manager_->StartListening();
 
   cryptauth_client_factory_ = std::make_unique<CryptAuthClientFactoryImpl>(
@@ -637,25 +606,23 @@
   // called yet since the device has not completed enrollment.
   cryptauth_device_manager_ = CryptAuthDeviceManagerImpl::Factory::NewInstance(
       clock_, cryptauth_client_factory_.get(), cryptauth_gcm_manager_.get(),
-      pref_service_.get());
+      profile_prefs_);
 
   // Initialize |cryptauth_enrollment_manager_| and start observing, then call
   // Start() immediately to schedule enrollment.
   if (base::FeatureList::IsEnabled(
           chromeos::features::kCryptAuthV2Enrollment)) {
     cryptauth_key_registry_ =
-        CryptAuthKeyRegistryImpl::Factory::Get()->BuildInstance(
-            pref_service_.get());
+        CryptAuthKeyRegistryImpl::Factory::Get()->BuildInstance(profile_prefs_);
 
     cryptauth_scheduler_ =
-        CryptAuthSchedulerImpl::Factory::Get()->BuildInstance(
-            pref_service_.get());
+        CryptAuthSchedulerImpl::Factory::Get()->BuildInstance(profile_prefs_);
 
     cryptauth_enrollment_manager_ =
         CryptAuthV2EnrollmentManagerImpl::Factory::Get()->BuildInstance(
             client_app_metadata_provider_, cryptauth_key_registry_.get(),
             cryptauth_client_factory_.get(), cryptauth_gcm_manager_.get(),
-            cryptauth_scheduler_.get(), pref_service_.get(), clock_);
+            cryptauth_scheduler_.get(), profile_prefs_, clock_);
   } else {
     cryptauth_enrollment_manager_ =
         CryptAuthEnrollmentManagerImpl::Factory::NewInstance(
@@ -664,7 +631,7 @@
                 cryptauth_client_factory_.get()),
             multidevice::SecureMessageDelegateImpl::Factory::NewInstance(),
             gcm_device_info_provider_->GetGcmDeviceInfo(),
-            cryptauth_gcm_manager_.get(), pref_service_.get());
+            cryptauth_gcm_manager_.get(), profile_prefs_);
   }
 
   cryptauth_enrollment_manager_->AddObserver(this);
@@ -827,11 +794,6 @@
   }
 }
 
-void DeviceSyncImpl::SetPrefConnectionDelegateForTesting(
-    std::unique_ptr<PrefConnectionDelegate> pref_connection_delegate) {
-  pref_connection_delegate_ = std::move(pref_connection_delegate);
-}
-
 }  // namespace device_sync
 
 }  // namespace chromeos
diff --git a/chromeos/services/device_sync/device_sync_impl.h b/chromeos/services/device_sync/device_sync_impl.h
index 88e7398..f9b7ee5a 100644
--- a/chromeos/services/device_sync/device_sync_impl.h
+++ b/chromeos/services/device_sync/device_sync_impl.h
@@ -18,11 +18,8 @@
 #include "chromeos/services/device_sync/public/mojom/device_sync.mojom.h"
 #include "chromeos/services/device_sync/remote_device_provider.h"
 #include "components/signin/public/identity_manager/account_info.h"
-#include "mojo/public/cpp/bindings/pending_remote.h"
-#include "mojo/public/cpp/bindings/remote.h"
-#include "services/preferences/public/cpp/pref_service_factory.h"
-#include "services/preferences/public/mojom/preferences.mojom.h"
 
+class PrefRegistrySimple;
 class PrefService;
 
 namespace base {
@@ -77,8 +74,7 @@
     virtual std::unique_ptr<DeviceSyncBase> BuildInstance(
         signin::IdentityManager* identity_manager,
         gcm::GCMDriver* gcm_driver,
-        mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-            pref_store_conector,
+        PrefService* profile_prefs,
         const GcmDeviceInfoProvider* gcm_device_info_provider,
         ClientAppMetadataProvider* client_app_metadata_provider,
         scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
@@ -88,6 +84,8 @@
     static Factory* test_factory_instance_;
   };
 
+  static void RegisterProfilePrefs(PrefRegistrySimple* registry);
+
   ~DeviceSyncImpl() override;
 
  protected:
@@ -117,27 +115,7 @@
  private:
   friend class DeviceSyncServiceTest;
 
-  enum class Status {
-    FETCHING_ACCOUNT_INFO,
-    CONNECTING_TO_USER_PREFS,
-    WAITING_FOR_ENROLLMENT,
-    READY
-  };
-
-  // Wrapper around preferences code. This class is necessary so that tests can
-  // override this functionality to use a fake PrefService rather than a real
-  // connection to the Preferences service.
-  class PrefConnectionDelegate {
-   public:
-    virtual ~PrefConnectionDelegate();
-
-    virtual scoped_refptr<PrefRegistrySimple> CreatePrefRegistry();
-    virtual void ConnectToPrefService(
-        mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-            pref_store_connector,
-        scoped_refptr<PrefRegistrySimple> pref_registry,
-        prefs::ConnectCallback callback);
-  };
+  enum class Status { WAITING_FOR_PROFILE_INIT, WAITING_FOR_ENROLLMENT, READY };
 
   class PendingSetSoftwareFeatureRequest {
    public:
@@ -172,21 +150,18 @@
   DeviceSyncImpl(
       signin::IdentityManager* identity_manager,
       gcm::GCMDriver* gcm_driver,
-      mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-          pref_store_connector,
+      PrefService* profile_prefs,
       const GcmDeviceInfoProvider* gcm_device_info_provider,
       ClientAppMetadataProvider* client_app_metadata_provider,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
       base::Clock* clock,
-      std::unique_ptr<PrefConnectionDelegate> pref_connection_delegate,
       std::unique_ptr<base::OneShotTimer> timer);
 
   // DeviceSyncBase:
+  void OnProfileInitialized() override;
   void Shutdown() override;
 
   void ProcessPrimaryAccountInfo(const CoreAccountInfo& primary_account_info);
-  void ConnectToPrefStore();
-  void OnConnectedToPrefService(std::unique_ptr<PrefService> pref_service);
   void InitializeCryptAuthManagementObjects();
   void CompleteInitializationAfterSuccessfulEnrollment();
 
@@ -221,22 +196,17 @@
   void StartSetSoftwareFeatureTimer();
   void OnSetSoftwareFeatureTimerFired();
 
-  void SetPrefConnectionDelegateForTesting(
-      std::unique_ptr<PrefConnectionDelegate> pref_connection_delegate);
-
   signin::IdentityManager* identity_manager_;
   gcm::GCMDriver* gcm_driver_;
-  mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector_;
+  PrefService* profile_prefs_;
   const GcmDeviceInfoProvider* gcm_device_info_provider_;
   ClientAppMetadataProvider* client_app_metadata_provider_;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
   base::Clock* clock_;
-  std::unique_ptr<PrefConnectionDelegate> pref_connection_delegate_;
   std::unique_ptr<base::OneShotTimer> set_software_feature_timer_;
 
   Status status_;
   CoreAccountInfo primary_account_info_;
-  std::unique_ptr<PrefService> pref_service_;
   base::flat_map<base::UnguessableToken,
                  std::unique_ptr<PendingSetSoftwareFeatureRequest>>
       id_to_pending_set_software_feature_request_map_;
diff --git a/chromeos/services/device_sync/device_sync_service.cc b/chromeos/services/device_sync/device_sync_service.cc
deleted file mode 100644
index 7007fc5..0000000
--- a/chromeos/services/device_sync/device_sync_service.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2018 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 "chromeos/services/device_sync/device_sync_service.h"
-
-#include "base/bind.h"
-#include "base/timer/timer.h"
-#include "chromeos/components/multidevice/logging/logging.h"
-#include "chromeos/services/device_sync/device_sync_base.h"
-#include "chromeos/services/device_sync/device_sync_impl.h"
-#include "services/network/public/cpp/shared_url_loader_factory.h"
-
-namespace chromeos {
-
-namespace device_sync {
-
-DeviceSyncService::DeviceSyncService(
-    signin::IdentityManager* identity_manager,
-    gcm::GCMDriver* gcm_driver,
-    const GcmDeviceInfoProvider* gcm_device_info_provider,
-    ClientAppMetadataProvider* client_app_metadata_provider,
-    scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-    mojo::PendingReceiver<mojom::DeviceSyncServiceInitializer> init_receiver)
-    : init_receiver_(this, std::move(init_receiver)),
-      identity_manager_(identity_manager),
-      gcm_driver_(gcm_driver),
-      gcm_device_info_provider_(gcm_device_info_provider),
-      client_app_metadata_provider_(client_app_metadata_provider),
-      url_loader_factory_(std::move(url_loader_factory)) {}
-
-DeviceSyncService::~DeviceSyncService() {
-  // Subclasses may hold onto message response callbacks. It's important that
-  // all bindings are closed by the time those callbacks are destroyed, or they
-  // will DCHECK.
-  if (device_sync_)
-    device_sync_->CloseAllBindings();
-}
-
-void DeviceSyncService::Initialize(
-    mojo::PendingReceiver<mojom::DeviceSyncService> receiver,
-    mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-        pref_store_connector) {
-  PA_LOG(VERBOSE) << "DeviceSyncService::Init()";
-  receiver_.Bind(std::move(receiver));
-  device_sync_ = DeviceSyncImpl::Factory::Get()->BuildInstance(
-      identity_manager_, gcm_driver_, std::move(pref_store_connector),
-      gcm_device_info_provider_, client_app_metadata_provider_,
-      url_loader_factory_, std::make_unique<base::OneShotTimer>());
-}
-
-void DeviceSyncService::BindDeviceSync(
-    mojo::PendingReceiver<mojom::DeviceSync> receiver) {
-  PA_LOG(VERBOSE) << "DeviceSyncService::BindDeviceSync()";
-  device_sync_->BindRequest(std::move(receiver));
-}
-
-}  // namespace device_sync
-
-}  // namespace chromeos
diff --git a/chromeos/services/device_sync/device_sync_service.h b/chromeos/services/device_sync/device_sync_service.h
deleted file mode 100644
index 7f4ab277..0000000
--- a/chromeos/services/device_sync/device_sync_service.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2018 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 CHROMEOS_SERVICES_DEVICE_SYNC_DEVICE_SYNC_SERVICE_H_
-#define CHROMEOS_SERVICES_DEVICE_SYNC_DEVICE_SYNC_SERVICE_H_
-
-#include <memory>
-
-#include "base/memory/ref_counted.h"
-#include "chromeos/services/device_sync/public/mojom/device_sync.mojom.h"
-#include "mojo/public/cpp/bindings/pending_receiver.h"
-#include "mojo/public/cpp/bindings/receiver.h"
-
-namespace gcm {
-class GCMDriver;
-}  // namespace gcm
-
-namespace signin {
-class IdentityManager;
-}  // namespace signin
-
-namespace network {
-class SharedURLLoaderFactory;
-}  // namespace network
-
-namespace chromeos {
-
-namespace device_sync {
-
-class ClientAppMetadataProvider;
-class DeviceSyncBase;
-class GcmDeviceInfoProvider;
-
-// Service which provides an implementation for DeviceSync. This service creates
-// one implementation and shares it among all connection requests.
-class DeviceSyncService : public mojom::DeviceSyncServiceInitializer,
-                          public mojom::DeviceSyncService {
- public:
-  DeviceSyncService(
-      signin::IdentityManager* identity_manager,
-      gcm::GCMDriver* gcm_driver,
-      const GcmDeviceInfoProvider* gcm_device_info_provider,
-      ClientAppMetadataProvider* client_app_metadata_provider,
-      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-      mojo::PendingReceiver<mojom::DeviceSyncServiceInitializer> init_receiver);
-  ~DeviceSyncService() override;
-
- private:
-  // mojom::DeviceSyncServiceInitializer:
-  void Initialize(mojo::PendingReceiver<mojom::DeviceSyncService> receiver,
-                  mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-                      pref_store_connector) override;
-
-  // mojom::DeviceSyncService:
-  void BindDeviceSync(
-      mojo::PendingReceiver<mojom::DeviceSync> receiver) override;
-
-  mojo::Receiver<mojom::DeviceSyncServiceInitializer> init_receiver_;
-  mojo::Receiver<mojom::DeviceSyncService> receiver_{this};
-
-  signin::IdentityManager* identity_manager_;
-  gcm::GCMDriver* gcm_driver_;
-  const GcmDeviceInfoProvider* gcm_device_info_provider_;
-  ClientAppMetadataProvider* client_app_metadata_provider_;
-  scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
-
-  std::unique_ptr<DeviceSyncBase> device_sync_;
-
-  DISALLOW_COPY_AND_ASSIGN(DeviceSyncService);
-};
-
-}  // namespace device_sync
-
-}  // namespace chromeos
-
-#endif  // CHROMEOS_SERVICES_DEVICE_SYNC_DEVICE_SYNC_SERVICE_H_
diff --git a/chromeos/services/device_sync/device_sync_service_unittest.cc b/chromeos/services/device_sync/device_sync_service_unittest.cc
index 858fc4c..e27dfc9 100644
--- a/chromeos/services/device_sync/device_sync_service_unittest.cc
+++ b/chromeos/services/device_sync/device_sync_service_unittest.cc
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromeos/services/device_sync/device_sync_service.h"
-
 #include <memory>
 
 #include "base/bind.h"
@@ -497,66 +495,16 @@
 
 }  // namespace
 
+// TODO(jamescook): Rename to DeviceSyncImplTest because it's actually testing
+// the DeviceSync implementation.
 class DeviceSyncServiceTest : public ::testing::TestWithParam<bool> {
  public:
-  class FakePrefConnectionDelegate
-      : public DeviceSyncImpl::PrefConnectionDelegate {
-   public:
-    FakePrefConnectionDelegate(
-        std::unique_ptr<TestingPrefServiceSimple> test_pref_service)
-        : test_pref_service_(std::move(test_pref_service)),
-          test_pref_registry_(
-              base::WrapRefCounted(test_pref_service_->registry())) {}
-
-    ~FakePrefConnectionDelegate() override = default;
-
-    void InvokePendingCallback() {
-      EXPECT_FALSE(pending_callback_.is_null());
-      std::move(pending_callback_).Run(std::move(test_pref_service_));
-
-      // Note: |pending_callback_| was passed from within the service, so it is
-      // necessary to let the rest of the current RunLoop run to ensure that
-      // the callback is executed before returning from this function.
-      base::RunLoop().RunUntilIdle();
-    }
-
-    bool HasStartedPrefConnection() {
-      return HasFinishedPrefConnection() || !pending_callback_.is_null();
-    }
-
-    bool HasFinishedPrefConnection() { return !test_pref_service_.get(); }
-
-    // DeviceSyncImpl::PrefConnectionDelegate:
-    scoped_refptr<PrefRegistrySimple> CreatePrefRegistry() override {
-      return test_pref_registry_;
-    }
-
-    void ConnectToPrefService(
-        mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-            pref_store_connector,
-        scoped_refptr<PrefRegistrySimple> pref_registry,
-        prefs::ConnectCallback callback) override {
-      EXPECT_EQ(test_pref_service_->registry(), pref_registry.get());
-      pending_callback_ = std::move(callback);
-    }
-
-   private:
-    std::unique_ptr<TestingPrefServiceSimple> test_pref_service_;
-    scoped_refptr<PrefRegistrySimple> test_pref_registry_;
-
-    prefs::ConnectCallback pending_callback_;
-  };
-
   class FakeDeviceSyncImplFactory : public DeviceSyncImpl::Factory {
    public:
     FakeDeviceSyncImplFactory(
-        std::unique_ptr<FakePrefConnectionDelegate>
-            fake_pref_connection_delegate,
         std::unique_ptr<base::MockOneShotTimer> mock_timer,
         base::SimpleTestClock* simple_test_clock)
-        : fake_pref_connection_delegate_(
-              std::move(fake_pref_connection_delegate)),
-          mock_timer_(std::move(mock_timer)),
+        : mock_timer_(std::move(mock_timer)),
           simple_test_clock_(simple_test_clock) {}
 
     ~FakeDeviceSyncImplFactory() override = default;
@@ -565,21 +513,18 @@
     std::unique_ptr<DeviceSyncBase> BuildInstance(
         signin::IdentityManager* identity_manager,
         gcm::GCMDriver* gcm_driver,
-        mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-            pref_store_connector,
+        PrefService* profile_prefs,
         const GcmDeviceInfoProvider* gcm_device_info_provider,
         ClientAppMetadataProvider* client_app_metadata_provider,
         scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
         std::unique_ptr<base::OneShotTimer> timer) override {
       return base::WrapUnique(new DeviceSyncImpl(
-          identity_manager, gcm_driver, std::move(pref_store_connector),
-          gcm_device_info_provider, client_app_metadata_provider,
-          std::move(url_loader_factory), simple_test_clock_,
-          std::move(fake_pref_connection_delegate_), std::move(mock_timer_)));
+          identity_manager, gcm_driver, profile_prefs, gcm_device_info_provider,
+          client_app_metadata_provider, std::move(url_loader_factory),
+          simple_test_clock_, std::move(mock_timer_)));
     }
 
    private:
-    std::unique_ptr<FakePrefConnectionDelegate> fake_pref_connection_delegate_;
     std::unique_ptr<base::MockOneShotTimer> mock_timer_;
     base::SimpleTestClock* simple_test_clock_;
   };
@@ -604,8 +549,7 @@
 
     fake_gcm_driver_ = std::make_unique<gcm::FakeGCMDriver>();
 
-    auto test_pref_service = std::make_unique<TestingPrefServiceSimple>();
-    test_pref_service_ = test_pref_service.get();
+    test_pref_service_ = std::make_unique<TestingPrefServiceSimple>();
 
     simple_test_clock_ = std::make_unique<base::SimpleTestClock>();
 
@@ -617,15 +561,15 @@
     identity_test_environment_->MakePrimaryAccountAvailable(kTestEmail);
 
     fake_cryptauth_gcm_manager_factory_ =
-        std::make_unique<FakeCryptAuthGCMManagerFactory>(fake_gcm_driver_.get(),
-                                                         test_pref_service_);
+        std::make_unique<FakeCryptAuthGCMManagerFactory>(
+            fake_gcm_driver_.get(), test_pref_service_.get());
     CryptAuthGCMManagerImpl::Factory::SetInstanceForTesting(
         fake_cryptauth_gcm_manager_factory_.get());
 
     fake_cryptauth_device_manager_factory_ =
         std::make_unique<FakeCryptAuthDeviceManagerFactory>(
             simple_test_clock_.get(), fake_cryptauth_gcm_manager_factory_.get(),
-            test_pref_service_);
+            test_pref_service_.get());
     CryptAuthDeviceManagerImpl::Factory::SetInstanceForTesting(
         fake_cryptauth_device_manager_factory_.get());
 
@@ -634,12 +578,14 @@
           std::make_unique<FakeClientAppMetadataProvider>();
 
       fake_cryptauth_key_registry_factory_ =
-          std::make_unique<FakeCryptAuthKeyRegistryFactory>(test_pref_service_);
+          std::make_unique<FakeCryptAuthKeyRegistryFactory>(
+              test_pref_service_.get());
       CryptAuthKeyRegistryImpl::Factory::SetFactoryForTesting(
           fake_cryptauth_key_registry_factory_.get());
 
       fake_cryptauth_scheduler_factory_ =
-          std::make_unique<FakeCryptAuthSchedulerFactory>(test_pref_service_);
+          std::make_unique<FakeCryptAuthSchedulerFactory>(
+              test_pref_service_.get());
       CryptAuthSchedulerImpl::Factory::SetFactoryForTesting(
           fake_cryptauth_scheduler_factory_.get());
 
@@ -648,7 +594,7 @@
               fake_client_app_metadata_provider_.get(),
               fake_cryptauth_key_registry_factory_.get(),
               fake_cryptauth_gcm_manager_factory_.get(),
-              fake_cryptauth_scheduler_factory_.get(), test_pref_service_,
+              fake_cryptauth_scheduler_factory_.get(), test_pref_service_.get(),
               simple_test_clock_.get());
       CryptAuthV2EnrollmentManagerImpl::Factory::SetFactoryForTesting(
           fake_cryptauth_v2_enrollment_manager_factory_.get());
@@ -656,7 +602,8 @@
       fake_cryptauth_enrollment_manager_factory_ =
           std::make_unique<FakeCryptAuthEnrollmentManagerFactory>(
               simple_test_clock_.get(),
-              fake_cryptauth_gcm_manager_factory_.get(), test_pref_service_);
+              fake_cryptauth_gcm_manager_factory_.get(),
+              test_pref_service_.get());
       CryptAuthEnrollmentManagerImpl::Factory::SetInstanceForTesting(
           fake_cryptauth_enrollment_manager_factory_.get());
     }
@@ -675,18 +622,12 @@
     SoftwareFeatureManagerImpl::Factory::SetInstanceForTesting(
         fake_software_feature_manager_factory_.get());
 
-    auto fake_pref_connection_delegate =
-        std::make_unique<FakePrefConnectionDelegate>(
-            std::move(test_pref_service));
-    fake_pref_connection_delegate_ = fake_pref_connection_delegate.get();
-
     auto mock_timer = std::make_unique<base::MockOneShotTimer>();
     mock_timer_ = mock_timer.get();
 
     fake_device_sync_impl_factory_ =
-        std::make_unique<FakeDeviceSyncImplFactory>(
-            std::move(fake_pref_connection_delegate), std::move(mock_timer),
-            simple_test_clock_.get());
+        std::make_unique<FakeDeviceSyncImplFactory>(std::move(mock_timer),
+                                                    simple_test_clock_.get());
     DeviceSyncImpl::Factory::SetInstanceForTesting(
         fake_device_sync_impl_factory_.get());
 
@@ -701,20 +642,12 @@
             }));
 
     fake_device_sync_observer_ = std::make_unique<FakeDeviceSyncObserver>();
-    mojo::Remote<mojom::DeviceSyncServiceInitializer> initializer;
-    service_ = std::make_unique<DeviceSyncService>(
-        identity_test_environment_->identity_manager(), fake_gcm_driver_.get(),
-        fake_gcm_device_info_provider_.get(),
-        fake_client_app_metadata_provider_.get(), shared_url_loader_factory,
-        initializer.BindNewPipeAndPassReceiver());
 
-    // FakePrefConnectionDelegate precludes the service ever actually sending
-    // messages over this interface, so we provided the service with a
-    // bound but disconnected endpoint.
-    mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector;
-    ignore_result(pref_store_connector.InitWithNewPipeAndPassReceiver());
-    initializer->Initialize(remote_service_.BindNewPipeAndPassReceiver(),
-                            std::move(pref_store_connector));
+    device_sync_ = DeviceSyncImpl::Factory::Get()->BuildInstance(
+        identity_test_environment_->identity_manager(), fake_gcm_driver_.get(),
+        test_pref_service_.get(), fake_gcm_device_info_provider_.get(),
+        fake_client_app_metadata_provider_.get(), shared_url_loader_factory,
+        std::make_unique<base::OneShotTimer>());
   }
 
   void TearDown() override {
@@ -731,8 +664,7 @@
     DBusThreadManager::Shutdown();
   }
 
-  void ConnectToDeviceSyncService(bool device_already_enrolled_in_cryptauth) {
-    // Used in CompleteConnectionToPrefService().
+  void InitializeDeviceSync(bool device_already_enrolled_in_cryptauth) {
     device_already_enrolled_in_cryptauth_ =
         device_already_enrolled_in_cryptauth;
 
@@ -746,21 +678,12 @@
               device_already_enrolled_in_cryptauth);
     }
 
-    remote_service_->BindDeviceSync(mojo::MakeRequest(&device_sync_));
+    device_sync_->OnProfileInitialized();
 
     // Set |fake_device_sync_observer_|.
     CallAddObserver();
-  }
 
-  void CompleteConnectionToPrefService() {
-    EXPECT_TRUE(fake_pref_connection_delegate()->HasStartedPrefConnection());
-    EXPECT_FALSE(fake_pref_connection_delegate()->HasFinishedPrefConnection());
-
-    fake_pref_connection_delegate_->InvokePendingCallback();
-    EXPECT_TRUE(fake_pref_connection_delegate()->HasFinishedPrefConnection());
-
-    // When connection to preferences is complete, CryptAuth classes are
-    // expected to be created and initialized.
+    // CryptAuth classes are expected to be created and initialized.
     EXPECT_TRUE(fake_cryptauth_gcm_manager_factory_->instance()
                     ->has_started_listening());
     EXPECT_TRUE(fake_cryptauth_enrollment_manager()->has_started());
@@ -839,8 +762,7 @@
   }
 
   void InitializeServiceSuccessfully() {
-    ConnectToDeviceSyncService(true /* device_already_enrolled_in_cryptauth */);
-    CompleteConnectionToPrefService();
+    InitializeDeviceSync(true /* device_already_enrolled_in_cryptauth */);
     VerifyInitializationStatus(true /* expected_to_be_initialized */);
 
     base::RunLoop().RunUntilIdle();
@@ -866,10 +788,6 @@
     return fake_device_sync_observer_.get();
   }
 
-  FakePrefConnectionDelegate* fake_pref_connection_delegate() {
-    return fake_pref_connection_delegate_;
-  }
-
   base::MockOneShotTimer* mock_timer() { return mock_timer_; }
 
   FakeCryptAuthEnrollmentManager* fake_cryptauth_enrollment_manager() {
@@ -1146,8 +1064,7 @@
   const std::vector<cryptauth::ExternalDeviceInfo> test_device_infos_;
   const std::vector<cryptauth::IneligibleDevice> test_ineligible_devices_;
 
-  TestingPrefServiceSimple* test_pref_service_;
-  FakePrefConnectionDelegate* fake_pref_connection_delegate_;
+  std::unique_ptr<TestingPrefServiceSimple> test_pref_service_;
   base::MockOneShotTimer* mock_timer_;
   std::unique_ptr<base::SimpleTestClock> simple_test_clock_;
   std::unique_ptr<FakeDeviceSyncImplFactory> fake_device_sync_impl_factory_;
@@ -1174,9 +1091,6 @@
   std::unique_ptr<gcm::FakeGCMDriver> fake_gcm_driver_;
   std::unique_ptr<FakeGcmDeviceInfoProvider> fake_gcm_device_info_provider_;
 
-  std::unique_ptr<DeviceSyncService> service_;
-  mojo::Remote<mojom::DeviceSyncService> remote_service_;
-
   bool device_already_enrolled_in_cryptauth_;
   bool last_force_enrollment_now_result_;
   bool last_force_sync_now_result_;
@@ -1190,7 +1104,7 @@
   base::Optional<mojom::DebugInfo> last_debug_info_result_;
 
   std::unique_ptr<FakeDeviceSyncObserver> fake_device_sync_observer_;
-  mojom::DeviceSyncPtr device_sync_;
+  std::unique_ptr<DeviceSyncBase> device_sync_;
 
   base::HistogramTester histogram_tester_;
 
@@ -1200,27 +1114,9 @@
   DISALLOW_COPY_AND_ASSIGN(DeviceSyncServiceTest);
 };
 
-TEST_P(DeviceSyncServiceTest, PreferencesNeverConnect) {
-  ConnectToDeviceSyncService(false /* device_already_enrolled_in_cryptauth */);
-
-  // A connection to the Preferences service should have started.
-  EXPECT_TRUE(fake_pref_connection_delegate()->HasStartedPrefConnection());
-  EXPECT_FALSE(fake_pref_connection_delegate()->HasFinishedPrefConnection());
-
-  // Do not complete the connection; without this step, the other API functions
-  // should fail.
-  VerifyApiFunctionsFailBeforeInitialization();
-
-  // No observer callbacks should have been invoked.
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(0u, fake_device_sync_observer()->num_enrollment_events());
-  EXPECT_EQ(0u, fake_device_sync_observer()->num_sync_events());
-}
-
 TEST_P(DeviceSyncServiceTest,
        DeviceNotAlreadyEnrolledInCryptAuth_FailsEnrollment) {
-  ConnectToDeviceSyncService(false /* device_already_enrolled_in_cryptauth */);
-  CompleteConnectionToPrefService();
+  InitializeDeviceSync(false /* device_already_enrolled_in_cryptauth */);
 
   // Simulate enrollment failing.
   SimulateEnrollment(false /* success */);
@@ -1241,8 +1137,7 @@
 
 TEST_P(DeviceSyncServiceTest,
        DeviceNotAlreadyEnrolledInCryptAuth_FailsEnrollment_ThenSucceeds) {
-  ConnectToDeviceSyncService(false /* device_already_enrolled_in_cryptauth */);
-  CompleteConnectionToPrefService();
+  InitializeDeviceSync(false /* device_already_enrolled_in_cryptauth */);
 
   // Initialization has not yet completed, so no devices should be available.
   EXPECT_FALSE(CallGetSyncedDevices());
diff --git a/chromeos/services/device_sync/public/cpp/BUILD.gn b/chromeos/services/device_sync/public/cpp/BUILD.gn
index 8afb602..ba676bee 100644
--- a/chromeos/services/device_sync/public/cpp/BUILD.gn
+++ b/chromeos/services/device_sync/public/cpp/BUILD.gn
@@ -69,6 +69,7 @@
     "//chromeos/services/device_sync",
     "//chromeos/services/device_sync:test_support",
     "//components/gcm_driver:test_support",
+    "//components/prefs:test_support",
     "//components/signin/public/identity_manager:test_support",
     "//net",
     "//services/network:test_support",
diff --git a/chromeos/services/device_sync/public/cpp/device_sync_client.cc b/chromeos/services/device_sync/public/cpp/device_sync_client.cc
index aa9a7533..836b737 100644
--- a/chromeos/services/device_sync/public/cpp/device_sync_client.cc
+++ b/chromeos/services/device_sync/public/cpp/device_sync_client.cc
@@ -12,6 +12,10 @@
 
 DeviceSyncClient::~DeviceSyncClient() = default;
 
+mojom::DeviceSyncPtr* DeviceSyncClient::GetDeviceSyncPtr() {
+  return nullptr;
+}
+
 void DeviceSyncClient::AddObserver(Observer* observer) {
   observer_list_.AddObserver(observer);
 }
diff --git a/chromeos/services/device_sync/public/cpp/device_sync_client.h b/chromeos/services/device_sync/public/cpp/device_sync_client.h
index 9f0294d..91b22e6 100644
--- a/chromeos/services/device_sync/public/cpp/device_sync_client.h
+++ b/chromeos/services/device_sync/public/cpp/device_sync_client.h
@@ -10,12 +10,17 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
+#include "base/memory/scoped_refptr.h"
 #include "base/observer_list.h"
 #include "base/optional.h"
 #include "chromeos/components/multidevice/remote_device_ref.h"
 #include "chromeos/components/multidevice/software_feature.h"
 #include "chromeos/services/device_sync/public/mojom/device_sync.mojom.h"
 
+namespace base {
+class TaskRunner;
+}  // namespace base
+
 namespace chromeos {
 
 namespace device_sync {
@@ -47,6 +52,13 @@
   DeviceSyncClient();
   virtual ~DeviceSyncClient();
 
+  // Completes initialization. Must be called after connecting the DeviceSync
+  // mojo interface pointer to the implementation.
+  virtual void Initialize(scoped_refptr<base::TaskRunner> task_runner) {}
+
+  // Returns the DeviceSync mojo interface pointer.
+  virtual mojom::DeviceSyncPtr* GetDeviceSyncPtr();
+
   void AddObserver(Observer* observer);
   void RemoveObserver(Observer* observer);
 
diff --git a/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc b/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
index c9f2732..21105aa1 100644
--- a/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
+++ b/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
@@ -40,24 +40,23 @@
 
 DeviceSyncClientImpl::Factory::~Factory() = default;
 
-std::unique_ptr<DeviceSyncClient> DeviceSyncClientImpl::Factory::BuildInstance(
-    mojom::DeviceSyncService* service) {
-  return base::WrapUnique(new DeviceSyncClientImpl(service));
+std::unique_ptr<DeviceSyncClient>
+DeviceSyncClientImpl::Factory::BuildInstance() {
+  return std::make_unique<DeviceSyncClientImpl>();
 }
 
-DeviceSyncClientImpl::DeviceSyncClientImpl(mojom::DeviceSyncService* service)
-    : DeviceSyncClientImpl(service, base::ThreadTaskRunnerHandle::Get()) {}
-
-DeviceSyncClientImpl::DeviceSyncClientImpl(
-    mojom::DeviceSyncService* service,
-    scoped_refptr<base::TaskRunner> task_runner)
-    : binding_(this),
+DeviceSyncClientImpl::DeviceSyncClientImpl()
+    : observer_binding_(this),
       expiring_device_cache_(
-          std::make_unique<multidevice::ExpiringRemoteDeviceCache>()) {
-  service->BindDeviceSync(mojo::MakeRequest(&device_sync_ptr_));
+          std::make_unique<multidevice::ExpiringRemoteDeviceCache>()) {}
+
+DeviceSyncClientImpl::~DeviceSyncClientImpl() = default;
+
+void DeviceSyncClientImpl::Initialize(
+    scoped_refptr<base::TaskRunner> task_runner) {
   device_sync_ptr_->AddObserver(GenerateInterfacePtr(), base::OnceClosure());
 
-  // Delay calling these until after the constructor finishes.
+  // Delay calling these until after initialization finishes.
   task_runner->PostTask(
       FROM_HERE, base::BindOnce(&DeviceSyncClientImpl::LoadLocalDeviceMetadata,
                                 weak_ptr_factory_.GetWeakPtr()));
@@ -66,7 +65,9 @@
                                        weak_ptr_factory_.GetWeakPtr()));
 }
 
-DeviceSyncClientImpl::~DeviceSyncClientImpl() = default;
+mojom::DeviceSyncPtr* DeviceSyncClientImpl::GetDeviceSyncPtr() {
+  return &device_sync_ptr_;
+}
 
 void DeviceSyncClientImpl::OnEnrollmentFinished() {
   // Before notifying observers that enrollment has finished, sync down the
@@ -239,7 +240,7 @@
 
 mojom::DeviceSyncObserverPtr DeviceSyncClientImpl::GenerateInterfacePtr() {
   mojom::DeviceSyncObserverPtr interface_ptr;
-  binding_.Bind(mojo::MakeRequest(&interface_ptr));
+  observer_binding_.Bind(mojo::MakeRequest(&interface_ptr));
   return interface_ptr;
 }
 
diff --git a/chromeos/services/device_sync/public/cpp/device_sync_client_impl.h b/chromeos/services/device_sync/public/cpp/device_sync_client_impl.h
index 482ad81..d3b4b81 100644
--- a/chromeos/services/device_sync/public/cpp/device_sync_client_impl.h
+++ b/chromeos/services/device_sync/public/cpp/device_sync_client_impl.h
@@ -41,16 +41,18 @@
     static Factory* Get();
     static void SetInstanceForTesting(Factory* test_factory);
     virtual ~Factory();
-    virtual std::unique_ptr<DeviceSyncClient> BuildInstance(
-        mojom::DeviceSyncService* service);
+    virtual std::unique_ptr<DeviceSyncClient> BuildInstance();
 
    private:
     static Factory* test_factory_;
   };
 
-  explicit DeviceSyncClientImpl(mojom::DeviceSyncService* service);
+  DeviceSyncClientImpl();
   ~DeviceSyncClientImpl() override;
 
+  void Initialize(scoped_refptr<base::TaskRunner> task_runner) override;
+  mojom::DeviceSyncPtr* GetDeviceSyncPtr() override;
+
   // DeviceSyncClient:
   void ForceEnrollmentNow(
       mojom::DeviceSync::ForceEnrollmentNowCallback callback) override;
@@ -75,9 +77,6 @@
  private:
   friend class DeviceSyncClientImplTest;
 
-  DeviceSyncClientImpl(mojom::DeviceSyncService* service,
-                       scoped_refptr<base::TaskRunner> task_runner);
-
   void AttemptToBecomeReady();
 
   void LoadSyncedDevices();
@@ -98,7 +97,7 @@
   void FlushForTesting();
 
   mojom::DeviceSyncPtr device_sync_ptr_;
-  mojo::Binding<mojom::DeviceSyncObserver> binding_;
+  mojo::Binding<mojom::DeviceSyncObserver> observer_binding_;
   std::unique_ptr<multidevice::ExpiringRemoteDeviceCache>
       expiring_device_cache_;
 
diff --git a/chromeos/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc b/chromeos/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc
index 71e676f..b99977b 100644
--- a/chromeos/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc
+++ b/chromeos/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc
@@ -19,12 +19,12 @@
 #include "base/test/test_simple_task_runner.h"
 #include "chromeos/components/multidevice/remote_device_test_util.h"
 #include "chromeos/services/device_sync/device_sync_impl.h"
-#include "chromeos/services/device_sync/device_sync_service.h"
 #include "chromeos/services/device_sync/fake_device_sync.h"
 #include "chromeos/services/device_sync/public/cpp/fake_client_app_metadata_provider.h"
 #include "chromeos/services/device_sync/public/cpp/fake_gcm_device_info_provider.h"
 #include "chromeos/services/device_sync/public/mojom/device_sync.mojom.h"
 #include "components/gcm_driver/fake_gcm_driver.h"
+#include "components/prefs/testing_pref_service.h"
 #include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -61,8 +61,7 @@
   std::unique_ptr<DeviceSyncBase> BuildInstance(
       signin::IdentityManager* identity_manager,
       gcm::GCMDriver* gcm_driver,
-      mojo::PendingRemote<prefs::mojom::PrefStoreConnector>
-          pref_store_connector,
+      PrefService* profile_prefs,
       const GcmDeviceInfoProvider* gcm_device_info_provider,
       ClientAppMetadataProvider* client_app_metadata_provider,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
@@ -169,33 +168,26 @@
               return nullptr;
             }));
 
-    mojo::Remote<mojom::DeviceSyncServiceInitializer> initializer;
-    service_ = std::make_unique<DeviceSyncService>(
-        identity_test_environment_->identity_manager(), fake_gcm_driver_.get(),
-        fake_gcm_device_info_provider_.get(),
-        fake_client_app_metadata_provider_.get(), shared_url_loader_factory,
-        initializer.BindNewPipeAndPassReceiver());
+    test_pref_service_ = std::make_unique<TestingPrefServiceSimple>();
 
-    mojo::PendingRemote<prefs::mojom::PrefStoreConnector> pref_store_connector;
-    ignore_result(pref_store_connector.InitWithNewPipeAndPassReceiver());
-    initializer->Initialize(remote_service_.BindNewPipeAndPassReceiver(),
-                            std::move(pref_store_connector));
+    device_sync_ = DeviceSyncImpl::Factory::Get()->BuildInstance(
+        identity_test_environment_->identity_manager(), fake_gcm_driver_.get(),
+        test_pref_service_.get(), fake_gcm_device_info_provider_.get(),
+        fake_client_app_metadata_provider_.get(), shared_url_loader_factory,
+        std::make_unique<base::OneShotTimer>());
 
     test_observer_ = std::make_unique<TestDeviceSyncClientObserver>();
 
-    CreateClient();
-  }
-
-  void CreateClient() {
-    // DeviceSyncClient's constructor posts two tasks to the TaskRunner. Idle
+    // DeviceSyncClient initialization posts two tasks to the TaskRunner. Idle
     // the TaskRunner so that the tasks can be run via a RunLoop later on.
     auto test_task_runner = base::MakeRefCounted<base::TestSimpleTaskRunner>();
-    client_ = base::WrapUnique(
-        new DeviceSyncClientImpl(remote_service_.get(), test_task_runner));
+    client_ = std::make_unique<DeviceSyncClientImpl>();
+    device_sync_->BindRequest(mojo::MakeRequest(client_->GetDeviceSyncPtr()));
+    client_->Initialize(test_task_runner);
     test_task_runner->RunUntilIdle();
   }
 
-  void InitializeClient(bool complete_enrollment_before_sync = true) {
+  void SetupClient(bool complete_enrollment_before_sync = true) {
     client_->AddObserver(test_observer_.get());
 
     SendPendingMojoMessages();
@@ -435,8 +427,8 @@
       fake_client_app_metadata_provider_;
   FakeDeviceSync* fake_device_sync_;
   std::unique_ptr<FakeDeviceSyncImplFactory> fake_device_sync_impl_factory_;
-  std::unique_ptr<DeviceSyncService> service_;
-  mojo::Remote<mojom::DeviceSyncService> remote_service_;
+  std::unique_ptr<TestingPrefServiceSimple> test_pref_service_;
+  std::unique_ptr<DeviceSyncBase> device_sync_;
   std::unique_ptr<TestDeviceSyncClientObserver> test_observer_;
 
   std::unique_ptr<DeviceSyncClientImpl> client_;
@@ -494,7 +486,7 @@
 
 TEST_F(DeviceSyncClientImplTest,
        TestCompleteInitialSyncBeforeInitialEnrollment) {
-  InitializeClient(false /* complete_enrollment_before_sync */);
+  SetupClient(false /* complete_enrollment_before_sync */);
 }
 
 TEST_F(
@@ -549,7 +541,7 @@
 TEST_F(DeviceSyncClientImplTest, TestOnEnrollmentFinished) {
   EXPECT_EQ(0u, test_observer_->enrollment_finished_count());
 
-  InitializeClient();
+  SetupClient();
 
   EXPECT_EQ(test_remote_device_list_[0].public_key,
             client_->GetLocalDeviceMetadata()->public_key());
@@ -586,7 +578,7 @@
 TEST_F(DeviceSyncClientImplTest, TestOnNewDevicesSynced) {
   EXPECT_EQ(0u, test_observer_->new_devices_synced_count());
 
-  InitializeClient();
+  SetupClient();
 
   VerifyRemoteDeviceRefListAndRemoteDeviceListAreEqual(
       client_->GetSyncedDevices(), test_remote_device_list_);
@@ -615,31 +607,31 @@
 }
 
 TEST_F(DeviceSyncClientImplTest, TestForceEnrollmentNow_ExpectSuccess) {
-  InitializeClient();
+  SetupClient();
 
   CallForceEnrollmentNow(true /* expected_success */);
 }
 
 TEST_F(DeviceSyncClientImplTest, TestForceEnrollmentNow_ExpectFailure) {
-  InitializeClient();
+  SetupClient();
 
   CallForceEnrollmentNow(false /* expected_success */);
 }
 
 TEST_F(DeviceSyncClientImplTest, TestSyncNow_ExpectSuccess) {
-  InitializeClient();
+  SetupClient();
 
   CallSyncNow(true /* expected_success */);
 }
 
 TEST_F(DeviceSyncClientImplTest, TestSyncNow_ExpectFailure) {
-  InitializeClient();
+  SetupClient();
 
   CallSyncNow(false /* expected_success */);
 }
 
 TEST_F(DeviceSyncClientImplTest, TestGetSyncedDevices_DeviceRemovedFromCache) {
-  InitializeClient();
+  SetupClient();
 
   VerifyRemoteDeviceRefListAndRemoteDeviceListAreEqual(
       client_->GetSyncedDevices(), test_remote_device_list_);
@@ -662,13 +654,13 @@
 }
 
 TEST_F(DeviceSyncClientImplTest, TestSetSoftwareFeatureState) {
-  InitializeClient();
+  SetupClient();
 
   CallSetSoftwareFeatureState(mojom::NetworkRequestResult::kSuccess);
 }
 
 TEST_F(DeviceSyncClientImplTest, TestFindEligibleDevices_NoErrorCode) {
-  InitializeClient();
+  SetupClient();
 
   multidevice::RemoteDeviceList expected_eligible_devices(
       {test_remote_device_list_[0], test_remote_device_list_[1]});
@@ -682,7 +674,7 @@
 }
 
 TEST_F(DeviceSyncClientImplTest, TestFindEligibleDevices_ErrorCode) {
-  InitializeClient();
+  SetupClient();
 
   CallFindEligibleDevices(mojom::NetworkRequestResult::kEndpointNotFound,
                           multidevice::RemoteDeviceList(),
@@ -690,7 +682,7 @@
 }
 
 TEST_F(DeviceSyncClientImplTest, TestGetDebugInfo) {
-  InitializeClient();
+  SetupClient();
 
   CallGetDebugInfo();
 }
diff --git a/chromeos/services/device_sync/public/mojom/BUILD.gn b/chromeos/services/device_sync/public/mojom/BUILD.gn
index f3e8fb2..0914e33 100644
--- a/chromeos/services/device_sync/public/mojom/BUILD.gn
+++ b/chromeos/services/device_sync/public/mojom/BUILD.gn
@@ -12,7 +12,6 @@
   public_deps = [
     "//chromeos/components/multidevice/mojom",
     "//mojo/public/mojom/base",
-    "//services/preferences/public/mojom",
   ]
 }
 
diff --git a/chromeos/services/device_sync/public/mojom/device_sync.mojom b/chromeos/services/device_sync/public/mojom/device_sync.mojom
index 2dbbecc..f173065 100644
--- a/chromeos/services/device_sync/public/mojom/device_sync.mojom
+++ b/chromeos/services/device_sync/public/mojom/device_sync.mojom
@@ -6,7 +6,6 @@
 
 import "chromeos/components/multidevice/mojom/multidevice_types.mojom";
 import "mojo/public/mojom/base/time.mojom";
-import "services/preferences/public/mojom/preferences.mojom";
 
 enum NetworkRequestResult {
   // Successful network request.
@@ -160,8 +159,8 @@
   // On success, this function returns a null error_code with the activity
   // statuses to the callback; on error, it returns a valid error_code string
   // indicating the reason for failure along with a null activity statuses.
-  // 
-  // This method is expected to be used by multidevice_setup service running 
+  //
+  // This method is expected to be used by multidevice_setup service running
   // in the browser process.
   GetDevicesActivityStatus() =>
           (NetworkRequestResult result_code,
@@ -174,19 +173,3 @@
   GetDebugInfo() => (DebugInfo? debug_info);
 };
 
-// The main interface to the Device Sync service, used to initialized a new
-// instance of the service.
-interface DeviceSyncServiceInitializer {
-  // Initializes the service instance, binding a DeviceSyncService endpoint
-  // with access to a given PrefStoreConnector.
-  Initialize(
-      pending_receiver<DeviceSyncService> receiver,
-      pending_remote<prefs.mojom.PrefStoreConnector> pref_store_connector);
-};
-
-// The main interface to the Device Sync service.
-interface DeviceSyncService {
-  // Binds a new DeviceSync endpoint.
-  BindDeviceSync(pending_receiver<DeviceSync> receiver);
-};
-
diff --git a/chromeos/services/ime/public/cpp/rulebased/rules_data.cc b/chromeos/services/ime/public/cpp/rulebased/rules_data.cc
index 2473b39..06550b7 100644
--- a/chromeos/services/ime/public/cpp/rulebased/rules_data.cc
+++ b/chromeos/services/ime/public/cpp/rulebased/rules_data.cc
@@ -69,113 +69,83 @@
         history_prune(prune) {}
 };
 
-static const std::map<std::string, RawDataEntry> kRawData = {
-    {ar::kId, RawDataEntry(ar::kKeyMap, ar::kIs102)},
-    {bn_phone::kId, RawDataEntry(bn_phone::kKeyMap,
-                                 bn_phone::kIs102,
-                                 bn_phone::kTransforms,
-                                 bn_phone::kTransformsLen,
-                                 bn_phone::kHistoryPrune)},
-    {ckb_ar::kId, RawDataEntry(ckb_ar::kKeyMap, ckb_ar::kIs102)},
-    {ckb_en::kId, RawDataEntry(ckb_en::kKeyMap, ckb_en::kIs102)},
-    {deva_phone::kId, RawDataEntry(us::kKeyMap,
-                                   us::kIs102,
-                                   deva_phone::kTransforms,
-                                   deva_phone::kTransformsLen,
-                                   deva_phone::kHistoryPrune)},
-    {ethi::kId, RawDataEntry(ethi::kKeyMap,
-                             ethi::kIs102,
-                             ethi::kTransforms,
-                             ethi::kTransformsLen,
-                             ethi::kHistoryPrune)},
-    {fa::kId, RawDataEntry(fa::kKeyMap, fa::kIs102)},
-    {gu_phone::kId, RawDataEntry(gu_phone::kKeyMap,
-                                 gu_phone::kIs102,
-                                 gu_phone::kTransforms,
-                                 gu_phone::kTransformsLen,
-                                 gu_phone::kHistoryPrune)},
-    {km::kId, RawDataEntry(km::kKeyMap, km::kIs102)},
-    {kn_phone::kId, RawDataEntry(us::kKeyMap,
-                                 us::kIs102,
-                                 kn_phone::kTransforms,
-                                 kn_phone::kTransformsLen,
-                                 kn_phone::kHistoryPrune)},
-    {lo::kId, RawDataEntry(lo::kKeyMap, lo::kIs102)},
-    {ml_phone::kId, RawDataEntry(us::kKeyMap,
-                                 us::kIs102,
-                                 ml_phone::kTransforms,
-                                 ml_phone::kTransformsLen,
-                                 ml_phone::kHistoryPrune)},
-    {my::kId, RawDataEntry(my::kKeyMap,
-                           my::kIs102,
-                           my::kTransforms,
-                           my::kTransformsLen,
-                           my::kHistoryPrune)},
-    {my_myansan::kId, RawDataEntry(my_myansan::kKeyMap,
-                                   my_myansan::kIs102,
-                                   my_myansan::kTransforms,
-                                   my_myansan::kTransformsLen,
-                                   my_myansan::kHistoryPrune)},
-    {ne_inscript::kId, RawDataEntry(ne_inscript::kKeyMap, ne_inscript::kIs102)},
-    {ne_phone::kId, RawDataEntry(ne_phone::kKeyMap, ne_phone::kIs102)},
-    {ru_phone_aatseel::kId,
-     RawDataEntry(ru_phone_aatseel::kKeyMap, ru_phone_aatseel::kIs102)},
-    {ru_phone_yazhert::kId,
-     RawDataEntry(ru_phone_yazhert::kKeyMap, ru_phone_yazhert::kIs102)},
-    {si::kId, RawDataEntry(si::kKeyMap,
-                           si::kIs102,
-                           si::kTransforms,
-                           si::kTransformsLen,
-                           si::kHistoryPrune)},
-    {ta_inscript::kId, RawDataEntry(ta_inscript::kKeyMap, ta_inscript::kIs102)},
-    {ta_itrans::kId, RawDataEntry(us::kKeyMap,
-                                  us::kIs102,
-                                  ta_itrans::kTransforms,
-                                  ta_itrans::kTransformsLen,
-                                  ta_itrans::kHistoryPrune)},
-    {ta_phone::kId, RawDataEntry(ta_phone::kKeyMap,
-                                 ta_phone::kIs102,
-                                 ta_phone::kTransforms,
-                                 ta_phone::kTransformsLen,
-                                 ta_phone::kHistoryPrune)},
-    {ta_tamil99::kId, RawDataEntry(ta_tamil99::kKeyMap,
-                                   ta_tamil99::kIs102,
-                                   ta_tamil99::kTransforms,
-                                   ta_tamil99::kTransformsLen,
-                                   ta_tamil99::kHistoryPrune)},
-    {ta_typewriter::kId,
-     RawDataEntry(ta_typewriter::kKeyMap, ta_typewriter::kIs102)},
-    {te_phone::kId, RawDataEntry(us::kKeyMap,
-                                 us::kIs102,
-                                 te_phone::kTransforms,
-                                 te_phone::kTransformsLen,
-                                 te_phone::kHistoryPrune)},
-    {th::kId, RawDataEntry(th::kKeyMap, th::kIs102)},
-    {th_pattajoti::kId,
-     RawDataEntry(th_pattajoti::kKeyMap, th_pattajoti::kIs102)},
-    {th_tis::kId, RawDataEntry(th_tis::kKeyMap, th_tis::kIs102)},
-    {vi_tcvn::kId, RawDataEntry(us::kKeyMap,
-                                us::kIs102,
-                                vi_tcvn::kTransforms,
-                                vi_tcvn::kTransformsLen,
-                                vi_tcvn::kHistoryPrune)},
-    {vi_telex::kId, RawDataEntry(us::kKeyMap,
-                                 us::kIs102,
-                                 vi_telex::kTransforms,
-                                 vi_telex::kTransformsLen,
-                                 vi_telex::kHistoryPrune)},
-    {vi_viqr::kId, RawDataEntry(us::kKeyMap,
-                                us::kIs102,
-                                vi_viqr::kTransforms,
-                                vi_viqr::kTransformsLen,
-                                vi_viqr::kHistoryPrune)},
-    {vi_vni::kId, RawDataEntry(us::kKeyMap,
-                               us::kIs102,
-                               vi_vni::kTransforms,
-                               vi_vni::kTransformsLen,
-                               vi_vni::kHistoryPrune)}};
+const std::map<std::string, RawDataEntry>& GetRawData() {
+  static const std::map<std::string, RawDataEntry> kRawData = {
+      {ar::kId, RawDataEntry(ar::kKeyMap, ar::kIs102)},
+      {bn_phone::kId,
+       RawDataEntry(bn_phone::kKeyMap, bn_phone::kIs102, bn_phone::kTransforms,
+                    bn_phone::kTransformsLen, bn_phone::kHistoryPrune)},
+      {ckb_ar::kId, RawDataEntry(ckb_ar::kKeyMap, ckb_ar::kIs102)},
+      {ckb_en::kId, RawDataEntry(ckb_en::kKeyMap, ckb_en::kIs102)},
+      {deva_phone::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, deva_phone::kTransforms,
+                    deva_phone::kTransformsLen, deva_phone::kHistoryPrune)},
+      {ethi::kId, RawDataEntry(ethi::kKeyMap, ethi::kIs102, ethi::kTransforms,
+                               ethi::kTransformsLen, ethi::kHistoryPrune)},
+      {fa::kId, RawDataEntry(fa::kKeyMap, fa::kIs102)},
+      {gu_phone::kId,
+       RawDataEntry(gu_phone::kKeyMap, gu_phone::kIs102, gu_phone::kTransforms,
+                    gu_phone::kTransformsLen, gu_phone::kHistoryPrune)},
+      {km::kId, RawDataEntry(km::kKeyMap, km::kIs102)},
+      {kn_phone::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, kn_phone::kTransforms,
+                    kn_phone::kTransformsLen, kn_phone::kHistoryPrune)},
+      {lo::kId, RawDataEntry(lo::kKeyMap, lo::kIs102)},
+      {ml_phone::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, ml_phone::kTransforms,
+                    ml_phone::kTransformsLen, ml_phone::kHistoryPrune)},
+      {my::kId, RawDataEntry(my::kKeyMap, my::kIs102, my::kTransforms,
+                             my::kTransformsLen, my::kHistoryPrune)},
+      {my_myansan::kId,
+       RawDataEntry(my_myansan::kKeyMap, my_myansan::kIs102,
+                    my_myansan::kTransforms, my_myansan::kTransformsLen,
+                    my_myansan::kHistoryPrune)},
+      {ne_inscript::kId,
+       RawDataEntry(ne_inscript::kKeyMap, ne_inscript::kIs102)},
+      {ne_phone::kId, RawDataEntry(ne_phone::kKeyMap, ne_phone::kIs102)},
+      {ru_phone_aatseel::kId,
+       RawDataEntry(ru_phone_aatseel::kKeyMap, ru_phone_aatseel::kIs102)},
+      {ru_phone_yazhert::kId,
+       RawDataEntry(ru_phone_yazhert::kKeyMap, ru_phone_yazhert::kIs102)},
+      {si::kId, RawDataEntry(si::kKeyMap, si::kIs102, si::kTransforms,
+                             si::kTransformsLen, si::kHistoryPrune)},
+      {ta_inscript::kId,
+       RawDataEntry(ta_inscript::kKeyMap, ta_inscript::kIs102)},
+      {ta_itrans::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, ta_itrans::kTransforms,
+                    ta_itrans::kTransformsLen, ta_itrans::kHistoryPrune)},
+      {ta_phone::kId,
+       RawDataEntry(ta_phone::kKeyMap, ta_phone::kIs102, ta_phone::kTransforms,
+                    ta_phone::kTransformsLen, ta_phone::kHistoryPrune)},
+      {ta_tamil99::kId,
+       RawDataEntry(ta_tamil99::kKeyMap, ta_tamil99::kIs102,
+                    ta_tamil99::kTransforms, ta_tamil99::kTransformsLen,
+                    ta_tamil99::kHistoryPrune)},
+      {ta_typewriter::kId,
+       RawDataEntry(ta_typewriter::kKeyMap, ta_typewriter::kIs102)},
+      {te_phone::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, te_phone::kTransforms,
+                    te_phone::kTransformsLen, te_phone::kHistoryPrune)},
+      {th::kId, RawDataEntry(th::kKeyMap, th::kIs102)},
+      {th_pattajoti::kId,
+       RawDataEntry(th_pattajoti::kKeyMap, th_pattajoti::kIs102)},
+      {th_tis::kId, RawDataEntry(th_tis::kKeyMap, th_tis::kIs102)},
+      {vi_tcvn::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, vi_tcvn::kTransforms,
+                    vi_tcvn::kTransformsLen, vi_tcvn::kHistoryPrune)},
+      {vi_telex::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, vi_telex::kTransforms,
+                    vi_telex::kTransformsLen, vi_telex::kHistoryPrune)},
+      {vi_viqr::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, vi_viqr::kTransforms,
+                    vi_viqr::kTransformsLen, vi_viqr::kHistoryPrune)},
+      {vi_vni::kId,
+       RawDataEntry(us::kKeyMap, us::kIs102, vi_vni::kTransforms,
+                    vi_vni::kTransformsLen, vi_vni::kHistoryPrune)}};
+  return kRawData;
+}
 
-static const char* k101Keys[] = {
+const char* const k101Keys[] = {
     // Row #1
     "Backquote", "Digit1", "Digit2", "Digit3", "Digit4", "Digit5", "Digit6",
     "Digit7", "Digit8", "Digit9", "Digit0", "Minus", "Equal",
@@ -191,7 +161,7 @@
     // Row #5
     "Space"};
 
-static const char* k102Keys[] = {
+const char* const k102Keys[] = {
     // Row #1
     "Backquote", "Digit1", "Digit2", "Digit3", "Digit4", "Digit5", "Digit6",
     "Digit7", "Digit8", "Digit9", "Digit0", "Minus", "Equal",
@@ -207,11 +177,9 @@
     // Row #5
     "Space"};
 
-const static size_t kKeyMapCount = 8;
-
 // Parses the raw key mappings and generate a KeyMap instance.
 KeyMap ParseKeyMap(const char** raw_key_map, bool is_102) {
-  const char** std_keys = is_102 ? k102Keys : k101Keys;
+  const char* const* std_keys = is_102 ? k102Keys : k101Keys;
   size_t nkeys = is_102 ? base::size(k102Keys) : base::size(k101Keys);
   KeyMap key_map;
   for (size_t i = 0; i < nkeys; ++i)
@@ -286,7 +254,7 @@
 std::pair<std::unique_ptr<re2::RE2>, std::unique_ptr<re2::RE2>> ParseTransforms(
     const char** raw_transforms,
     uint16_t trans_count,
-    std::map<uint16_t, TransformRule>& re_map) {
+    std::map<uint16_t, TransformRule>* re_map) {
   if (!trans_count)
     return std::make_pair(nullptr, nullptr);
 
@@ -304,7 +272,7 @@
     all_trans += "(" + from + "$)|";
     all_prefixes += Prefixalize(from) + "|";
 
-    re_map[sum_of_groups] = std::make_pair(std::move(from_re), to);
+    (*re_map)[sum_of_groups] = std::make_pair(std::move(from_re), to);
     sum_of_groups += group_count + 1;
   }
   return std::make_pair(
@@ -342,7 +310,7 @@
     data->key_maps_[i] = ParseKeyMap(key_map[i], is_102_keyboard);
   }
   auto regexes =
-      ParseTransforms(transforms, transforms_count, data->transform_rules_);
+      ParseTransforms(transforms, transforms_count, &data->transform_rules_);
   data->transform_re_merged_ = std::move(regexes.first);
   data->prefix_re_ = std::move(regexes.second);
   data->history_prune_re_ = ParseHistoryPrune(history_prune);
@@ -351,8 +319,9 @@
 
 // static
 std::unique_ptr<RulesData> RulesData::GetById(const std::string& id) {
-  auto it = kRawData.find(id);
-  if (it == kRawData.end())
+  const std::map<std::string, RawDataEntry>& raw_data = GetRawData();
+  auto it = raw_data.find(id);
+  if (it == raw_data.end())
     return nullptr;
 
   const RawDataEntry& entry = it->second;
@@ -362,11 +331,11 @@
 
 // static
 bool RulesData::IsIdSupported(const std::string& id) {
-  return kRawData.find(id) != kRawData.end();
+  return base::Contains(GetRawData(), id);
 }
 
 const KeyMap* RulesData::GetKeyMapByModifiers(uint8_t modifiers) const {
-  return modifiers < 8 ? &key_maps_[modifiers] : nullptr;
+  return modifiers < kKeyMapCount ? &key_maps_[modifiers] : nullptr;
 }
 
 bool RulesData::Transform(const std::string& context,
@@ -420,9 +389,7 @@
 }
 
 bool RulesData::MatchHistoryPrune(const std::string& str) const {
-  if (!history_prune_re_)
-    return false;
-  return re2::RE2::FullMatch(str, *history_prune_re_);
+  return history_prune_re_ && re2::RE2::FullMatch(str, *history_prune_re_);
 }
 
 bool RulesData::PredictTransform(const std::string& str, int transat) const {
diff --git a/chromeos/services/ime/public/cpp/rulebased/rules_data.h b/chromeos/services/ime/public/cpp/rulebased/rules_data.h
index 6458e19..9664a77 100644
--- a/chromeos/services/ime/public/cpp/rulebased/rules_data.h
+++ b/chromeos/services/ime/public/cpp/rulebased/rules_data.h
@@ -6,8 +6,9 @@
 #define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_RULES_DATA_H_
 
 #include <map>
+#include <memory>
 #include <string>
-#include <vector>
+#include <utility>
 
 #include "base/macros.h"
 
@@ -66,7 +67,8 @@
 
  private:
   // The KeyMap instances under all the modifier states.
-  KeyMap key_maps_[8];
+  static constexpr size_t kKeyMapCount = 8;
+  KeyMap key_maps_[kKeyMapCount];
 
   // The map from the sub group match index (of the merged regexp) to the
   // transform rule (which is a pair of matching regexp, and replace string).
diff --git a/components/arc/metrics/arc_metrics_constants.h b/components/arc/metrics/arc_metrics_constants.h
index 69e7332..2fcdd2d 100644
--- a/components/arc/metrics/arc_metrics_constants.h
+++ b/components/arc/metrics/arc_metrics_constants.h
@@ -92,7 +92,10 @@
   // User interacted with an app using a gamepad.
   GAMEPAD_INTERACTION = 19,
 
-  kMaxValue = GAMEPAD_INTERACTION,
+  // User started an app from entering URL in the Omnibox in the browser.
+  APP_STARTED_FROM_OMNIBOX = 20,
+
+  kMaxValue = APP_STARTED_FROM_OMNIBOX,
 };
 
 }  // namespace arc
diff --git a/components/arc/mojom/notifications.mojom b/components/arc/mojom/notifications.mojom
index a208c0b4..96cee17 100644
--- a/components/arc/mojom/notifications.mojom
+++ b/components/arc/mojom/notifications.mojom
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Next MinVersion: 24
+// Next MinVersion: 25
 
 module arc.mojom;
 
@@ -23,6 +23,11 @@
   DEPRECATED_BUTTON_5_CLICKED = 6,
   // expand/collapse the bundled notification
   [MinVersion=10] TOGGLE_EXPANSION = 7,
+  // The notification is activated/deactivated. Please note that they are sent
+  // only in limited instances e.g. when remote input opens, or when spoken
+  // feedback is enabled.
+  [MinVersion=24] ACTIVATED = 8,
+  [MinVersion=24] DEACTIVATED = 9,
 };
 
 [Extensible]
diff --git a/components/arc/session/arc_vm_client_adapter.cc b/components/arc/session/arc_vm_client_adapter.cc
index 224dc335..8f67698 100644
--- a/components/arc/session/arc_vm_client_adapter.cc
+++ b/components/arc/session/arc_vm_client_adapter.cc
@@ -392,6 +392,8 @@
     }
     VLOG(1) << "Concierge service started for arcvm.";
 
+    // TODO(pliard): Export host-side /data to the VM, and remove the call. Note
+    // that ArcSessionImpl checks low disk conditions before calling UpgradeArc.
     base::PostTaskAndReplyWithResult(
         FROM_HERE,
         {base::ThreadPool(), base::MayBlock(),
@@ -410,7 +412,6 @@
       std::move(callback).Run(false);
       return;
     }
-    // TODO(yusukes): Don't start the VM when |free_disk_bytes| is too small.
     // TODO(pliard): Export host-side /data to the VM, and remove the call.
     GetConciergeClient()->CreateDiskImage(
         CreateArcDiskRequest(user_id_hash_, free_disk_bytes),
diff --git a/components/autofill/core/browser/payments/payments_client.cc b/components/autofill/core/browser/payments/payments_client.cc
index 1cfb0274..6f807474 100644
--- a/components/autofill/core/browser/payments/payments_client.cc
+++ b/components/autofill/core/browser/payments/payments_client.cc
@@ -506,21 +506,22 @@
     }
     request_dict.SetKey("reason", base::Value(reason));
 
-    base::Value fido_authentication_info(base::Value::Type::DICTIONARY);
     if (request_details_.fido_authenticator_response.is_dict()) {
+      base::Value fido_authentication_info(base::Value::Type::DICTIONARY);
+
       fido_authentication_info.SetKey(
           "fido_authenticator_response",
           std::move(request_details_.fido_authenticator_response));
-    }
 
-    if (!request_details_.card_authorization_token.empty()) {
-      fido_authentication_info.SetKey(
-          "card_authorization_token",
-          base::Value(request_details_.card_authorization_token));
-    }
+      if (!request_details_.card_authorization_token.empty()) {
+        fido_authentication_info.SetKey(
+            "card_authorization_token",
+            base::Value(request_details_.card_authorization_token));
+      }
 
-    request_dict.SetKey("fido_authentication_info",
-                        std::move(fido_authentication_info));
+      request_dict.SetKey("fido_authentication_info",
+                          std::move(fido_authentication_info));
+    }
 
     std::string request_content;
     base::JSONWriter::Write(request_dict, &request_content);
diff --git a/components/download/internal/common/download_item_impl.cc b/components/download/internal/common/download_item_impl.cc
index 44fb482..6405bed 100644
--- a/components/download/internal/common/download_item_impl.cc
+++ b/components/download/internal/common/download_item_impl.cc
@@ -1078,6 +1078,17 @@
   UpdateObservers();
 }
 
+void DownloadItemImpl::OnAsyncScanningCompleted(
+    DownloadDangerType danger_type) {
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  DCHECK(AllDataSaved());
+
+  DVLOG(20) << __func__ << "() danger_type=" << danger_type
+            << " download=" << DebugString(true);
+  SetDangerType(danger_type);
+  UpdateObservers();
+}
+
 void DownloadItemImpl::SetOpenWhenComplete(bool open) {
   open_when_complete_ = open;
 }
diff --git a/components/download/public/common/download_item.h b/components/download/public/common/download_item.h
index df473cfe..f5617b5 100644
--- a/components/download/public/common/download_item.h
+++ b/components/download/public/common/download_item.h
@@ -491,6 +491,9 @@
   virtual void OnContentCheckCompleted(DownloadDangerType danger_type,
                                        DownloadInterruptReason reason) = 0;
 
+  // Called when async scanning completes with the given |danger_type|.
+  virtual void OnAsyncScanningCompleted(DownloadDangerType danger_type) = 0;
+
   // Mark the download to be auto-opened when completed.
   virtual void SetOpenWhenComplete(bool open) = 0;
 
diff --git a/components/download/public/common/download_item_impl.h b/components/download/public/common/download_item_impl.h
index 18d3589..5dab7f4 100644
--- a/components/download/public/common/download_item_impl.h
+++ b/components/download/public/common/download_item_impl.h
@@ -292,6 +292,7 @@
   DownloadCreationType GetDownloadCreationType() const override;
   void OnContentCheckCompleted(DownloadDangerType danger_type,
                                DownloadInterruptReason reason) override;
+  void OnAsyncScanningCompleted(DownloadDangerType danger_type) override;
   void SetOpenWhenComplete(bool open) override;
   void SetOpened(bool opened) override;
   void SetLastAccessTime(base::Time last_access_time) override;
diff --git a/components/download/public/common/mock_download_item.h b/components/download/public/common/mock_download_item.h
index 09ea72f..a37d5f9 100644
--- a/components/download/public/common/mock_download_item.h
+++ b/components/download/public/common/mock_download_item.h
@@ -14,6 +14,7 @@
 #include "base/observer_list.h"
 #include "base/optional.h"
 #include "base/time/time.h"
+#include "components/download/public/common/download_danger_type.h"
 #include "components/download/public/common/download_interrupt_reasons.h"
 #include "components/download/public/common/download_item.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -123,6 +124,7 @@
   MOCK_CONST_METHOD1(DebugString, std::string(bool));
   MOCK_METHOD1(SimulateErrorForTesting, void(DownloadInterruptReason));
   MOCK_METHOD2(Rename, void(const base::FilePath&, RenameDownloadCallback));
+  MOCK_METHOD1(OnAsyncScanningCompleted, void(DownloadDangerType));
 
  private:
   base::ObserverList<Observer>::Unchecked observers_;
diff --git a/components/exo/client_controlled_shell_surface.cc b/components/exo/client_controlled_shell_surface.cc
index 6dceed3..eafb903 100644
--- a/components/exo/client_controlled_shell_surface.cc
+++ b/components/exo/client_controlled_shell_surface.cc
@@ -1025,9 +1025,15 @@
   }
 
   if (wasPip && !window_state->IsMinimized()) {
-    // Expanding PIP should end split-view. See crbug.com/941788.
-    ash::SplitViewController::Get()->EndSplitView(
-        ash::SplitViewController::EndReason::kPipExpanded);
+    // Expanding PIP should end tablet split view (see crbug.com/941788).
+    // Clamshell split view does not require special handling. We activate the
+    // PIP window, and so overview ends, which means clamshell split view ends.
+    // TODO(edcourtney): Consider not ending tablet split view on PIP expand.
+    // See crbug.com/950827.
+    ash::SplitViewController* split_view_controller =
+        ash::SplitViewController::Get(ash::Shell::GetPrimaryRootWindow());
+    if (split_view_controller->InTabletSplitViewMode())
+      split_view_controller->EndSplitView();
     // As Android doesn't activate PIP tasks after they are expanded, we need
     // to do it here explicitly.
     // TODO(937738): Investigate if we can activate PIP windows inside commit.
diff --git a/components/exo/client_controlled_shell_surface_unittest.cc b/components/exo/client_controlled_shell_surface_unittest.cc
index dc075bb..6c721c8b 100644
--- a/components/exo/client_controlled_shell_surface_unittest.cc
+++ b/components/exo/client_controlled_shell_surface_unittest.cc
@@ -1025,7 +1025,7 @@
 
   // Snap window to left.
   ash::SplitViewController* split_view_controller =
-      ash::SplitViewController::Get();
+      ash::SplitViewController::Get(ash::Shell::GetPrimaryRootWindow());
   split_view_controller->SnapWindow(window1, ash::SplitViewController::LEFT);
   state1->set_bounds_locally(true);
   window1->SetBounds(split_view_controller->GetSnappedWindowBoundsInScreen(
@@ -2016,7 +2016,8 @@
        ExpandingPipInTabletModeEndsSplitView) {
   EnableTabletMode(true);
 
-  auto* split_view_controller = ash::SplitViewController::Get();
+  ash::SplitViewController* split_view_controller =
+      ash::SplitViewController::Get(ash::Shell::GetPrimaryRootWindow());
   EXPECT_FALSE(split_view_controller->InSplitViewMode());
 
   // Create a PIP window:
@@ -2052,7 +2053,8 @@
        DismissingPipInTabletModeDoesNotEndSplitView) {
   EnableTabletMode(true);
 
-  auto* split_view_controller = ash::SplitViewController::Get();
+  ash::SplitViewController* split_view_controller =
+      ash::SplitViewController::Get(ash::Shell::GetPrimaryRootWindow());
   EXPECT_FALSE(split_view_controller->InSplitViewMode());
 
   // Create a PIP window:
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
index f19190b..bca24fe 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -1069,25 +1069,37 @@
   // example, if the user presses ctrl-l to focus the omnibox.
   control_key_state_ = control_down ? DOWN_AND_CONSUMED : UP;
 
-  // Try to get ZeroSuggest suggestions if a page is loaded and the user has
-  // not been typing in the omnibox.  The |user_input_in_progress_| check is
-  // used to prevent on-focus suggestions from appearing if the user already
-  // has a navigation or search query in mind.
-  if (client_->CurrentPageExists() && !user_input_in_progress_) {
-    // Send the textfield contents exactly as-is, as otherwise the verbatim
-    // match can be wrong. The full page URL is anyways in set_current_url().
-    input_ = AutocompleteInput(view_->GetText(), GetPageClassification(),
-                               client_->GetSchemeClassifier());
-    input_.set_current_url(client_->GetURL());
-    input_.set_current_title(client_->GetTitle());
-    input_.set_from_omnibox_focus(true);
-    autocomplete_controller()->Start(input_);
-  }
+  ShowOnFocusSuggestionsIfAutocompleteIdle();
 
   if (user_input_in_progress_ || !in_revert_)
     client_->OnInputStateChanged();
 }
 
+void OmniboxEditModel::ShowOnFocusSuggestionsIfAutocompleteIdle() {
+  // Early exit if a query is already in progress or the popup is already open.
+  // This is what allows this method to be called multiple times in multiple
+  // code locations without harm.
+  if (query_in_progress() || PopupIsOpen())
+    return;
+
+  // Early exit if the page has not loaded yet, so we don't annoy users.
+  if (!client_->CurrentPageExists())
+    return;
+
+  // Early exit if the user already has a navigation or search query in mind.
+  if (user_input_in_progress_)
+    return;
+
+  // Send the textfield contents exactly as-is, as otherwise the verbatim
+  // match can be wrong. The full page URL is anyways in set_current_url().
+  input_ = AutocompleteInput(view_->GetText(), GetPageClassification(),
+                             client_->GetSchemeClassifier());
+  input_.set_current_url(client_->GetURL());
+  input_.set_current_title(client_->GetTitle());
+  input_.set_from_omnibox_focus(true);
+  autocomplete_controller()->Start(input_);
+}
+
 void OmniboxEditModel::SetCaretVisibility(bool visible) {
   // Caret visibility only matters if the omnibox has focus.
   if (focus_state_ != OMNIBOX_FOCUS_NONE) {
diff --git a/components/omnibox/browser/omnibox_edit_model.h b/components/omnibox/browser/omnibox_edit_model.h
index 3f40756..b607d73 100644
--- a/components/omnibox/browser/omnibox_edit_model.h
+++ b/components/omnibox/browser/omnibox_edit_model.h
@@ -293,6 +293,11 @@
   // control key is down (at the time we're gaining focus).
   void OnSetFocus(bool control_down);
 
+  // Shows On-Focus Suggestions (ZeroSuggest) if no query is currently running
+  // and the popup is closed. This can be called multiple times without harm,
+  // since it will early-exit if an earlier request is in progress (or done).
+  void ShowOnFocusSuggestionsIfAutocompleteIdle();
+
   // Sets the visibility of the caret in the omnibox, if it has focus. The
   // visibility of the caret is reset to visible if either
   //   - The user starts typing, or
diff --git a/components/policy/core/common/BUILD.gn b/components/policy/core/common/BUILD.gn
index fce0006..2f22a67 100644
--- a/components/policy/core/common/BUILD.gn
+++ b/components/policy/core/common/BUILD.gn
@@ -156,6 +156,7 @@
     "//components/policy:generated",
     "//components/policy/proto",
   ]
+
   deps = [
     "//base:i18n",
     "//base/third_party/dynamic_annotations",
@@ -163,6 +164,7 @@
     "//components/prefs",
     "//components/signin/public/identity_manager",
     "//components/strings",
+    "//components/user_manager",
     "//components/version_info",
     "//extensions/buildflags",
     "//google_apis",
diff --git a/components/policy/core/common/cloud/DEPS b/components/policy/core/common/cloud/DEPS
index 71018a6..5b2d04a1 100644
--- a/components/policy/core/common/cloud/DEPS
+++ b/components/policy/core/common/cloud/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
   "+components/signin/public",
+  "+components/user_manager",
   "+services/identity/public/cpp",
 ]
diff --git a/components/policy/core/common/cloud/cloud_policy_util.cc b/components/policy/core/common/cloud/cloud_policy_util.cc
index 1e7289c..dba3f8b 100644
--- a/components/policy/core/common/cloud/cloud_policy_util.cc
+++ b/components/policy/core/common/cloud/cloud_policy_util.cc
@@ -39,6 +39,11 @@
 #include "base/system/sys_info.h"
 #include "components/version_info/version_info.h"
 
+#if defined(OS_CHROMEOS)
+#include "components/user_manager/user.h"
+#include "components/user_manager/user_manager.h"
+#endif
+
 #if defined(OS_WIN)
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -153,6 +158,13 @@
   }
 
   return base::WideToUTF8(username);
+#elif defined(OS_CHROMEOS)
+  if (!user_manager::UserManager::IsInitialized())
+    return std::string();
+  auto* user = user_manager::UserManager::Get()->GetPrimaryUser();
+  if (!user)
+    return std::string();
+  return user->GetAccountName(/*use_display_email=*/false);
 #else
   NOTREACHED();
   return std::string();
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index b643af0..961c9545 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -525,7 +525,9 @@
 <translation id="187819629719252111"><ph name="PRODUCT_NAME" /> に対してファイル選択ダイアログの表示を許可することで、コンピュータからローカル ファイルにアクセスできるようにします。この設定を有効にすると、ユーザーは通常どおりにファイル選択ダイアログを開くことができます。この設定を無効にすると、ファイル選択ダイアログを表示する操作(ブックマークのインポート、ファイルのアップロード、リンクの保存など)を実行した場合、メッセージが表示されて、ユーザーがファイル選択ダイアログで [キャンセル] をクリックした操作と同じになります。未設定の場合は、通常どおりファイル選択ダイアログが表示されます。</translation>
 <translation id="1885782360784839335">タブ全体にプロモーション コンテンツを表示する</translation>
 <translation id="1888871729456797026">パソコンでのクラウド ポリシーの登録トークン</translation>
+<translation id="1894790493260633497">背景のグラフィックの印刷モードをデフォルトで有効にする</translation>
 <translation id="1897365952389968758">すべてのサイトに対して Javascript の実行を許可する</translation>
+<translation id="1902043648529789224">シェルフの位置を管理する</translation>
 <translation id="1906888171268104594">使用状況に関する統計情報と診断データ(障害レポートなど)を Google に送信するかどうかを指定します。
 
       このポリシーが true に設定されている場合は、<ph name="PRODUCT_OS_NAME" /> から Google に、使用状況に関する統計情報と診断データが送信されます。
@@ -617,9 +619,9 @@
           この設定が無効な場合、ファイル転送は許可されません。この設定が有効か、設定されていない場合は、ファイル転送が許可されます。</translation>
 <translation id="2057317273526988987">URL のリストへのアクセスを許可する</translation>
 <translation id="2061810934846663491">リモート アクセス ホストの必須のドメイン名を設定する</translation>
-<translation id="2063663607822994541">メモリを節約するため、タブの破棄(タブで使用されているメモリが解放され、次回表示したときに再読み込みする必要があります)を開始するまでに 1 つの <ph name="PRODUCT_NAME" /> インスタンスで使用できるメモリの制限量を設定します。
+<translation id="2063663607822994541">メモリを節約するため、タブの破棄(タブで使用されているメモリが解放され、次回表示したときに再読み込みする必要があります)を開始するまでに 1 つの <ph name="PRODUCT_NAME" /> インスタンスで使用できるメモリの量を設定します。
 
-      このポリシーを設定した場合、ブラウザのメモリ使用量が制限を超えると、メモリを節約するためタブの破棄が開始されます。ただし、ブラウザのメモリ使用量が必ずこの制限を超えないというわけではありません。2,048 より小さい値は 2,048 に切り上げられます。
+      このポリシーを設定した場合、ブラウザのメモリ使用量が制限を超えると、メモリを節約するためタブの破棄が開始されます。ただし、ブラウザが常にこの制限を超えずに実行するという保証はありません。2,048 より小さい値は 2,048 に切り上げられます。
 
       このポリシーを設定しない場合、ブラウザでパソコンの物理メモリが少なくなったことが検出されたときにのみ、メモリの節約が試行されます。</translation>
 <translation id="206623763829450685"><ph name="PRODUCT_NAME" /> でサポートされる HTTP 認証スキームを指定します。
@@ -1147,6 +1149,7 @@
       この設定を有効にした場合、印刷プレビューではデフォルトの出力先としてオペレーティング システムのデフォルト プリンタが使用されます。</translation>
 <translation id="285627849510728211">詳細なバッテリー充電モードの曜日の設定を行う</translation>
 <translation id="2856674246949497058">OS のバージョンが対象バージョンより新しい場合に、対象バージョンに戻してそのバージョンを維持します。このプロセスでは Powerwash が行われます。</translation>
+<translation id="2869762730352628426">ログイン画面で自動クリックを有効にする</translation>
 <translation id="2872961005593481000">終了</translation>
 <translation id="2873651257716068683">デフォルトの印刷ページサイズをオーバーライドします。ページサイズを使用できない場合、このポリシーは無視されます。</translation>
 <translation id="2874209944580848064">Android アプリをサポートする <ph name="PRODUCT_OS_NAME" /> デバイスに関する注意:</translation>
@@ -1155,6 +1158,7 @@
 <translation id="2892414556511568464">両面印刷モードを制限します。ポリシーが未設定または空白に設定されている場合は、制限なしとして扱われます。</translation>
 <translation id="2893546967669465276">管理サーバーにシステムログを送信する</translation>
 <translation id="2899002520262095963">Android アプリは、このポリシーで設定したネットワーク設定と CA 証明書を使用できますが、一部の設定オプションにはアクセスできません。</translation>
+<translation id="2899213072616346687">背景のグラフィックの印刷モードを制限します。このポリシーが未設定の場合は、制限なしとして扱われます。</translation>
 <translation id="290002216614278247">クライアントの時間または 1 日の使用時間の割り当てに基づいてユーザーのセッションをロックします。
 
           |time_window_limit| では、1 日の中でユーザーのセッションをロックする時間帯を指定します。指定できるルールの数は 1 つの曜日に 1 つのみです。したがって |entries| 配列には 0~7 個のエントリが含まれることになります。|starts_at| と |ends_at| は時間帯の開始と終了を表します。|ends_at| に |starts_at| よりも早い時間を指定した場合、|time_limit_window| は次の日にかかるものと解釈されます。|last_updated_millis| は、このエントリが前回更新された時間を示す UTC のタイムスタンプです。タイムスタンプは整数値として認識されないため、文字列として送信されます。
@@ -1365,6 +1369,9 @@
       この設定が有効な場合または未設定の場合、ユーザーは Google アカウントでの認証によってクラウド プリント プロキシを有効にできます。
 
       この設定が無効な場合、ユーザーはプロキシを有効にできず、パソコンはプリンタを <ph name="CLOUD_PRINT_NAME" /> と共有できません。</translation>
+<translation id="3303653927512453822">すべての Cookie を以前の <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作に戻します。以前の動作に戻すと、<ph name="ATTRIBUTE_SAMESITE_NAME" /> 属性のない Cookie は「<ph name="ATTRIBUTE_VALUE_SAMESITE_NONE" />」が指定されたものとして扱われます。また、「<ph name="ATTRIBUTE_VALUE_SAMESITE_NONE" />」の Cookie に「<ph name="ATTRIBUTE_SECURE_NAME" />」属性は必須ではなくなります。詳細については https://www.chromium.org/administrators/policy-list-3/cookie-legacy-samesite-policies をご覧ください。
+
+          このポリシーを設定した場合、<ph name="ATTRIBUTE_SAMESITE_NAME" /> 属性のない Cookie のデフォルトの <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作は、ユーザーが個人設定で <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> 機能をどのように設定しているか(公開テストで設定、あるいは <ph name="FLAG_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> フラグで有効または無効に設定)に応じて決まります。</translation>
 <translation id="3307971460556020865">大きなファイルのアップロードとダウンロードをブロックする</translation>
 <translation id="3312206664202507568">chrome://password-change ページを有効にします。SAML ユーザーはこのページでセッション中に SAML パスワードを変更して、SAML パスワードとデバイスのロック画面のパスワードを常に同期できます。
 
@@ -1702,6 +1709,17 @@
       小売りモードでデバイスにログインしたデモ ユーザーに対して自動的にインストールされる拡張機能のリストを指定します。これらの拡張機能はデバイスに保存され、インストール後はオフラインでもインストールされた状態になります。
 
       リストの各エントリには辞書を指定し、[extension-id] フィールドに拡張機能 ID、[update-url] フィールドに更新 URL を指定する必要があります。</translation>
+<translation id="3870059789954671543">ログイン画面で「キーボード フォーカスによるハイライト表示」ユーザー補助機能を有効にします。
+
+          これは、キーボード フォーカスのある項目をハイライト表示する機能です。
+
+          このポリシーを有効に設定した場合、キーボード フォーカスによるハイライト表示は常に有効になります。
+
+          このポリシーを無効に設定した場合、キーボード フォーカスによるハイライト表示は常に無効になります。
+
+          このポリシーを設定した場合、ユーザーが設定を変更またはオーバーライドすることはできません。
+
+          このポリシーを設定しない場合、キーボード フォーカスによるハイライト表示は初期設定で無効になりますが、ユーザーはいつでも設定を有効にできます。</translation>
 <translation id="3874773863217952418">「タップして検索」を有効にする</translation>
 <translation id="3877517141460819966">統合 2 段階認証モード</translation>
 <translation id="3879196885908353077">ダウンロードに対して、機密データ保護ルールの違反をチェックする</translation>
@@ -1738,6 +1756,15 @@
           未設定の場合、または False に設定されている場合、ユーザーは Google ドライブにファイルを転送できます。</translation>
 <translation id="3915395663995367577">プロキシ .pac ファイルへの URL</translation>
 <translation id="3925377537407648234">ディスプレイの解像度と倍率を設定する</translation>
+<translation id="3927137827189017535">ログイン画面で「固定キー」ユーザー補助機能を有効にします。
+
+          このポリシーを true に設定した場合、ログイン画面で固定キーは常に有効になります。
+
+          このポリシーを false に設定した場合、ログイン画面で固定キーは常に無効になります。
+
+          このポリシーを設定した場合、ユーザーが設定を変更またはオーバーライドすることはできません。
+
+          このポリシーを設定しない場合、ログイン画面において固定キーは初期設定で無効になりますが、ユーザーはいつでも設定を有効にできます。</translation>
 <translation id="3939893074578116847">オンライン ステータス監視のためにネットワーク パケットを管理サーバーに送信します。
       これにより、サーバーではデバイスがオフラインかどうかを検出できます。
 
@@ -1796,6 +1823,7 @@
 
       なお、このポリシーが、デバイスでのローカル ユーザー データの保持または破棄に影響することはありません。</translation>
 <translation id="4010738624545340900">ファイル選択ダイアログの呼び出しを許可する</translation>
+<translation id="401260868452018796">シェルフを画面の下部に配置する</translation>
 <translation id="4012737788880122133">自動更新を無効にします(true に設定した場合)。
 
       この設定を未設定のままにするか false に設定した場合、<ph name="PRODUCT_OS_NAME" /> デバイスでは更新が自動的にチェックされます。
@@ -1806,7 +1834,8 @@
 <translation id="4027608872760987929">デフォルトの検索プロバイダを有効にする</translation>
 <translation id="4039085364173654945">ページ上のサードパーティ製のサブコンテンツで [HTTP 基本認証] ダイアログボックスのポップアップ表示を許可するかどうかを設定します。通常、これはフィッシング詐欺の防衛策として無効になっています。このポリシーが未設定の場合は無効になり、サブコンテンツで [HTTP 基本認証] ダイアログボックスのポップアップ表示は許可されません。</translation>
 <translation id="4056910949759281379">SPDY プロトコルを無効にする</translation>
-<translation id="4075864623710596000">このリストに記されたホスト名については、HTTP から HTTPS へのアップグレード リクエストになる可能性がある HSTS ポリシー チェックから除外されます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化されている必要があります。IDN はすべて A ラベル形式に対応し、すべての ASCII 文字列が小文字である必要があります。ポリシーが適用されるのは指定された特定のホスト名のみです。指定された名前のサブドメインには適用されません。</translation>
+<translation id="4075675819066819571">シェルフを画面の左側に配置する</translation>
+<translation id="4075864623710596000">このリストに記されたホスト名については、HTTP から HTTPS へのアップグレード リクエストになる可能性がある HSTS ポリシー チェックから除外されます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化されている必要があります。IDN はすべて A ラベル形式に変換し、すべての ASCII 文字列が小文字である必要があります。ポリシーが適用されるのは指定された特定のホスト名のみです。指定された名前のサブドメインには適用されません。</translation>
 <translation id="408029843066770167">Google 時間サービスへのクエリを許可する</translation>
 <translation id="408076456549153854">ブラウザのログインを有効にする</translation>
 <translation id="40853027210512570"><ph name="PRODUCT_NAME" /> のデフォルト プリンタ選択ルールをオーバーライドします。
@@ -2095,6 +2124,7 @@
 <translation id="4449469846627734399">電力ピークシフトの曜日の設定を指定する</translation>
 <translation id="4449545651113180484">画面を時計回りに 270 度回転</translation>
 <translation id="445270821089253489">レポートを送信するユーザーとデバイスの情報の種類を制御します。</translation>
+<translation id="4453913621209182880">背景のグラフィックありの印刷のみを許可する</translation>
 <translation id="4454820008017317557"><ph name="PRODUCT_NAME" /> ツールバー アイコンを表示する</translation>
 <translation id="4467952432486360968">サードパーティの Cookie をブロックする</translation>
 <translation id="4474167089968829729">パスワード マネージャへのパスワード保存を有効にする</translation>
@@ -2203,6 +2233,7 @@
 <translation id="4725528134735324213">Android バックアップ サービスを有効にする</translation>
 <translation id="4725801978265372736">ローカル ユーザーの名前とリモート アクセス ホストの所有者が一致していることを要件とする</translation>
 <translation id="4733471537137819387">統合された HTTP 認証に関連するポリシーです。</translation>
+<translation id="4742973303930120836">背景のグラフィックの印刷モードを制限する</translation>
 <translation id="4744190513568488164"><ph name="PRODUCT_NAME" /> が委任するサーバーです。
 
           複数のサーバー名を入力するときはカンマで区切ります。ワイルドカード(*)を使用できます。
@@ -2225,6 +2256,15 @@
       指定した期間中は、アップデートが必要であることがユーザーに繰り返し通知されます。<ph name="PRODUCT_OS_NAME" /> デバイスの場合は、<ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> ポリシーに従ってシステムトレイに再起動を促す通知が表示されます。<ph name="PRODUCT_NAME" /> ブラウザの場合は、通知期間の 3 分の 1 が経過した時点で、再起動が必要であること表すためにアプリメニューの色が変わります。この通知の色は、通知期間の 3 分の 2 が経過した時点と、通知期間が最後まで経過した時点でさらに変わります。<ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> ポリシーによって追加の通知を有効にしている場合は、同じスケジュールで通知が表示されます。
 
       このポリシーが設定されていない場合、デフォルトの期間として <ph name="PRODUCT_OS_NAME" /> デバイスでは 345600000 ミリ秒(4 日間)、<ph name="PRODUCT_NAME" /> では 604800000 ミリ秒(1 週間)が使用されます。</translation>
+<translation id="4771144269610910963">このポリシーを使用すると、ユーザーのダウンロードに対してセーフ ブラウジングによる詳細なスキャンを行うかどうかを管理できます。このポリシーを設定しないか、デフォルトの「ファイルをスキャンしない」に設定した場合、ユーザーのダウンロードに対してセーフ ブラウジングによるスキャンは行われません。
+
+      「ユーザーのダウンロードをスキャンに送信する」に設定した場合は、ユーザーのダウンロードがネットワークを介してセーフ ブラウジングに送信され、不正なソフトウェアのスキャンが行われます。
+
+      「ユーザーのアップロードをスキャンに送信する」に設定した場合は、ユーザーのアップロードがネットワークを介してセーフ ブラウジングに送信され、不正なソフトウェアのスキャンが行われます。
+
+      「ユーザーのアップロードとダウンロードをスキャンに送信する」に設定した場合は、「ユーザーのアップロードをスキャンに送信する」と「ユーザーのダウンロードをスキャンに送信する」のルールに準じた動作となります。
+
+      スキャンの結果がユーザーや管理者にどのように表示されるかについて詳しくは、<ph name="DELAY_DELIVER_UNTIL_VERDICT_POLICY_NAME" /> ポリシーと <ph name="UNSAFE_EVENTS_REPORTING_ENABLED" /> ポリシーをご覧ください。</translation>
 <translation id="4777805166623621364">
       この SitePerProcess 設定は、すべてのサイトが分離されるデフォルトの動作をユーザーが無効にできないようにする場合に使用します。発行元を追加してより細かく分離するには、IsolateOrigins ポリシーの利用もご検討ください。
       このポリシーが有効に設定されている場合、ユーザーは、サイトが各自のプロセスで実行されるデフォルトの動作を無効にできません。
@@ -2259,6 +2299,7 @@
       true に設定されている場合、統計情報が報告されます。</translation>
 <translation id="4832852360828533362">ユーザーとデバイスに関するレポートの送信</translation>
 <translation id="4834526953114077364">十分な空き容量に達するまで、3 か月以内にログインしていないユーザーを順に削除する</translation>
+<translation id="4835470005923546373">背景のグラフィックの印刷モードをデフォルトで無効にする</translation>
 <translation id="4835622243021053389">NTLMv2 認証を有効にする。</translation>
 <translation id="4856471929724652373">更新ステータス、プラットフォームのバージョン、最終更新チェック、最終再起動などの OS のアップデート情報をレポートします。
 
@@ -2421,9 +2462,11 @@
 
           このポリシーが未設定の場合、ユーザーは自分でプロキシ設定を選択できます。</translation>
 <translation id="5182055907976889880"><ph name="PRODUCT_OS_NAME" /> で Google ドライブを設定します</translation>
+<translation id="5182483318861266793">シェルフを画面の右側に配置する</translation>
 <translation id="5183383917553127163">ブラックリストの対象外となる拡張機能を指定できます。ブラックリストの値が「*」の場合、すべての拡張機能がブラックリストに登録されており、ユーザーはホワイトリストにリストされている拡張機能しかインストールできません。デフォルトでは、すべての拡張機能はホワイトリストに登録されていますが、ポリシーによってすべての拡張機能をブラックリストに登録している場合、ホワイトリストを使ってそのポリシーをオーバーライドできます。</translation>
 <translation id="519247340330463721">セーフ ブラウジングに関するポリシーを設定します。</translation>
 <translation id="5192837635164433517"><ph name="PRODUCT_NAME" /> に組み込まれている別のエラー ページ(「ページが見つかりません」など)の使用を有効にし、ユーザーがこの設定を変更できないようにします。この設定を有効にすると、別のエラー ページが使用されます。この設定を無効にすると、別のエラー ページは使用されません。この設定を有効または無効にすると、ユーザーは <ph name="PRODUCT_NAME" /> でこの設定の変更やオーバーライドができなくなります。このポリシーが未設定の場合、有効になりますがユーザーはこの設定を変更できます。</translation>
+<translation id="5196520640744454600">ログイン画面で固定キーを有効にする</translation>
 <translation id="5196805177499964601">デベロッパー モードをブロックします。
 
       このポリシーが True に設定されている場合は、<ph name="PRODUCT_OS_NAME" /> によってデベロッパー モードでのデバイスの起動が阻止されます。デベロッパー スイッチがオンになっている場合、システムは起動せず、エラー画面が表示されます。
@@ -2514,6 +2557,7 @@
 <translation id="5290940294294002042">ユーザーが有効または無効にできるプラグインのリストを指定する</translation>
 <translation id="5306186200045823863">Symantec Corporation の古い PKI インフラストラクチャを信頼する</translation>
 <translation id="5307432759655324440">シークレット モードが利用可能かどうかを設定する</translation>
+<translation id="5311275381462687162">Cookie に関する以前の <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作のデフォルト設定</translation>
 <translation id="5318185076587284965">リモート アクセス ホストで中継サーバーを使用できるようにする</translation>
 <translation id="5323128137188992869"><ph name="PRODUCT_NAME" /> を使用してデバイスにコンテンツをキャストすることを許可します。
 
@@ -2527,6 +2571,7 @@
       このポリシーを設定する場合は、値として「tls1.2」または「tls1.3」を指定できます。このポリシーが設定されている場合、<ph name="PRODUCT_NAME" /> では、指定されたバージョンより大きい SSL / TLS バージョンは使用されません。また、認識されない値は無視されます。</translation>
 <translation id="5330684698007383292">次のコンテンツ タイプの処理を <ph name="PRODUCT_FRAME_NAME" /> に対して許可する</translation>
 <translation id="5331746669335642668"><ph name="PRODUCT_NAME" /> のクラウド ポリシーはプラットフォーム ポリシーに優先します。</translation>
+<translation id="5362531528507578966">背景のグラフィックのデフォルト印刷モードをオーバーライドします。</translation>
 <translation id="5365476955714838841">代替ブラウザに渡すコマンドラインのパラメータ。</translation>
 <translation id="5365946944967967336">ツールバーにホーム ボタンを表示する</translation>
 <translation id="5366745336748853475">SAML フローをホストするログイン画面のフレーム内でリクエスト時にクライアント証明書を自動的に選択するサイトを、URL パターンのリストで指定します。この設定は、SAML IdP に提示するデバイス全体の証明書を設定する場合などに使用します。
@@ -2871,6 +2916,7 @@
 
           ポリシーの値はミリ秒単位で指定してください。</translation>
 <translation id="5783009211970309878">ヘッダーとフッターを印刷</translation>
+<translation id="5806128552675651249">背景のグラフィックなしの印刷のみを許可する</translation>
 <translation id="5809210507920527553">Linux コンテナ(Crostini)の設定を制御します。</translation>
 <translation id="5809728392451418079">デバイスのローカル アカウントの表示名を設定する</translation>
 <translation id="5814301096961727113">ログイン画面での音声フィードバックのデフォルト状態を設定する</translation>
@@ -2961,6 +3007,7 @@
 <translation id="6038407313189625985">このポリシーが有効になっているか未設定の場合、レンダラコードの整合性チェックが有効になります。このポリシーは、Chrome のレンダラ プロセス内で実行する必要のある第三者ソフトウェアとの間で互換性の問題が発生する場合にのみ無効にしてください。
 
       このポリシーを無効にすると、悪質な疑いのある不明なコードに対して Chrome のレンダラ プロセス内での読み込みが許可されるため、Chrome のセキュリティと安定性が低下します。詳しくは https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies をご覧ください。</translation>
+<translation id="6048199181629830227">電源ピークシフトの管理を有効にする</translation>
 <translation id="605475635122964053">PIN 印刷モードを制限します。ポリシーが未設定の場合は、制限なしとして扱われます。このモードを使用できない場合、このポリシーは無視されます。なお、PIN 印刷機能は、IPPS、USB、IPP-over-USB のいずれかのプロトコルを使用するプリンタに対してのみ有効にできます。 </translation>
 <translation id="6070667616071269965">デバイスのログイン画面のキーボード配列</translation>
 <translation id="6074963268421707432">どのサイトにもデスクトップ通知の表示を許可しない</translation>
@@ -3437,6 +3484,17 @@
 
       これらのポリシーでは、アイドル状態が一定時間続いたときの <ph name="PRODUCT_OS_NAME" /> の動作を設定できます。</translation>
 <translation id="7032813174556919004">DNS-over-HTTPS を無効にする</translation>
+<translation id="7037812781389976160"><ph name="PRODUCT_OS_NAME" /> シェルフの位置を管理します。
+
+      このポリシーを「下」に設定した場合、シェルフは画面の下部に配置されます。
+
+      このポリシーを「左」に設定した場合、シェルフは画面の左側に配置されます。
+
+      このポリシーを「右」に設定した場合、シェルフは画面の右側に配置されます。
+
+      このポリシーを必須として設定した場合、ユーザーが設定を変更またはオーバーライドすることはできません。
+
+      このポリシーを設定しない場合、シェルフはデフォルトで画面の下部に配置されますが、ユーザーはシェルフの位置を変更できます。</translation>
 <translation id="7040229947030068419">サンプル値:</translation>
 <translation id="7044883996351280650">Android のバックアップと復元サービスを制御する</translation>
 <translation id="7049373494483449255"><ph name="PRODUCT_NAME" /> がドキュメントを <ph name="CLOUD_PRINT_NAME" /> に送信して印刷できるようにします。注: この設定は <ph name="PRODUCT_NAME" /> での <ph name="CLOUD_PRINT_NAME" /> のサポートのみに影響します。ユーザーがウェブサイトで印刷ジョブを送信できなくなるわけではありません。この設定が有効または未設定の場合、ユーザーは <ph name="PRODUCT_NAME" /> の印刷ダイアログから <ph name="CLOUD_PRINT_NAME" /> に印刷できます。この設定を無効にすると、ユーザーは <ph name="PRODUCT_NAME" /> の印刷ダイアログから <ph name="CLOUD_PRINT_NAME" /> に印刷できなくなります。</translation>
@@ -3723,6 +3781,7 @@
       </translation>
 <translation id="7372831798009983116">「自動クリック」のユーザー補助機能を有効にする</translation>
 <translation id="737655323154569539">印刷ページサイズを制限します。ポリシーが未設定または空白に設定されている場合は、制限なしとして扱われます。</translation>
+<translation id="7382191643394429934">背景のグラフィックありの印刷となしの印刷を両方許可する</translation>
 <translation id="7389872682701720082">この設定が有効の場合、新しいプラグインが常に実行されます。
 
       この設定が無効または未設定の場合、承認を必要とするプラグインの実行許可を求めるメッセージがユーザーに表示されます。これらのプラグインはセキュリティを脅かす可能性があります。</translation>
@@ -3744,6 +3803,7 @@
 <translation id="7458437477941640506">OS のバージョンが対象バージョンよりも新しい場合に、対象バージョンに戻さず、アップデートも行いません。</translation>
 <translation id="7464991223784276288">一致する URL からの Cookie を現在のセッションに限定する</translation>
 <translation id="7469554574977894907">検索キーワード候補を有効にする</translation>
+<translation id="747275827471712187">指定したサイトの Cookie を以前の <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作に戻す</translation>
 <translation id="7477231245051133709">「モノラル音声」のユーザー補助機能を有効にする</translation>
 <translation id="7485481791539008776">デフォルト プリンタ選択ルール</translation>
 <translation id="7485730741952775732">このポリシーが設定されている場合、リモート アクセス ホストでは、この URL を使用してリモート アクセス クライアントからの認証トークンを検証し、接続を受け入れるかどうかを判断します。このポリシーは RemoteAccessHostTokenUrl と一緒に使用してください。
@@ -3800,6 +3860,11 @@
       このポリシーを設定しないか、0 に設定した場合、指定された URL にアクセスすると、すぐに代替ブラウザが開きます。
 
       このポリシーに数字を設定した場合、その数字のミリ秒間メッセージが表示され、その後で代替ブラウザが開きます。</translation>
+<translation id="7586477707097444774">ここで指定したパターンに一致するドメインに設定されている Cookie を、以前の <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作に戻します。以前の動作に戻すと、<ph name="ATTRIBUTE_SAMESITE_NAME" /> 属性のない Cookie は「<ph name="ATTRIBUTE_VALUE_SAMESITE_NONE" />」が指定されたものとして扱われます。また、「<ph name="ATTRIBUTE_VALUE_SAMESITE_NONE" />」の Cookie に「<ph name="ATTRIBUTE_SECURE_NAME" />」属性は必須ではなくなります。詳細については https://www.chromium.org/administrators/policy-list-3/cookie-legacy-samesite-policies をご覧ください。
+
+          ここで指定したパターンに一致しないドメインの Cookie(またはこのポリシーが未設定の場合はすべての Cookie)には、グローバルなデフォルト値(<ph name="LEGACY_SAMESITE_COOKIE_BEHAVIOR_ENABLED_POLICY_NAME" /> ポリシーで値が設定されている場合はその値、設定されていない場合はユーザーの個人設定の値)が使用されます。
+
+          ここで指定するパターンは URL ではなくドメインとして扱われるため、スキームやポートは指定しないでください。</translation>
 <translation id="7593523670408385997"><ph name="PRODUCT_NAME" /> がディスク上にキャッシュ ファイルを保存するときのキャッシュ サイズを設定します。
 
       このポリシーを設定した場合、ユーザーが「--disk-cache-size」フラグを指定したかどうかに関係なく、<ph name="PRODUCT_NAME" /> は指定のキャッシュ サイズを使用します。このポリシーで指定される値は、絶対的な上限値や下限値ではなく、キャッシュ システムに対する推奨値になります。数メガバイト小さいと判断された値は、適正な最小値に引き上げられて処理されます。
@@ -3839,6 +3904,7 @@
 <translation id="7643883929273267746"><ph name="PRODUCT_NAME" /> に表示されるアカウントを制限する</translation>
 <translation id="7644825865811580663">このポリシーが true の場合、<ph name="PRODUCT_NAME" /> では初回実行時に最初に表示されるウィンドウが無条件に最大化されます。
       このポリシーが false または未設定の場合、最初に表示されるウィンドウを最大化するかどうかは画面のサイズに基づいて決定されます。</translation>
+<translation id="7648907905084499629">すべてのサイトの Cookie に <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> 動作を使用する</translation>
 <translation id="7651739109954974365">データ ローミングをデバイスに対して有効にするかどうかを指定します。true に設定した場合、データ ローミングが許可されます。未設定または false に設定した場合、データ ローミングは利用できません。</translation>
 <translation id="7657261947024629645">パフォーマンスを重視します。</translation>
 <translation id="7673194325208122247">期間(ミリ秒)</translation>
@@ -3877,6 +3943,7 @@
 <translation id="7713608076604149344">ダウンロードの制限</translation>
 <translation id="7715711044277116530">プレゼンテーション モードで画面を暗くするまでの時間に掛ける倍率</translation>
 <translation id="7717938661004793600"><ph name="PRODUCT_OS_NAME" /> のユーザー補助機能を設定します。</translation>
+<translation id="7731026922044991970">すべてのサイトの Cookie を以前の <ph name="ATTRIBUTE_SAMESITE_NAME" /> 動作に戻す</translation>
 <translation id="7747447585227954402">デバイスが <ph name="PRODUCT_OS_NAME" /> で <ph name="PLUGIN_VM_NAME" /> を使用できるようにする</translation>
 <translation id="7749402620209366169">リモート アクセス ホストに、ユーザー指定の PIN の代わりに 2 段階認証プロセスを有効にします。
 
@@ -3951,6 +4018,7 @@
           このポリシーを設定した場合、ユーザーによる変更やオーバーライドはできません。
 
           このポリシーを設定しない場合、ハイ コントラストは初期設定ではログイン画面で無効ですが、ユーザーはいつでも有効にできます。</translation>
+<translation id="7869986671709030417">背景のグラフィックのデフォルト印刷モード</translation>
 <translation id="787125417158068494">このポリシーを SyncDisabled に設定するか、設定しない場合、ARC アプリで <ph name="PRODUCT_OS_NAME" /> の証明書を使用することはできません。
 
       CopyCaCerts に設定すると、ARC アプリでは、ONC によってインストールされ <ph name="WEB_TRUSTED_BIT" /> を使用するすべての CA 証明書を使用できます。</translation>
@@ -4470,6 +4538,17 @@
 
       この設定を指定しない場合、ユーザーはこの機能を使用するかどうかを自分で指定できます。</translation>
 <translation id="8871974300055371298">コンテンツの設定</translation>
+<translation id="8872402969096027761">ログイン画面で「自動クリック」ユーザー補助機能を有効にします。
+
+          これは、ユーザーがマウスやタッチパッドのボタンを押さなくても、マウスカーソルが止まると自動でクリックが行われるようにする機能です。
+
+          このポリシーを true に設定した場合、ログイン画面で自動クリックは常に有効になります。
+
+          このポリシーを false に設定した場合、ログイン画面で自動クリックは常に無効になります。
+
+          このポリシーを設定した場合、ユーザーが設定を変更またはオーバーライドすることはできません。
+
+          このポリシーを設定しない場合、ログイン画面において自動クリックは初期設定で無効になりますが、ユーザーはいつでも設定を有効にできます。</translation>
 <translation id="8876188741456358123">デフォルトの両面印刷モードをオーバーライドします。このモードを使用できない場合、このポリシーは無視されます。</translation>
 <translation id="8882006618241293596">これらのサイトで <ph name="FLASH_PLUGIN_NAME" /> プラグインをブロックする</translation>
 <translation id="8906768759089290519">ゲスト モードを有効にする</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 323994ab..e35a1922 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -626,7 +626,7 @@
           Nếu bạn tắt tùy chọn cài đặt này, thì người dùng sẽ không được phép chuyển tệp. Nếu bạn bật hoặc không đặt tùy chọn cài đặt này, thì người dùng có thể chuyển tệp.</translation>
 <translation id="2057317273526988987">Cho phép truy cập vào một danh sách các URL</translation>
 <translation id="2061810934846663491">Định cấu hình tên miền bắt buộc cho máy chủ truy cập từ xa</translation>
-<translation id="2063663607822994541">Định cấu hình dung lượng bộ nhớ mà một phiên bản <ph name="PRODUCT_NAME" /> có thể sử dụng trước khi tab bắt đầu bị hủy (nghĩa là dung lượng bộ nhớ mà tab sử dụng sẽ được giải phóng và tab sẽ phải tải lại khi chuyển đổi) để tiết kiệm bộ nhớ.
+<translation id="2063663607822994541">Định cấu hình dung lượng bộ nhớ mà một phiên bản <ph name="PRODUCT_NAME" /> có thể sử dụng trước khi các tab bắt đầu bị hủy (nghĩa là dung lượng bộ nhớ mà tab sử dụng sẽ được giải phóng và tab sẽ phải tải lại khi chuyển đổi) để tiết kiệm bộ nhớ.
 
       Nếu bạn đặt chính sách này, thì trình duyệt sẽ bắt đầu hủy các tab để tiết kiệm bộ nhớ sau khi vượt quá giới hạn. Tuy nhiên, không thể đảm bảo rằng trình duyệt sẽ luôn chạy trong mức giới hạn. Mọi giá trị chưa đầy 2048 sẽ được làm tròn thành 2048.
 
@@ -806,13 +806,13 @@
       Nếu cài đặt này được bật thì lịch sử duyệt web sẽ không được lưu. Cài đặt này cũng sẽ tắt đồng bộ hóa tab.
 
       Nếu cài đặt này bị tắt hoặc không được đặt thì lịch sử duyệt web sẽ được lưu.</translation>
-<translation id="2423038190900972331">Kiểm soát cách <ph name="PRODUCT_NAME" /> kiểm tra dữ liệu được tải lên, tải xuống, dán từ khay nhớ tạm hoặc kéo và thả xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không.
+<translation id="2423038190900972331">Kiểm soát cách <ph name="PRODUCT_NAME" /> kiểm tra dữ liệu được tải lên, tải xuống, dán từ khay nhớ tạm hoặc kéo và thả xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không.
 
-      Nếu bạn không đặt hoặc đặt chính sách này thành 'None', thì <ph name="PRODUCT_NAME" /> sẽ không kiểm tra bất kỳ dữ liệu nào để xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không.
+      Nếu bạn không đặt hoặc đặt chính sách này thành 'None', thì <ph name="PRODUCT_NAME" /> sẽ không kiểm tra bất kỳ dữ liệu nào để xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không.
 
-      Nếu bạn đặt chính sách này thành 'Kiểm tra tệp đã tải xuống' và người dùng cố tải tệp xuống từ một URL trong chính sách <ph name="DOMAINS_TO_CHECK_COMPLIANCE_OF_DOWNLOADED_CONTENT_POLICTY_NAME" />, thì <ph name="PRODUCT_NAME" /> sẽ kiểm tra dữ liệu tải xuống xem có tuân thủ các quy tắc của doanh nghiệp hay không.
+      Nếu bạn đặt chính sách này thành 'Kiểm tra tệp đã tải xuống' và người dùng cố tải tệp xuống từ một URL trong chính sách <ph name="DOMAINS_TO_CHECK_COMPLIANCE_OF_DOWNLOADED_CONTENT_POLICTY_NAME" />, thì <ph name="PRODUCT_NAME" /> sẽ kiểm tra dữ liệu được tải xuống xem có tuân thủ các quy tắc của doanh nghiệp hay không.
 
-      Nếu bạn đặt chính sách này thành 'Kiểm tra tệp đã tải lên' và người dùng cố tải tệp lên một miền không có trong <ph name="DOMAINS_TO_NOT_CHECK_COMPLIANCE_OF_UPLOADED_CONTENT_POLICY_NAME" />, thì <ph name="PRODUCT_NAME" /> sẽ kiểm tra tệp được tải lên, dữ liệu đã dán từ khay nhớ tạm hoặc dữ liệu đã kéo và thả xem có tuân thủ các quy tắc của doanh nghiệp hay không.
+      Nếu bạn đặt chính sách này thành 'Kiểm tra tệp đã tải lên' và người dùng cố tải tệp lên một miền không có trong <ph name="DOMAINS_TO_NOT_CHECK_COMPLIANCE_OF_UPLOADED_CONTENT_POLICY_NAME" />, thì <ph name="PRODUCT_NAME" /> sẽ kiểm tra tệp được tải lên, dữ liệu được dán từ khay nhớ tạm hoặc dữ liệu được kéo và thả xem có tuân thủ các quy tắc của doanh nghiệp hay không.
 
       Nếu bạn đặt chính sách này thành 'Kiểm tra tệp đã tải lên và tệp đã tải xuống', thì <ph name="PRODUCT_NAME" /> sẽ hoạt động theo các quy tắc nêu trong phần 'Kiểm tra tệp đã tải xuống' và 'Kiểm tra tệp đã tải lên'.
       </translation>
@@ -1027,21 +1027,21 @@
 <translation id="268577405881275241">Bật tính năng proxy nén dữ liệu</translation>
 <translation id="2693108589792503178">Định cấu hình URL thay đổi mật khẩu.</translation>
 <translation id="2694143893026486692">Đã bật tùy chọn phóng to ở vị trí cố định</translation>
-<translation id="2694188263972877487">Định cấu hình loại tệp đã tải xuống mà <ph name="PRODUCT_NAME" /> sẽ chặn hoàn toàn, nhưng không cho phép người dùng ghi đè quyết định bảo mật.
+<translation id="2694188263972877487">Định cấu hình loại tệp đã tải xuống mà <ph name="PRODUCT_NAME" /> sẽ chặn hoàn toàn, mà không cho phép người dùng ghi đè quyết định bảo mật.
 
       Nếu bạn đặt chính sách này, thì <ph name="PRODUCT_NAME" /> sẽ ngăn một số loại tệp đã tải xuống nhất định và không cho phép người dùng bỏ qua cảnh báo bảo mật.
 
-      Khi bạn chọn tùy chọn 'Chặn các tệp đã tải xuống nguy hiểm', thì tất cả các tệp đã tải xuống đều được phép, trừ những tệp có cảnh báo của dịch vụ Duyệt web an toàn.
+      Khi bạn chọn tùy chọn 'Chặn các tệp nguy hiểm đã tải xuống', thì tất cả các tệp đã tải xuống đều được phép, trừ những tệp có cảnh báo của dịch vụ Duyệt web an toàn.
 
       Khi bạn chọn tùy chọn 'Chặn các tệp đã tải xuống có thể gây nguy hiểm', thì tất cả các tệp đã tải xuống đều được phép, trừ những tệp có cảnh báo của dịch vụ Duyệt web an toàn cho biết tệp đã tải xuống có thể gây nguy hiểm.
 
       Khi bạn chọn tùy chọn 'Chặn tất cả các tệp đã tải xuống', thì tất cả các tệp đã tải xuống đều sẽ bị chặn.
 
-      Khi bạn chọn tùy chọn 'Chặn tệp đã tải xuống độc hại', thì tất cả các tệp đã tải xuống đều được phép, trừ những tệp mà dịch vụ Duyệt web an toàn đánh giá có nhiều khả năng là độc hại. Khác với các tệp đã tải xuống nguy hiểm, chính sách này không xem xét loại tệp mà xem xét máy chủ.
+      Khi bạn chọn tùy chọn 'Chặn tệp độc hại đã tải xuống', thì tất cả các tệp đã tải xuống đều được phép, trừ những tệp mà dịch vụ Duyệt web an toàn đánh giá có nhiều khả năng là độc hại. Khác với các tệp nguy hiểm đã tải xuống, chính sách này không xem xét loại tệp mà xem xét máy chủ.
 
       Khi bạn không đặt chính sách này, (hoặc chọn tùy chọn 'Không có hạn chế đặc biệt'), thì các hạn chế bảo mật thông thường sẽ được áp dụng cho tệp đã tải xuống dựa trên kết quả phân tích của dịch vụ Duyệt web an toàn.
 
-      Lưu ý rằng những hạn chế này áp dụng cho các tệp đã tải xuống được kích hoạt từ nội dung trang web cũng như tùy chọn trình đơn ngữ cảnh 'đường liên kết tải xuống...'. Những hạn chế này không áp dụng cho việc lưu/tải xuống từ trang đang hiển thị cũng như không áp dụng cho việc lưu dưới dạng tệp PDF từ các tùy chọn in.
+      Lưu ý rằng những hạn chế này áp dụng cho các tệp đã tải xuống được kích hoạt từ nội dung trang web cũng như tùy chọn trình đơn theo ngữ cảnh 'đường liên kết tải xuống...'. Những hạn chế này không áp dụng cho việc lưu/tải trang đang hiển thị xuống cũng như không áp dụng cho việc lưu dưới dạng tệp PDF từ các tùy chọn in.
 
       Để biết thêm thông tin về dịch vụ Duyệt web an toàn, vui lòng truy cập vào https://developers.google.com/safe-browsing.</translation>
 <translation id="2706708761587205154">Chỉ cho phép in khi có mã PIN</translation>
@@ -1491,7 +1491,7 @@
           Nếu chính sách này bị đặt thành Sai hoặc không được đặt, độ trễ quản lý nguồn và giới hạn thời lượng phiên sẽ bắt đầu chạy ngay lập tức khi bắt đầu phiên.</translation>
 <translation id="3478024346823118645">Xóa dữ liệu người dùng khi đăng xuất</translation>
 <translation id="3480961938508521469">Sạc đầy pin ở tốc độ tiêu chuẩn.</translation>
-<translation id="348110646151632565">Bật tính năng hỗ trợ tiếp cận chọn để nói trên màn hình đăng nhập.
+<translation id="348110646151632565">Bật tính năng hỗ trợ tiếp cận về chọn để nói trên màn hình đăng nhập.
 
           Nếu bạn đặt chính sách này thành true, thì tính năng chọn để nói sẽ luôn bật trên màn hình đăng nhập.
 
@@ -1588,7 +1588,7 @@
 <translation id="3591527072193107424">Bật tính năng Hỗ trợ trình duyệt cũ.</translation>
 <translation id="3591584750136265240">Định cấu hình hành vi xác thực thông tin đăng nhập</translation>
 <translation id="3617743504695003280">Cho phép một trang thực hiện các yêu cầu XHR đồng bộ trong khi đóng trang.</translation>
-<translation id="3624515566460517364">Kiểm tra tệp đã tải lên và tệp đã tải xuống để xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không</translation>
+<translation id="3624515566460517364">Kiểm tra tệp đã tải lên và tệp đã tải xuống để xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không</translation>
 <translation id="3627678165642179114">Bật hoặc tắt dịch vụ web kiểm tra lỗi chính tả</translation>
 <translation id="3628480121685794414">Bật chế độ in một mặt</translation>
 <translation id="3631099945620529777">Nếu bạn đặt chính sách này thành false thì nút 'Kết thúc quá trình' sẽ bị tắt trong Trình quản lý tác vụ.
@@ -1763,7 +1763,7 @@
           Nếu bạn không đặt chính sách này, thì ban đầu, tính năng làm nổi bật tiêu điểm bằng bàn phím sẽ tắt nhưng người dùng có thể bật bất cứ lúc nào.</translation>
 <translation id="3874773863217952418">Bật tính năng Nhấn để tìm kiếm</translation>
 <translation id="3877517141460819966">Chế độ xác thực hai yếu tố tích hợp</translation>
-<translation id="3879196885908353077">Kiểm tra tệp đã tải xuống xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không</translation>
+<translation id="3879196885908353077">Kiểm tra tệp đã tải xuống xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không</translation>
 <translation id="3879208481373875102">Định cấu hình danh sách Ứng dụng web buộc cài đặt</translation>
 <translation id="388237772682176890">Chính sách này không được dùng trong M53 nữa và bị xóa trong M54, vì hỗ trợ của SPDY/3.1 đã bị xóa.
 
@@ -2245,14 +2245,14 @@
           Nếu chính sách này được thiết lập thành true, các phím ở hàng trên cùng của bàn phím sẽ tạo các lệnh phím chức năng mỗi mặc định. Phải nhấn phím tìm kiếm để hoàn nguyên hoạt động của chúng về phím phương tiện.
 
           Nếu chính sách này được thiết lập thành false hoặc không được thiết lập, bàn phím sẽ tạo lệnh phím phương tiện mỗi mặc định và các lệnh phím chức năng khi giữ phím tìm kiếm.</translation>
-<translation id="4636613705027089602">Chính sách này kiểm soát các yêu cầu cài đặt tiện ích của <ph name="PRODUCT_NAME" />. Tiện ích này cho phép người dùng gửi yêu cầu đến Bảng điều khiển dành cho quản trị viên của Google để xin phê duyệt.
+<translation id="4636613705027089602">Chính sách này kiểm soát việc người dùng có thể gửi yêu cầu cài đặt tiện ích của <ph name="PRODUCT_NAME" /> đến Bảng điều khiển dành cho quản trị viên của Google để xin phê duyệt hay không.
 
       Khi bạn không đặt hoặc đặt chính sách này thành tắt, thì các yêu cầu cài đặt tiện ích sẽ không được tạo hoặc tải lên.
       Khi bạn đặt chính sách này thành bật, thì các yêu cầu cài đặt tiện ích sẽ được tạo và tải lên Bảng điều khiển dành cho quản trị viên của Google.
 
       Các yêu cầu cài đặt tiện ích sẽ được tạo khi người dùng cố gắng cài đặt một tiện ích mà <ph name="EXTENSION_INSTALL_WHITELIST" /> hoặc <ph name="EXTENSION_SETTINGS" /> không đưa vào danh sách cho phép.
 
-      Chính sách này chỉ có hiệu lực khi bật <ph name="CLOUD_REPORTING_ENABLED" /> và đăng ký máy với <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.</translation>
+      Chính sách này chỉ có hiệu lực khi <ph name="CLOUD_REPORTING_ENABLED" /> ở trạng thái bật và máy được đăng ký bằng <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.</translation>
 <translation id="4639407427807680016">Tên của các máy chủ nhắn tin gốc cần xóa khỏi danh sách cấm</translation>
 <translation id="4650759511838826572">Tắt lược đồ giao thức URL</translation>
 <translation id="465099050592230505">URL cửa hàng trực tuyến dành cho doanh nghiệp (không dùng nữa)</translation>
@@ -2369,7 +2369,7 @@
 <translation id="4874982543810021567">Chặn WebUSB trên các trang web này</translation>
 <translation id="4876805738539874299">Đã bật phiên bản SSL tối đa</translation>
 <translation id="4887274746092315609">Cho phép một trang để người dùng SAML có thể đổi mật khẩu ngay trong phiên đăng nhập</translation>
-<translation id="4887863670424903990">Khi bạn đặt chính sách này thành bật, thì <ph name="PRODUCT_NAME" /> sẽ báo cáo các sự kiện không an toàn, chẳng hạn như dùng lại mật khẩu, tệp đã tải xuống có phần mềm độc hại, quảng cáo xen kẽ, hành vi vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm, v.v. cho Google để phân tích.  Một số sự kiện không an toàn, chẳng hạn như hành vi vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm, sẽ phụ thuộc vào các chính sách khác cho phép các hoạt động kiểm tra liên quan.
+<translation id="4887863670424903990">Khi bạn đặt chính sách này thành bật, thì <ph name="PRODUCT_NAME" /> sẽ báo cáo các sự kiện không an toàn, chẳng hạn như dùng lại mật khẩu, tệp đã tải xuống có phần mềm độc hại, quảng cáo xen kẽ, hành vi vi phạm quy tắc bảo vệ dữ liệu nhạy cảm, v.v. cho Google để phân tích.  Một số sự kiện không an toàn, chẳng hạn như hành vi vi phạm quy tắc bảo vệ dữ liệu nhạy cảm, sẽ phụ thuộc vào các chính sách khác cho phép các hoạt động kiểm tra liên quan.
 
       Nếu bạn không đặt hoặc đặt chính sách này thành tắt, thì <ph name="PRODUCT_NAME" /> sẽ không báo cáo các sự kiện không an toàn.
       </translation>
@@ -2628,7 +2628,7 @@
       Để cho phép chạy Crostini, bạn Cần đặt tất cả ba chính sách, VirtualMachinesAllowed, CrostiniAllowed và DeviceUnaffiliatedCrostiniAllowed thành true.
       Khi đổi chính sách này thành false, chính sách sẽ áp dụng cho quá trình khởi động các vùng chứa Crostini mới nhưng không tắt các vùng chứa đang chạy.</translation>
 <translation id="5283457834853986457">Tắt trình tìm kiếm plugin (không được dùng nữa)</translation>
-<translation id="5285315763984334157">Chặn tệp đã tải xuống độc hại</translation>
+<translation id="5285315763984334157">Chặn tệp độc hại đã tải xuống</translation>
 <translation id="5288772341821359899">Nếu đã đặt chính sách, phạm vi cổng UDP mà WebRTC sử dụng sẽ được hạn chế đến phạm vi cổng được chỉ định (đã bao gồm cả điểm cuối).
 
       Nếu chưa đặt chính sách hoặc nếu chính sách được đặt thành chuỗi trống hoặc phạm vi cổng không hợp lệ thì WebRTC được phép sử dụng bất kỳ cổng UDP cục bộ khả dụng nào.</translation>
@@ -2687,7 +2687,7 @@
 
           Nếu bạn không đặt chính sách này, thì tính năng khay nhớ tạm dùng chung sẽ được bật theo mặc định.
 
-          Quản trị viên có quyền đặt chính sách trên tất cả các nền tảng mà họ quan tâm. Bạn nên đặt chính sách này thành một giá trị trên tất cả các nền tảng.</translation>
+          Quản trị viên có thể tùy ý đặt chính sách trên tất cả các nền tảng mà họ quan tâm. Bạn nên đặt một giá trị giống nhau cho chính sách này trên tất cả các nền tảng.</translation>
 <translation id="5391388690191341203">Tự động đăng nhập vào tài khoản trên thiết bị</translation>
 <translation id="5392172595902933844">Thông tin về trạng thái của Android được gửi lại cho
       máy chủ.
@@ -2980,7 +2980,7 @@
 
       Nếu bạn đặt chính sách này thành true, thì thông tin hệ thống sẽ buộc phải hiển thị.
       Nếu bạn đặt chính sách này thành false, thì thông tin hệ thống sẽ buộc phải ẩn.
-      Nếu bạn không đặt chính sách này, thì hành vi mặc định (đang hiển thị cho kênh Canary/Dev)
+      Nếu bạn không đặt chính sách này, thì hành vi mặc định (là hiển thị đối với kênh Canary/Dev)
       sẽ có hiệu lực. Người dùng có thể bật/tắt chế độ hiển thị bằng các thao tác cụ thể (ví dụ: Alt-V).</translation>
 <translation id="5741810844420698449">Khi bạn đặt, chính sách này sẽ chỉ định hành động mà <ph name="PRODUCT_OS_NAME" /> sẽ thực hiện khi người dùng đóng nắp thiết bị.
 
@@ -3108,9 +3108,9 @@
 <translation id="6076099373507468537">Xác định danh sách thiết bị USB được phép tách khỏi trình điều khiển nhân hệ điều hành để sử dụng thông qua API chrome.usb ngay bên trong ứng dụng web. Mục nhập là các cặp Số nhận dạng nhà cung cấp USB và Số nhận dạng sản phẩm để xác định một phần cứng cụ thể.
 
       Nếu chính sách này chưa được định cấu hình, danh sách thiết bị USB có thể tách là trống.</translation>
-<translation id="607726879389885889">Chính sách này kiểm soát hành vi của <ph name="PRODUCT_NAME" /> khi người dùng cố tải lên hoặc tải xuống các tệp có kích thước quá lớn (50 MB trở lên), không gửi đi quét tìm phần mềm độc hại hoặc ngăn chặn dữ liệu nhạy cảm được.  Hạn chế này chỉ áp dụng với các tệp cần quét theo yêu cầu của <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />, <ph name="CHECK_CONTENT_COMPLIANCE_POLICY_NAME" /> và các chính sách kiểm soát danh sách miền được phép thực hiện quá trình kiểm tra.
+<translation id="607726879389885889">Chính sách này kiểm soát hành vi của <ph name="PRODUCT_NAME" /> khi người dùng cố tải lên hoặc tải xuống các tệp có kích thước quá lớn (50 MB trở lên), không gửi đi để quét tìm phần mềm độc hại hoặc bảo vệ dữ liệu nhạy cảm được.  Hạn chế này chỉ áp dụng với các tệp cần quét theo yêu cầu của <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />, <ph name="CHECK_CONTENT_COMPLIANCE_POLICY_NAME" /> và các chính sách kiểm soát danh sách miền được phép thực hiện quá trình kiểm tra.
 
-      Nếu bạn không đặt hoặc đặt chính sách này thành 'None', thì <ph name="PRODUCT_NAME" /> sẽ cho phép người dùng tải lên hoặc tải xuống các tệp có kích thước bất kỳ.
+      Nếu bạn không đặt hoặc đặt chính sách này thành 'None', thì <ph name="PRODUCT_NAME" /> sẽ cho phép người dùng tải lên hoặc tải xuống các tệp ở mọi kích thước.
 
       Nếu bạn đặt chính sách này thành 'Chặn tải tệp có kích thước lớn xuống', thì các tệp không quét được do kích thước quá lớn sẽ bị xóa trước khi hiển thị với người dùng.  Do không phải lúc nào cũng xác định được kích thước trước khi tải xuống nên <ph name="PRODUCT_NAME" /> có thể tải tệp xuống rồi mới xác định xem các tệp đó có vượt quá giới hạn kích thước cho phép hay không.
 
@@ -3274,7 +3274,7 @@
 <translation id="637934607141010488">Danh sách báo cáo người dùng thiết bị đã đăng nhập gần đây.
 
       Nếu chính sách này được đặt thành sai, người dùng sẽ không được báo cáo.</translation>
-<translation id="638668187106406971">Kiểm tra tệp đã tải lên để xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không</translation>
+<translation id="638668187106406971">Kiểm tra tệp đã tải lên để xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không</translation>
 <translation id="6394350458541421998">Chính sách này đã chấm dứt kể từ phiên bản <ph name="PRODUCT_OS_NAME" /> 29. Vui lòng sử dụng chính sách PresentationScreenDimDelayScale thay vào đó.</translation>
 <translation id="6401669939808766804">Đăng xuất người dùng</translation>
 <translation id="6406448383934634215">Nếu chọn 'Mở một danh sách URL' làm thao tác khởi động, thì bạn có thể chỉ định danh sách URL sẽ được mở. Nếu bạn không đặt chính sách, thì sẽ không có URL nào mở khi khởi động.
@@ -4209,7 +4209,7 @@
       Khi không đặt chính sách này trên thiết bị được quản lý, thiết bị sẽ không được phép sử dụng máy ảo.
       Các thiết bị chưa được quản lý được phép sử dụng máy ảo.</translation>
 <translation id="8001701200415781021">Hạn chế Tài khoản Google nào được phép đặt làm tài khoản chính của trình duyệt trong <ph name="PRODUCT_NAME" /></translation>
-<translation id="8003853057959146975">Gửi tệp để kiểm tra xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không</translation>
+<translation id="8003853057959146975">Gửi tệp để kiểm tra xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không</translation>
 <translation id="8009554972280451023">Nếu bạn bật tùy chọn cài đặt này, thì các tùy chọn cài đặt lưu trữ trong cấu hình của <ph name="PRODUCT_NAME" /> như dấu trang, dữ liệu tự động điền, mật khẩu, v.v cũng sẽ được ghi vào một tệp được lưu trữ trong thư mục cấu hình Người dùng chuyển vùng hoặc một vị trí do Quản trị viên chỉ định thông qua chính sách <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Việc bật chính sách này sẽ tính năng tắt đồng bộ hóa trên đám mây.
 
       Nếu tắt hoặc không đặt chính sách này thì bạn chỉ có thể sử dụng các cấu hình cục bộ thông thường.
@@ -4744,7 +4744,7 @@
 <translation id="8942616385591203339">Chính sách này sẽ kiểm soát liệu màn hình Đồng ý đồng bộ hóa có hiển thị với người dùng trong lần đăng nhập đầu tiên hay không. Bạn nên đặt chính sách này thành false nếu không cần hiển thị màn hình Đồng ý đồng bộ hóa cho người dùng.
       Nếu đặt chính sách thành false, thì màn hình Đồng ý đồng bộ hóa sẽ không hiển thị.
       Nếu đặt thành true hoặc không đặt chính sách này, thì màn hình Đồng ý đồng bộ hóa có thể được hiển thị.</translation>
-<translation id="8943934315109955032">Không kiểm tra xem có vi phạm quy tắc ngăn chặn dữ liệu nhạy cảm hay không</translation>
+<translation id="8943934315109955032">Không kiểm tra xem có vi phạm quy tắc bảo vệ dữ liệu nhạy cảm hay không</translation>
 <translation id="894510252300143386">Định cấu hình các tùy chọn cài đặt quản lý tiện ích cho <ph name="PRODUCT_NAME" />.
 
           Chính sách này kiểm soát nhiều tùy chọn cài đặt, bao gồm cả những tùy chọn cài đặt chịu sự kiểm soát của mọi chính sách hiện có liên quan đến tiện ích. Chính sách này sẽ ghi đè bất cứ chính sách cũ nào nếu bạn đặt cả hai.
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index f2d09d8..eaea747d 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -611,9 +611,7 @@
           如果停用這項政策,使用者將無法傳輸檔案。如果啟用或不設定這項政策,使用者將可以傳輸檔案。</translation>
 <translation id="2057317273526988987">允許存取網址清單</translation>
 <translation id="2061810934846663491">為遠端存取主機設定必要的網域名稱</translation>
-<translation id="2063663607822994541">設定系統為了節省記憶體而開始捨棄分頁 (也就是說,系統釋放分頁所用的記憶體,當使用者切換至該分頁時,系統必須重新載入分頁) 之前,單一 <ph name="PRODUCT_NAME" /> 例項可以使用的記憶體大小。
-
-      設定這項政策後,如果超過記憶體使用限制,瀏覽器會開始捨棄分頁以節省記憶體。不過,我們無法保證瀏覽器運作時,記憶體使用量會一律在限制值以下。2048 以下的值會進位到 2048。
+<translation id="2063663607822994541">設定單一 <ph name="PRODUCT_NAME" /> 例項可用的記憶體大小。超過此值後,系統會開始捨棄分頁以節省記憶體。這表示系統會釋放分頁所用的記憶體,而當使用者切換至該分頁時,系統必須重新載入該分頁。設定這項政策後,如果超過記憶體使用限制,瀏覽器會開始捨棄分頁以節省記憶體。不過,我們無法保證瀏覽器運作時,記憶體使用量會一律在限制值以下。2048 以下的值會進位到 2048。
 
       如果不設定這項政策,瀏覽器只會在偵測到電腦上的實體記憶體即將用盡時,才會開始嘗試節省記憶體。</translation>
 <translation id="206623763829450685">指定 <ph name="PRODUCT_NAME" /> 支援的 HTTP 驗證機制。
@@ -2178,7 +2176,7 @@
 <translation id="4636613705027089602">這項政策控管 <ph name="PRODUCT_NAME" /> 擴充功能安裝要求,能讓使用者傳送要求至 Google 管理控制台以取得核准。
 
       如果不設定這項政策或設為停用,系統就不會建立或上傳擴充功能安裝要求。
-      如果啟用這項政策,系統會建立擴充功能要求,並上傳至 Google 管理控制台。
+      如果啟用這項政策,系統會建立擴充功能安裝要求,並上傳至 Google 管理控制台。
 
       當使用者嘗試安裝並未透過 <ph name="EXTENSION_INSTALL_WHITELIST" /> 或 <ph name="EXTENSION_SETTINGS" /> 加入許可清單的擴充功能時,系統就會建立擴充功能安裝要求。
 
@@ -3003,11 +3001,11 @@
 
       如果不設定這項政策或設為「None」,<ph name="PRODUCT_NAME" /> 會允許使用者上傳或下載任何大小的檔案。
 
-      如果將這項政策設為「禁止下載大型檔案」,當檔案過大而無法掃描時,系統會在將檔案提供給使用者之前就先刪除檔案。由於 <ph name="PRODUCT_NAME" /> 不一定可在下載前判定檔案大小,系統可能會先下載檔案,再判斷檔案大小是否超過允許的大小上限。
+      如果將這項政策設為「封鎖大型檔案的下載作業」,當檔案過大而無法掃描時,系統會在檔案提供給使用者之前就先刪除檔案。由於 <ph name="PRODUCT_NAME" /> 不一定可在下載前判定檔案大小,系統可能會先下載檔案,再判斷檔案大小是否超過允許的大小上限。
 
-      如果將這項政策設為「禁止上傳大型檔案」,使用者在上傳時將無法選取因大小過大而無法掃描的檔案。
+      如果將這項政策設為「封鎖大型檔案上傳作業」,使用者在上傳時將無法選取因過大而無法掃描的檔案。
 
-      如果將這項政策設為「禁止上傳及下載大型檔案」,<ph name="PRODUCT_NAME" /> 會依照「禁止下載大型檔案」和「禁止上傳大型檔案」設定的規則執行作業。
+      如果將這項政策設為「禁止上傳及下載大型檔案」,<ph name="PRODUCT_NAME" /> 會依照「封鎖大型檔案的下載作業」和「封鎖大型檔案上傳作業」設定的規則執行作業。
       </translation>
 <translation id="6083631234867522991">Windows (Windows 用戶端):</translation>
 <translation id="608788685013546076">設定用電尖峰轉移電池閾值 (以百分比為單位)</translation>
diff --git a/components/safe_browsing/android/remote_database_manager.cc b/components/safe_browsing/android/remote_database_manager.cc
index 18198cf..4bd0bed 100644
--- a/components/safe_browsing/android/remote_database_manager.cc
+++ b/components/safe_browsing/android/remote_database_manager.cc
@@ -239,8 +239,14 @@
     const GURL& url,
     Client* client) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  // TODO(crbug.com/1014202): Add local high confidence allowlist.
-  return AsyncMatch::NO_MATCH;
+
+  if (!enabled_ || !CanCheckUrl(url))
+    return AsyncMatch::NO_MATCH;
+
+  // TODO(crbug.com/1014202): Make this call async.
+  SafeBrowsingApiHandler* api_handler = SafeBrowsingApiHandler::GetInstance();
+  bool is_match = api_handler->StartHighConfidenceAllowlistCheck(url);
+  return is_match ? AsyncMatch::MATCH : AsyncMatch::NO_MATCH;
 }
 
 bool RemoteSafeBrowsingDatabaseManager::CheckUrlForSubresourceFilter(
diff --git a/components/safe_browsing/android/remote_database_manager_unittest.cc b/components/safe_browsing/android/remote_database_manager_unittest.cc
index b49312a..408f838 100644
--- a/components/safe_browsing/android/remote_database_manager_unittest.cc
+++ b/components/safe_browsing/android/remote_database_manager_unittest.cc
@@ -28,6 +28,9 @@
                      const GURL& url,
                      const SBThreatTypeSet& threat_types) override {}
   bool StartCSDAllowlistCheck(const GURL& url) override { return false; }
+  bool StartHighConfidenceAllowlistCheck(const GURL& url) override {
+    return false;
+  }
 };
 
 }  // namespace
diff --git a/components/safe_browsing/android/safe_browsing_api_handler.h b/components/safe_browsing/android/safe_browsing_api_handler.h
index f1896df..fcefe82 100644
--- a/components/safe_browsing/android/safe_browsing_api_handler.h
+++ b/components/safe_browsing/android/safe_browsing_api_handler.h
@@ -38,6 +38,8 @@
 
   virtual bool StartCSDAllowlistCheck(const GURL& url) = 0;
 
+  virtual bool StartHighConfidenceAllowlistCheck(const GURL& url) = 0;
+
   virtual ~SafeBrowsingApiHandler() {}
 
  private:
diff --git a/components/safe_browsing/android/safe_browsing_api_handler_bridge.cc b/components/safe_browsing/android/safe_browsing_api_handler_bridge.cc
index fb27908..05f961b 100644
--- a/components/safe_browsing/android/safe_browsing_api_handler_bridge.cc
+++ b/components/safe_browsing/android/safe_browsing_api_handler_bridge.cc
@@ -65,6 +65,8 @@
       return safe_browsing::JAVA_THREAT_TYPE_UNWANTED_SOFTWARE;
     case SB_THREAT_TYPE_CSD_WHITELIST:
       return safe_browsing::JAVA_THREAT_TYPE_CSD_ALLOWLIST;
+    case SB_THREAT_TYPE_HIGH_CONFIDENCE_ALLOWLIST:
+      return safe_browsing::JAVA_THREAT_TYPE_HIGH_CONFIDENCE_ALLOWLIST;
     default:
       NOTREACHED();
       return 0;
@@ -214,6 +216,21 @@
   return j_api_handler_.obj() != nullptr;
 }
 
+bool SafeBrowsingApiHandlerBridge::StartAllowlistCheck(
+    const GURL& url,
+    const SBThreatType& sb_threat_type) {
+  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  if (!CheckApiIsSupported()) {
+    return false;
+  }
+
+  JNIEnv* env = AttachCurrentThread();
+  ScopedJavaLocalRef<jstring> j_url = ConvertUTF8ToJavaString(env, url.spec());
+  int j_threat_type = SBThreatTypeToJavaThreatType(sb_threat_type);
+  return Java_SafeBrowsingApiBridge_startAllowlistLookup(env, j_api_handler_,
+                                                         j_url, j_threat_type);
+}
+
 std::string SafeBrowsingApiHandlerBridge::GetSafetyNetId() {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   bool feature_enabled = base::FeatureList::IsEnabled(kCaptureSafetyNetId);
@@ -261,18 +278,13 @@
 }
 
 bool SafeBrowsingApiHandlerBridge::StartCSDAllowlistCheck(const GURL& url) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  if (!CheckApiIsSupported()) {
-    return false;
-  }
+  return StartAllowlistCheck(url, safe_browsing::SB_THREAT_TYPE_CSD_WHITELIST);
+}
 
-  // TODO(crbug.com/999344): Add UMA metrics
-  JNIEnv* env = AttachCurrentThread();
-  ScopedJavaLocalRef<jstring> j_url = ConvertUTF8ToJavaString(env, url.spec());
-  int j_threat_type =
-      SBThreatTypeToJavaThreatType(safe_browsing::SB_THREAT_TYPE_CSD_WHITELIST);
-  return Java_SafeBrowsingApiBridge_startAllowlistLookup(env, j_api_handler_,
-                                                         j_url, j_threat_type);
+bool SafeBrowsingApiHandlerBridge::StartHighConfidenceAllowlistCheck(
+    const GURL& url) {
+  return StartAllowlistCheck(
+      url, safe_browsing::SB_THREAT_TYPE_HIGH_CONFIDENCE_ALLOWLIST);
 }
 
 }  // namespace safe_browsing
diff --git a/components/safe_browsing/android/safe_browsing_api_handler_bridge.h b/components/safe_browsing/android/safe_browsing_api_handler_bridge.h
index 040ab09c..ad5086c 100644
--- a/components/safe_browsing/android/safe_browsing_api_handler_bridge.h
+++ b/components/safe_browsing/android/safe_browsing_api_handler_bridge.h
@@ -34,11 +34,15 @@
 
   bool StartCSDAllowlistCheck(const GURL& url) override;
 
+  bool StartHighConfidenceAllowlistCheck(const GURL& url) override;
+
  private:
   // Creates the |j_api_handler_| if it hasn't been already.  If the API is not
   // supported, this will return false and j_api_handler_ will remain nullptr.
   bool CheckApiIsSupported();
 
+  bool StartAllowlistCheck(const GURL& url, const SBThreatType& sb_threat_type);
+
   // The Java-side SafeBrowsingApiHandler. Must call CheckApiIsSupported first.
   base::android::ScopedJavaGlobalRef<jobject> j_api_handler_;
 
diff --git a/components/safe_browsing/android/safe_browsing_api_handler_util.cc b/components/safe_browsing/android/safe_browsing_api_handler_util.cc
index aebc6f85c..a8a9c0ae 100644
--- a/components/safe_browsing/android/safe_browsing_api_handler_util.cc
+++ b/components/safe_browsing/android/safe_browsing_api_handler_util.cc
@@ -165,6 +165,8 @@
       return 4;
     case JAVA_THREAT_TYPE_CSD_ALLOWLIST:
       return 5;
+    case JAVA_THREAT_TYPE_HIGH_CONFIDENCE_ALLOWLIST:
+      return 6;
     case JAVA_THREAT_TYPE_MAX_VALUE:
       return std::numeric_limits<int>::max();
   }
diff --git a/components/safe_browsing/android/safe_browsing_api_handler_util.h b/components/safe_browsing/android/safe_browsing_api_handler_util.h
index c5fd735..8d21e175 100644
--- a/components/safe_browsing/android/safe_browsing_api_handler_util.h
+++ b/components/safe_browsing/android/safe_browsing_api_handler_util.h
@@ -31,6 +31,7 @@
   // TODO(crbug.com/999344): temp magic number, update once GMSCore is
   // available.
   JAVA_THREAT_TYPE_CSD_ALLOWLIST = 16,
+  JAVA_THREAT_TYPE_HIGH_CONFIDENCE_ALLOWLIST = 17,
   JAVA_THREAT_TYPE_MAX_VALUE
 };
 
diff --git a/components/services/leveldb/leveldb_database_impl.cc b/components/services/leveldb/leveldb_database_impl.cc
index 991d1d9e..bfc8c85 100644
--- a/components/services/leveldb/leveldb_database_impl.cc
+++ b/components/services/leveldb/leveldb_database_impl.cc
@@ -176,51 +176,6 @@
                       std::move(callback)));
 }
 
-void LevelDBDatabaseImpl::GetMany(
-    std::vector<mojom::GetManyRequestPtr> keys_or_prefixes,
-    GetManyCallback callback) {
-  RunDatabaseTask(
-      base::BindOnce(
-          [](std::vector<mojom::GetManyRequestPtr> keys_or_prefixes,
-             const storage::DomStorageDatabase& db) {
-            std::vector<mojom::GetManyResultPtr> data;
-            for (const auto& request : keys_or_prefixes) {
-              mojom::GetManyResultPtr result = mojom::GetManyResult::New();
-              Status status;
-
-              if (request->is_key()) {
-                const std::vector<uint8_t>& key = request->get_key();
-                storage::DomStorageDatabase::Value value;
-                status = db.Get(key, &value);
-                if (status.ok())
-                  result->set_key_value(value);
-                else
-                  result->set_status(LeveldbStatusToError(status));
-              } else {
-                const std::vector<uint8_t>& key_prefix =
-                    request->get_key_prefix();
-                std::vector<storage::DomStorageDatabase::KeyValuePair> entries;
-                status = db.GetPrefixed(key_prefix, &entries);
-                if (status.ok()) {
-                  std::vector<mojom::KeyValuePtr> out_entries;
-                  for (auto& entry : entries) {
-                    out_entries.push_back(
-                        mojom::KeyValue::New(entry.key, entry.value));
-                  }
-                  result->set_key_prefix_values(std::move(out_entries));
-                } else {
-                  result->set_status(LeveldbStatusToError(status));
-                }
-              }
-
-              data.push_back(std::move(result));
-            }
-            return data;
-          },
-          std::move(keys_or_prefixes)),
-      std::move(callback));
-}
-
 void LevelDBDatabaseImpl::GetPrefixed(const std::vector<uint8_t>& key_prefix,
                                       GetPrefixedCallback callback) {
   struct GetPrefixedResult {
diff --git a/components/services/leveldb/leveldb_database_impl.h b/components/services/leveldb/leveldb_database_impl.h
index 8b32fb4..f5dde2a 100644
--- a/components/services/leveldb/leveldb_database_impl.h
+++ b/components/services/leveldb/leveldb_database_impl.h
@@ -79,26 +79,10 @@
   void GetPrefixed(const std::vector<uint8_t>& key_prefix,
                    GetPrefixedCallback callback);
 
-  using GetManyCallback =
-      base::OnceCallback<void(std::vector<mojom::GetManyResultPtr>)>;
-  void GetMany(std::vector<mojom::GetManyRequestPtr> keys_or_prefixes,
-               GetManyCallback callback);
-
   void CopyPrefixed(const std::vector<uint8_t>& source_key_prefix,
                     const std::vector<uint8_t>& destination_key_prefix,
                     StatusCallback callback);
 
- private:
-  using StatusAndKeyValues =
-      std::tuple<Status, std::vector<mojom::KeyValuePtr>>;
-
-  void OnDatabaseOpened(
-      StatusCallback callback,
-      base::SequenceBound<storage::DomStorageDatabase> database,
-      leveldb::Status status);
-
-  explicit LevelDBDatabaseImpl();
-
   template <typename ResultType>
   void RunDatabaseTask(
       base::OnceCallback<ResultType(const storage::DomStorageDatabase&)> task,
@@ -122,6 +106,17 @@
     }
   }
 
+ private:
+  using StatusAndKeyValues =
+      std::tuple<Status, std::vector<mojom::KeyValuePtr>>;
+
+  void OnDatabaseOpened(
+      StatusCallback callback,
+      base::SequenceBound<storage::DomStorageDatabase> database,
+      leveldb::Status status);
+
+  explicit LevelDBDatabaseImpl();
+
   base::SequenceBound<storage::DomStorageDatabase> database_;
 
   using DatabaseTask =
diff --git a/components/services/leveldb/public/mojom/leveldb.mojom b/components/services/leveldb/public/mojom/leveldb.mojom
index e008482..eac34b5 100644
--- a/components/services/leveldb/public/mojom/leveldb.mojom
+++ b/components/services/leveldb/public/mojom/leveldb.mojom
@@ -33,15 +33,3 @@
   array<uint8> key;
   array<uint8> value;
 };
-
-union GetManyRequest {
-  array<uint8> key_prefix;
-  array<uint8> key;
-};
-
-union GetManyResult {
-  DatabaseError status;
-  array<KeyValue> key_prefix_values;
-  array<uint8> key_value;
-};
-
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index dba6c15..0c32d06 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -773,7 +773,7 @@
 <translation id="480334179571489655">Error de la política d'origen</translation>
 <translation id="4803924862070940586"><ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
 <translation id="4807049035289105102">En aquest moment no podeu visitar <ph name="SITE" /> perquè el lloc web ha enviat credencials aleatòries que Google Chrome no pot processar. Els errors i els atacs de xarxa solen ser temporals, de manera que és probable que aquesta pàgina torni a funcionar més tard.</translation>
-<translation id="4813512666221746211">Error de xarxa</translation>
+<translation id="4813512666221746211">Error de la xarxa</translation>
 <translation id="4816492930507672669">Ajusta a la mida de la pàgina</translation>
 <translation id="4850886885716139402">Mostra</translation>
 <translation id="4854362297993841467">Aquest mètode d'entrega no està disponible. Prova'n un altre.</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index b0f0afe..483b2bf 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -551,7 +551,7 @@
 <translation id="3655670868607891010">Si este mensaje aparece con frecuencia, prueba a solucionarlo con estas <ph name="HELP_LINK" />.</translation>
 <translation id="3658742229777143148">Revisión</translation>
 <translation id="366077651725703012">Actualizar tarjeta de crédito</translation>
-<translation id="3672525478985456967">El nombre de este sitio web se parece al de <ph name="LOOKALIKE_DOMAIN" />. Los atacantes a veces imitan a otros sitios web haciendo pequeños cambios difíciles de ver en el nombre de dominio.</translation>
+<translation id="3672525478985456967">El nombre de este sitio web se parece al de <ph name="LOOKALIKE_DOMAIN" />. Los atacantes a veces imitan a otros sitios web haciendo pequeños cambios difíciles de ver en el nombre del dominio.</translation>
 <translation id="3676592649209844519">ID del dispositivo:</translation>
 <translation id="3677008721441257057">Quizás quisiste decir: &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;</translation>
 <translation id="3678029195006412963">No se ha podido firmar la solicitud</translation>
@@ -726,7 +726,7 @@
 <translation id="4477350412780666475">Pista siguiente</translation>
 <translation id="4482953324121162758">Este sitio web no se traducirá.</translation>
 <translation id="4490717597759821841">A7</translation>
-<translation id="4492519888999857993">Estas funciones están inhabilitadas de forma predeterminada. No estarán disponibles en las próximas versiones de Chrome.</translation>
+<translation id="4492519888999857993">Estas funciones están inhabilitadas de forma predeterminada. No estarán disponibles en futuras versiones de Chrome.</translation>
 <translation id="4493480324863638523">La URL no es válida. Debe ser una URL con una estructura estándar, como "http://example.com" o "https://example.com".</translation>
 <translation id="4503882053543859973">Architecture-D</translation>
 <translation id="4506176782989081258">Error de validación: <ph name="VALIDATION_ERROR" /></translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 3935703..124ae18c 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -5,6 +5,8 @@
 <translation id="1010200102790553230">לטעינת הדף מאוחר יותר</translation>
 <translation id="1015730422737071372">ספק פרטים נוספים</translation>
 <translation id="1021110881106174305">כרטיסים מאושרים</translation>
+<translation id="1023523064224774104">‏מערכת Chromium זיהתה שהזנת את הסיסמה שלך באתר
+          חשוד. יש לאפס את הסיסמה עכשיו!</translation>
 <translation id="1032854598605920125">סובב בכיוון השעון</translation>
 <translation id="1035334672863811645">‏היכנס ל-Chrome</translation>
 <translation id="1036348656032585052">כבה</translation>
@@ -546,6 +548,7 @@
 <translation id="3655670868607891010">אם נתקלת בזה לעתים קרובות, כדאי לנסות את ה<ph name="HELP_LINK" /> האלה.</translation>
 <translation id="3658742229777143148">גרסה קודמת</translation>
 <translation id="366077651725703012">עדכון כרטיס אשראי</translation>
+<translation id="3672525478985456967">שם הדומיין של האתר הזה דומה לדומיין <ph name="LOOKALIKE_DOMAIN" />. תוקפים שמחקים אתרים לפעמים משתמשים בשם הדומיין של האתר המקורי ועושים בו שינויים קלים ביותר כדי שיהיה קשה להבחין בהבדל.</translation>
 <translation id="3676592649209844519">מזהה מכשיר:</translation>
 <translation id="3677008721441257057">‏התכוונת לכתובת &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">לא ניתן היה לחתום על הבקשה</translation>
@@ -720,6 +723,7 @@
 <translation id="4477350412780666475">הטראק הבא</translation>
 <translation id="4482953324121162758">האתר הזה לא יתורגם.</translation>
 <translation id="4490717597759821841">A7</translation>
+<translation id="4492519888999857993">‏התכונות האלה מושבתות כברירת מחדל. הן לא יהיו זמינות בגרסאות עתידיות של Chrome.</translation>
 <translation id="4493480324863638523">‏כתובת URL לא חוקית. הסכימה של כתובת ה-URL צריכה להיות רגילה, כלומר: http://example.com או https://example.com.</translation>
 <translation id="4503882053543859973">Architecture-D</translation>
 <translation id="4506176782989081258">שגיאת אימות: <ph name="VALIDATION_ERROR" /></translation>
@@ -797,6 +801,7 @@
 <translation id="4880827082731008257">חיפוש בהיסטוריה</translation>
 <translation id="4881695831933465202">פתיחה</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4901778704868714008">שמירה...</translation>
 <translation id="4913987521957242411">ניקוב בפינה השמאלית העליונה</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{ועוד דף אינטרנט אחד}two{ועוד # דפי אינטרנט}many{ועוד # דפי אינטרנט}other{ועוד # דפי אינטרנט}}</translation>
 <translation id="4923417429809017348">דף זה תורגם משפה לא ידועה ל<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -1156,6 +1161,7 @@
 <translation id="6671697161687535275">‏האם להסיר מ-Chromium הצעות לטפסים?</translation>
 <translation id="6685834062052613830">צא והשלם את ההגדרה</translation>
 <translation id="6689271823431384964">‏מאחר שנכנסת לחשבון, Chrome מציע לשמור את הכרטיסים שלך בחשבון Google. אפשר לשנות את ההתנהגות הזאת בהגדרות. שם בעל הכרטיס מגיע מהחשבון שלך.</translation>
+<translation id="6704582573942289642">האם זה האתר הנכון?</translation>
 <translation id="6707256370811247129">‏סריקת התוכן של המטמון והקבצים שמעלים או מורידים ב-Chrome.</translation>
 <translation id="6710213216561001401">הקודם</translation>
 <translation id="6710594484020273272">&lt;הקלד מונח חיפוש&gt;</translation>
@@ -1449,6 +1455,7 @@
 <translation id="8184538546369750125">השתמש בברירת המחדל הכללית (אפשר)</translation>
 <translation id="8194797478851900357">&amp;ביטול העברה</translation>
 <translation id="8197543752516192074">תרגום הדף</translation>
+<translation id="8197899142098070286">‏מערכת Chrome זיהתה שהזנת את הסיסמה שלך באתר חשוד. יש לאפס את הסיסמה עכשיו!</translation>
 <translation id="8201077131113104583">כתובת אתר לא חוקית לעדכון עבור תוסף עם המזהה "<ph name="EXTENSION_ID" />".</translation>
 <translation id="8202097416529803614">סיכום הזמנה</translation>
 <translation id="8202370299023114387">התנגשות</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 2138160..4c2abc8 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -184,7 +184,7 @@
 <translation id="1753706481035618306">പേജ് നമ്പർ</translation>
 <translation id="1763864636252898013">ഈ സെർവറിന് അത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; അതിന്റെ സുരക്ഷാ സർട്ടിഫിക്കറ്റിനെ നിങ്ങളുടെ ഉപകരണത്തിന്റെ ഓപ്പറേറ്റിംഗ് സിസ്‌റ്റത്തിന് പരിചയമില്ല. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു അക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.</translation>
 <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows നെറ്റ്‌വർക്ക് ഡയഗണോസ്‌റ്റിക്‌സ് റൺ ചെയ്‌തുനോക്കൂ<ph name="END_LINK" />.</translation>
-<translation id="1783075131180517613">നിങ്ങളുടെ സമന്വയ പാസ്‌ഫ്രേസ് ദയവായി അപ്‌ഡേറ്റ് ചെയ്യുക.</translation>
+<translation id="1783075131180517613">നിങ്ങളുടെ സമന്വയ പാസ്‌ഫ്രേസ് അപ്‌ഡേറ്റ് ചെയ്യുക.</translation>
 <translation id="1787142507584202372">നിങ്ങൾ നിലവിൽ തുറന്നിട്ടുള്ള ടാബുകൾ ഇവിടെ ദൃശ്യമാകും</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
 <translation id="1800473098294731951">B9</translation>
@@ -362,7 +362,7 @@
 <translation id="2702801445560668637">വായനാ ലിസ്റ്റ്</translation>
 <translation id="2704283930420550640">മൂല്യം ഫോർമാറ്റുമായി പൊരുത്തപ്പെടുന്നില്ല.</translation>
 <translation id="2705137772291741111">ഈ സൈറ്റിന്റെ സംരക്ഷിച്ച (കാഷെ ചെയ്‌ത) പതിപ്പ് വായിക്കാനാകാത്തതാണ്.</translation>
-<translation id="2709516037105925701">ഓട്ടോഫില്‍</translation>
+<translation id="2709516037105925701">സ്വയമേവ പൂരിപ്പിക്കൽ</translation>
 <translation id="2713444072780614174">വെള്ള</translation>
 <translation id="2720342946869265578">സമീപമുള്ളവ</translation>
 <translation id="2721148159707890343">അഭ്യർത്ഥന വിജയിച്ചു</translation>
@@ -1440,7 +1440,7 @@
 <translation id="8194797478851900357">&amp;നീക്കുന്നത് പഴയപടിയാക്കുക</translation>
 <translation id="8197543752516192074">പേജ് വിവർത്തനം ചെയ്യുക</translation>
 <translation id="8197899142098070286">സംശയാസ്പദമായ സൈറ്റിലേക്ക് നിങ്ങൾ ഇപ്പോൾ പാസ്‌വേഡ് നൽകിയതായി Chrome കണ്ടെത്തി. നിങ്ങളുടെ പാസ്‌വേഡ് ഇപ്പോൾ തന്നെ റീസെറ്റ് ചെയ്യുക!</translation>
-<translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" എന്ന ഐഡിയുള്ള വിപുലീകരണത്തിന്റെ അസാധുവായ അപ്‌ഡേറ്റ് URL.</translation>
+<translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" എന്ന ഐഡിയുള്ള വിപുലീകരണത്തിന്റെ അപ്‌ഡേറ്റ് URL അസാധുവാണ്.</translation>
 <translation id="8202097416529803614">ഓർഡർ സംഗ്രഹം</translation>
 <translation id="8202370299023114387">പൊരുത്തക്കേട്</translation>
 <translation id="8206978196348664717">Prc4 (എൻവലപ്പ്)</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 59711592..b8290e2a 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -1459,7 +1459,7 @@
 <translation id="8184538546369750125">Gunakan lalai global (Benarkan)</translation>
 <translation id="8194797478851900357">&amp;Buat Asal Pindahkan</translation>
 <translation id="8197543752516192074">Terjemah Halaman</translation>
-<translation id="8197899142098070286">Chromium telah mengesan bahawa anda telah memasukkan kata laluan anda ke dalam tapak yang mencurigakan. Sila tetapkan semula kata laluan anda sekarang!</translation>
+<translation id="8197899142098070286">Chrome telah mengesan bahawa anda baru sahaja memasukkan kata laluan anda ke dalam tapak yang mencurigakan. Sila tetapkan semula kata laluan anda sekarang!</translation>
 <translation id="8201077131113104583">URL kemas kini tidak sah untuk sambungan dengan ID "<ph name="EXTENSION_ID" />".</translation>
 <translation id="8202097416529803614">Ringkasan pesanan</translation>
 <translation id="8202370299023114387">Konflik</translation>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 22576a8f..588ce4a 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -539,6 +539,7 @@
     "broadcast_channel/broadcast_channel_provider.h",
     "browser_child_process_host_impl.cc",
     "browser_child_process_host_impl.h",
+    "browser_child_process_host_impl_receiver_bindings.cc",
     "browser_context.cc",
     "browser_interface_binders.cc",
     "browser_interface_binders.h",
@@ -2167,6 +2168,7 @@
       "plugin_service_impl.h",
       "ppapi_plugin_process_host.cc",
       "ppapi_plugin_process_host.h",
+      "ppapi_plugin_process_host_receiver_bindings.cc",
       "renderer_host/pepper/browser_ppapi_host_impl.cc",
       "renderer_host/pepper/browser_ppapi_host_impl.h",
       "renderer_host/pepper/content_browser_pepper_host_factory.cc",
diff --git a/content/browser/OWNERS b/content/browser/OWNERS
index 71b938b..2ab9254 100644
--- a/content/browser/OWNERS
+++ b/content/browser/OWNERS
@@ -20,6 +20,10 @@
 per-file child_process_security_policy_unittest.cc=tsepez@chromium.org
 per-file browser_interface_binders.cc=set noparent
 per-file browser_interface_binders.cc=file://ipc/SECURITY_OWNERS
+per-file ppapi_plugin_process_host_receiver_bindings.cc=set noparent
+per-file ppapi_plugin_process_host_receiver_bindings.cc=file://ipc/SECURITY_OWNERS
+per-file browser_child_process_host_impl_receiver_bindings.cc=set noparent
+per-file browser_child_process_host_impl_receiver_bindings.cc=file://ipc/SECURITY_OWNERS
 
 per-file host_zoom_*=wjmaclean@chromium.org
 per-file find_request_manager*=paulmeyer@chromium.org
diff --git a/content/browser/appcache/appcache_update_job.cc b/content/browser/appcache/appcache_update_job.cc
index ee87609..5774492b 100644
--- a/content/browser/appcache/appcache_update_job.cc
+++ b/content/browser/appcache/appcache_update_job.cc
@@ -116,11 +116,11 @@
   //
   // The logic below is a workaround while a longer-term fix gets developed and
   // deployed. We'll consider all cache entries with invalid times to have been
-  // created on Tue, Jan 29 2019. This is the day when M72 was released to
-  // Chrome's Stable channel, and was chosen because M72 had the first large
-  // Network Service deployment.
+  // created on Sun, Jun 16 2019.
+  //
+  // TODO(cmp): Add timeline info here.
   static constexpr base::Time::Exploded kInvalidTimePlaceholderExploded = {
-      2019, 1, 2, 29, 0, 0, 0, 0};
+      2019, 7, 0, 7, 0, 0, 0, 0};
   constexpr base::Time default_initialized_time;
   if (request_time == default_initialized_time) {
     bool conversion_succeeded = base::Time::FromUTCExploded(
diff --git a/content/browser/browser_child_process_host_impl.cc b/content/browser/browser_child_process_host_impl.cc
index 7e06c342..03189659 100644
--- a/content/browser/browser_child_process_host_impl.cc
+++ b/content/browser/browser_child_process_host_impl.cc
@@ -28,8 +28,6 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/token.h"
 #include "build/build_config.h"
-#include "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom.h"
-#include "components/discardable_memory/service/discardable_shared_memory_manager.h"
 #include "components/tracing/common/trace_startup_config.h"
 #include "components/tracing/common/tracing_switches.h"
 #include "content/browser/bad_message.h"
@@ -58,8 +56,6 @@
 #include "mojo/public/cpp/system/platform_handle.h"
 #include "net/websockets/websocket_basic_stream.h"
 #include "net/websockets/websocket_channel.h"
-#include "services/device/public/mojom/constants.mojom.h"
-#include "services/device/public/mojom/power_monitor.mojom.h"
 #include "services/service_manager/embedder/switches.h"
 #include "services/service_manager/public/cpp/constants.h"
 #include "services/tracing/public/cpp/trace_startup.h"
@@ -134,14 +130,6 @@
   }
 }
 
-BrowserChildProcessHost::BindHostReceiverInterceptor&
-GetBindHostReceiverInterceptor() {
-  static base::NoDestructor<
-      BrowserChildProcessHost::BindHostReceiverInterceptor>
-      interceptor;
-  return *interceptor;
-}
-
 }  // namespace
 
 BrowserChildProcessHost* BrowserChildProcessHost::Create(
@@ -393,69 +381,6 @@
   child_connection_->BindInterface(interface_name, std::move(interface_pipe));
 }
 
-void BrowserChildProcessHostImpl::BindHostReceiver(
-    mojo::GenericPendingReceiver receiver) {
-  const auto& interceptor = GetBindHostReceiverInterceptor();
-  if (interceptor) {
-    interceptor.Run(this, &receiver);
-    if (!receiver)
-      return;
-  }
-
-  if (auto r =
-          receiver.As<memory_instrumentation::mojom::CoordinatorConnector>()) {
-    // Well-behaved child processes do not bind this interface more than once.
-    if (!coordinator_connector_receiver_.is_bound())
-      coordinator_connector_receiver_.Bind(std::move(r));
-    return;
-  }
-
-#if defined(OS_MACOSX)
-  if (auto r = receiver.As<mojom::SandboxSupportMac>()) {
-    static base::NoDestructor<SandboxSupportMacImpl> sandbox_support;
-    sandbox_support->BindReceiver(std::move(r));
-    return;
-  }
-#endif
-
-#if defined(OS_WIN)
-  if (auto r = receiver.As<mojom::FontCacheWin>()) {
-    FontCacheDispatcher::Create(std::move(r));
-    return;
-  }
-
-  if (auto r = receiver.As<blink::mojom::DWriteFontProxy>()) {
-    base::CreateSequencedTaskRunner({base::ThreadPool(),
-                                     base::TaskPriority::USER_BLOCKING,
-                                     base::MayBlock()})
-        ->PostTask(FROM_HERE,
-                   base::BindOnce(&DWriteFontProxyImpl::Create, std::move(r)));
-    return;
-  }
-#endif
-
-  if (auto r = receiver.As<
-               discardable_memory::mojom::DiscardableSharedMemoryManager>()) {
-    discardable_memory::DiscardableSharedMemoryManager::Get()->Bind(
-        std::move(r));
-    return;
-  }
-
-  if (auto r = receiver.As<device::mojom::PowerMonitor>()) {
-    base::PostTask(
-        FROM_HERE, {BrowserThread::UI},
-        base::BindOnce(
-            [](mojo::PendingReceiver<device::mojom::PowerMonitor> r) {
-              GetSystemConnector()->Connect(device::mojom::kServiceName,
-                                            std::move(r));
-            },
-            std::move(r)));
-    return;
-  }
-
-  delegate_->BindHostReceiver(std::move(receiver));
-}
-
 void BrowserChildProcessHostImpl::HistogramBadMessageTerminated(
     ProcessType process_type) {
   UMA_HISTOGRAM_ENUMERATION("ChildProcess.BadMessgeTerminated", process_type,
@@ -803,10 +728,4 @@
 
 #endif
 
-// static
-void BrowserChildProcessHost::InterceptBindHostReceiverForTesting(
-    BindHostReceiverInterceptor callback) {
-  GetBindHostReceiverInterceptor() = std::move(callback);
-}
-
 }  // namespace content
diff --git a/content/browser/browser_child_process_host_impl_receiver_bindings.cc b/content/browser/browser_child_process_host_impl_receiver_bindings.cc
new file mode 100644
index 0000000..52ed31e3
--- /dev/null
+++ b/content/browser/browser_child_process_host_impl_receiver_bindings.cc
@@ -0,0 +1,114 @@
+// 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.
+
+// This file exposes services in the browser to child processes.
+
+#include "content/browser/browser_child_process_host_impl.h"
+
+#include "base/bind.h"
+#include "base/no_destructor.h"
+#include "base/task/post_task.h"
+#include "build/build_config.h"
+#include "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom.h"
+#include "components/discardable_memory/service/discardable_shared_memory_manager.h"
+#include "content/public/browser/browser_child_process_host_delegate.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/system_connector.h"
+#include "services/device/public/mojom/constants.mojom.h"
+#include "services/device/public/mojom/power_monitor.mojom.h"
+
+#if defined(OS_MACOSX)
+#include "content/browser/sandbox_support_mac_impl.h"
+#include "content/common/sandbox_support_mac.mojom.h"
+#endif
+
+#if defined(OS_WIN)
+#include "content/browser/renderer_host/dwrite_font_proxy_impl_win.h"
+#include "content/public/common/font_cache_dispatcher_win.h"
+#include "content/public/common/font_cache_win.mojom.h"
+#endif
+
+namespace content {
+namespace {
+
+BrowserChildProcessHost::BindHostReceiverInterceptor&
+GetBindHostReceiverInterceptor() {
+  static base::NoDestructor<
+      BrowserChildProcessHost::BindHostReceiverInterceptor>
+      interceptor;
+  return *interceptor;
+}
+
+}  // namespace
+
+void BrowserChildProcessHostImpl::BindHostReceiver(
+    mojo::GenericPendingReceiver receiver) {
+  const auto& interceptor = GetBindHostReceiverInterceptor();
+  if (interceptor) {
+    interceptor.Run(this, &receiver);
+    if (!receiver)
+      return;
+  }
+
+  if (auto r =
+          receiver.As<memory_instrumentation::mojom::CoordinatorConnector>()) {
+    // Well-behaved child processes do not bind this interface more than once.
+    if (!coordinator_connector_receiver_.is_bound())
+      coordinator_connector_receiver_.Bind(std::move(r));
+    return;
+  }
+
+#if defined(OS_MACOSX)
+  if (auto r = receiver.As<mojom::SandboxSupportMac>()) {
+    static base::NoDestructor<SandboxSupportMacImpl> sandbox_support;
+    sandbox_support->BindReceiver(std::move(r));
+    return;
+  }
+#endif
+
+#if defined(OS_WIN)
+  if (auto r = receiver.As<mojom::FontCacheWin>()) {
+    FontCacheDispatcher::Create(std::move(r));
+    return;
+  }
+
+  if (auto r = receiver.As<blink::mojom::DWriteFontProxy>()) {
+    base::CreateSequencedTaskRunner({base::ThreadPool(),
+                                     base::TaskPriority::USER_BLOCKING,
+                                     base::MayBlock()})
+        ->PostTask(FROM_HERE,
+                   base::BindOnce(&DWriteFontProxyImpl::Create, std::move(r)));
+    return;
+  }
+#endif
+
+  if (auto r = receiver.As<
+               discardable_memory::mojom::DiscardableSharedMemoryManager>()) {
+    discardable_memory::DiscardableSharedMemoryManager::Get()->Bind(
+        std::move(r));
+    return;
+  }
+
+  if (auto r = receiver.As<device::mojom::PowerMonitor>()) {
+    base::PostTask(
+        FROM_HERE, {BrowserThread::UI},
+        base::BindOnce(
+            [](mojo::PendingReceiver<device::mojom::PowerMonitor> r) {
+              GetSystemConnector()->Connect(device::mojom::kServiceName,
+                                            std::move(r));
+            },
+            std::move(r)));
+    return;
+  }
+
+  delegate_->BindHostReceiver(std::move(receiver));
+}
+
+// static
+void BrowserChildProcessHost::InterceptBindHostReceiverForTesting(
+    BindHostReceiverInterceptor callback) {
+  GetBindHostReceiverInterceptor() = std::move(callback);
+}
+
+}  // namespace content
diff --git a/content/browser/dom_storage/session_storage_context_mojo.cc b/content/browser/dom_storage/session_storage_context_mojo.cc
index 1a9a644..764cee12 100644
--- a/content/browser/dom_storage/session_storage_context_mojo.cc
+++ b/content/browser/dom_storage/session_storage_context_mojo.cc
@@ -13,6 +13,7 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/compiler_specific.h"
+#include "base/containers/span.h"
 #include "base/memory/ptr_util.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
@@ -768,73 +769,70 @@
     return;
   }
 
-  std::vector<uint8_t> database_version(
-      SessionStorageMetadata::kDatabaseVersionBytes,
-      std::end(SessionStorageMetadata::kDatabaseVersionBytes));
-  std::vector<uint8_t> namespace_prefix(
-      SessionStorageMetadata::kNamespacePrefixBytes,
-      std::end(SessionStorageMetadata::kNamespacePrefixBytes));
-  std::vector<uint8_t> next_map_id_key(
-      SessionStorageMetadata::kNextMapIdKeyBytes,
-      std::end(SessionStorageMetadata::kNextMapIdKeyBytes));
-
-  std::vector<leveldb::mojom::GetManyRequestPtr> requests;
-  requests.emplace_back(
-      leveldb::mojom::GetManyRequest::NewKey(std::move(database_version)));
-  requests.emplace_back(leveldb::mojom::GetManyRequest::NewKeyPrefix(
-      std::move(namespace_prefix)));
-  requests.emplace_back(
-      leveldb::mojom::GetManyRequest::NewKey(std::move(next_map_id_key)));
-
-  database_->GetMany(
-      std::move(requests),
+  database_->RunDatabaseTask(
+      base::BindOnce([](const storage::DomStorageDatabase& db) {
+        DatabaseMetadataResult result;
+        result.version_status = db.Get(
+            base::make_span(SessionStorageMetadata::kDatabaseVersionBytes),
+            &result.version);
+        result.next_map_id_status =
+            db.Get(base::make_span(SessionStorageMetadata::kNextMapIdKeyBytes),
+                   &result.next_map_id);
+        result.namespaces_status = db.GetPrefixed(
+            base::make_span(SessionStorageMetadata::kNamespacePrefixBytes),
+            &result.namespaces);
+        return result;
+      }),
       base::BindOnce(&SessionStorageContextMojo::OnGotDatabaseMetadata,
                      weak_ptr_factory_.GetWeakPtr()));
 }
 
-void SessionStorageContextMojo::OnGotDatabaseMetadata(
-    std::vector<leveldb::mojom::GetManyResultPtr> results) {
-  DCHECK_EQ(results.size(), 3U);
+SessionStorageContextMojo::DatabaseMetadataResult::DatabaseMetadataResult() =
+    default;
 
+SessionStorageContextMojo::DatabaseMetadataResult::DatabaseMetadataResult(
+    DatabaseMetadataResult&&) = default;
+
+SessionStorageContextMojo::DatabaseMetadataResult::~DatabaseMetadataResult() =
+    default;
+
+void SessionStorageContextMojo::OnGotDatabaseMetadata(
+    DatabaseMetadataResult result) {
   std::vector<leveldb::mojom::BatchedOperationPtr> migration_operations;
 
-  OpenResult open_result;
-  const char* histogram_name;
-
-  std::tie(open_result, histogram_name) =
-      ParseDatabaseVersion(results[0], &migration_operations);
-  if (open_result != OpenResult::kSuccess) {
-    LogDatabaseOpenResult(open_result);
-    DeleteAndRecreateDatabase(histogram_name);
+  MetadataParseResult version_parse =
+      ParseDatabaseVersion(&result, &migration_operations);
+  if (version_parse.open_result != OpenResult::kSuccess) {
+    LogDatabaseOpenResult(version_parse.open_result);
+    DeleteAndRecreateDatabase(version_parse.histogram_name);
     return;
   }
 
-  std::tie(open_result, histogram_name) =
-      ParseNamespaces(results[1], std::move(migration_operations));
-  if (open_result != OpenResult::kSuccess) {
-    LogDatabaseOpenResult(open_result);
-    DeleteAndRecreateDatabase(histogram_name);
+  MetadataParseResult namespaces_parse =
+      ParseNamespaces(&result, std::move(migration_operations));
+  if (namespaces_parse.open_result != OpenResult::kSuccess) {
+    LogDatabaseOpenResult(namespaces_parse.open_result);
+    DeleteAndRecreateDatabase(namespaces_parse.histogram_name);
     return;
   }
 
-  std::tie(open_result, histogram_name) = ParseNextMapId(results[2]);
-  if (open_result != OpenResult::kSuccess) {
-    LogDatabaseOpenResult(open_result);
-    DeleteAndRecreateDatabase(histogram_name);
+  MetadataParseResult next_map_id_parse = ParseNextMapId(&result);
+  if (next_map_id_parse.open_result != OpenResult::kSuccess) {
+    LogDatabaseOpenResult(next_map_id_parse.open_result);
+    DeleteAndRecreateDatabase(next_map_id_parse.histogram_name);
     return;
   }
 
   OnConnectionFinished();
 }
 
-SessionStorageContextMojo::OpenResultAndHistogramName
+SessionStorageContextMojo::MetadataParseResult
 SessionStorageContextMojo::ParseDatabaseVersion(
-    const leveldb::mojom::GetManyResultPtr& result,
+    DatabaseMetadataResult* result,
     std::vector<leveldb::mojom::BatchedOperationPtr>* migration_operations) {
-  if (result->is_key_value()) {
-    const std::vector<uint8_t>& value = result->get_key_value();
-
-    if (!metadata_.ParseDatabaseVersion(value, migration_operations)) {
+  if (result->version_status.ok()) {
+    if (!metadata_.ParseDatabaseVersion(std::move(result->version),
+                                        migration_operations)) {
       return {OpenResult::kInvalidVersion,
               "SessionStorageContext.OpenResultAfterInvalidVersion"};
     }
@@ -842,47 +840,43 @@
     return {OpenResult::kSuccess, ""};
   }
 
-  // Failed to get DatabaseVersion, |result| contains error status
-  leveldb::mojom::DatabaseError status = result->get_status();
-
-  if (status == leveldb::mojom::DatabaseError::NOT_FOUND) {
+  if (result->version_status.IsNotFound()) {
     // treat as v0 or new database
     metadata_.ParseDatabaseVersion(base::nullopt, migration_operations);
     return {OpenResult::kSuccess, ""};
   }
 
   // Other read error, Possibly database corruption
-  UMA_HISTOGRAM_ENUMERATION("SessionStorageContext.ReadVersionError",
-                            leveldb::GetLevelDBStatusUMAValue(status),
-                            leveldb_env::LEVELDB_STATUS_MAX);
+  UMA_HISTOGRAM_ENUMERATION(
+      "SessionStorageContext.ReadVersionError",
+      leveldb_env::GetLevelDBStatusUMAValue(result->version_status),
+      leveldb_env::LEVELDB_STATUS_MAX);
   return {OpenResult::kVersionReadError,
           "SessionStorageContext.OpenResultAfterReadVersionError"};
 }
 
-SessionStorageContextMojo::OpenResultAndHistogramName
+SessionStorageContextMojo::MetadataParseResult
 SessionStorageContextMojo::ParseNamespaces(
-    const leveldb::mojom::GetManyResultPtr& result,
+    DatabaseMetadataResult* result,
     std::vector<leveldb::mojom::BatchedOperationPtr> migration_operations) {
   DCHECK_EQ(connection_state_, CONNECTION_IN_PROGRESS);
 
-  if (result->is_status()) {
+  if (!result->namespaces_status.ok()) {
     UMA_HISTOGRAM_ENUMERATION(
         "SessionStorageContext.ReadNamespacesError",
-        leveldb::GetLevelDBStatusUMAValue(result->get_status()),
+        leveldb_env::GetLevelDBStatusUMAValue(result->namespaces_status),
         leveldb_env::LEVELDB_STATUS_MAX);
     return {OpenResult::kNamespacesReadError,
             "SessionStorageContext.OpenResultAfterReadNamespacesError"};
   }
 
-  DCHECK(result->is_key_prefix_values());
-
   bool parsing_success = metadata_.ParseNamespaces(
-      std::move(result->get_key_prefix_values()), &migration_operations);
+      std::move(result->namespaces), &migration_operations);
 
   if (!parsing_success) {
     UMA_HISTOGRAM_ENUMERATION(
         "SessionStorageContext.ReadNamespacesError",
-        leveldb::GetLevelDBStatusUMAValue(leveldb::mojom::DatabaseError::OK),
+        leveldb_env::GetLevelDBStatusUMAValue(leveldb::Status::OK()),
         leveldb_env::LEVELDB_STATUS_MAX);
     return {OpenResult::kNamespacesReadError,
             "SessionStorageContext.OpenResultAfterReadNamespacesError"};
@@ -910,26 +904,22 @@
   return {OpenResult::kSuccess, ""};
 }
 
-SessionStorageContextMojo::OpenResultAndHistogramName
-SessionStorageContextMojo::ParseNextMapId(
-    const leveldb::mojom::GetManyResultPtr& result) {
-  if (result->is_status()) {
-    leveldb::mojom::DatabaseError status = result->get_status();
-
-    if (status == leveldb::mojom::DatabaseError::NOT_FOUND) {
+SessionStorageContextMojo::MetadataParseResult
+SessionStorageContextMojo::ParseNextMapId(DatabaseMetadataResult* result) {
+  if (!result->next_map_id_status.ok()) {
+    if (result->next_map_id_status.IsNotFound())
       return {OpenResult::kSuccess, ""};
-    }
 
     // Other read error. Possibly database corruption.
-    UMA_HISTOGRAM_ENUMERATION("SessionStorageContext.ReadNextMapIdError",
-                              leveldb::GetLevelDBStatusUMAValue(status),
-                              leveldb_env::LEVELDB_STATUS_MAX);
+    UMA_HISTOGRAM_ENUMERATION(
+        "SessionStorageContext.ReadNextMapIdError",
+        leveldb_env::GetLevelDBStatusUMAValue(result->next_map_id_status),
+        leveldb_env::LEVELDB_STATUS_MAX);
     return {OpenResult::kNamespacesReadError,
             "SessionStorageContext.OpenResultAfterReadNextMapIdError"};
   }
 
-  DCHECK(result->is_key_value());
-  metadata_.ParseNextMapId(result->get_key_value());
+  metadata_.ParseNextMapId(std::move(result->next_map_id));
   return {OpenResult::kSuccess, ""};
 }
 
diff --git a/content/browser/dom_storage/session_storage_context_mojo.h b/content/browser/dom_storage/session_storage_context_mojo.h
index 438b8ac..2924b7e 100644
--- a/content/browser/dom_storage/session_storage_context_mojo.h
+++ b/content/browser/dom_storage/session_storage_context_mojo.h
@@ -208,18 +208,34 @@
   void InitiateConnection(bool in_memory_only = false);
   void OnDatabaseOpened(leveldb::mojom::DatabaseError status);
 
-  void OnGotDatabaseMetadata(
-      std::vector<leveldb::mojom::GetManyResultPtr> results);
+  struct DatabaseMetadataResult {
+    DatabaseMetadataResult();
+    DatabaseMetadataResult(DatabaseMetadataResult&&);
+    DatabaseMetadataResult(const DatabaseMetadataResult&) = delete;
+    ~DatabaseMetadataResult();
 
-  using OpenResultAndHistogramName = std::tuple<OpenResult, const char*>;
-  OpenResultAndHistogramName ParseDatabaseVersion(
-      const leveldb::mojom::GetManyResultPtr& result,
+    storage::DomStorageDatabase::Value version;
+    leveldb::Status version_status;
+
+    storage::DomStorageDatabase::Value next_map_id;
+    leveldb::Status next_map_id_status;
+
+    std::vector<storage::DomStorageDatabase::KeyValuePair> namespaces;
+    leveldb::Status namespaces_status;
+  };
+  void OnGotDatabaseMetadata(DatabaseMetadataResult result);
+
+  struct MetadataParseResult {
+    OpenResult open_result;
+    const char* histogram_name;
+  };
+  MetadataParseResult ParseDatabaseVersion(
+      DatabaseMetadataResult* result,
       std::vector<leveldb::mojom::BatchedOperationPtr>* migration_operations);
-  OpenResultAndHistogramName ParseNamespaces(
-      const leveldb::mojom::GetManyResultPtr& result,
+  MetadataParseResult ParseNamespaces(
+      DatabaseMetadataResult* result,
       std::vector<leveldb::mojom::BatchedOperationPtr> migration_operations);
-  OpenResultAndHistogramName ParseNextMapId(
-      const leveldb::mojom::GetManyResultPtr& result);
+  MetadataParseResult ParseNextMapId(DatabaseMetadataResult* result);
 
   void OnConnectionFinished();
   void DeleteAndRecreateDatabase(const char* histogram_name);
diff --git a/content/browser/dom_storage/session_storage_metadata.cc b/content/browser/dom_storage/session_storage_metadata.cc
index 3a78234..89e75800 100644
--- a/content/browser/dom_storage/session_storage_metadata.cc
+++ b/content/browser/dom_storage/session_storage_metadata.cc
@@ -121,7 +121,7 @@
 }
 
 bool SessionStorageMetadata::ParseNamespaces(
-    std::vector<leveldb::mojom::KeyValuePtr> values,
+    std::vector<storage::DomStorageDatabase::KeyValuePair> values,
     std::vector<leveldb::mojom::BatchedOperationPtr>* upgrade_operations) {
   namespace_origin_map_.clear();
   next_map_id_from_namespaces_ = 0;
@@ -131,11 +131,11 @@
   std::map<url::Origin, scoped_refptr<MapData>>* last_namespace = nullptr;
   std::map<int64_t, scoped_refptr<MapData>> maps;
   bool error = false;
-  for (const leveldb::mojom::KeyValuePtr& key_value : values) {
-    size_t key_size = key_value->key.size();
+  for (const storage::DomStorageDatabase::KeyValuePair& key_value : values) {
+    size_t key_size = key_value.key.size();
 
     base::StringPiece key_as_string =
-        leveldb::Uint8VectorToStringPiece(key_value->key);
+        leveldb::Uint8VectorToStringPiece(key_value.key);
 
     if (key_size < kNamespacePrefixLength) {
       LOG(ERROR) << "Key size is less than prefix length: " << key_as_string;
@@ -176,10 +176,10 @@
         key_as_string.substr(kPrefixBeforeOriginLength);
 
     int64_t map_number;
-    if (!ValueToNumber(key_value->value, &map_number)) {
+    if (!ValueToNumber(key_value.value, &map_number)) {
       error = true;
       LOG(ERROR) << "Could not parse map number "
-                 << leveldb::Uint8VectorToStringPiece(key_value->value);
+                 << leveldb::Uint8VectorToStringPiece(key_value.value);
       break;
     }
 
diff --git a/content/browser/dom_storage/session_storage_metadata.h b/content/browser/dom_storage/session_storage_metadata.h
index 0d05204..326edadd 100644
--- a/content/browser/dom_storage/session_storage_metadata.h
+++ b/content/browser/dom_storage/session_storage_metadata.h
@@ -11,6 +11,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "components/services/leveldb/public/mojom/leveldb.mojom.h"
+#include "components/services/storage/dom_storage/dom_storage_database.h"
 #include "content/common/content_export.h"
 #include "url/origin.h"
 
@@ -106,7 +107,7 @@
   // will be populated in |upgrade_operations|. This call is not necessary on
   // new databases.
   bool ParseNamespaces(
-      std::vector<leveldb::mojom::KeyValuePtr> values,
+      std::vector<storage::DomStorageDatabase::KeyValuePair> values,
       std::vector<leveldb::mojom::BatchedOperationPtr>* upgrade_operations);
 
   // Parses the next map id from the given bytes. If that fails, then it uses
diff --git a/content/browser/dom_storage/session_storage_metadata_unittest.cc b/content/browser/dom_storage/session_storage_metadata_unittest.cc
index 7495de72..a5a5ec0 100644
--- a/content/browser/dom_storage/session_storage_metadata_unittest.cc
+++ b/content/browser/dom_storage/session_storage_metadata_unittest.cc
@@ -17,6 +17,7 @@
 #include "base/test/task_environment.h"
 #include "components/services/leveldb/leveldb_database_impl.h"
 #include "components/services/leveldb/public/cpp/util.h"
+#include "components/services/storage/dom_storage/dom_storage_database.h"
 #include "content/browser/dom_storage/dom_storage_types.h"
 #include "content/browser/dom_storage/session_storage_database.h"
 #include "content/browser/indexed_db/leveldb/leveldb_env.h"
@@ -92,12 +93,7 @@
 
     metadata->ParseNextMapId(next_map_id_value);
 
-    std::vector<leveldb::mojom::KeyValuePtr> namespace_values;
-    for (auto& entry : namespace_entries) {
-      namespace_values.push_back(
-          leveldb::mojom::KeyValue::New(entry.key, entry.value));
-    }
-    EXPECT_TRUE(metadata->ParseNamespaces(std::move(namespace_values),
+    EXPECT_TRUE(metadata->ParseNamespaces(std::move(namespace_entries),
                                           &migration_operations));
     EXPECT_TRUE(migration_operations.empty());
   }
@@ -487,7 +483,7 @@
   metadata.ParseNextMapId(leveldb::StdStringToUint8Vector(db_value));
 
   // Get all keys-value pairs with the given key prefix
-  std::vector<leveldb::mojom::KeyValuePtr> values;
+  std::vector<storage::DomStorageDatabase::KeyValuePair> values;
   {
     std::unique_ptr<leveldb::Iterator> it(db()->NewIterator(options));
     it->Seek(leveldb::Slice("namespace-"));
@@ -495,9 +491,8 @@
       if (!it->key().starts_with(leveldb::Slice("namespace-")))
         break;
       leveldb::mojom::KeyValuePtr kv = leveldb::mojom::KeyValue::New();
-      kv->key = leveldb::GetVectorFor(it->key());
-      kv->value = leveldb::GetVectorFor(it->value());
-      values.push_back(std::move(kv));
+      values.emplace_back(leveldb::GetVectorFor(it->key()),
+                          leveldb::GetVectorFor(it->value()));
     }
     EXPECT_TRUE(it->status().ok());
   }
diff --git a/content/browser/find_request_manager.cc b/content/browser/find_request_manager.cc
index 3e0ca8d..4b6a61c 100644
--- a/content/browser/find_request_manager.cc
+++ b/content/browser/find_request_manager.cc
@@ -5,6 +5,7 @@
 #include "content/browser/find_request_manager.h"
 
 #include <algorithm>
+#include <utility>
 
 #include "base/bind.h"
 #include "base/containers/queue.h"
@@ -32,6 +33,7 @@
 // Returns all child frames of |node|.
 std::vector<FrameTreeNode*> GetChildren(FrameTreeNode* node) {
   std::vector<FrameTreeNode*> children;
+  children.reserve(node->child_count());
   for (size_t i = 0; i != node->child_count(); ++i) {
     if (auto* contents = static_cast<WebContentsImpl*>(
             WebContentsImpl::FromOuterFrameTreeNode(node->child_at(i)))) {
@@ -95,20 +97,16 @@
     return node->parent();
 
   auto* contents = WebContentsImpl::FromFrameTreeNode(node);
+  if (!node->IsMainFrame() || !contents->GetOuterWebContents())
+    return nullptr;
 
-  if (node->IsMainFrame() && contents->GetOuterWebContents()) {
-    if (!GuestMode::IsCrossProcessFrameGuest(contents) &&
-        contents->GetBrowserPluginGuest() &&
-        contents->GetBrowserPluginGuest()->GetEmbedderFrame()) {
-      return contents->GetBrowserPluginGuest()
-          ->GetEmbedderFrame()
-          ->frame_tree_node();
-    } else {
-      return GetParent(FrameTreeNode::GloballyFindByID(
-          contents->GetOuterDelegateFrameTreeNodeId()));
-    }
+  if (!GuestMode::IsCrossProcessFrameGuest(contents)) {
+    auto* guest = contents->GetBrowserPluginGuest();
+    if (guest && guest->GetEmbedderFrame())
+      return guest->GetEmbedderFrame()->frame_tree_node();
   }
-  return nullptr;
+  return GetParent(FrameTreeNode::GloballyFindByID(
+      contents->GetOuterDelegateFrameTreeNodeId()));
 }
 
 // Returns the previous sibling FrameTreeNode of |node|, if one exists, or
@@ -197,7 +195,7 @@
   FrameObserver(WebContentsImpl* web_contents, FindRequestManager* manager)
       : WebContentsObserver(web_contents), manager_(manager) {}
 
-  ~FrameObserver() override {}
+  ~FrameObserver() override = default;
 
   void DidFinishLoad(RenderFrameHost* rfh, const GURL& validated_url) override {
     if (manager_->current_session_id_ == kInvalidId)
@@ -236,7 +234,7 @@
   DISALLOW_COPY_AND_ASSIGN(FrameObserver);
 };
 
-FindRequestManager::FindRequest::FindRequest() {}
+FindRequestManager::FindRequest::FindRequest() = default;
 
 FindRequestManager::FindRequest::FindRequest(
     int id,
@@ -249,7 +247,7 @@
       search_text(request.search_text),
       options(request.options.Clone()) {}
 
-FindRequestManager::FindRequest::~FindRequest() {}
+FindRequestManager::FindRequest::~FindRequest() = default;
 
 FindRequestManager::FindRequest& FindRequestManager::FindRequest::operator=(
     const FindRequest& request) {
@@ -266,33 +264,25 @@
     ActivateNearestFindResultState(float x, float y)
     : current_request_id(GetNextID()), point(x, y) {}
 FindRequestManager::ActivateNearestFindResultState::
-~ActivateNearestFindResultState() {}
+    ~ActivateNearestFindResultState() = default;
 
 FindRequestManager::FrameRects::FrameRects() = default;
 FindRequestManager::FrameRects::FrameRects(const std::vector<gfx::RectF>& rects,
                                            int version)
     : rects(rects), version(version) {}
-FindRequestManager::FrameRects::~FrameRects() {}
+FindRequestManager::FrameRects::~FrameRects() = default;
 
 FindRequestManager::FindMatchRectsState::FindMatchRectsState() = default;
-FindRequestManager::FindMatchRectsState::~FindMatchRectsState() {}
+FindRequestManager::FindMatchRectsState::~FindMatchRectsState() = default;
 #endif
 
 // static
 const int FindRequestManager::kInvalidId = -1;
 
 FindRequestManager::FindRequestManager(WebContentsImpl* web_contents)
-    : contents_(web_contents),
-      current_session_id_(kInvalidId),
-      pending_find_next_reply_(nullptr),
-      pending_active_match_ordinal_(false),
-      number_of_matches_(0),
-      active_frame_(nullptr),
-      relative_active_match_ordinal_(0),
-      active_match_ordinal_(0),
-      last_reported_id_(kInvalidId) {}
+    : contents_(web_contents) {}
 
-FindRequestManager::~FindRequestManager() {}
+FindRequestManager::~FindRequestManager() = default;
 
 void FindRequestManager::Find(int request_id,
                               const base::string16& search_text,
@@ -443,10 +433,8 @@
     activate_.nearest_frame = nullptr;
 
   // Match rects in the removed frame are no longer relevant.
-  if (match_rects_.frame_rects.count(rfh)) {
-    match_rects_.frame_rects.erase(rfh);
+  if (match_rects_.frame_rects.erase(rfh) != 0)
     ++match_rects_.known_version;
-  }
 
   // A reply should not be expected from the removed frame.
   RemoveNearestFindResultPendingReply(rfh);
@@ -455,16 +443,16 @@
 
   // If no pending find replies are expected for the removed frame, then just
   // report the updated results.
-  if (!pending_initial_replies_.count(rfh) && pending_find_next_reply_ != rfh) {
+  if (!base::Contains(pending_initial_replies_, rfh) &&
+      pending_find_next_reply_ != rfh) {
     bool final_update =
         pending_initial_replies_.empty() && !pending_find_next_reply_;
     NotifyFindReply(current_session_id_, final_update);
     return;
   }
 
-  if (pending_initial_replies_.count(rfh)) {
+  if (pending_initial_replies_.erase(rfh) != 0) {
     // A reply should not be expected from the removed frame.
-    pending_initial_replies_.erase(rfh);
     if (pending_initial_replies_.empty()) {
       FinalUpdateReceived(current_session_id_, rfh);
     }
@@ -513,7 +501,7 @@
                                                      int request_id,
                                                      float distance) {
   if (request_id != activate_.current_request_id ||
-      !activate_.pending_replies.count(rfh)) {
+      !base::Contains(activate_.pending_replies, rfh)) {
     return;
   }
 
@@ -680,10 +668,10 @@
   DCHECK(from_rfh);
   // If |from_rfh| is being detached, it might already be removed from
   // its parent's list of children, meaning we can't traverse it correctly.
-  if (!static_cast<RenderFrameHostImpl*>(from_rfh)->is_active())
+  auto* from_rfh_impl = static_cast<RenderFrameHostImpl*>(from_rfh);
+  if (!from_rfh_impl->is_active())
     return nullptr;
-  FrameTreeNode* node =
-      static_cast<RenderFrameHostImpl*>(from_rfh)->frame_tree_node();
+  FrameTreeNode* node = from_rfh_impl->frame_tree_node();
   FrameTreeNode* last_node = node;
   while ((node = TraverseNode(node, forward, wrap)) != nullptr) {
     if (!CheckFrame(node->current_frame_host())) {
@@ -697,7 +685,7 @@
     RenderFrameHost* current_rfh = node->current_frame_host();
     if (!matches_only ||
         find_in_page_clients_.find(current_rfh)->second->number_of_matches() ||
-        pending_initial_replies_.count(current_rfh)) {
+        base::Contains(pending_initial_replies_, current_rfh)) {
       // Note that if there is still a pending reply expected for this frame,
       // then it may have unaccounted matches and will not be skipped via
       // |matches_only|.
@@ -728,7 +716,7 @@
 }
 
 bool FindRequestManager::CheckFrame(RenderFrameHost* rfh) const {
-  return rfh && find_in_page_clients_.count(rfh);
+  return rfh && base::Contains(find_in_page_clients_, rfh);
 }
 
 void FindRequestManager::UpdateActiveMatchOrdinal() {
@@ -833,30 +821,29 @@
     return;
 
   match_rects_.pending_replies.erase(it);
-  if (match_rects_.pending_replies.empty()) {
-    // All replies are in.
-    std::vector<gfx::RectF> aggregate_rects;
-    if (match_rects_.request_version != match_rects_.known_version) {
-      // Request version is stale, so aggregate and report the newer find
-      // match rects. The rects should be aggregated in search order.
-      for (RenderFrameHost* frame = GetInitialFrame(true /* forward */); frame;
-           frame = Traverse(frame,
-                            true /* forward */,
-                            true /* matches_only */,
-                            false /* wrap */)) {
-        auto frame_it = match_rects_.frame_rects.find(frame);
-        if (frame_it == match_rects_.frame_rects.end())
-          continue;
+  if (!match_rects_.pending_replies.empty())
+    return;
 
-        std::vector<gfx::RectF>& frame_rects = frame_it->second.rects;
-        aggregate_rects.insert(
-            aggregate_rects.end(), frame_rects.begin(), frame_rects.end());
-      }
+  // All replies are in.
+  std::vector<gfx::RectF> aggregate_rects;
+  if (match_rects_.request_version != match_rects_.known_version) {
+    // Request version is stale, so aggregate and report the newer find
+    // match rects. The rects should be aggregated in search order.
+    for (RenderFrameHost* frame = GetInitialFrame(true /* forward */); frame;
+         frame = Traverse(frame, true /* forward */, true /* matches_only */,
+                          false /* wrap */)) {
+      auto frame_it = match_rects_.frame_rects.find(frame);
+      if (frame_it == match_rects_.frame_rects.end())
+        continue;
+
+      std::vector<gfx::RectF>& frame_rects = frame_it->second.rects;
+      aggregate_rects.insert(aggregate_rects.end(), frame_rects.begin(),
+                             frame_rects.end());
     }
-    contents_->NotifyFindMatchRectsReply(
-        match_rects_.known_version, aggregate_rects, match_rects_.active_rect);
   }
+  contents_->NotifyFindMatchRectsReply(
+      match_rects_.known_version, aggregate_rects, match_rects_.active_rect);
 }
-#endif
+#endif  // defined(OS_ANDROID)
 
 }  // namespace content
diff --git a/content/browser/find_request_manager.h b/content/browser/find_request_manager.h
index 0ddf5ab..8c85cbb 100644
--- a/content/browser/find_request_manager.h
+++ b/content/browser/find_request_manager.h
@@ -5,9 +5,9 @@
 #ifndef CONTENT_BROWSER_FIND_REQUEST_MANAGER_H_
 #define CONTENT_BROWSER_FIND_REQUEST_MANAGER_H_
 
+#include <memory>
 #include <unordered_map>
 #include <unordered_set>
-#include <utility>
 #include <vector>
 
 #include "base/containers/queue.h"
@@ -277,7 +277,7 @@
   // in all find-related IPCs, which allows reply IPCs containing results from
   // previous sessions (with |request_id| < |current_session_id_|) to be easily
   // identified and ignored.
-  int current_session_id_;
+  int current_session_id_ = kInvalidId;
 
   // The current find request.
   FindRequest current_request_;
@@ -290,13 +290,13 @@
 
   // The frame (if any) that is still expected to reply to the last pending
   // "find next" request.
-  RenderFrameHost* pending_find_next_reply_;
+  RenderFrameHost* pending_find_next_reply_ = nullptr;
 
   // Indicates whether an update to the active match ordinal is expected. Once
   // set, |pending_active_match_ordinal_| will not reset until an update to the
   // active match ordinal is received in response to the find request with ID
   // |current_request_.id| (the latest request).
-  bool pending_active_match_ordinal_;
+  bool pending_active_match_ordinal_ = false;
 
   // The FindInPageClient associated with each frame. There will necessarily be
   // entries in this map for every frame that is being (or has been) searched in
@@ -307,16 +307,16 @@
   // The total number of matches found in the current find-in-page session. This
   // should always be equal to the sum of all the entries in
   // |matches_per_frame_|.
-  int number_of_matches_;
+  int number_of_matches_ = 0;
 
   // The frame containing the active match, if one exists, or nullptr otherwise.
-  RenderFrameHostImpl* active_frame_;
+  RenderFrameHostImpl* active_frame_ = nullptr;
 
   // The active match ordinal relative to the matches found in its own frame.
-  int relative_active_match_ordinal_;
+  int relative_active_match_ordinal_ = 0;
 
   // The overall active match ordinal for the current find-in-page session.
-  int active_match_ordinal_;
+  int active_match_ordinal_ = 0;
 
   // The rectangle around the active match, in screen coordinates.
   gfx::Rect selection_rect_;
@@ -327,7 +327,7 @@
 
   // Keeps track of the find request ID of the last find reply reported via
   // NotifyFindReply().
-  int last_reported_id_;
+  int last_reported_id_ = kInvalidId;
 
   // WebContentsObservers to observe frame changes in |contents_| and its inner
   // WebContentses.
diff --git a/content/browser/frame_host/frame_tree_browsertest.cc b/content/browser/frame_host/frame_tree_browsertest.cc
index ecbf9f7..e5fd250 100644
--- a/content/browser/frame_host/frame_tree_browsertest.cc
+++ b/content/browser/frame_host/frame_tree_browsertest.cc
@@ -162,13 +162,7 @@
 
 // Test that we can navigate away if the previous renderer doesn't clean up its
 // child frames.
-// Flaky on Mac. http://crbug.com/452018
-#if defined(OS_MACOSX)
-#define MAYBE_NavigateWithLeftoverFrames DISABLED_NavigateWithLeftoverFrames
-#else
-#define MAYBE_NavigateWithLeftoverFrames NavigateWithLeftoverFrames
-#endif
-IN_PROC_BROWSER_TEST_F(FrameTreeBrowserTest, MAYBE_NavigateWithLeftoverFrames) {
+IN_PROC_BROWSER_TEST_F(FrameTreeBrowserTest, NavigateWithLeftoverFrames) {
   GURL base_url = embedded_test_server()->GetURL("A.com", "/site_isolation/");
 
   EXPECT_TRUE(NavigateToURL(
diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc
index a57fffd..ea281f1 100644
--- a/content/browser/indexed_db/indexed_db_backing_store.cc
+++ b/content/browser/indexed_db/indexed_db_backing_store.cc
@@ -17,7 +17,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -327,7 +327,7 @@
     const int min = 140;
     const int max = 300;
     const int num_buckets = 12;
-    UMA_HISTOGRAM_CUSTOM_COUNTS(
+    base::UmaHistogramCustomCounts(
         "WebCore.IndexedDB.BackingStore.OverlyLargeOriginLength",
         component_length, min, max, num_buckets);
     return true;
@@ -1591,8 +1591,6 @@
     return false;
 
   bool use_copy_file = descriptor.is_file() && !descriptor.file_path().empty();
-  UMA_HISTOGRAM_BOOLEAN("Storage.IndexedDB.WriteBlobFileViaCopy",
-                        use_copy_file);
 
   FilePath path = GetBlobFileName(database_id, descriptor.key());
 
diff --git a/content/browser/indexed_db/indexed_db_context_impl.cc b/content/browser/indexed_db/indexed_db_context_impl.cc
index 93e50c5..5b1ae30a 100644
--- a/content/browser/indexed_db/indexed_db_context_impl.cc
+++ b/content/browser/indexed_db/indexed_db_context_impl.cc
@@ -13,7 +13,7 @@
 #include "base/files/file_enumerator.h"
 #include "base/files/file_util.h"
 #include "base/logging.h"
-#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/sequenced_task_runner.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -382,9 +382,8 @@
 void IndexedDBContextImpl::ForceClose(const Origin origin,
                                       ForceCloseReason reason) {
   DCHECK(TaskRunner()->RunsTasksInCurrentSequence());
-  UMA_HISTOGRAM_ENUMERATION("WebCore.IndexedDB.Context.ForceCloseReason",
-                            reason, FORCE_CLOSE_REASON_MAX);
-
+  base::UmaHistogramEnumeration("WebCore.IndexedDB.Context.ForceCloseReason",
+                                reason, FORCE_CLOSE_REASON_MAX);
   if (!HasOrigin(origin))
     return;
 
diff --git a/content/browser/indexed_db/indexed_db_factory_impl.cc b/content/browser/indexed_db/indexed_db_factory_impl.cc
index 8b48f8a..1996d41 100644
--- a/content/browser/indexed_db/indexed_db_factory_impl.cc
+++ b/content/browser/indexed_db/indexed_db_factory_impl.cc
@@ -19,7 +19,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/logging.h"
-#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/sequenced_task_runner.h"
 #include "base/stl_util.h"
 #include "base/strings/strcat.h"
@@ -466,7 +466,7 @@
       path_base.Append(indexed_db::GetLevelDBFileName(saved_origin));
   leveldb::Status s = leveldb_factory_->DestroyLevelDB(file_path);
   DLOG_IF(ERROR, !s.ok()) << "Unable to delete backing store: " << s.ToString();
-  UMA_HISTOGRAM_ENUMERATION(
+  base::UmaHistogramEnumeration(
       "WebCore.IndexedDB.DestroyCorruptBackingStoreStatus",
       leveldb_env::GetLevelDBStatusUMAValue(s),
       leveldb_env::LEVELDB_STATUS_MAX);
@@ -827,7 +827,7 @@
       // This is a special case where we want to make sure the database is
       // deleted, so we try to delete again.
       status = leveldb_factory_->DestroyLevelDB(database_path);
-      UMA_HISTOGRAM_ENUMERATION(
+      base::UmaHistogramEnumeration(
           "WebCore.IndexedDB.DestroyCorruptBackingStoreStatus",
           leveldb_env::GetLevelDBStatusUMAValue(status),
           leveldb_env::LEVELDB_STATUS_MAX);
diff --git a/content/browser/indexed_db/indexed_db_leveldb_operations.cc b/content/browser/indexed_db/indexed_db_leveldb_operations.cc
index 7a68fa0..a1f49ed1 100644
--- a/content/browser/indexed_db/indexed_db_leveldb_operations.cc
+++ b/content/browser/indexed_db/indexed_db_leveldb_operations.cc
@@ -6,7 +6,7 @@
 
 #include "base/files/file_util.h"
 #include "base/json/json_reader.h"
-#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/no_destructor.h"
 #include "base/values.h"
 #include "content/browser/indexed_db/indexed_db_data_format_version.h"
@@ -126,7 +126,7 @@
     const int min = 140;
     const int max = 300;
     const int num_buckets = 12;
-    UMA_HISTOGRAM_CUSTOM_COUNTS(
+    base::UmaHistogramCustomCounts(
         "WebCore.IndexedDB.BackingStore.OverlyLargeOriginLength",
         component_length, min, max, num_buckets);
     return true;
diff --git a/content/browser/indexed_db/indexed_db_reporting.cc b/content/browser/indexed_db/indexed_db_reporting.cc
index b8c4baa..05c015a 100644
--- a/content/browser/indexed_db/indexed_db_reporting.cc
+++ b/content/browser/indexed_db/indexed_db_reporting.cc
@@ -6,6 +6,7 @@
 
 #include <string>
 
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/strcat.h"
 #include "content/browser/indexed_db/indexed_db_leveldb_coding.h"
@@ -63,8 +64,8 @@
 
 void ReportOpenStatus(IndexedDBBackingStoreOpenResult result,
                       const url::Origin& origin) {
-  UMA_HISTOGRAM_ENUMERATION("WebCore.IndexedDB.BackingStore.OpenStatus", result,
-                            INDEXED_DB_BACKING_STORE_OPEN_MAX);
+  base::UmaHistogramEnumeration("WebCore.IndexedDB.BackingStore.OpenStatus",
+                                result, INDEXED_DB_BACKING_STORE_OPEN_MAX);
   const std::string suffix = OriginToCustomHistogramSuffix(origin);
   // Data from the WebCore.IndexedDB.BackingStore.OpenStatus histogram is used
   // to generate a graph. So as not to alter the meaning of that graph,
@@ -104,7 +105,8 @@
 }
 
 void ReportV2Schema(bool has_broken_blobs, const url::Origin& origin) {
-  UMA_HISTOGRAM_BOOLEAN("WebCore.IndexedDB.SchemaV2HasBlobs", has_broken_blobs);
+  base::UmaHistogramBoolean("WebCore.IndexedDB.SchemaV2HasBlobs",
+                            has_broken_blobs);
   const std::string suffix = OriginToCustomHistogramSuffix(origin);
   if (!suffix.empty()) {
     base::BooleanHistogram::FactoryGet(
diff --git a/content/browser/indexed_db/indexed_db_transaction.cc b/content/browser/indexed_db/indexed_db_transaction.cc
index c8dba54..9492a77 100644
--- a/content/browser/indexed_db/indexed_db_transaction.cc
+++ b/content/browser/indexed_db/indexed_db_transaction.cc
@@ -10,6 +10,7 @@
 #include "base/bind.h"
 #include "base/location.h"
 #include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -166,9 +167,9 @@
   if (state_ == FINISHED)
     return leveldb::Status::OK();
 
-  UMA_HISTOGRAM_ENUMERATION("WebCore.IndexedDB.TransactionAbortReason",
-                            ExceptionCodeToUmaEnum(error.code()),
-                            UmaIDBExceptionExclusiveMaxValue);
+  base::UmaHistogramEnumeration("WebCore.IndexedDB.TransactionAbortReason",
+                                ExceptionCodeToUmaEnum(error.code()),
+                                UmaIDBExceptionExclusiveMaxValue);
 
   aborted_ = true;
   timeout_timer_.Stop();
diff --git a/content/browser/indexed_db/leveldb/leveldb_env.cc b/content/browser/indexed_db/leveldb/leveldb_env.cc
index 2a8828f..21de8bf 100644
--- a/content/browser/indexed_db/leveldb/leveldb_env.cc
+++ b/content/browser/indexed_db/leveldb/leveldb_env.cc
@@ -5,6 +5,7 @@
 #include "content/browser/indexed_db/leveldb/leveldb_env.h"
 
 #include "base/files/file_util.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/no_destructor.h"
 #include "base/system/sys_info.h"
diff --git a/content/browser/indexed_db/scopes/leveldb_state.cc b/content/browser/indexed_db/scopes/leveldb_state.cc
index d983bc15..1a19c27 100644
--- a/content/browser/indexed_db/scopes/leveldb_state.cc
+++ b/content/browser/indexed_db/scopes/leveldb_state.cc
@@ -5,7 +5,7 @@
 #include "content/browser/indexed_db/scopes/leveldb_state.h"
 
 #include "base/memory/ptr_util.h"
-#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "content/browser/indexed_db/leveldb/leveldb_env.h"
 
 namespace content {
@@ -65,8 +65,8 @@
     return;
   base::TimeTicks begin_time = base::TimeTicks::Now();
   const_cast<std::unique_ptr<leveldb::DB>*>(&db_)->reset();
-  UMA_HISTOGRAM_MEDIUM_TIMES("WebCore.IndexedDB.LevelDB.CloseTime",
-                             base::TimeTicks::Now() - begin_time);
+  base::UmaHistogramMediumTimes("WebCore.IndexedDB.LevelDB.CloseTime",
+                                base::TimeTicks::Now() - begin_time);
 }
 
 }  // namespace content
diff --git a/content/browser/indexed_db/transaction_impl.cc b/content/browser/indexed_db/transaction_impl.cc
index 460c8e2..552bfa35 100644
--- a/content/browser/indexed_db/transaction_impl.cc
+++ b/content/browser/indexed_db/transaction_impl.cc
@@ -8,7 +8,7 @@
 #include <utility>
 #include <vector>
 
-#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/task/post_task.h"
 #include "content/browser/child_process_security_policy_impl.h"
 #include "content/browser/indexed_db/indexed_db_callback_helpers.h"
@@ -28,10 +28,6 @@
 const char kInvalidBlobUuid[] = "Blob does not exist";
 const char kInvalidBlobFilePath[] = "Blob file path is invalid";
 
-void LogUMAPutBlobCount(size_t blob_count) {
-  UMA_HISTOGRAM_COUNTS_1000("WebCore.IndexedDB.PutBlobsCount", blob_count);
-}
-
 IndexedDBDatabaseError CreateBackendAbortError() {
   return IndexedDBDatabaseError(blink::kWebIDBDatabaseExceptionAbortError,
                                 "Backend aborted error");
@@ -171,7 +167,6 @@
     result.code = IOHelper::LoadResultCode::kSuccess;
     result.value = std::move(value_ptr);
     result.blob_info = std::vector<IndexedDBBlobInfo>();
-    LogUMAPutBlobCount(result.blob_info.size());
   } else {
     // TODO(crbug.com/932869): Remove IO thread hop entirely.
     base::WaitableEvent signal_when_finished(
@@ -242,11 +237,6 @@
         return;
       }
 
-      // Value size recorded in IDBObjectStore before we can auto-wrap in a
-      // blob. 1KB to 10MB.
-      UMA_HISTOGRAM_COUNTS_10000("WebCore.IndexedDB.PutKeySize",
-                                 key.size_estimate() / 1024);
-
       uint64_t commit_size = result.value->bits.size() + key.size_estimate();
       IndexedDBValue value;
       // TODO(crbug.com/902498): Use mojom traits to map directly to
@@ -333,14 +323,11 @@
     // Due to known issue crbug.com/351753, blobs can die while being passed to
     // a different process. So this case must be handled gracefully.
     // TODO(dmurph): Revert back to using mojo::ReportBadMessage once fixed.
-    UMA_HISTOGRAM_BOOLEAN("Storage.IndexedDB.PutValidBlob",
-                          handle.get() != nullptr);
     if (!handle) {
       result->code = LoadResultCode::kAbort;
       return;
     }
     uint64_t size = handle->size();
-    UMA_HISTOGRAM_MEMORY_KB("Storage.IndexedDB.PutBlobSizeKB", size / 1024ull);
     total_blob_size += size;
 
     if (info->file) {
@@ -360,13 +347,6 @@
           IndexedDBBlobInfo(std::move(handle), info->mime_type, info->size);
     }
   }
-  LogUMAPutBlobCount(blob_info.size());
-  uint64_t blob_size = total_blob_size.ValueOrDefault(0U);
-  if (blob_size != 0) {
-    // Bytes to kilobytes.
-    UMA_HISTOGRAM_COUNTS_1M("WebCore.IndexedDB.PutBlobsTotalSize",
-                            blob_size / 1024);
-  }
   result->code = LoadResultCode::kSuccess;
   result->value = std::move(value);
   result->blob_info = std::move(blob_info);
diff --git a/content/browser/ppapi_plugin_process_host.cc b/content/browser/ppapi_plugin_process_host.cc
index 86c23036..cfb9c91 100644
--- a/content/browser/ppapi_plugin_process_host.cc
+++ b/content/browser/ppapi_plugin_process_host.cc
@@ -50,11 +50,6 @@
 #include "ui/gfx/font_render_params.h"
 #endif
 
-#if defined(OS_LINUX)
-#include "components/services/font/public/mojom/font_service.mojom.h"  // nogncheck
-#include "content/browser/font_service.h"  // nogncheck
-#endif
-
 #if BUILDFLAG(USE_ZYGOTE_HANDLE)
 #include "services/service_manager/zygote/common/zygote_handle.h"  // nogncheck
 #endif
@@ -494,14 +489,6 @@
                      plugin_path_));
 }
 
-void PpapiPluginProcessHost::BindHostReceiver(
-    mojo::GenericPendingReceiver receiver) {
-#if defined(OS_LINUX)
-  if (auto font_receiver = receiver.As<font_service::mojom::FontService>())
-    ConnectToFontService(std::move(font_receiver));
-#endif
-}
-
 bool PpapiPluginProcessHost::OnMessageReceived(const IPC::Message& msg) {
   bool handled = true;
   IPC_BEGIN_MESSAGE_MAP(PpapiPluginProcessHost, msg)
diff --git a/content/browser/ppapi_plugin_process_host_receiver_bindings.cc b/content/browser/ppapi_plugin_process_host_receiver_bindings.cc
new file mode 100644
index 0000000..28bac36
--- /dev/null
+++ b/content/browser/ppapi_plugin_process_host_receiver_bindings.cc
@@ -0,0 +1,26 @@
+// 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.
+
+// This exposes services in the browser to the PPAPI process.
+
+#include "content/browser/ppapi_plugin_process_host.h"
+
+#include "build/build_config.h"
+
+#if defined(OS_LINUX)
+#include "components/services/font/public/mojom/font_service.mojom.h"  // nogncheck
+#include "content/browser/font_service.h"  // nogncheck
+#endif
+
+namespace content {
+
+void PpapiPluginProcessHost::BindHostReceiver(
+    mojo::GenericPendingReceiver receiver) {
+#if defined(OS_LINUX)
+  if (auto font_receiver = receiver.As<font_service::mojom::FontService>())
+    ConnectToFontService(std::move(font_receiver));
+#endif
+}
+
+}  // namespace content
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index cb787299..a58fa14 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -1823,18 +1823,10 @@
   DCHECK_EQ(filter->last_rect().y(), 0);
 }
 
-#if defined(OS_MACOSX) || defined(OS_LINUX)
-// Flaky timeout. https://crbug.com/1014155
-#define MAYBE_KeyboardScrollBubblingFromOOPIF \
-  DISABLED_KeyboardScrollBubblingFromOOPIF
-#else
-#define MAYBE_KeyboardScrollBubblingFromOOPIF KeyboardScrollBubblingFromOOPIF
-#endif
-
 // Tests that scrolling with the keyboard will bubble unused scroll to the
 // OOPIF's parent.
 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
-                       MAYBE_KeyboardScrollBubblingFromOOPIF) {
+                       KeyboardScrollBubblingFromOOPIF) {
   GURL main_url(embedded_test_server()->GetURL(
       "a.com", "/frame_tree/page_with_iframe_in_scrollable_div.html"));
   EXPECT_TRUE(NavigateToURL(shell(), main_url));
@@ -1857,6 +1849,11 @@
   RenderWidgetHostViewBase* rwhv_child = static_cast<RenderWidgetHostViewBase*>(
       iframe_node->current_frame_host()->GetRenderWidgetHost()->GetView());
 
+  // This test does not involve hit testing, but input events could be dropped
+  // by the renderer before the first compositor commit, so we wait here anyway
+  // to avoid that.
+  WaitForHitTestData(iframe_node->current_frame_host());
+
   double initial_y = 0.0;
   ASSERT_TRUE(content::ExecuteScriptAndExtractDouble(
       root,
diff --git a/content/browser/worker_host/test_shared_worker_service_impl.cc b/content/browser/worker_host/test_shared_worker_service_impl.cc
index a4a9b96..441d22b 100644
--- a/content/browser/worker_host/test_shared_worker_service_impl.cc
+++ b/content/browser/worker_host/test_shared_worker_service_impl.cc
@@ -82,8 +82,10 @@
     mojo::RemoteSetElementId id) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  if (worker_hosts_.empty() && workers_awaiting_disconnection_.empty())
+  if (worker_hosts_.empty() && workers_awaiting_disconnection_.empty() &&
+      terminate_all_workers_callback_) {
     std::move(terminate_all_workers_callback_).Run();
+  }
 }
 
 }  // namespace content
diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
index 0939d25..fde557c 100644
--- a/content/gpu/BUILD.gn
+++ b/content/gpu/BUILD.gn
@@ -37,6 +37,7 @@
   sources = [
     "gpu_child_thread.cc",
     "gpu_child_thread.h",
+    "gpu_child_thread_receiver_bindings.cc",
     "gpu_main.cc",
     "gpu_process.cc",
     "gpu_process.h",
diff --git a/content/gpu/OWNERS b/content/gpu/OWNERS
index ae61c99..c3b653a 100644
--- a/content/gpu/OWNERS
+++ b/content/gpu/OWNERS
@@ -1,4 +1,8 @@
 kbr@chromium.org
 zmo@chromium.org
 
+# For security review.
+per-file gpu_child_thread_receiver_bindings.cc=set noparent
+per-file gpu_child_thread_receiver_bindings.cc=file://ipc/SECURITY_OWNERS
+
 # COMPONENT: Internals>GPU>Internals
diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc
index 2d2128f2..04fbf79 100644
--- a/content/gpu/gpu_child_thread.cc
+++ b/content/gpu/gpu_child_thread.cc
@@ -13,7 +13,6 @@
 #include "base/callback_helpers.h"
 #include "base/command_line.h"
 #include "base/memory/weak_ptr.h"
-#include "base/no_destructor.h"
 #include "base/run_loop.h"
 #include "base/sequenced_task_runner.h"
 #include "base/threading/thread_checker.h"
@@ -36,8 +35,6 @@
 #include "services/metrics/public/cpp/mojo_ukm_recorder.h"
 #include "services/metrics/public/mojom/ukm_interface.mojom.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
-#include "services/shape_detection/public/mojom/shape_detection_service.mojom.h"
-#include "services/shape_detection/shape_detection_service.h"
 #include "services/viz/privileged/mojom/gl/gpu_service.mojom.h"
 #include "third_party/skia/include/core/SkGraphics.h"
 
@@ -294,16 +291,6 @@
   service_factory_->RunService(service_name, std::move(receiver));
 }
 
-void GpuChildThread::BindServiceInterface(
-    mojo::GenericPendingReceiver receiver) {
-  if (auto shape_detection_receiver =
-          receiver.As<shape_detection::mojom::ShapeDetectionService>()) {
-    static base::NoDestructor<shape_detection::ShapeDetectionService> service{
-        std::move(shape_detection_receiver)};
-    return;
-  }
-}
-
 void GpuChildThread::OnAssociatedInterfaceRequest(
     const std::string& name,
     mojo::ScopedInterfaceEndpointHandle handle) {
diff --git a/content/gpu/gpu_child_thread_receiver_bindings.cc b/content/gpu/gpu_child_thread_receiver_bindings.cc
new file mode 100644
index 0000000..ff7a472
--- /dev/null
+++ b/content/gpu/gpu_child_thread_receiver_bindings.cc
@@ -0,0 +1,25 @@
+// 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.
+
+// This file exposes services from the GPU process to the browser.
+
+#include "content/gpu/gpu_child_thread.h"
+
+#include "base/no_destructor.h"
+#include "services/shape_detection/public/mojom/shape_detection_service.mojom.h"
+#include "services/shape_detection/shape_detection_service.h"
+
+namespace content {
+
+void GpuChildThread::BindServiceInterface(
+    mojo::GenericPendingReceiver receiver) {
+  if (auto shape_detection_receiver =
+          receiver.As<shape_detection::mojom::ShapeDetectionService>()) {
+    static base::NoDestructor<shape_detection::ShapeDetectionService> service{
+        std::move(shape_detection_receiver)};
+    return;
+  }
+}
+
+}  // namespace content
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
index d257830f..0de66bc8 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
@@ -99,14 +99,6 @@
 #include "media/gpu/vaapi/vaapi_wrapper.h"
 #endif
 
-#if defined(OS_MACOSX)
-extern "C" {
-void _LSSetApplicationLaunchServicesServerConnectionStatus(
-    uint64_t flags,
-    bool (^connection_allowed)(CFDictionaryRef));
-}
-#endif  // defined(OS_MACOSX)
-
 namespace content {
 
 namespace {
@@ -285,9 +277,6 @@
     main_thread_task_executor =
         std::make_unique<base::SingleThreadTaskExecutor>(
             base::MessagePumpType::NS_RUNLOOP);
-
-    // Tell LaunchServices to continue without a connection to the daemon.
-    _LSSetApplicationLaunchServicesServerConnectionStatus(0, nullptr);
 #else
     main_thread_task_executor =
         std::make_unique<base::SingleThreadTaskExecutor>(
diff --git a/content/public/test/browser_task_environment.h b/content/public/test/browser_task_environment.h
index 00d18ed..ca5df461 100644
--- a/content/public/test/browser_task_environment.h
+++ b/content/public/test/browser_task_environment.h
@@ -29,8 +29,6 @@
 // - Same APIs as base::test::TaskEnvironment.
 // - content::BrowserThread.
 // - Public APIs of base::test::TaskEnvironment.
-// TODO(gab): Rename this header to browser_task_environment.h and migrate all
-// users.
 //
 // Only tests that need the BrowserThread API should instantiate a
 // BrowserTaskEnvironment. Use base::test::SingleThhreadTaskEnvironment or
diff --git a/content/public/test/fake_download_item.cc b/content/public/test/fake_download_item.cc
index 65d0826..86897ed 100644
--- a/content/public/test/fake_download_item.cc
+++ b/content/public/test/fake_download_item.cc
@@ -6,6 +6,7 @@
 
 #include "base/bind.h"
 #include "base/callback.h"
+#include "components/download/public/common/download_danger_type.h"
 #include "net/http/http_response_headers.h"
 
 namespace content {
@@ -266,6 +267,11 @@
   NOTREACHED();
 }
 
+void FakeDownloadItem::OnAsyncScanningCompleted(
+    download::DownloadDangerType danger_type) {
+  NOTREACHED();
+}
+
 bool FakeDownloadItem::IsPaused() const {
   return false;
 }
diff --git a/content/public/test/fake_download_item.h b/content/public/test/fake_download_item.h
index 4f1fb30..ec89f554 100644
--- a/content/public/test/fake_download_item.h
+++ b/content/public/test/fake_download_item.h
@@ -114,6 +114,8 @@
                               const AcquireFileCallback& callback) override;
   void Rename(const base::FilePath& name,
               RenameDownloadCallback callback) override;
+  void OnAsyncScanningCompleted(
+      download::DownloadDangerType danger_type) override;
 
   bool removed() const { return removed_; }
   void NotifyDownloadDestroyed();
diff --git a/content/utility/OWNERS b/content/utility/OWNERS
index 651168d..25d3083 100644
--- a/content/utility/OWNERS
+++ b/content/utility/OWNERS
@@ -1,6 +1,6 @@
-# Mac Sandbox profiles.
-per-file *.sb=set noparent
-per-file *.sb=rsesek@chromium.org
+# For security review.
+per-file services.*=set noparent
+per-file services.*=file://ipc/SECURITY_OWNERS
 
 # For service-related code
 per-file utility_service_factory.*=rockot@google.com
diff --git a/crypto/BUILD.gn b/crypto/BUILD.gn
index c27c7cf..0eab491 100644
--- a/crypto/BUILD.gn
+++ b/crypto/BUILD.gn
@@ -116,6 +116,10 @@
     ]
   }
 
+  if (is_chromeos) {
+    sources += [ "nss_util_chromeos.cc" ]
+  }
+
   defines = [ "CRYPTO_IMPLEMENTATION" ]
 
   if (is_nacl) {
diff --git a/crypto/nss_util.cc b/crypto/nss_util.cc
index f3489604b..d369529 100644
--- a/crypto/nss_util.cc
+++ b/crypto/nss_util.cc
@@ -12,64 +12,34 @@
 #include <prtime.h>
 #include <secmod.h>
 
-#include <map>
 #include <memory>
 #include <utility>
-#include <vector>
 
 #include "base/base_paths.h"
-#include "base/bind.h"
 #include "base/debug/alias.h"
-#include "base/debug/stack_trace.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/lazy_instance.h"
-#include "base/location.h"
 #include "base/logging.h"
-#include "base/memory/ptr_util.h"
 #include "base/path_service.h"
 #include "base/strings/stringprintf.h"
 #include "base/task/post_task.h"
 #include "base/threading/scoped_blocking_call.h"
-#include "base/threading/thread_checker.h"
 #include "base/threading/thread_restrictions.h"
-#include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "crypto/nss_crypto_module_delegate.h"
 #include "crypto/nss_util_internal.h"
 
-#if defined(OS_CHROMEOS)
-#include <dlfcn.h>
-#endif
-
 namespace crypto {
 
 namespace {
 
 #if defined(OS_CHROMEOS)
-const char kUserNSSDatabaseName[] = "UserNSSDB";
-
-// Constants for loading the Chrome OS TPM-backed PKCS #11 library.
-const char kChapsModuleName[] = "Chaps";
-const char kChapsPath[] = "libchaps.so";
-
 // Fake certificate authority database used for testing.
 static const base::FilePath::CharType kReadOnlyCertDB[] =
     FILE_PATH_LITERAL("/etc/fake_root_ca/nssdb");
 #endif  // defined(OS_CHROMEOS)
 
-std::string GetNSSErrorMessage() {
-  std::string result;
-  if (PR_GetErrorTextLength()) {
-    std::unique_ptr<char[]> error_text(new char[PR_GetErrorTextLength() + 1]);
-    PRInt32 copied = PR_GetErrorText(error_text.get());
-    result = std::string(error_text.get(), copied);
-  } else {
-    result = base::StringPrintf("NSS error code: %d", PR_GetError());
-  }
-  return result;
-}
-
 #if !defined(OS_CHROMEOS)
 base::FilePath GetDefaultConfigDirectory() {
   base::FilePath dir;
@@ -156,478 +126,7 @@
   LOG(FATAL) << "nss_error=" << nss_error << ", os_error=" << os_error;
 }
 
-#if defined(OS_CHROMEOS)
-class ChromeOSUserData {
- public:
-  explicit ChromeOSUserData(ScopedPK11Slot public_slot)
-      : public_slot_(std::move(public_slot)),
-        private_slot_initialization_started_(false) {}
-  ~ChromeOSUserData() {
-    if (public_slot_) {
-      SECStatus status = SECMOD_CloseUserDB(public_slot_.get());
-      if (status != SECSuccess)
-        PLOG(ERROR) << "SECMOD_CloseUserDB failed: " << PORT_GetError();
-    }
-  }
-
-  ScopedPK11Slot GetPublicSlot() {
-    return ScopedPK11Slot(public_slot_ ? PK11_ReferenceSlot(public_slot_.get())
-                                       : nullptr);
-  }
-
-  ScopedPK11Slot GetPrivateSlot(
-      base::OnceCallback<void(ScopedPK11Slot)> callback) {
-    if (private_slot_)
-      return ScopedPK11Slot(PK11_ReferenceSlot(private_slot_.get()));
-    if (!callback.is_null())
-      tpm_ready_callback_list_.push_back(std::move(callback));
-    return ScopedPK11Slot();
-  }
-
-  void SetPrivateSlot(ScopedPK11Slot private_slot) {
-    DCHECK(!private_slot_);
-    private_slot_ = std::move(private_slot);
-
-    SlotReadyCallbackList callback_list;
-    callback_list.swap(tpm_ready_callback_list_);
-    for (SlotReadyCallbackList::iterator i = callback_list.begin();
-         i != callback_list.end();
-         ++i) {
-      std::move(*i).Run(
-          ScopedPK11Slot(PK11_ReferenceSlot(private_slot_.get())));
-    }
-  }
-
-  bool private_slot_initialization_started() const {
-      return private_slot_initialization_started_;
-  }
-
-  void set_private_slot_initialization_started() {
-      private_slot_initialization_started_ = true;
-  }
-
- private:
-  ScopedPK11Slot public_slot_;
-  ScopedPK11Slot private_slot_;
-
-  bool private_slot_initialization_started_;
-
-  typedef std::vector<base::OnceCallback<void(ScopedPK11Slot)>>
-      SlotReadyCallbackList;
-  SlotReadyCallbackList tpm_ready_callback_list_;
-};
-
-class ScopedChapsLoadFixup {
- public:
-  ScopedChapsLoadFixup();
-  ~ScopedChapsLoadFixup();
-
- private:
-#if defined(COMPONENT_BUILD)
-  void* chaps_handle_;
-#endif
-};
-
-#if defined(COMPONENT_BUILD)
-
-ScopedChapsLoadFixup::ScopedChapsLoadFixup() {
-  // HACK: libchaps links the system protobuf and there are symbol conflicts
-  // with the bundled copy. Load chaps with RTLD_DEEPBIND to workaround.
-  chaps_handle_ = dlopen(kChapsPath, RTLD_LOCAL | RTLD_NOW | RTLD_DEEPBIND);
-}
-
-ScopedChapsLoadFixup::~ScopedChapsLoadFixup() {
-  // LoadModule() will have taken a 2nd reference.
-  if (chaps_handle_)
-    dlclose(chaps_handle_);
-}
-
-#else
-
-ScopedChapsLoadFixup::ScopedChapsLoadFixup() {}
-ScopedChapsLoadFixup::~ScopedChapsLoadFixup() {}
-
-#endif  // defined(COMPONENT_BUILD)
-#endif  // defined(OS_CHROMEOS)
-
 class NSSInitSingleton {
- public:
-#if defined(OS_CHROMEOS)
-  // Used with PostTaskAndReply to pass handles to worker thread and back.
-  struct TPMModuleAndSlot {
-    explicit TPMModuleAndSlot(SECMODModule* init_chaps_module)
-        : chaps_module(init_chaps_module) {}
-    SECMODModule* chaps_module;
-    crypto::ScopedPK11Slot tpm_slot;
-  };
-
-  ScopedPK11Slot OpenPersistentNSSDBForPath(const std::string& db_name,
-                                            const base::FilePath& path) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    // NSS is allowed to do IO on the current thread since dispatching
-    // to a dedicated thread would still have the affect of blocking
-    // the current thread, due to NSS's internal locking requirements
-    base::ThreadRestrictions::ScopedAllowIO allow_io;
-
-    base::FilePath nssdb_path = path.AppendASCII(".pki").AppendASCII("nssdb");
-    if (!base::CreateDirectory(nssdb_path)) {
-      LOG(ERROR) << "Failed to create " << nssdb_path.value() << " directory.";
-      return ScopedPK11Slot();
-    }
-    return OpenSoftwareNSSDB(nssdb_path, db_name);
-  }
-
-  void EnableTPMTokenForNSS() {
-    DCHECK(thread_checker_.CalledOnValidThread());
-
-    // If this gets set, then we'll use the TPM for certs with
-    // private keys, otherwise we'll fall back to the software
-    // implementation.
-    tpm_token_enabled_for_nss_ = true;
-  }
-
-  bool IsTPMTokenEnabledForNSS() {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    return tpm_token_enabled_for_nss_;
-  }
-
-  void InitializeTPMTokenAndSystemSlot(
-      int system_slot_id,
-      base::OnceCallback<void(bool)> callback) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    // Should not be called while there is already an initialization in
-    // progress.
-    DCHECK(!initializing_tpm_token_);
-    // If EnableTPMTokenForNSS hasn't been called, return false.
-    if (!tpm_token_enabled_for_nss_) {
-      base::ThreadTaskRunnerHandle::Get()->PostTask(
-          FROM_HERE, base::BindOnce(std::move(callback), false));
-      return;
-    }
-
-    // If everything is already initialized, then return true.
-    // Note that only |tpm_slot_| is checked, since |chaps_module_| could be
-    // nullptr in tests while |tpm_slot_| has been set to the test DB.
-    if (tpm_slot_) {
-      base::ThreadTaskRunnerHandle::Get()->PostTask(
-          FROM_HERE, base::BindOnce(std::move(callback), true));
-      return;
-    }
-
-    // Note that a reference is not taken to chaps_module_. This is safe since
-    // NSSInitSingleton is Leaky, so the reference it holds is never released.
-    std::unique_ptr<TPMModuleAndSlot> tpm_args(
-        new TPMModuleAndSlot(chaps_module_));
-    TPMModuleAndSlot* tpm_args_ptr = tpm_args.get();
-    base::PostTaskAndReply(
-        FROM_HERE,
-        {base::ThreadPool(), base::MayBlock(),
-         base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
-        base::BindOnce(&NSSInitSingleton::InitializeTPMTokenInThreadPool,
-                       system_slot_id, tpm_args_ptr),
-        base::BindOnce(&NSSInitSingleton::OnInitializedTPMTokenAndSystemSlot,
-                       base::Unretained(this),  // NSSInitSingleton is leaky
-                       std::move(callback), std::move(tpm_args)));
-    initializing_tpm_token_ = true;
-  }
-
-  static void InitializeTPMTokenInThreadPool(CK_SLOT_ID token_slot_id,
-                                             TPMModuleAndSlot* tpm_args) {
-    // NSS functions may reenter //net via extension hooks. If the reentered
-    // code needs to synchronously wait for a task to run but the thread pool in
-    // which that task must run doesn't have enough threads to schedule it, a
-    // deadlock occurs. To prevent that, the base::ScopedBlockingCall below
-    // increments the thread pool capacity for the duration of the TPM
-    // initialization.
-    base::ScopedBlockingCall scoped_blocking_call(
-        FROM_HERE, base::BlockingType::WILL_BLOCK);
-
-    if (!tpm_args->chaps_module) {
-      ScopedChapsLoadFixup chaps_loader;
-
-      DVLOG(3) << "Loading chaps...";
-      tpm_args->chaps_module = LoadModule(
-          kChapsModuleName,
-          kChapsPath,
-          // For more details on these parameters, see:
-          // https://developer.mozilla.org/en/PKCS11_Module_Specs
-          // slotFlags=[PublicCerts] -- Certificates and public keys can be
-          //   read from this slot without requiring a call to C_Login.
-          // askpw=only -- Only authenticate to the token when necessary.
-          "NSS=\"slotParams=(0={slotFlags=[PublicCerts] askpw=only})\"");
-    }
-    if (tpm_args->chaps_module) {
-      tpm_args->tpm_slot =
-          GetTPMSlotForIdInThreadPool(tpm_args->chaps_module, token_slot_id);
-    }
-  }
-
-  void OnInitializedTPMTokenAndSystemSlot(
-      base::OnceCallback<void(bool)> callback,
-      std::unique_ptr<TPMModuleAndSlot> tpm_args) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    DVLOG(2) << "Loaded chaps: " << !!tpm_args->chaps_module
-             << ", got tpm slot: " << !!tpm_args->tpm_slot;
-
-    chaps_module_ = tpm_args->chaps_module;
-    tpm_slot_ = std::move(tpm_args->tpm_slot);
-    if (!chaps_module_ && test_system_slot_) {
-      // chromeos_unittests try to test the TPM initialization process. If we
-      // have a test DB open, pretend that it is the TPM slot.
-      tpm_slot_.reset(PK11_ReferenceSlot(test_system_slot_.get()));
-    }
-    initializing_tpm_token_ = false;
-
-    if (tpm_slot_)
-      RunAndClearTPMReadyCallbackList();
-
-    std::move(callback).Run(!!tpm_slot_);
-  }
-
-  void RunAndClearTPMReadyCallbackList() {
-    TPMReadyCallbackList callback_list;
-    callback_list.swap(tpm_ready_callback_list_);
-    for (TPMReadyCallbackList::iterator i = callback_list.begin();
-         i != callback_list.end();
-         ++i) {
-      std::move(*i).Run();
-    }
-  }
-
-  bool IsTPMTokenReady(base::OnceClosure callback) {
-    if (!callback.is_null()) {
-      // Cannot DCHECK in the general case yet, but since the callback is
-      // a new addition to the API, DCHECK to make sure at least the new uses
-      // don't regress.
-      DCHECK(thread_checker_.CalledOnValidThread());
-    } else if (!thread_checker_.CalledOnValidThread()) {
-      // TODO(mattm): Change to DCHECK when callers have been fixed.
-      DVLOG(1) << "Called on wrong thread.\n"
-               << base::debug::StackTrace().ToString();
-    }
-
-    if (tpm_slot_)
-      return true;
-
-    if (!callback.is_null())
-      tpm_ready_callback_list_.push_back(std::move(callback));
-
-    return false;
-  }
-
-  // Note that CK_SLOT_ID is an unsigned long, but cryptohome gives us the slot
-  // id as an int. This should be safe since this is only used with chaps, which
-  // we also control.
-  static crypto::ScopedPK11Slot GetTPMSlotForIdInThreadPool(
-      SECMODModule* chaps_module,
-      CK_SLOT_ID slot_id) {
-    DCHECK(chaps_module);
-
-    DVLOG(3) << "Poking chaps module.";
-    SECStatus rv = SECMOD_UpdateSlotList(chaps_module);
-    if (rv != SECSuccess)
-      PLOG(ERROR) << "SECMOD_UpdateSlotList failed: " << PORT_GetError();
-
-    PK11SlotInfo* slot = SECMOD_LookupSlot(chaps_module->moduleID, slot_id);
-    if (!slot)
-      LOG(ERROR) << "TPM slot " << slot_id << " not found.";
-    return crypto::ScopedPK11Slot(slot);
-  }
-
-  bool InitializeNSSForChromeOSUser(const std::string& username_hash,
-                                    const base::FilePath& path) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    if (chromeos_user_map_.find(username_hash) != chromeos_user_map_.end()) {
-      // This user already exists in our mapping.
-      DVLOG(2) << username_hash << " already initialized.";
-      return false;
-    }
-
-    DVLOG(2) << "Opening NSS DB " << path.value();
-    std::string db_name = base::StringPrintf(
-        "%s %s", kUserNSSDatabaseName, username_hash.c_str());
-    ScopedPK11Slot public_slot(OpenPersistentNSSDBForPath(db_name, path));
-    chromeos_user_map_[username_hash] =
-        std::make_unique<ChromeOSUserData>(std::move(public_slot));
-    return true;
-  }
-
-  bool ShouldInitializeTPMForChromeOSUser(const std::string& username_hash) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
-
-    return !chromeos_user_map_[username_hash]
-                ->private_slot_initialization_started();
-  }
-
-  void WillInitializeTPMForChromeOSUser(const std::string& username_hash) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
-
-    chromeos_user_map_[username_hash]
-        ->set_private_slot_initialization_started();
-  }
-
-  void InitializeTPMForChromeOSUser(const std::string& username_hash,
-                                    CK_SLOT_ID slot_id) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
-    DCHECK(chromeos_user_map_[username_hash]->
-               private_slot_initialization_started());
-
-    if (!chaps_module_)
-      return;
-
-    // Note that a reference is not taken to chaps_module_. This is safe since
-    // NSSInitSingleton is Leaky, so the reference it holds is never released.
-    std::unique_ptr<TPMModuleAndSlot> tpm_args(
-        new TPMModuleAndSlot(chaps_module_));
-    TPMModuleAndSlot* tpm_args_ptr = tpm_args.get();
-    base::PostTaskAndReply(
-        FROM_HERE,
-        {base::ThreadPool(), base::MayBlock(),
-         base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
-        base::BindOnce(&NSSInitSingleton::InitializeTPMTokenInThreadPool,
-                       slot_id, tpm_args_ptr),
-        base::BindOnce(&NSSInitSingleton::OnInitializedTPMForChromeOSUser,
-                       base::Unretained(this),  // NSSInitSingleton is leaky
-                       username_hash, std::move(tpm_args)));
-  }
-
-  void OnInitializedTPMForChromeOSUser(
-      const std::string& username_hash,
-      std::unique_ptr<TPMModuleAndSlot> tpm_args) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    DVLOG(2) << "Got tpm slot for " << username_hash << " "
-             << !!tpm_args->tpm_slot;
-    chromeos_user_map_[username_hash]->SetPrivateSlot(
-        std::move(tpm_args->tpm_slot));
-  }
-
-  void InitializePrivateSoftwareSlotForChromeOSUser(
-      const std::string& username_hash) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    VLOG(1) << "using software private slot for " << username_hash;
-    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
-    DCHECK(chromeos_user_map_[username_hash]->
-               private_slot_initialization_started());
-
-    if (prepared_test_private_slot_) {
-      chromeos_user_map_[username_hash]->SetPrivateSlot(
-          std::move(prepared_test_private_slot_));
-      return;
-    }
-
-    chromeos_user_map_[username_hash]->SetPrivateSlot(
-        chromeos_user_map_[username_hash]->GetPublicSlot());
-  }
-
-  ScopedPK11Slot GetPublicSlotForChromeOSUser(
-      const std::string& username_hash) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-
-    if (username_hash.empty()) {
-      DVLOG(2) << "empty username_hash";
-      return ScopedPK11Slot();
-    }
-
-    if (chromeos_user_map_.find(username_hash) == chromeos_user_map_.end()) {
-      LOG(ERROR) << username_hash << " not initialized.";
-      return ScopedPK11Slot();
-    }
-    return chromeos_user_map_[username_hash]->GetPublicSlot();
-  }
-
-  ScopedPK11Slot GetPrivateSlotForChromeOSUser(
-      const std::string& username_hash,
-      base::OnceCallback<void(ScopedPK11Slot)> callback) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-
-    if (username_hash.empty()) {
-      DVLOG(2) << "empty username_hash";
-      if (!callback.is_null()) {
-        base::ThreadTaskRunnerHandle::Get()->PostTask(
-            FROM_HERE, base::BindOnce(std::move(callback), ScopedPK11Slot()));
-      }
-      return ScopedPK11Slot();
-    }
-
-    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
-
-    return chromeos_user_map_[username_hash]->GetPrivateSlot(
-        std::move(callback));
-  }
-
-  void CloseChromeOSUserForTesting(const std::string& username_hash) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    auto i = chromeos_user_map_.find(username_hash);
-    DCHECK(i != chromeos_user_map_.end());
-    chromeos_user_map_.erase(i);
-  }
-
-  void SetSystemKeySlotForTesting(ScopedPK11Slot slot) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-
-    // Ensure that a previous value of test_system_slot_ is not overwritten.
-    // Unsetting, i.e. setting a nullptr, however is allowed.
-    DCHECK(!slot || !test_system_slot_);
-    test_system_slot_ = std::move(slot);
-    if (test_system_slot_) {
-      tpm_slot_.reset(PK11_ReferenceSlot(test_system_slot_.get()));
-      RunAndClearTPMReadyCallbackList();
-    } else {
-      tpm_slot_.reset();
-    }
-  }
-
-  void SetSystemKeySlotWithoutInitializingTPMForTesting(ScopedPK11Slot slot) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-
-    // Ensure that a previous value of test_system_slot_ is not overwritten.
-    // Unsetting, i.e. setting a nullptr, however is allowed.
-    DCHECK(!slot || !test_system_slot_);
-    if (tpm_slot_ && tpm_slot_ == test_system_slot_) {
-      // Unset |tpm_slot_| if it was initialized from |test_system_slot_|.
-      tpm_slot_.reset();
-    }
-    test_system_slot_ = std::move(slot);
-  }
-
-  void SetPrivateSoftwareSlotForChromeOSUserForTesting(ScopedPK11Slot slot) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-
-    // Ensure that a previous value of prepared_test_private_slot_ is not
-    // overwritten. Unsetting, i.e. setting a nullptr, however is allowed.
-    DCHECK(!slot || !prepared_test_private_slot_);
-    prepared_test_private_slot_ = std::move(slot);
-  }
-
-  void GetSystemNSSKeySlotCallback(
-      base::OnceCallback<void(ScopedPK11Slot)> callback) {
-    std::move(callback).Run(
-        ScopedPK11Slot(PK11_ReferenceSlot(tpm_slot_.get())));
-  }
-
-  ScopedPK11Slot GetSystemNSSKeySlot(
-      base::OnceCallback<void(ScopedPK11Slot)> callback) {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    // TODO(mattm): chromeos::TPMTokenloader always calls
-    // InitializeTPMTokenAndSystemSlot with slot 0.  If the system slot is
-    // disabled, tpm_slot_ will be the first user's slot instead. Can that be
-    // detected and return nullptr instead?
-
-    base::OnceClosure wrapped_callback;
-    if (!callback.is_null()) {
-      wrapped_callback = base::BindOnce(
-          &NSSInitSingleton::GetSystemNSSKeySlotCallback,
-          base::Unretained(this) /* singleton is leaky */, std::move(callback));
-    }
-    if (IsTPMTokenReady(std::move(wrapped_callback)))
-      return ScopedPK11Slot(PK11_ReferenceSlot(tpm_slot_.get()));
-    return ScopedPK11Slot();
-  }
-#endif
-
  private:
   friend struct base::LazyInstanceTraitsBase<NSSInitSingleton>;
 
@@ -637,10 +136,6 @@
     //   http://code.google.com/p/chromium/issues/detail?id=59847
     base::ThreadRestrictions::ScopedAllowIO allow_io;
 
-    // It's safe to construct on any thread, since LazyInstance will prevent any
-    // other threads from accessing until the constructor is done.
-    thread_checker_.DetachFromThread();
-
     EnsureNSPRInit();
 
     // We *must* have NSS >= 3.26 at compile time.
@@ -700,7 +195,7 @@
     //
     // TODO(mattm): DCHECK this succeeded when crbug.com/310972 is fixed.
     // Failing to load root certs will it hard to talk to anybody via https.
-    LoadModule("Root Certs", "libnssckbi.so", nullptr);
+    LoadNSSModule("Root Certs", "libnssckbi.so", nullptr);
 
     // Disable MD5 certificate signatures. (They are disabled by default in
     // NSS 3.14.)
@@ -713,48 +208,6 @@
   // to prevent non-joinable threads from using NSS after it's already been
   // shut down.
   ~NSSInitSingleton() = delete;
-
-  // Load the given module for this NSS session.
-  static SECMODModule* LoadModule(const char* name,
-                                  const char* library_path,
-                                  const char* params) {
-    std::string modparams = base::StringPrintf(
-        "name=\"%s\" library=\"%s\" %s",
-        name, library_path, params ? params : "");
-
-    // Shouldn't need to const_cast here, but SECMOD doesn't properly
-    // declare input string arguments as const.  Bug
-    // https://bugzilla.mozilla.org/show_bug.cgi?id=642546 was filed
-    // on NSS codebase to address this.
-    SECMODModule* module = SECMOD_LoadUserModule(
-        const_cast<char*>(modparams.c_str()), nullptr, PR_FALSE);
-    if (!module) {
-      LOG(ERROR) << "Error loading " << name << " module into NSS: "
-                 << GetNSSErrorMessage();
-      return nullptr;
-    }
-    if (!module->loaded) {
-      LOG(ERROR) << "After loading " << name << ", loaded==false: "
-                 << GetNSSErrorMessage();
-      SECMOD_DestroyModule(module);
-      return nullptr;
-    }
-    return module;
-  }
-
-#if defined(OS_CHROMEOS)
-  bool tpm_token_enabled_for_nss_ = false;
-  bool initializing_tpm_token_ = false;
-  using TPMReadyCallbackList = std::vector<base::OnceClosure>;
-  TPMReadyCallbackList tpm_ready_callback_list_;
-  SECMODModule* chaps_module_ = nullptr;
-  crypto::ScopedPK11Slot tpm_slot_;
-  std::map<std::string, std::unique_ptr<ChromeOSUserData>> chromeos_user_map_;
-  ScopedPK11Slot test_system_slot_;
-  ScopedPK11Slot prepared_test_private_slot_;
-#endif
-
-  base::ThreadChecker thread_checker_;
 };
 
 base::LazyInstance<NSSInitSingleton>::Leaky
@@ -799,87 +252,6 @@
   SECMOD_ReleaseReadLock(lock_);
 }
 
-#if defined(OS_CHROMEOS)
-ScopedPK11Slot GetSystemNSSKeySlot(
-    base::OnceCallback<void(ScopedPK11Slot)> callback) {
-  return g_nss_singleton.Get().GetSystemNSSKeySlot(std::move(callback));
-}
-
-void SetSystemKeySlotForTesting(ScopedPK11Slot slot) {
-  g_nss_singleton.Get().SetSystemKeySlotForTesting(std::move(slot));
-}
-
-void SetSystemKeySlotWithoutInitializingTPMForTesting(ScopedPK11Slot slot) {
-  g_nss_singleton.Get().SetSystemKeySlotWithoutInitializingTPMForTesting(
-      std::move(slot));
-}
-
-void EnableTPMTokenForNSS() {
-  g_nss_singleton.Get().EnableTPMTokenForNSS();
-}
-
-bool IsTPMTokenEnabledForNSS() {
-  return g_nss_singleton.Get().IsTPMTokenEnabledForNSS();
-}
-
-bool IsTPMTokenReady(base::OnceClosure callback) {
-  return g_nss_singleton.Get().IsTPMTokenReady(std::move(callback));
-}
-
-void InitializeTPMTokenAndSystemSlot(int token_slot_id,
-                                     base::OnceCallback<void(bool)> callback) {
-  g_nss_singleton.Get().InitializeTPMTokenAndSystemSlot(token_slot_id,
-                                                        std::move(callback));
-}
-
-bool InitializeNSSForChromeOSUser(const std::string& username_hash,
-                                  const base::FilePath& path) {
-  return g_nss_singleton.Get().InitializeNSSForChromeOSUser(username_hash,
-                                                            path);
-}
-
-bool ShouldInitializeTPMForChromeOSUser(const std::string& username_hash) {
-  return g_nss_singleton.Get().ShouldInitializeTPMForChromeOSUser(
-      username_hash);
-}
-
-void WillInitializeTPMForChromeOSUser(const std::string& username_hash) {
-  g_nss_singleton.Get().WillInitializeTPMForChromeOSUser(username_hash);
-}
-
-void InitializeTPMForChromeOSUser(
-    const std::string& username_hash,
-    CK_SLOT_ID slot_id) {
-  g_nss_singleton.Get().InitializeTPMForChromeOSUser(username_hash, slot_id);
-}
-
-void InitializePrivateSoftwareSlotForChromeOSUser(
-    const std::string& username_hash) {
-  g_nss_singleton.Get().InitializePrivateSoftwareSlotForChromeOSUser(
-      username_hash);
-}
-
-ScopedPK11Slot GetPublicSlotForChromeOSUser(const std::string& username_hash) {
-  return g_nss_singleton.Get().GetPublicSlotForChromeOSUser(username_hash);
-}
-
-ScopedPK11Slot GetPrivateSlotForChromeOSUser(
-    const std::string& username_hash,
-    base::OnceCallback<void(ScopedPK11Slot)> callback) {
-  return g_nss_singleton.Get().GetPrivateSlotForChromeOSUser(
-      username_hash, std::move(callback));
-}
-
-void CloseChromeOSUserForTesting(const std::string& username_hash) {
-  g_nss_singleton.Get().CloseChromeOSUserForTesting(username_hash);
-}
-
-void SetPrivateSoftwareSlotForChromeOSUserForTesting(ScopedPK11Slot slot) {
-  g_nss_singleton.Get().SetPrivateSoftwareSlotForChromeOSUserForTesting(
-      std::move(slot));
-}
-#endif  // defined(OS_CHROMEOS)
-
 base::Time PRTimeToBaseTime(PRTime prtime) {
   return base::Time::FromInternalValue(
       prtime + base::Time::UnixEpoch().ToInternalValue());
@@ -889,4 +261,43 @@
   return time.ToInternalValue() - base::Time::UnixEpoch().ToInternalValue();
 }
 
+SECMODModule* LoadNSSModule(const char* name,
+                            const char* library_path,
+                            const char* params) {
+  std::string modparams =
+      base::StringPrintf("name=\"%s\" library=\"%s\" %s", name, library_path,
+                         params ? params : "");
+
+  // Shouldn't need to const_cast here, but SECMOD doesn't properly declare
+  // input string arguments as const.  Bug
+  // https://bugzilla.mozilla.org/show_bug.cgi?id=642546 was filed on NSS
+  // codebase to address this.
+  SECMODModule* module = SECMOD_LoadUserModule(
+      const_cast<char*>(modparams.c_str()), nullptr, PR_FALSE);
+  if (!module) {
+    LOG(ERROR) << "Error loading " << name
+               << " module into NSS: " << GetNSSErrorMessage();
+    return nullptr;
+  }
+  if (!module->loaded) {
+    LOG(ERROR) << "After loading " << name
+               << ", loaded==false: " << GetNSSErrorMessage();
+    SECMOD_DestroyModule(module);
+    return nullptr;
+  }
+  return module;
+}
+
+std::string GetNSSErrorMessage() {
+  std::string result;
+  if (PR_GetErrorTextLength()) {
+    std::unique_ptr<char[]> error_text(new char[PR_GetErrorTextLength() + 1]);
+    PRInt32 copied = PR_GetErrorText(error_text.get());
+    result = std::string(error_text.get(), copied);
+  } else {
+    result = base::StringPrintf("NSS error code: %d", PR_GetError());
+  }
+  return result;
+}
+
 }  // namespace crypto
diff --git a/crypto/nss_util_chromeos.cc b/crypto/nss_util_chromeos.cc
new file mode 100644
index 0000000..4011f36b
--- /dev/null
+++ b/crypto/nss_util_chromeos.cc
@@ -0,0 +1,611 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "crypto/nss_util.h"
+
+#include <dlfcn.h>
+#include <nss.h>
+#include <pk11pub.h>
+#include <plarena.h>
+#include <prerror.h>
+#include <prinit.h>
+#include <prtime.h>
+#include <secmod.h>
+
+#include <map>
+#include <memory>
+#include <utility>
+#include <vector>
+
+#include "base/bind.h"
+#include "base/debug/stack_trace.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/lazy_instance.h"
+#include "base/location.h"
+#include "base/logging.h"
+#include "base/path_service.h"
+#include "base/strings/stringprintf.h"
+#include "base/task/post_task.h"
+#include "base/threading/scoped_blocking_call.h"
+#include "base/threading/thread_checker.h"
+#include "base/threading/thread_restrictions.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "build/build_config.h"
+#include "crypto/nss_util_internal.h"
+
+namespace crypto {
+
+namespace {
+
+const char kUserNSSDatabaseName[] = "UserNSSDB";
+
+// Constants for loading the Chrome OS TPM-backed PKCS #11 library.
+const char kChapsModuleName[] = "Chaps";
+const char kChapsPath[] = "libchaps.so";
+
+class ChromeOSUserData {
+ public:
+  explicit ChromeOSUserData(ScopedPK11Slot public_slot)
+      : public_slot_(std::move(public_slot)),
+        private_slot_initialization_started_(false) {}
+  ~ChromeOSUserData() {
+    if (public_slot_) {
+      SECStatus status = SECMOD_CloseUserDB(public_slot_.get());
+      if (status != SECSuccess)
+        PLOG(ERROR) << "SECMOD_CloseUserDB failed: " << PORT_GetError();
+    }
+  }
+
+  ScopedPK11Slot GetPublicSlot() {
+    return ScopedPK11Slot(public_slot_ ? PK11_ReferenceSlot(public_slot_.get())
+                                       : nullptr);
+  }
+
+  ScopedPK11Slot GetPrivateSlot(
+      base::OnceCallback<void(ScopedPK11Slot)> callback) {
+    if (private_slot_)
+      return ScopedPK11Slot(PK11_ReferenceSlot(private_slot_.get()));
+    if (!callback.is_null())
+      tpm_ready_callback_list_.push_back(std::move(callback));
+    return ScopedPK11Slot();
+  }
+
+  void SetPrivateSlot(ScopedPK11Slot private_slot) {
+    DCHECK(!private_slot_);
+    private_slot_ = std::move(private_slot);
+
+    SlotReadyCallbackList callback_list;
+    callback_list.swap(tpm_ready_callback_list_);
+    for (SlotReadyCallbackList::iterator i = callback_list.begin();
+         i != callback_list.end(); ++i) {
+      std::move(*i).Run(
+          ScopedPK11Slot(PK11_ReferenceSlot(private_slot_.get())));
+    }
+  }
+
+  bool private_slot_initialization_started() const {
+    return private_slot_initialization_started_;
+  }
+
+  void set_private_slot_initialization_started() {
+    private_slot_initialization_started_ = true;
+  }
+
+ private:
+  ScopedPK11Slot public_slot_;
+  ScopedPK11Slot private_slot_;
+
+  bool private_slot_initialization_started_;
+
+  typedef std::vector<base::OnceCallback<void(ScopedPK11Slot)>>
+      SlotReadyCallbackList;
+  SlotReadyCallbackList tpm_ready_callback_list_;
+};
+
+class ScopedChapsLoadFixup {
+ public:
+  ScopedChapsLoadFixup();
+  ~ScopedChapsLoadFixup();
+
+ private:
+#if defined(COMPONENT_BUILD)
+  void* chaps_handle_;
+#endif
+};
+
+#if defined(COMPONENT_BUILD)
+
+ScopedChapsLoadFixup::ScopedChapsLoadFixup() {
+  // HACK: libchaps links the system protobuf and there are symbol conflicts
+  // with the bundled copy. Load chaps with RTLD_DEEPBIND to workaround.
+  chaps_handle_ = dlopen(kChapsPath, RTLD_LOCAL | RTLD_NOW | RTLD_DEEPBIND);
+}
+
+ScopedChapsLoadFixup::~ScopedChapsLoadFixup() {
+  // LoadNSSModule() will have taken a 2nd reference.
+  if (chaps_handle_)
+    dlclose(chaps_handle_);
+}
+
+#else
+
+ScopedChapsLoadFixup::ScopedChapsLoadFixup() {}
+ScopedChapsLoadFixup::~ScopedChapsLoadFixup() {}
+
+#endif  // defined(COMPONENT_BUILD)
+
+class ChromeOSTokenManager {
+ public:
+  // Used with PostTaskAndReply to pass handles to worker thread and back.
+  struct TPMModuleAndSlot {
+    explicit TPMModuleAndSlot(SECMODModule* init_chaps_module)
+        : chaps_module(init_chaps_module) {}
+    SECMODModule* chaps_module;
+    crypto::ScopedPK11Slot tpm_slot;
+  };
+
+  ScopedPK11Slot OpenPersistentNSSDBForPath(const std::string& db_name,
+                                            const base::FilePath& path) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    // NSS is allowed to do IO on the current thread since dispatching
+    // to a dedicated thread would still have the affect of blocking
+    // the current thread, due to NSS's internal locking requirements
+    base::ThreadRestrictions::ScopedAllowIO allow_io;
+
+    base::FilePath nssdb_path = path.AppendASCII(".pki").AppendASCII("nssdb");
+    if (!base::CreateDirectory(nssdb_path)) {
+      LOG(ERROR) << "Failed to create " << nssdb_path.value() << " directory.";
+      return ScopedPK11Slot();
+    }
+    return OpenSoftwareNSSDB(nssdb_path, db_name);
+  }
+
+  void EnableTPMTokenForNSS() {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+    // If this gets set, then we'll use the TPM for certs with
+    // private keys, otherwise we'll fall back to the software
+    // implementation.
+    tpm_token_enabled_for_nss_ = true;
+  }
+
+  bool IsTPMTokenEnabledForNSS() {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    return tpm_token_enabled_for_nss_;
+  }
+
+  void InitializeTPMTokenAndSystemSlot(
+      int system_slot_id,
+      base::OnceCallback<void(bool)> callback) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    // Should not be called while there is already an initialization in
+    // progress.
+    DCHECK(!initializing_tpm_token_);
+    // If EnableTPMTokenForNSS hasn't been called, return false.
+    if (!tpm_token_enabled_for_nss_) {
+      base::ThreadTaskRunnerHandle::Get()->PostTask(
+          FROM_HERE, base::BindOnce(std::move(callback), false));
+      return;
+    }
+
+    // If everything is already initialized, then return true.
+    // Note that only |tpm_slot_| is checked, since |chaps_module_| could be
+    // nullptr in tests while |tpm_slot_| has been set to the test DB.
+    if (tpm_slot_) {
+      base::ThreadTaskRunnerHandle::Get()->PostTask(
+          FROM_HERE, base::BindOnce(std::move(callback), true));
+      return;
+    }
+
+    // Note that a reference is not taken to chaps_module_. This is safe since
+    // ChromeOSTokenManager is Leaky, so the reference it holds is never
+    // released.
+    std::unique_ptr<TPMModuleAndSlot> tpm_args(
+        new TPMModuleAndSlot(chaps_module_));
+    TPMModuleAndSlot* tpm_args_ptr = tpm_args.get();
+    base::PostTaskAndReply(
+        FROM_HERE,
+        {base::ThreadPool(), base::MayBlock(),
+         base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
+        base::BindOnce(&ChromeOSTokenManager::InitializeTPMTokenInThreadPool,
+                       system_slot_id, tpm_args_ptr),
+        base::BindOnce(
+            &ChromeOSTokenManager::OnInitializedTPMTokenAndSystemSlot,
+            base::Unretained(this),  // ChromeOSTokenManager is leaky
+            std::move(callback), std::move(tpm_args)));
+    initializing_tpm_token_ = true;
+  }
+
+  static void InitializeTPMTokenInThreadPool(CK_SLOT_ID token_slot_id,
+                                             TPMModuleAndSlot* tpm_args) {
+    // NSS functions may reenter //net via extension hooks. If the reentered
+    // code needs to synchronously wait for a task to run but the thread pool in
+    // which that task must run doesn't have enough threads to schedule it, a
+    // deadlock occurs. To prevent that, the base::ScopedBlockingCall below
+    // increments the thread pool capacity for the duration of the TPM
+    // initialization.
+    base::ScopedBlockingCall scoped_blocking_call(
+        FROM_HERE, base::BlockingType::WILL_BLOCK);
+
+    if (!tpm_args->chaps_module) {
+      ScopedChapsLoadFixup chaps_loader;
+
+      DVLOG(3) << "Loading chaps...";
+      tpm_args->chaps_module = LoadNSSModule(
+          kChapsModuleName, kChapsPath,
+          // For more details on these parameters, see:
+          // https://developer.mozilla.org/en/PKCS11_Module_Specs
+          // slotFlags=[PublicCerts] -- Certificates and public keys can be
+          //   read from this slot without requiring a call to C_Login.
+          // askpw=only -- Only authenticate to the token when necessary.
+          "NSS=\"slotParams=(0={slotFlags=[PublicCerts] askpw=only})\"");
+    }
+    if (tpm_args->chaps_module) {
+      tpm_args->tpm_slot =
+          GetTPMSlotForIdInThreadPool(tpm_args->chaps_module, token_slot_id);
+    }
+  }
+
+  void OnInitializedTPMTokenAndSystemSlot(
+      base::OnceCallback<void(bool)> callback,
+      std::unique_ptr<TPMModuleAndSlot> tpm_args) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DVLOG(2) << "Loaded chaps: " << !!tpm_args->chaps_module
+             << ", got tpm slot: " << !!tpm_args->tpm_slot;
+
+    chaps_module_ = tpm_args->chaps_module;
+    tpm_slot_ = std::move(tpm_args->tpm_slot);
+    if (!chaps_module_ && test_system_slot_) {
+      // chromeos_unittests try to test the TPM initialization process. If we
+      // have a test DB open, pretend that it is the TPM slot.
+      tpm_slot_.reset(PK11_ReferenceSlot(test_system_slot_.get()));
+    }
+    initializing_tpm_token_ = false;
+
+    if (tpm_slot_)
+      RunAndClearTPMReadyCallbackList();
+
+    std::move(callback).Run(!!tpm_slot_);
+  }
+
+  void RunAndClearTPMReadyCallbackList() {
+    TPMReadyCallbackList callback_list;
+    callback_list.swap(tpm_ready_callback_list_);
+    for (TPMReadyCallbackList::iterator i = callback_list.begin();
+         i != callback_list.end(); ++i) {
+      std::move(*i).Run();
+    }
+  }
+
+  bool IsTPMTokenReady(base::OnceClosure callback) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    if (tpm_slot_)
+      return true;
+
+    if (!callback.is_null())
+      tpm_ready_callback_list_.push_back(std::move(callback));
+
+    return false;
+  }
+
+  // Note that CK_SLOT_ID is an unsigned long, but cryptohome gives us the slot
+  // id as an int. This should be safe since this is only used with chaps, which
+  // we also control.
+  static crypto::ScopedPK11Slot GetTPMSlotForIdInThreadPool(
+      SECMODModule* chaps_module,
+      CK_SLOT_ID slot_id) {
+    DCHECK(chaps_module);
+
+    DVLOG(3) << "Poking chaps module.";
+    SECStatus rv = SECMOD_UpdateSlotList(chaps_module);
+    if (rv != SECSuccess)
+      PLOG(ERROR) << "SECMOD_UpdateSlotList failed: " << PORT_GetError();
+
+    PK11SlotInfo* slot = SECMOD_LookupSlot(chaps_module->moduleID, slot_id);
+    if (!slot)
+      LOG(ERROR) << "TPM slot " << slot_id << " not found.";
+    return crypto::ScopedPK11Slot(slot);
+  }
+
+  bool InitializeNSSForChromeOSUser(const std::string& username_hash,
+                                    const base::FilePath& path) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    if (chromeos_user_map_.find(username_hash) != chromeos_user_map_.end()) {
+      // This user already exists in our mapping.
+      DVLOG(2) << username_hash << " already initialized.";
+      return false;
+    }
+
+    DVLOG(2) << "Opening NSS DB " << path.value();
+    std::string db_name = base::StringPrintf("%s %s", kUserNSSDatabaseName,
+                                             username_hash.c_str());
+    ScopedPK11Slot public_slot(OpenPersistentNSSDBForPath(db_name, path));
+    chromeos_user_map_[username_hash] =
+        std::make_unique<ChromeOSUserData>(std::move(public_slot));
+    return true;
+  }
+
+  bool ShouldInitializeTPMForChromeOSUser(const std::string& username_hash) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
+
+    return !chromeos_user_map_[username_hash]
+                ->private_slot_initialization_started();
+  }
+
+  void WillInitializeTPMForChromeOSUser(const std::string& username_hash) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
+
+    chromeos_user_map_[username_hash]
+        ->set_private_slot_initialization_started();
+  }
+
+  void InitializeTPMForChromeOSUser(const std::string& username_hash,
+                                    CK_SLOT_ID slot_id) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
+    DCHECK(chromeos_user_map_[username_hash]
+               ->private_slot_initialization_started());
+
+    if (!chaps_module_)
+      return;
+
+    // Note that a reference is not taken to chaps_module_. This is safe since
+    // ChromeOSTokenManager is Leaky, so the reference it holds is never
+    // released.
+    std::unique_ptr<TPMModuleAndSlot> tpm_args(
+        new TPMModuleAndSlot(chaps_module_));
+    TPMModuleAndSlot* tpm_args_ptr = tpm_args.get();
+    base::PostTaskAndReply(
+        FROM_HERE,
+        {base::ThreadPool(), base::MayBlock(),
+         base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
+        base::BindOnce(&ChromeOSTokenManager::InitializeTPMTokenInThreadPool,
+                       slot_id, tpm_args_ptr),
+        base::BindOnce(&ChromeOSTokenManager::OnInitializedTPMForChromeOSUser,
+                       base::Unretained(this),  // ChromeOSTokenManager is leaky
+                       username_hash, std::move(tpm_args)));
+  }
+
+  void OnInitializedTPMForChromeOSUser(
+      const std::string& username_hash,
+      std::unique_ptr<TPMModuleAndSlot> tpm_args) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DVLOG(2) << "Got tpm slot for " << username_hash << " "
+             << !!tpm_args->tpm_slot;
+    chromeos_user_map_[username_hash]->SetPrivateSlot(
+        std::move(tpm_args->tpm_slot));
+  }
+
+  void InitializePrivateSoftwareSlotForChromeOSUser(
+      const std::string& username_hash) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    VLOG(1) << "using software private slot for " << username_hash;
+    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
+    DCHECK(chromeos_user_map_[username_hash]
+               ->private_slot_initialization_started());
+
+    if (prepared_test_private_slot_) {
+      chromeos_user_map_[username_hash]->SetPrivateSlot(
+          std::move(prepared_test_private_slot_));
+      return;
+    }
+
+    chromeos_user_map_[username_hash]->SetPrivateSlot(
+        chromeos_user_map_[username_hash]->GetPublicSlot());
+  }
+
+  ScopedPK11Slot GetPublicSlotForChromeOSUser(
+      const std::string& username_hash) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+    if (username_hash.empty()) {
+      DVLOG(2) << "empty username_hash";
+      return ScopedPK11Slot();
+    }
+
+    if (chromeos_user_map_.find(username_hash) == chromeos_user_map_.end()) {
+      LOG(ERROR) << username_hash << " not initialized.";
+      return ScopedPK11Slot();
+    }
+    return chromeos_user_map_[username_hash]->GetPublicSlot();
+  }
+
+  ScopedPK11Slot GetPrivateSlotForChromeOSUser(
+      const std::string& username_hash,
+      base::OnceCallback<void(ScopedPK11Slot)> callback) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+    if (username_hash.empty()) {
+      DVLOG(2) << "empty username_hash";
+      if (!callback.is_null()) {
+        base::ThreadTaskRunnerHandle::Get()->PostTask(
+            FROM_HERE, base::BindOnce(std::move(callback), ScopedPK11Slot()));
+      }
+      return ScopedPK11Slot();
+    }
+
+    DCHECK(chromeos_user_map_.find(username_hash) != chromeos_user_map_.end());
+
+    return chromeos_user_map_[username_hash]->GetPrivateSlot(
+        std::move(callback));
+  }
+
+  void CloseChromeOSUserForTesting(const std::string& username_hash) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    auto i = chromeos_user_map_.find(username_hash);
+    DCHECK(i != chromeos_user_map_.end());
+    chromeos_user_map_.erase(i);
+  }
+
+  void SetSystemKeySlotForTesting(ScopedPK11Slot slot) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+    // Ensure that a previous value of test_system_slot_ is not overwritten.
+    // Unsetting, i.e. setting a nullptr, however is allowed.
+    DCHECK(!slot || !test_system_slot_);
+    test_system_slot_ = std::move(slot);
+    if (test_system_slot_) {
+      tpm_slot_.reset(PK11_ReferenceSlot(test_system_slot_.get()));
+      RunAndClearTPMReadyCallbackList();
+    } else {
+      tpm_slot_.reset();
+    }
+  }
+
+  void SetSystemKeySlotWithoutInitializingTPMForTesting(ScopedPK11Slot slot) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+    // Ensure that a previous value of test_system_slot_ is not overwritten.
+    // Unsetting, i.e. setting a nullptr, however is allowed.
+    DCHECK(!slot || !test_system_slot_);
+    if (tpm_slot_ && tpm_slot_ == test_system_slot_) {
+      // Unset |tpm_slot_| if it was initialized from |test_system_slot_|.
+      tpm_slot_.reset();
+    }
+    test_system_slot_ = std::move(slot);
+  }
+
+  void SetPrivateSoftwareSlotForChromeOSUserForTesting(ScopedPK11Slot slot) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+
+    // Ensure that a previous value of prepared_test_private_slot_ is not
+    // overwritten. Unsetting, i.e. setting a nullptr, however is allowed.
+    DCHECK(!slot || !prepared_test_private_slot_);
+    prepared_test_private_slot_ = std::move(slot);
+  }
+
+  void GetSystemNSSKeySlotCallback(
+      base::OnceCallback<void(ScopedPK11Slot)> callback) {
+    std::move(callback).Run(
+        ScopedPK11Slot(PK11_ReferenceSlot(tpm_slot_.get())));
+  }
+
+  ScopedPK11Slot GetSystemNSSKeySlot(
+      base::OnceCallback<void(ScopedPK11Slot)> callback) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    // TODO(mattm): chromeos::TPMTokenloader always calls
+    // InitializeTPMTokenAndSystemSlot with slot 0.  If the system slot is
+    // disabled, tpm_slot_ will be the first user's slot instead. Can that be
+    // detected and return nullptr instead?
+
+    base::OnceClosure wrapped_callback;
+    if (!callback.is_null()) {
+      wrapped_callback = base::BindOnce(
+          &ChromeOSTokenManager::GetSystemNSSKeySlotCallback,
+          base::Unretained(this) /* singleton is leaky */, std::move(callback));
+    }
+    if (IsTPMTokenReady(std::move(wrapped_callback)))
+      return ScopedPK11Slot(PK11_ReferenceSlot(tpm_slot_.get()));
+    return ScopedPK11Slot();
+  }
+
+ private:
+  friend struct base::LazyInstanceTraitsBase<ChromeOSTokenManager>;
+
+  ChromeOSTokenManager() { EnsureNSSInit(); }
+
+  // NOTE(willchan): We don't actually cleanup on destruction since we leak NSS
+  // to prevent non-joinable threads from using NSS after it's already been
+  // shut down.
+  ~ChromeOSTokenManager() = delete;
+
+  bool tpm_token_enabled_for_nss_ = false;
+  bool initializing_tpm_token_ = false;
+  using TPMReadyCallbackList = std::vector<base::OnceClosure>;
+  TPMReadyCallbackList tpm_ready_callback_list_;
+  SECMODModule* chaps_module_ = nullptr;
+  crypto::ScopedPK11Slot tpm_slot_;
+  std::map<std::string, std::unique_ptr<ChromeOSUserData>> chromeos_user_map_;
+  ScopedPK11Slot test_system_slot_;
+  ScopedPK11Slot prepared_test_private_slot_;
+
+  THREAD_CHECKER(thread_checker_);
+};
+
+base::LazyInstance<ChromeOSTokenManager>::Leaky g_token_manager =
+    LAZY_INSTANCE_INITIALIZER;
+}  // namespace
+
+ScopedPK11Slot GetSystemNSSKeySlot(
+    base::OnceCallback<void(ScopedPK11Slot)> callback) {
+  return g_token_manager.Get().GetSystemNSSKeySlot(std::move(callback));
+}
+
+void SetSystemKeySlotForTesting(ScopedPK11Slot slot) {
+  g_token_manager.Get().SetSystemKeySlotForTesting(std::move(slot));
+}
+
+void SetSystemKeySlotWithoutInitializingTPMForTesting(ScopedPK11Slot slot) {
+  g_token_manager.Get().SetSystemKeySlotWithoutInitializingTPMForTesting(
+      std::move(slot));
+}
+
+void EnableTPMTokenForNSS() {
+  g_token_manager.Get().EnableTPMTokenForNSS();
+}
+
+bool IsTPMTokenEnabledForNSS() {
+  return g_token_manager.Get().IsTPMTokenEnabledForNSS();
+}
+
+bool IsTPMTokenReady(base::OnceClosure callback) {
+  return g_token_manager.Get().IsTPMTokenReady(std::move(callback));
+}
+
+void InitializeTPMTokenAndSystemSlot(int token_slot_id,
+                                     base::OnceCallback<void(bool)> callback) {
+  g_token_manager.Get().InitializeTPMTokenAndSystemSlot(token_slot_id,
+                                                        std::move(callback));
+}
+
+bool InitializeNSSForChromeOSUser(const std::string& username_hash,
+                                  const base::FilePath& path) {
+  return g_token_manager.Get().InitializeNSSForChromeOSUser(username_hash,
+                                                            path);
+}
+
+bool ShouldInitializeTPMForChromeOSUser(const std::string& username_hash) {
+  return g_token_manager.Get().ShouldInitializeTPMForChromeOSUser(
+      username_hash);
+}
+
+void WillInitializeTPMForChromeOSUser(const std::string& username_hash) {
+  g_token_manager.Get().WillInitializeTPMForChromeOSUser(username_hash);
+}
+
+void InitializeTPMForChromeOSUser(const std::string& username_hash,
+                                  CK_SLOT_ID slot_id) {
+  g_token_manager.Get().InitializeTPMForChromeOSUser(username_hash, slot_id);
+}
+
+void InitializePrivateSoftwareSlotForChromeOSUser(
+    const std::string& username_hash) {
+  g_token_manager.Get().InitializePrivateSoftwareSlotForChromeOSUser(
+      username_hash);
+}
+
+ScopedPK11Slot GetPublicSlotForChromeOSUser(const std::string& username_hash) {
+  return g_token_manager.Get().GetPublicSlotForChromeOSUser(username_hash);
+}
+
+ScopedPK11Slot GetPrivateSlotForChromeOSUser(
+    const std::string& username_hash,
+    base::OnceCallback<void(ScopedPK11Slot)> callback) {
+  return g_token_manager.Get().GetPrivateSlotForChromeOSUser(
+      username_hash, std::move(callback));
+}
+
+void CloseChromeOSUserForTesting(const std::string& username_hash) {
+  g_token_manager.Get().CloseChromeOSUserForTesting(username_hash);
+}
+
+void SetPrivateSoftwareSlotForChromeOSUserForTesting(ScopedPK11Slot slot) {
+  g_token_manager.Get().SetPrivateSoftwareSlotForChromeOSUserForTesting(
+      std::move(slot));
+}
+
+}  // namespace crypto
diff --git a/crypto/nss_util_internal.h b/crypto/nss_util_internal.h
index e1ef6c3..eb95afe4 100644
--- a/crypto/nss_util_internal.h
+++ b/crypto/nss_util_internal.h
@@ -123,6 +123,14 @@
 
 #endif  // defined(OS_CHROMEOS)
 
+// Loads the given module for this NSS session.
+SECMODModule* LoadNSSModule(const char* name,
+                            const char* library_path,
+                            const char* params);
+
+// Returns the current NSS error message.
+std::string GetNSSErrorMessage();
+
 }  // namespace crypto
 
 #endif  // CRYPTO_NSS_UTIL_INTERNAL_H_
diff --git a/extensions/renderer/resources/guest_view/guest_view_container_element.js b/extensions/renderer/resources/guest_view/guest_view_container_element.js
index 317a0b6..7dae2c3 100644
--- a/extensions/renderer/resources/guest_view/guest_view_container_element.js
+++ b/extensions/renderer/resources/guest_view/guest_view_container_element.js
@@ -15,11 +15,20 @@
 var IdGenerator = requireNative('id_generator');
 var logging = requireNative('logging');
 
-// Registers the browserplugin and guestview as custom elements.
+// Registers the browserplugin and guestview as custom elements once the
+// document has loaded.
 // |containerElementType| is a GuestViewContainerElement (e.g. WebViewElement)
 function registerElement(elementName, containerElementType) {
-  registerInternalElement($String.toLowerCase(elementName));
-  registerGuestViewElement(elementName, containerElementType);
+  var useCapture = true;
+  window.addEventListener('readystatechange', function listener(event) {
+    if (document.readyState == 'loading')
+      return;
+
+    registerInternalElement($String.toLowerCase(elementName));
+    registerGuestViewElement(elementName, containerElementType);
+
+    $EventTarget.removeEventListener(window, event.type, listener, useCapture);
+  }, useCapture);
 }
 
 // Registers the browser plugin <object> custom element. |viewType| is the
diff --git a/extensions/renderer/resources/guest_view/guest_view_deny.js b/extensions/renderer/resources/guest_view/guest_view_deny.js
index f77025c..64e353b 100644
--- a/extensions/renderer/resources/guest_view/guest_view_deny.js
+++ b/extensions/renderer/resources/guest_view/guest_view_deny.js
@@ -40,11 +40,19 @@
   });
 }
 
-for (var viewType of VIEW_TYPES) {
-  // Register the error-providing custom element only for those view types
-  // that have not already been registered. Since this module is always loaded
-  // last, all the view types that are available (i.e. have the proper
-  // permissions) will have already been registered on |window|.
-  if (!$Object.hasOwnProperty(window, viewType))
-    registerGuestViewElement(viewType);
-}
+var useCapture = true;
+window.addEventListener('readystatechange', function listener(event) {
+  if (document.readyState == 'loading')
+    return;
+
+  for (var viewType of VIEW_TYPES) {
+    // Register the error-providing custom element only for those view types
+    // that have not already been registered. Since this module is always loaded
+    // last, all the view types that are available (i.e. have the proper
+    // permissions) will have already been registered on |window|.
+    if (!$Object.hasOwnProperty(window, viewType))
+      registerGuestViewElement(viewType);
+  }
+
+  $EventTarget.removeEventListener(window, event.type, listener, useCapture);
+}, useCapture);
diff --git a/fuchsia/engine/BUILD.gn b/fuchsia/engine/BUILD.gn
index 46d5949..f5f113d 100644
--- a/fuchsia/engine/BUILD.gn
+++ b/fuchsia/engine/BUILD.gn
@@ -93,6 +93,7 @@
     "//third_party/fuchsia-sdk/sdk:math",
     "//third_party/fuchsia-sdk/sdk:scenic_cpp",
     "//third_party/fuchsia-sdk/sdk:sys_cpp",
+    "//third_party/fuchsia-sdk/sdk:ui_gfx",
     "//third_party/fuchsia-sdk/sdk:web",
     "//third_party/widevine/cdm:headers",
     "//ui/aura",
@@ -117,6 +118,8 @@
   sources = [
     "browser/accessibility_bridge.cc",
     "browser/accessibility_bridge.h",
+    "browser/ax_tree_converter.cc",
+    "browser/ax_tree_converter.h",
     "browser/content_directory_loader_factory.cc",
     "browser/content_directory_loader_factory.h",
     "browser/context_impl.cc",
@@ -264,6 +267,7 @@
 test("web_engine_unittests") {
   sources = [
     "browser/accessibility_bridge_unittest.cc",
+    "browser/ax_tree_converter_unittest.cc",
     "browser/cookie_manager_impl_unittest.cc",
     "browser/frame_impl_unittest.cc",
     "browser/url_request_rewrite_rules_manager_unittest.cc",
diff --git a/fuchsia/engine/browser/DEPS b/fuchsia/engine/browser/DEPS
index 70b09f16..b5db9e8 100644
--- a/fuchsia/engine/browser/DEPS
+++ b/fuchsia/engine/browser/DEPS
@@ -14,10 +14,12 @@
   "+third_party/blink/public/common/messaging",
   "+third_party/blink/public/mojom/messaging",
   "+third_party/widevine/cdm",
+  "+ui/accessibility",
   "+ui/aura",
   "+ui/base/ime",
   "+ui/display",
   "+ui/events",
+  "+ui/gfx",
   "+ui/ozone/public",
   "+ui/platform_window",
   "+ui/wm/core",
diff --git a/fuchsia/engine/browser/ax_tree_converter.cc b/fuchsia/engine/browser/ax_tree_converter.cc
new file mode 100644
index 0000000..f082eff5
--- /dev/null
+++ b/fuchsia/engine/browser/ax_tree_converter.cc
@@ -0,0 +1,133 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "fuchsia/engine/browser/ax_tree_converter.h"
+
+#include <fuchsia/math/cpp/fidl.h>
+#include <fuchsia/ui/gfx/cpp/fidl.h>
+#include <fuchsia/ui/views/cpp/fidl.h>
+#include <lib/ui/scenic/cpp/commands.h>
+#include <vector>
+
+#include "base/bit_cast.h"
+#include "ui/accessibility/ax_enums.mojom.h"
+#include "ui/accessibility/ax_tree_id.h"
+#include "ui/gfx/geometry/rect_f.h"
+
+namespace {
+
+fuchsia::accessibility::semantics::Role ConvertRole(ax::mojom::Role role) {
+  if (role == ax::mojom::Role::kUnknown)
+    return fuchsia::accessibility::semantics::Role::UNKNOWN;
+
+  // TODO(crbug.com/973095): Currently Fuchsia only has one Role option. Add
+  // more and update tests as they become supported.
+  return fuchsia::accessibility::semantics::Role::UNKNOWN;
+}
+
+fuchsia::accessibility::semantics::Attributes SetAttributes(std::string name) {
+  fuchsia::accessibility::semantics::Attributes attributes;
+  attributes.set_label(name);
+  return attributes;
+}
+
+std::vector<fuchsia::accessibility::semantics::Action> ConvertActions(
+    uint32_t actions) {
+  std::vector<fuchsia::accessibility::semantics::Action> fuchsia_actions;
+  ax::mojom::Action action_enum = static_cast<ax::mojom::Action>(actions);
+
+  switch (action_enum) {
+    case ax::mojom::Action::kDoDefault:
+      fuchsia_actions.push_back(
+          fuchsia::accessibility::semantics::Action::DEFAULT);
+      break;
+    case ax::mojom::Action::kNone:
+    case ax::mojom::Action::kAnnotatePageImages:
+    case ax::mojom::Action::kBlur:
+    case ax::mojom::Action::kClearAccessibilityFocus:
+    case ax::mojom::Action::kCustomAction:
+    case ax::mojom::Action::kDecrement:
+    case ax::mojom::Action::kFocus:
+    case ax::mojom::Action::kGetImageData:
+    case ax::mojom::Action::kGetTextLocation:
+    case ax::mojom::Action::kHideTooltip:
+    case ax::mojom::Action::kHitTest:
+    case ax::mojom::Action::kIncrement:
+    case ax::mojom::Action::kInternalInvalidateTree:
+    case ax::mojom::Action::kLoadInlineTextBoxes:
+    case ax::mojom::Action::kReplaceSelectedText:
+    case ax::mojom::Action::kScrollBackward:
+    case ax::mojom::Action::kScrollDown:
+    case ax::mojom::Action::kScrollForward:
+    case ax::mojom::Action::kScrollLeft:
+    case ax::mojom::Action::kScrollRight:
+    case ax::mojom::Action::kScrollUp:
+    case ax::mojom::Action::kScrollToMakeVisible:
+    case ax::mojom::Action::kScrollToPoint:
+    case ax::mojom::Action::kSetAccessibilityFocus:
+    case ax::mojom::Action::kSetScrollOffset:
+    case ax::mojom::Action::kSetSelection:
+    case ax::mojom::Action::kSetSequentialFocusNavigationStartingPoint:
+    case ax::mojom::Action::kSetValue:
+    case ax::mojom::Action::kShowContextMenu:
+    case ax::mojom::Action::kSignalEndOfTest:
+    case ax::mojom::Action::kShowTooltip:
+      DVLOG(2) << "Action: " << action_enum;
+      break;
+  }
+
+  return fuchsia_actions;
+}
+
+std::vector<uint32_t> ConvertChildIds(std::vector<int32_t> ids) {
+  std::vector<uint32_t> child_ids;
+  child_ids.reserve(ids.size());
+  for (auto i : ids) {
+    child_ids.push_back(bit_cast<uint32_t>(i));
+  }
+  return child_ids;
+}
+
+fuchsia::ui::gfx::BoundingBox ConvertBoundingBox(gfx::RectF bounds) {
+  fuchsia::ui::gfx::BoundingBox box;
+  float min[3] = {bounds.bottom_left().x(), bounds.bottom_left().y(), 0.0f};
+  float max[3] = {bounds.top_right().x(), bounds.top_right().y(), 0.0f};
+  box.min = scenic::NewVector3(min);
+  box.max = scenic::NewVector3(max);
+  return box;
+}
+
+// The Semantics Manager applies this matrix to position the node and its
+// subtree as an optimization to handle resizing or repositioning. This requires
+// only one node to be updated on such an event.
+fuchsia::ui::gfx::mat4 ConvertTransform(gfx::Transform* transform) {
+  float mat[16] = {};
+  transform->matrix().asColMajorf(mat);
+  fuchsia::ui::gfx::Matrix4Value fuchsia_transform =
+      scenic::NewMatrix4Value(mat);
+  return fuchsia_transform.value;
+}
+
+}  // namespace
+
+fuchsia::accessibility::semantics::Node AXNodeDataToSemanticNode(
+    const ui::AXNodeData& node) {
+  fuchsia::accessibility::semantics::Node fuchsia_node;
+  fuchsia_node.set_node_id(bit_cast<uint32_t>(node.id));
+  fuchsia_node.set_role(ConvertRole(node.role));
+  // TODO(fxb/18796): Handle node state conversions once available.
+  if (node.HasStringAttribute(ax::mojom::StringAttribute::kName)) {
+    fuchsia_node.set_attributes(SetAttributes(
+        node.GetStringAttribute(ax::mojom::StringAttribute::kName)));
+  }
+  fuchsia_node.set_actions(ConvertActions(node.actions));
+  fuchsia_node.set_child_ids(ConvertChildIds(node.child_ids));
+  fuchsia_node.set_location(ConvertBoundingBox(node.relative_bounds.bounds));
+  if (node.relative_bounds.transform) {
+    fuchsia_node.set_transform(
+        ConvertTransform(node.relative_bounds.transform.get()));
+  }
+
+  return fuchsia_node;
+}
diff --git a/fuchsia/engine/browser/ax_tree_converter.h b/fuchsia/engine/browser/ax_tree_converter.h
new file mode 100644
index 0000000..eec08c7
--- /dev/null
+++ b/fuchsia/engine/browser/ax_tree_converter.h
@@ -0,0 +1,21 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FUCHSIA_ENGINE_BROWSER_AX_TREE_CONVERTER_H_
+#define FUCHSIA_ENGINE_BROWSER_AX_TREE_CONVERTER_H_
+
+#include <fuchsia/accessibility/semantics/cpp/fidl.h>
+
+#include "content/public/browser/ax_event_notification_details.h"
+#include "fuchsia/engine/web_engine_export.h"
+
+// Converts an AXNodeData to a Fuchsia Semantic Node.
+// Both data types represent a single node, and no additional state is needed.
+// AXNodeData is used to convey partial updates, so not all fields may be
+// present. Those that are will be converted. The Fuchsia SemanticsManager
+// accepts partial updates, so |node| does not require all fields to be set.
+WEB_ENGINE_EXPORT fuchsia::accessibility::semantics::Node
+AXNodeDataToSemanticNode(const ui::AXNodeData& node);
+
+#endif  // FUCHSIA_ENGINE_BROWSER_AX_TREE_CONVERTER_H_
diff --git a/fuchsia/engine/browser/ax_tree_converter_unittest.cc b/fuchsia/engine/browser/ax_tree_converter_unittest.cc
new file mode 100644
index 0000000..1baf9cc
--- /dev/null
+++ b/fuchsia/engine/browser/ax_tree_converter_unittest.cc
@@ -0,0 +1,211 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "fuchsia/engine/browser/ax_tree_converter.h"
+
+#include <lib/ui/scenic/cpp/commands.h>
+#include <vector>
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gfx/transform.h"
+
+using fuchsia::accessibility::semantics::Action;
+using fuchsia::accessibility::semantics::Attributes;
+using fuchsia::accessibility::semantics::Node;
+using fuchsia::accessibility::semantics::Role;
+
+namespace {
+
+const char kLabel1[] = "label nodes, not people";
+const char kLabel2[] = "fancy stickers";
+const int32_t kChildId1 = 23901;
+const int32_t kChildId2 = 484345;
+const int32_t kChildId3 = 4156877;
+const int32_t kRectX = 1;
+const int32_t kRectY = 2;
+const int32_t kRectWidth = 7;
+const int32_t kRectHeight = 8;
+const float k4DIdentityMatrix[16] = {1, 0, 0, 0, 0, 1, 0, 0,
+                                     0, 0, 1, 0, 0, 0, 0, 1};
+
+bool SemanticNodesAreEqual(const Node& first, const Node& second) {
+  if (first.node_id() != second.node_id())
+    return false;
+  if (first.has_role() && second.has_role() && first.role() != second.role()) {
+    return false;
+  }
+  if (first.has_attributes() && second.has_attributes() &&
+      first.attributes().label() != second.attributes().label()) {
+    return false;
+  }
+  if (first.has_actions() && second.has_actions() &&
+      first.actions() != second.actions()) {
+    return false;
+  }
+  if (first.has_child_ids() && second.has_child_ids() &&
+      first.child_ids() != second.child_ids()) {
+    return false;
+  }
+  if (first.has_location() && second.has_location()) {
+    if (first.location().min.x != second.location().min.x)
+      return false;
+    if (first.location().min.y != second.location().min.y)
+      return false;
+    if (first.location().min.z != second.location().min.z)
+      return false;
+    if (first.location().max.x != second.location().max.x)
+      return false;
+    if (first.location().max.y != second.location().max.y)
+      return false;
+    if (first.location().max.z != second.location().max.z)
+      return false;
+  }
+  if (first.has_transform() && second.has_transform() &&
+      first.transform().matrix != second.transform().matrix) {
+    return false;
+  }
+
+  return true;
+}
+
+ui::AXNodeData CreateAXNodeData(ax::mojom::Role role,
+                                uint32_t actions,
+                                std::vector<int32_t> child_ids,
+                                ui::AXRelativeBounds relative_bounds,
+                                base::StringPiece name) {
+  ui::AXNodeData node;
+  node.role = role;
+  node.actions = actions;
+  node.child_ids = child_ids;
+  node.relative_bounds = relative_bounds;
+  if (!name.empty())
+    node.AddStringAttribute(ax::mojom::StringAttribute::kName, name.data());
+  return node;
+}
+
+Node CreateSemanticNode(uint32_t id,
+                        Role role,
+                        Attributes attributes,
+                        std::vector<Action> actions,
+                        std::vector<uint32_t> child_ids,
+                        fuchsia::ui::gfx::BoundingBox location,
+                        fuchsia::ui::gfx::mat4 transform) {
+  Node node;
+  node.set_node_id(id);
+  node.set_role(role);
+  node.set_attributes(std::move(attributes));
+  node.set_actions(actions);
+  node.set_child_ids(child_ids);
+  node.set_location(location);
+  node.set_transform(transform);
+  return node;
+}
+
+class AXTreeConverterTest : public testing::Test {
+ public:
+  AXTreeConverterTest() = default;
+  ~AXTreeConverterTest() override = default;
+
+  DISALLOW_COPY_AND_ASSIGN(AXTreeConverterTest);
+};
+
+TEST_F(AXTreeConverterTest, AllFieldsSetAndEqual) {
+  ui::AXRelativeBounds relative_bounds = ui::AXRelativeBounds();
+  relative_bounds.bounds = gfx::RectF(kRectX, kRectY, kRectWidth, kRectHeight);
+  relative_bounds.transform =
+      std::make_unique<gfx::Transform>(gfx::Transform::kSkipInitialization);
+  relative_bounds.transform->MakeIdentity();
+  auto source_node_data =
+      CreateAXNodeData(ax::mojom::Role::kButton,
+                       static_cast<uint32_t>(ax::mojom::Action::kDoDefault),
+                       std::vector<int32_t>{kChildId1, kChildId2, kChildId3},
+                       relative_bounds, kLabel1);
+  auto converted_node = AXNodeDataToSemanticNode(source_node_data);
+  EXPECT_EQ(static_cast<uint32_t>(source_node_data.id),
+            converted_node.node_id());
+
+  Attributes attributes;
+  attributes.set_label(kLabel1);
+  fuchsia::ui::gfx::BoundingBox box;
+  float min[3] = {kRectX, kRectY + kRectHeight, 0.0f};
+  float max[3] = {kRectHeight, kRectY, 0.0f};
+  box.min = scenic::NewVector3(min);
+  box.max = scenic::NewVector3(max);
+  fuchsia::ui::gfx::Matrix4Value mat =
+      scenic::NewMatrix4Value(k4DIdentityMatrix);
+  auto expected_node = CreateSemanticNode(
+      source_node_data.id, Role::UNKNOWN, std::move(attributes),
+      std::vector<Action>{Action::DEFAULT},
+      std::vector<uint32_t>{kChildId1, kChildId2, kChildId3}, box, mat.value);
+
+  EXPECT_TRUE(SemanticNodesAreEqual(std::move(converted_node),
+                                    std::move(expected_node)));
+}
+
+TEST_F(AXTreeConverterTest, SomeFieldsSetAndEqual) {
+  ui::AXNodeData source_node_data;
+  source_node_data.actions =
+      static_cast<uint32_t>(ax::mojom::Action::kDoDefault);
+  source_node_data.child_ids = std::vector<int32_t>{kChildId1};
+  auto converted_node = AXNodeDataToSemanticNode(source_node_data);
+  EXPECT_EQ(static_cast<uint32_t>(source_node_data.id),
+            converted_node.node_id());
+
+  Node expected_node;
+  expected_node.set_node_id(source_node_data.id);
+  expected_node.set_actions(std::vector<Action>{Action::DEFAULT});
+  expected_node.set_child_ids(std::vector<uint32_t>{kChildId1});
+
+  EXPECT_TRUE(SemanticNodesAreEqual(std::move(converted_node),
+                                    std::move(expected_node)));
+}
+
+TEST_F(AXTreeConverterTest, FieldMismatch) {
+  ui::AXRelativeBounds relative_bounds = ui::AXRelativeBounds();
+  relative_bounds.bounds = gfx::RectF(kRectX, kRectY, kRectWidth, kRectHeight);
+  relative_bounds.transform =
+      std::make_unique<gfx::Transform>(gfx::Transform::kSkipInitialization);
+  relative_bounds.transform->MakeIdentity();
+  auto source_node_data =
+      CreateAXNodeData(ax::mojom::Role::kButton,
+                       static_cast<uint32_t>(ax::mojom::Action::kDoDefault),
+                       std::vector<int32_t>{kChildId1, kChildId2, kChildId3},
+                       relative_bounds, kLabel1);
+  auto converted_node = AXNodeDataToSemanticNode(source_node_data);
+  EXPECT_EQ(static_cast<uint32_t>(source_node_data.id),
+            converted_node.node_id());
+
+  Attributes attributes;
+  attributes.set_label(kLabel1);
+  fuchsia::ui::gfx::BoundingBox box;
+  float min[3] = {kRectX, kRectY + kRectHeight, 0.0f};
+  float max[3] = {kRectHeight, kRectY, 0.0f};
+  box.min = scenic::NewVector3(min);
+  box.max = scenic::NewVector3(max);
+  fuchsia::ui::gfx::Matrix4Value mat =
+      scenic::NewMatrix4Value(k4DIdentityMatrix);
+  auto expected_node = CreateSemanticNode(
+      source_node_data.id, Role::UNKNOWN, std::move(attributes),
+      std::vector<Action>{Action::DEFAULT},
+      std::vector<uint32_t>{kChildId1, kChildId2, kChildId3}, box, mat.value);
+
+  // Start with nodes being equal.
+  EXPECT_TRUE(SemanticNodesAreEqual(converted_node, expected_node));
+
+  // Make a copy of |source_node_data| and change the name attribute. Check that
+  // the resulting |converted_node| is different from |expected_node|.
+  auto modified_node_data = source_node_data;
+  modified_node_data.AddStringAttribute(ax::mojom::StringAttribute::kName,
+                                        kLabel2);
+  converted_node = AXNodeDataToSemanticNode(modified_node_data);
+  EXPECT_FALSE(SemanticNodesAreEqual(converted_node, expected_node));
+
+  // The same as above, this time changing |child_ids|.
+  modified_node_data = source_node_data;
+  modified_node_data.child_ids = std::vector<int32_t>{};
+  converted_node = AXNodeDataToSemanticNode(modified_node_data);
+  EXPECT_FALSE(SemanticNodesAreEqual(converted_node, expected_node));
+}
+
+}  // namespace
diff --git a/fuchsia/engine/browser/frame_impl.cc b/fuchsia/engine/browser/frame_impl.cc
index b1f3ae5..b89a3dec 100644
--- a/fuchsia/engine/browser/frame_impl.cc
+++ b/fuchsia/engine/browser/frame_impl.cc
@@ -30,6 +30,7 @@
 #include "mojo/public/cpp/system/platform_handle.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 #include "third_party/blink/public/common/logging/logging_utils.h"
+#include "ui/aura/client/window_parenting_client.h"
 #include "ui/aura/layout_manager.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host_platform.h"
@@ -52,8 +53,12 @@
   fuchsia::web::PopupFrameCreationInfo info;
 };
 
-// Layout manager that allows only one child window and stretches it to fill the
-// parent.
+// Layout manager used for the root window that hosts the WebContents window.
+// The main WebContents window is stretched to occupy the whole parent. Note
+// that the root window may host other windows (particularly menus for drop-down
+// boxes). These windows get the location and size they request. The main
+// window for the web content is identified by window.type() ==
+// WINDOW_TYPE_CONTROL (set in WebContentsViewAura).
 class LayoutManagerImpl : public aura::LayoutManager {
  public:
   LayoutManagerImpl() = default;
@@ -61,31 +66,43 @@
 
   // aura::LayoutManager implementation.
   void OnWindowResized() override {
-    // Resize the child to match the size of the parent
-    if (child_) {
-      SetChildBoundsDirect(child_,
-                           gfx::Rect(child_->parent()->bounds().size()));
+    // Resize the child to match the size of the parent.
+    if (main_child_) {
+      SetChildBoundsDirect(main_child_,
+                           gfx::Rect(main_child_->parent()->bounds().size()));
     }
   }
+
   void OnWindowAddedToLayout(aura::Window* child) override {
-    DCHECK(!child_);
-    child_ = child;
-    SetChildBoundsDirect(child_, gfx::Rect(child_->parent()->bounds().size()));
+    if (child->type() == aura::client::WINDOW_TYPE_CONTROL) {
+      DCHECK(!main_child_);
+      main_child_ = child;
+      SetChildBoundsDirect(main_child_,
+                           gfx::Rect(main_child_->parent()->bounds().size()));
+    }
   }
 
   void OnWillRemoveWindowFromLayout(aura::Window* child) override {
-    DCHECK_EQ(child, child_);
-    child_ = nullptr;
+    if (child->type() == aura::client::WINDOW_TYPE_CONTROL) {
+      DCHECK_EQ(child, main_child_);
+      main_child_ = nullptr;
+    }
   }
 
   void OnWindowRemovedFromLayout(aura::Window* child) override {}
+
   void OnChildWindowVisibilityChanged(aura::Window* child,
                                       bool visible) override {}
+
   void SetChildBounds(aura::Window* child,
-                      const gfx::Rect& requested_bounds) override {}
+                      const gfx::Rect& requested_bounds) override {
+    if (child != main_child_)
+      SetChildBoundsDirect(child, requested_bounds);
+  }
 
  private:
-  aura::Window* child_ = nullptr;
+  // The main window used for the WebContents.
+  aura::Window* main_child_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(LayoutManagerImpl);
 };
@@ -134,12 +151,36 @@
   return false;
 }
 
-class ScenicWindowTreeHost : public aura::WindowTreeHostPlatform {
+class WindowParentingClientImpl : public aura::client::WindowParentingClient {
  public:
-  explicit ScenicWindowTreeHost(ui::PlatformWindowInitProperties properties)
-      : aura::WindowTreeHostPlatform(std::move(properties)) {}
+  explicit WindowParentingClientImpl(aura::Window* root_window)
+      : root_window_(root_window) {
+    aura::client::SetWindowParentingClient(root_window_, this);
+  }
+  ~WindowParentingClientImpl() override {
+    aura::client::SetWindowParentingClient(root_window_, nullptr);
+  }
 
-  ~ScenicWindowTreeHost() override = default;
+  // WindowParentingClient implementation.
+  aura::Window* GetDefaultParent(aura::Window* window,
+                                 const gfx::Rect& bounds) override {
+    return root_window_;
+  }
+
+ private:
+  aura::Window* root_window_;
+
+  DISALLOW_COPY_AND_ASSIGN(WindowParentingClientImpl);
+};
+
+// WindowTreeHost that hosts web frames.
+class FrameWindowTreeHost : public aura::WindowTreeHostPlatform {
+ public:
+  explicit FrameWindowTreeHost(ui::PlatformWindowInitProperties properties)
+      : aura::WindowTreeHostPlatform(std::move(properties)),
+        window_parenting_client_(window()) {}
+
+  ~FrameWindowTreeHost() override = default;
 
   // Route focus & blur events to the window's focus observer and its
   // InputMethod.
@@ -154,7 +195,9 @@
   }
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(ScenicWindowTreeHost);
+  WindowParentingClientImpl window_parenting_client_;
+
+  DISALLOW_COPY_AND_ASSIGN(FrameWindowTreeHost);
 };
 
 logging::LogSeverity ConsoleLogLevelToLoggingSeverity(
@@ -423,7 +466,7 @@
   properties.view_ref_pair = scenic::ViewRefPair::New();
 
   window_tree_host_ =
-      std::make_unique<ScenicWindowTreeHost>(std::move(properties));
+      std::make_unique<FrameWindowTreeHost>(std::move(properties));
   window_tree_host_->InitHost();
 
   window_tree_host_->window()->GetHost()->AddEventRewriter(
diff --git a/fuchsia/engine/context_provider_impl.cc b/fuchsia/engine/context_provider_impl.cc
index a5d9a48..0a8fadfe 100644
--- a/fuchsia/engine/context_provider_impl.cc
+++ b/fuchsia/engine/context_provider_impl.cc
@@ -255,10 +255,6 @@
                                      gl::kGLImplementationStubName);
   }
 
-  if (enable_protected_graphics) {
-    launch_command.AppendSwitch(switches::kEnforceVulkanProtectedMemory);
-  }
-
   if (enable_widevine) {
     launch_command.AppendSwitch(switches::kEnableWidevine);
   }
diff --git a/gpu/command_buffer/service/service_utils.cc b/gpu/command_buffer/service/service_utils.cc
index 06f9d1b..b7e5ae0 100644
--- a/gpu/command_buffer/service/service_utils.cc
+++ b/gpu/command_buffer/service/service_utils.cc
@@ -160,7 +160,7 @@
         << "--enabled-features=Vulkan is overrided by --use-vulkan.";
     auto value = command_line->GetSwitchValueASCII(switches::kUseVulkan);
     if (value.empty() || value == switches::kVulkanImplementationNameNative) {
-      gpu_preferences.use_vulkan = VulkanImplementationName::kNative;
+      gpu_preferences.use_vulkan = VulkanImplementationName::kForcedNative;
     } else if (value == switches::kVulkanImplementationNameSwiftshader) {
       gpu_preferences.use_vulkan = VulkanImplementationName::kSwiftshader;
     } else {
diff --git a/gpu/config/gpu_preferences.h b/gpu/config/gpu_preferences.h
index 610064b..656b72c0 100644
--- a/gpu/config/gpu_preferences.h
+++ b/gpu/config/gpu_preferences.h
@@ -32,7 +32,8 @@
 enum class VulkanImplementationName : uint32_t {
   kNone = 0,
   kNative = 1,
-  kSwiftshader = 2,
+  kForcedNative = 2,  // Cannot override by GPU blacklist.
+  kSwiftshader = 3,
   kLast = kSwiftshader,
 };
 
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
index d097331..235874e 100644
--- a/gpu/config/gpu_util.cc
+++ b/gpu/config/gpu_util.cc
@@ -77,7 +77,9 @@
     const std::set<int>& blacklisted_features,
     const GpuPreferences& gpu_preferences) {
 #if BUILDFLAG(ENABLE_VULKAN)
-  if (blacklisted_features.count(GPU_FEATURE_TYPE_VULKAN))
+  // Only blacklist native vulkan.
+  if (gpu_preferences.use_vulkan == VulkanImplementationName::kNative &&
+      blacklisted_features.count(GPU_FEATURE_TYPE_VULKAN))
     return kGpuFeatureStatusBlacklisted;
 
   if (gpu_preferences.use_vulkan == VulkanImplementationName::kNone)
diff --git a/gpu/ipc/common/gpu_preferences.mojom b/gpu/ipc/common/gpu_preferences.mojom
index 99d465a..3fd75af7 100644
--- a/gpu/ipc/common/gpu_preferences.mojom
+++ b/gpu/ipc/common/gpu_preferences.mojom
@@ -14,7 +14,8 @@
 enum VulkanImplementationName {
   kNone = 0,
   kNative = 1,
-  kSwiftshader = 2,
+  kForcedNative = 2,
+  kSwiftshader = 3,
   kLast = kSwiftshader,
 };
 
diff --git a/gpu/ipc/common/gpu_preferences_mojom_traits.h b/gpu/ipc/common/gpu_preferences_mojom_traits.h
index 1cb00ea..a481a354 100644
--- a/gpu/ipc/common/gpu_preferences_mojom_traits.h
+++ b/gpu/ipc/common/gpu_preferences_mojom_traits.h
@@ -28,6 +28,8 @@
         return gpu::mojom::VulkanImplementationName::kNone;
       case gpu::VulkanImplementationName::kNative:
         return gpu::mojom::VulkanImplementationName::kNative;
+      case gpu::VulkanImplementationName::kForcedNative:
+        return gpu::mojom::VulkanImplementationName::kForcedNative;
       case gpu::VulkanImplementationName::kSwiftshader:
         return gpu::mojom::VulkanImplementationName::kSwiftshader;
     }
@@ -43,6 +45,9 @@
       case gpu::mojom::VulkanImplementationName::kNative:
         *out = gpu::VulkanImplementationName::kNative;
         return true;
+      case gpu::mojom::VulkanImplementationName::kForcedNative:
+        *out = gpu::VulkanImplementationName::kForcedNative;
+        return true;
       case gpu::mojom::VulkanImplementationName::kSwiftshader:
         *out = gpu::VulkanImplementationName::kSwiftshader;
         return true;
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
index 09d3854..0aa6832 100644
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -273,33 +273,6 @@
           ->GetSupportedFormatsForTexturing();
 #endif
 
-#if BUILDFLAG(ENABLE_VULKAN)
-  if (gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] ==
-      gpu::kGpuFeatureStatusEnabled) {
-    DCHECK_NE(gpu_preferences_.use_vulkan,
-              gpu::VulkanImplementationName::kNone);
-    bool use_swiftshader = gpu_preferences_.use_vulkan ==
-                           gpu::VulkanImplementationName::kSwiftshader;
-    const bool enforce_protected_memory =
-        gpu_preferences_.enforce_vulkan_protected_memory;
-    vulkan_implementation_ = gpu::CreateVulkanImplementation(
-        use_swiftshader,
-        enforce_protected_memory ? true : false /* allow_protected_memory */,
-        enforce_protected_memory);
-    if (!vulkan_implementation_ ||
-        !vulkan_implementation_->InitializeVulkanInstance(
-            !gpu_preferences_.disable_vulkan_surface)) {
-      DLOG(ERROR) << "Failed to create and initialize Vulkan implementation.";
-      vulkan_implementation_ = nullptr;
-      CHECK(!gpu_preferences_.disable_vulkan_fallback_to_gl_for_testing);
-    }
-    if (!vulkan_implementation_)
-      gpu_preferences_.use_vulkan = gpu::VulkanImplementationName::kNone;
-  }
-#else
-  gpu_preferences_.use_vulkan = gpu::VulkanImplementationName::kNone;
-#endif
-
   if (!use_swiftshader) {
     use_swiftshader = EnableSwiftShaderIfNeeded(
         command_line, gpu_feature_info_,
@@ -330,31 +303,91 @@
       gles2::PassthroughCommandDecoderSupported();
 
   // We need to collect GL strings (VENDOR, RENDERER) for blacklisting purposes.
-  if (!gl_disabled && !use_swiftshader) {
-    if (!CollectGraphicsInfo(&gpu_info_, gpu_preferences_))
-      return false;
-    gpu::SetKeysForCrashLogging(gpu_info_);
-    gpu_feature_info_ = gpu::ComputeGpuFeatureInfo(gpu_info_, gpu_preferences_,
-                                                   command_line, nullptr);
-    use_swiftshader = EnableSwiftShaderIfNeeded(
-        command_line, gpu_feature_info_,
-        gpu_preferences_.disable_software_rasterizer, false);
-    if (use_swiftshader) {
-#if defined(OS_LINUX)
-      VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
-              << "on Linux";
-      return false;
-#else
-      gl::init::ShutdownGL(true);
-      if (!gl::init::InitializeGLNoExtensionsOneOff()) {
-        VLOG(1) << "gl::init::InitializeGLNoExtensionsOneOff with SwiftShader "
-                << "failed";
+  if (!gl_disabled) {
+    if (!use_swiftshader) {
+      if (!CollectGraphicsInfo(&gpu_info_, gpu_preferences_))
         return false;
-      }
+      gpu::SetKeysForCrashLogging(gpu_info_);
+      gpu_feature_info_ = gpu::ComputeGpuFeatureInfo(
+          gpu_info_, gpu_preferences_, command_line, nullptr);
+      use_swiftshader = EnableSwiftShaderIfNeeded(
+          command_line, gpu_feature_info_,
+          gpu_preferences_.disable_software_rasterizer, false);
+      if (use_swiftshader) {
+#if defined(OS_LINUX)
+        VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
+                << "on Linux";
+        return false;
+#else
+        gl::init::ShutdownGL(true);
+        if (!gl::init::InitializeGLNoExtensionsOneOff()) {
+          VLOG(1)
+              << "gl::init::InitializeGLNoExtensionsOneOff with SwiftShader "
+              << "failed";
+          return false;
+        }
 #endif  // OS_LINUX
+      }
+    } else {  // use_swiftshader == true
+      switch (gpu_preferences_.use_vulkan) {
+        case gpu::VulkanImplementationName::kNative: {
+          // Collect GPU info, so we can use backlist to disable vulkan if it is
+          // needed.
+          gpu::GPUInfo gpu_info;
+          if (!CollectGraphicsInfo(&gpu_info, gpu_preferences_))
+            return false;
+          auto gpu_feature_info = gpu::ComputeGpuFeatureInfo(
+              gpu_info, gpu_preferences_, command_line, nullptr);
+          gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] =
+              gpu_feature_info.status_values[gpu::GPU_FEATURE_TYPE_VULKAN];
+          break;
+        }
+        case gpu::VulkanImplementationName::kForcedNative:
+        case gpu::VulkanImplementationName::kSwiftshader:
+          gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] =
+              gpu::kGpuFeatureStatusEnabled;
+          break;
+        case gpu::VulkanImplementationName::kNone:
+          gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] =
+              gpu::kGpuFeatureStatusDisabled;
+          break;
+      }
     }
   }
 
+#if BUILDFLAG(ENABLE_VULKAN)
+  if (gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] ==
+      gpu::kGpuFeatureStatusEnabled) {
+    DCHECK_NE(gpu_preferences_.use_vulkan,
+              gpu::VulkanImplementationName::kNone);
+    bool vulkan_use_swiftshader = gpu_preferences_.use_vulkan ==
+                                  gpu::VulkanImplementationName::kSwiftshader;
+    const bool enforce_protected_memory =
+        gpu_preferences_.enforce_vulkan_protected_memory;
+    vulkan_implementation_ = gpu::CreateVulkanImplementation(
+        vulkan_use_swiftshader,
+        enforce_protected_memory ? true : false /* allow_protected_memory */,
+        enforce_protected_memory);
+    if (!vulkan_implementation_ ||
+        !vulkan_implementation_->InitializeVulkanInstance(
+            !gpu_preferences_.disable_vulkan_surface)) {
+      DLOG(ERROR) << "Failed to create and initialize Vulkan implementation.";
+      vulkan_implementation_ = nullptr;
+      CHECK(!gpu_preferences_.disable_vulkan_fallback_to_gl_for_testing);
+    }
+  }
+  if (!vulkan_implementation_) {
+    gpu_preferences_.use_vulkan = gpu::VulkanImplementationName::kNone;
+    gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] =
+        gpu::kGpuFeatureStatusDisabled;
+  }
+
+#else
+  gpu_preferences_.use_vulkan = gpu::VulkanImplementationName::kNone;
+  gpu_feature_info_.status_values[gpu::GPU_FEATURE_TYPE_VULKAN] =
+      gpu::kGpuFeatureStatusDisabled;
+#endif
+
   // Collect GPU process info
   if (!gl_disabled) {
     if (!CollectGpuExtraInfo(&gpu_extra_info_))
diff --git a/headless/test/data/protocol/emulation/virtual-time-history-navigation-expected.txt b/headless/test/data/protocol/emulation/virtual-time-history-navigation-expected.txt
index c36ce3c37e..1143e4e 100644
--- a/headless/test/data/protocol/emulation/virtual-time-history-navigation-expected.txt
+++ b/headless/test/data/protocol/emulation/virtual-time-history-navigation-expected.txt
@@ -1,6 +1,20 @@
 Tests virtual time with history navigation.
+PAGE: http://foo.com/
+PAGE: http://foo.com/a/
 document.location.href = 'http://bar.com/'
+PAGE: http://bar.com/
+PAGE: http://bar.com/b/
+PAGE: http://bar.com/c/
+PAGE: http://bar.com/d/
 document.getElementById('frame_b').src = '/e/'
+PAGE: http://bar.com/e/
+PAGE: http://bar.com/f/
 history.back()
+PAGE: http://bar.com/b/
+PAGE: http://bar.com/d/
 history.forward()
-history.go(-1)
\ No newline at end of file
+PAGE: http://bar.com/e/
+PAGE: http://bar.com/f/
+history.go(-1)
+PAGE: http://bar.com/b/
+PAGE: http://bar.com/d/
\ No newline at end of file
diff --git a/headless/test/data/protocol/emulation/virtual-time-history-navigation.js b/headless/test/data/protocol/emulation/virtual-time-history-navigation.js
index 7b4a57f2..e500cae1 100644
--- a/headless/test/data/protocol/emulation/virtual-time-history-navigation.js
+++ b/headless/test/data/protocol/emulation/virtual-time-history-navigation.js
@@ -9,49 +9,50 @@
   const FetchHelper = await testRunner.loadScriptAbsolute(
       '../fetch/resources/fetch-test.js');
   const helper = new FetchHelper(testRunner, dp);
+  helper.setEnableLogging(false);
   await helper.enable();
 
-  helper.onceRequest('http://foo.com/').fulfill(
+  helper.onRequest('http://foo.com/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>
           <iframe src='/a/'></iframe>`)
   );
 
-  helper.onceRequest('http://foo.com/a/').fulfill(
+  helper.onRequest('http://foo.com/a/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>`)
   );
 
-  helper.onceRequest('http://bar.com/').fulfill(
+  helper.onRequest('http://bar.com/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>
           <iframe src='/b/' id='frame_b'></iframe>
           <iframe src='/c/'></iframe>`)
   );
 
-  helper.onceRequest('http://bar.com/b/').fulfill(
+  helper.onRequest('http://bar.com/b/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>
           <iframe src='/d/'></iframe>`)
   );
 
-  helper.onceRequest('http://bar.com/c/').fulfill(
+  helper.onRequest('http://bar.com/c/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>`)
   );
 
-  helper.onceRequest('http://bar.com/d/').fulfill(
+  helper.onRequest('http://bar.com/d/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>`)
   );
 
-  helper.onceRequest('http://bar.com/e/').fulfill(
+  helper.onRequest('http://bar.com/e/').fulfill(
       FetchHelper.makeContentResponse(`
           <script> console.log(document.location.href); </script>
           <iframe src='/f/'></iframe>`)
   );
 
-  helper.onceRequest('http://bar.com/f/').fulfill(
+  helper.onRequest('http://bar.com/f/').fulfill(
     FetchHelper.makeContentResponse(`
         <script> console.log(document.location.href); </script>`)
   );
@@ -63,6 +64,9 @@
       `history.forward()`,
       `history.go(-1)`];
 
+  dp.Runtime.enable();
+  dp.Runtime.onConsoleAPICalled(event =>
+     testRunner.log(`PAGE: ${event.params.args[0].value}`));
   dp.Emulation.onVirtualTimeBudgetExpired(async data => {
     if (!testCommands.length) {
       testRunner.completeTest();
diff --git a/headless/test/headless_protocol_browsertest.cc b/headless/test/headless_protocol_browsertest.cc
index 707d495..420a617 100644
--- a/headless/test/headless_protocol_browsertest.cc
+++ b/headless/test/headless_protocol_browsertest.cc
@@ -244,9 +244,7 @@
                        "emulation/virtual-time-fetch-stream.js")
 HEADLESS_PROTOCOL_TEST(VirtualTimeDialogWhileLoading,
                        "emulation/virtual-time-dialog-while-loading.js")
-
-// Flaky Test crbug.com/859382
-HEADLESS_PROTOCOL_TEST(DISABLED_VirtualTimeHistoryNavigation,
+HEADLESS_PROTOCOL_TEST(VirtualTimeHistoryNavigation,
                        "emulation/virtual-time-history-navigation.js")
 
 // http://crbug.com/633321
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 8cc6ffa9..b089524 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -233,6 +233,7 @@
 <translation id="4281844954008187215">תנאי שירות</translation>
 <translation id="430793432425771671">סנכרון הכל</translation>
 <translation id="430967081421617822">משחר ההיסטוריה</translation>
+<translation id="4334428914252001502">מאמר אחד שלא נקרא.</translation>
 <translation id="4338650699862464074">‏שליחת כתובות URL של דפים שנכנסת אליהם אל Google.</translation>
 <translation id="4359125752503270327">הדף הזה ייפתח ביישום אחר.</translation>
 <translation id="4375040482473363939">‏חיפוש של קוד QR</translation>
@@ -449,6 +450,7 @@
 <translation id="7348502496356775519">הוספה לסימניות</translation>
 <translation id="7383797227493018512">רשימת קריאה</translation>
 <translation id="7400418766976504921">כתובת אתר</translation>
+<translation id="7409985198648820906"><ph name="UNREAD_COUNT" /> מאמרים שלא נקראו.</translation>
 <translation id="7425346204213733349">‏שינויים בסימניות, בהיסטוריה, בסיסמאות ובהגדרות נוספות לא יסונכרנו עוד עם חשבון Google שלך. עם זאת, הנתונים הקיימים עדיין יאוחסנו בחשבון Google שלך.</translation>
 <translation id="7454057999980797137">מדינה / ארץ</translation>
 <translation id="7456847797759667638">פתח מיקום...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 528637a2..1569321 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -125,7 +125,7 @@
 <translation id="2691653761409724435">ഓഫ്‌ലൈനിൽ ലഭ്യമല്ല</translation>
 <translation id="2702801445560668637">വായനാ ലിസ്റ്റ്</translation>
 <translation id="2704606927547763573">പകർത്തി</translation>
-<translation id="2709516037105925701">ഓട്ടോഫില്‍</translation>
+<translation id="2709516037105925701">സ്വയമേവ പൂരിപ്പിക്കൽ</translation>
 <translation id="2712127207578915686">ഫയൽ തുറക്കാനാവുന്നില്ല</translation>
 <translation id="2718352093833049315">Wi-Fi യിൽ മാത്രം</translation>
 <translation id="2747003861858887689">മുൻ ഫീൽഡ്</translation>
diff --git a/ios/chrome/browser/web/BUILD.gn b/ios/chrome/browser/web/BUILD.gn
index a50dfc2..e727b05a 100644
--- a/ios/chrome/browser/web/BUILD.gn
+++ b/ios/chrome/browser/web/BUILD.gn
@@ -384,6 +384,7 @@
     "http_auth_egtest.mm",
     "js_print_egtest.mm",
     "navigation_egtest.mm",
+    "tab_order_egtest.mm",
     "visible_url_egtest.mm",
   ]
 
diff --git a/ios/chrome/browser/web/tab_order_egtest.mm b/ios/chrome/browser/web/tab_order_egtest.mm
index 57c643c08..0e6770f 100644
--- a/ios/chrome/browser/web/tab_order_egtest.mm
+++ b/ios/chrome/browser/web/tab_order_egtest.mm
@@ -2,28 +2,22 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import <EarlGrey/EarlGrey.h>
 #import <XCTest/XCTest.h>
 
-#import "ios/chrome/test/app/chrome_test_util.h"
-#import "ios/chrome/test/app/tab_test_util.h"
 #import "ios/chrome/test/earl_grey/chrome_actions.h"
 #import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
 #import "ios/chrome/test/earl_grey/chrome_matchers.h"
 #import "ios/chrome/test/earl_grey/chrome_test_case.h"
-#import "ios/web/public/test/earl_grey/web_view_matchers.h"
+#import "ios/testing/earl_grey/earl_grey_test.h"
 #import "ios/web/public/test/element_selector.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
 #endif
 
-using chrome_test_util::GetCurrentWebState;
 using chrome_test_util::OpenLinkInNewTabButton;
 using chrome_test_util::WebViewMatcher;
 
-using web::WebViewInWebState;
-
 namespace {
 
 // This test uses test pages from in //ios/testing/data/http_server_files/.
@@ -59,28 +53,27 @@
   // Create a tab that will act as the parent tab.
   [ChromeEarlGrey loadURL:URL1];
   [ChromeEarlGrey waitForWebStateContainingText:kLinksTestURL1Text];
-  web::WebState* parentWebState = GetCurrentWebState();
-
+  NSString* parentTabID = [ChromeEarlGrey currentTabID];
   // Child tab should be inserted after the parent.
-  [[EarlGrey selectElementWithMatcher:WebViewInWebState(parentWebState)]
+  [[EarlGrey selectElementWithMatcher:WebViewMatcher()]
       performAction:chrome_test_util::LongPressElementForContextMenu(
                         [ElementSelector selectorWithElementID:kLinkSelectorID],
                         true /* menu should appear */)];
   [[EarlGrey selectElementWithMatcher:OpenLinkInNewTabButton()]
       performAction:grey_tap()];
   [ChromeEarlGrey waitForMainTabCount:2U];
-  web::WebState* childWebState1 = chrome_test_util::GetNextWebState();
+  NSString* childTab1ID = [ChromeEarlGrey nextTabID];
 
-  // New child tab should be inserted AFTER |childWebState1|.
-  [[EarlGrey selectElementWithMatcher:WebViewInWebState(parentWebState)]
+  // New child tab should be inserted after the tab with |childTab1ID|.
+  [[EarlGrey selectElementWithMatcher:WebViewMatcher()]
       performAction:chrome_test_util::LongPressElementForContextMenu(
                         [ElementSelector selectorWithElementID:kLinkSelectorID],
                         true /* menu should appear */)];
   [[EarlGrey selectElementWithMatcher:OpenLinkInNewTabButton()]
       performAction:grey_tap()];
   [ChromeEarlGrey waitForMainTabCount:3U];
-  GREYAssertEqual(childWebState1, chrome_test_util::GetNextWebState(),
-                  @"Unexpected next tab");
+  GREYAssertEqualObjects(childTab1ID, [ChromeEarlGrey nextTabID],
+                         @"Unexpected next tab");
 
   // Navigate the parent tab away and again to |kLinksTestURL1| to break
   // grouping with the current child tabs. Total number of tabs should not
@@ -96,7 +89,7 @@
   GREYAssertEqual(3U, [ChromeEarlGrey mainTabCount],
                   @"Unexpected number of tabs");
 
-  // New child WebState should be inserted BEFORE |childWebState1|.
+  // New child tab should be inserted before the tab with |childTab1ID|.
   [[EarlGrey selectElementWithMatcher:WebViewMatcher()]
       performAction:chrome_test_util::LongPressElementForContextMenu(
                         [ElementSelector selectorWithElementID:kLinkSelectorID],
@@ -104,11 +97,11 @@
   [[EarlGrey selectElementWithMatcher:OpenLinkInNewTabButton()]
       performAction:grey_tap()];
   [ChromeEarlGrey waitForMainTabCount:4U];
-  web::WebState* childWebState3 = chrome_test_util::GetNextWebState();
-  GREYAssertNotEqual(childWebState1, childWebState3,
-                     @"Unexpected next web state");
+  NSString* childTab3ID = [ChromeEarlGrey nextTabID];
 
-  // New child WebState should be inserted AFTER |childWebState3|.
+  GREYAssertNotEqualObjects(childTab1ID, childTab3ID, @"Unexpected next tab");
+
+  // New child tab should be inserted after the tab with |childTab3ID|.
   [[EarlGrey selectElementWithMatcher:WebViewMatcher()]
       performAction:chrome_test_util::LongPressElementForContextMenu(
                         [ElementSelector selectorWithElementID:kLinkSelectorID],
@@ -116,27 +109,27 @@
   [[EarlGrey selectElementWithMatcher:OpenLinkInNewTabButton()]
       performAction:grey_tap()];
   [ChromeEarlGrey waitForMainTabCount:5U];
-  GREYAssertEqual(childWebState3, chrome_test_util::GetNextWebState(),
-                  @"Unexpected next web state");
+  GREYAssertEqualObjects(childTab3ID, [ChromeEarlGrey nextTabID],
+                         @"Unexpected next web state");
 
-  // Verify that |childWebState1| is now at index 3.
+  // Verify that tab with |childTab1ID| is now at index 3.
   [ChromeEarlGrey selectTabAtIndex:3];
-  GREYAssertEqual(childWebState1, GetCurrentWebState(),
-                  @"Unexpected current web state");
+  GREYAssertEqualObjects(childTab1ID, [ChromeEarlGrey currentTabID],
+                         @"Unexpected current web state");
 
   // Add a non-owned tab. It should be added at the end and marked as the
   // current web state. Next web state should wrap back to index 0, the original
   // parent web state.
   [ChromeEarlGrey openNewTab];
   [ChromeEarlGrey waitForMainTabCount:6U];
-  GREYAssertEqual(parentWebState, chrome_test_util::GetNextWebState(),
-                  @"Unexpected next web state");
+  GREYAssertEqualObjects(parentTabID, [ChromeEarlGrey nextTabID],
+                         @"Unexpected next web state");
 
-  // Verify that |anotherWebState| is at index 5.
-  web::WebState* anotherWebState = GetCurrentWebState();
+  // Verify that tab with |anotherTabID| is at index 5.
+  NSString* anotherTabID = [ChromeEarlGrey currentTabID];
   [ChromeEarlGrey selectTabAtIndex:5];
-  GREYAssertEqual(anotherWebState, GetCurrentWebState(),
-                  @"Unexpected current web state");
+  GREYAssertEqualObjects(anotherTabID, [ChromeEarlGrey currentTabID],
+                         @"Unexpected current web state");
 }
 
 @end
diff --git a/ios/chrome/test/earl_grey/BUILD.gn b/ios/chrome/test/earl_grey/BUILD.gn
index 970e902..e82f1df 100644
--- a/ios/chrome/test/earl_grey/BUILD.gn
+++ b/ios/chrome/test/earl_grey/BUILD.gn
@@ -265,6 +265,7 @@
     "//ios/chrome/browser/ui/toolbar/keyboard_assist",
     "//ios/chrome/browser/ui/toolbar/public",
     "//ios/chrome/browser/ui/util",
+    "//ios/chrome/browser/web:tab_id_tab_helper",
     "//ios/chrome/test/app:test_support",
     "//ios/testing:verify_custom_webkit",
     "//ios/testing/earl_grey:earl_grey_support",
@@ -373,6 +374,7 @@
     "//ios/chrome/browser/ui/toolbar/keyboard_assist",
     "//ios/chrome/browser/ui/toolbar/public",
     "//ios/chrome/browser/ui/util",
+    "//ios/chrome/browser/web:tab_id_tab_helper",
     "//ios/chrome/test/app:test_support",
     "//ios/testing:nserror_support",
     "//ios/testing:verify_custom_webkit",
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.h b/ios/chrome/test/earl_grey/chrome_earl_grey.h
index 9449dfd8..3e54c93 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.h
@@ -246,6 +246,12 @@
 // Returns the tab title of the next tab. Assumes that next tab exists.
 - (NSString*)nextTabTitle;
 
+// Returns a unique identifier for the current Tab.
+- (NSString*)currentTabID;
+
+// Returns a unique identifier for the next Tab.
+- (NSString*)nextTabID;
+
 #pragma mark - SignIn Utilities (EG2)
 
 // Signs the user out, clears the known accounts entirely and checks whether the
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.mm b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
index f4fc1122..fa47db75 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
@@ -255,6 +255,14 @@
   return [ChromeEarlGreyAppInterface nextTabTitle];
 }
 
+- (NSString*)currentTabID {
+  return [ChromeEarlGreyAppInterface currentTabID];
+}
+
+- (NSString*)nextTabID {
+  return [ChromeEarlGreyAppInterface nextTabID];
+}
+
 #pragma mark - Cookie Utilities (EG2)
 
 - (NSDictionary*)cookies {
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
index b1b7a10..98b46ea 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
@@ -112,6 +112,12 @@
 // Returns the title of the next tab. Assumes that there is a next tab.
 + (NSString*)nextTabTitle;
 
+// Returns a unique identifier for the current Tab.
++ (NSString*)currentTabID;
+
+// Returns a unique identifier for the next Tab.
++ (NSString*)nextTabID;
+
 #pragma mark - WebState Utilities (EG2)
 
 // Attempts to tap the element with |element_id| within window.frames[0] of the
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
index 175cf45..f54de84 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
@@ -15,6 +15,7 @@
 #import "ios/chrome/browser/ntp/features.h"
 #import "ios/chrome/browser/ui/settings/autofill/features.h"
 #import "ios/chrome/browser/ui/ui_feature_flags.h"
+#import "ios/chrome/browser/web/tab_id_tab_helper.h"
 #import "ios/chrome/test/app/bookmarks_test_util.h"
 #import "ios/chrome/test/app/chrome_test_util.h"
 #import "ios/chrome/test/app/history_test_util.h"
@@ -180,6 +181,16 @@
   [BrowserCommandDispatcherForMainBVC() goForward];
 }
 
++ (NSString*)currentTabID {
+  web::WebState* web_state = chrome_test_util::GetCurrentWebState();
+  return TabIdTabHelper::FromWebState(web_state)->tab_id();
+}
+
++ (NSString*)nextTabID {
+  web::WebState* web_state = chrome_test_util::GetNextWebState();
+  return TabIdTabHelper::FromWebState(web_state)->tab_id();
+}
+
 #pragma mark - WebState Utilities (EG2)
 
 + (NSError*)tapWebStateElementInIFrameWithID:(NSString*)elementID {
diff --git a/ios/web/public/test/web_task_environment.h b/ios/web/public/test/web_task_environment.h
index 3f55286..7100be2 100644
--- a/ios/web/public/test/web_task_environment.h
+++ b/ios/web/public/test/web_task_environment.h
@@ -7,9 +7,6 @@
 
 #include "base/test/task_environment.h"
 
-// TODO(crbug.com/992483): Rename this header to web_task_environment.h and
-// migrate all users.
-//
 // WebTaskEnvironment is the iOS equivalent of content::BrowserTaskEnvironment.
 //
 // It's is a convenience class for creating a set of TestWebThreads and a thread
diff --git a/ipc/BUILD.gn b/ipc/BUILD.gn
index 50127fcd..1bf3d501 100644
--- a/ipc/BUILD.gn
+++ b/ipc/BUILD.gn
@@ -104,16 +104,6 @@
     "//base",
   ]
 
-  # TODO(https://crbug.com/916130): AFDO causes a substantial size increase in
-  # nacl_helper that originates from here. This is apparently due to some
-  # mixture of inlining, CFI, and (potentially) speculative devirtualization.
-  # Work around that by locally disabling AFDO.
-  #
-  # nacl_helper is only available on Linux.
-  if (is_linux) {
-    configs -= [ "//build/config/compiler:afdo" ]
-  }
-
   if (enable_ipc_fuzzer) {
     public_configs = [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ]
   }
diff --git a/media/base/video_frame.cc b/media/base/video_frame.cc
index 3bda8541..8425327 100644
--- a/media/base/video_frame.cc
+++ b/media/base/video_frame.cc
@@ -43,7 +43,8 @@
 // Static constexpr class for generating unique identifiers for each VideoFrame.
 static base::AtomicSequenceNumber g_unique_id_generator;
 
-static std::string StorageTypeToString(
+// static
+std::string VideoFrame::StorageTypeToString(
     const VideoFrame::StorageType storage_type) {
   switch (storage_type) {
     case VideoFrame::STORAGE_UNKNOWN:
diff --git a/media/base/video_frame.h b/media/base/video_frame.h
index eebca84..9ea6ceb 100644
--- a/media/base/video_frame.h
+++ b/media/base/video_frame.h
@@ -359,6 +359,9 @@
   // E.g. 2x2 for the U-plane in PIXEL_FORMAT_I420.
   static gfx::Size SampleSize(VideoPixelFormat format, size_t plane);
 
+  // Returns a human readable string of StorageType.
+  static std::string StorageTypeToString(VideoFrame::StorageType storage_type);
+
   // A video frame wrapping external data may be backed by an unsafe shared
   // memory region. These methods are used to appropriately transform a
   // VideoFrame created with WrapExternalData, WrapExternalYuvaData, etc. The
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
index 827ff515..ba1b90e 100644
--- a/media/gpu/BUILD.gn
+++ b/media/gpu/BUILD.gn
@@ -351,6 +351,7 @@
       ":common",
       "//base",
       "//media",
+      "//media/gpu/chromeos:fourcc",
       "//ui/gfx/geometry",
     ]
   }
@@ -657,6 +658,7 @@
       "test:render_helpers",
       "//base/test:test_support",
       "//media:test_support",
+      "//media/gpu/chromeos:fourcc",
       "//mojo/core/embedder",
       "//testing/gtest",
     ]
diff --git a/media/gpu/image_processor.cc b/media/gpu/image_processor.cc
index 7908801..f0fffac 100644
--- a/media/gpu/image_processor.cc
+++ b/media/gpu/image_processor.cc
@@ -4,40 +4,69 @@
 
 #include "media/gpu/image_processor.h"
 
+#include <ostream>
+#include <sstream>
+
+#include "base/strings/stringprintf.h"
 #include "media/base/bind_to_current_loop.h"
+#include "media/base/video_frame.h"
 
 namespace media {
 
-ImageProcessor::PortConfig::PortConfig(
-    const VideoFrameLayout& layout,
-    const gfx::Size& visible_size,
-    const std::vector<VideoFrame::StorageType>& preferred_storage_types)
-    : PortConfig(layout,
-                 kUnassignedFourCC,
-                 visible_size,
-                 preferred_storage_types) {}
+namespace {
+
+std::ostream& operator<<(std::ostream& ostream,
+                         const VideoFrame::StorageType& storage_type) {
+  ostream << VideoFrame::StorageTypeToString(storage_type);
+  return ostream;
+}
+
+template <class T>
+std::string VectorToString(const std::vector<T>& vec) {
+  std::ostringstream result;
+  std::string delim;
+  result << "[";
+  for (const T& v : vec) {
+    result << delim << v;
+    if (delim.size() == 0)
+      delim = ", ";
+  }
+  result << "]";
+  return result.str();
+}
+
+}  // namespace
+
+ImageProcessor::PortConfig::PortConfig(const PortConfig&) = default;
 
 ImageProcessor::PortConfig::PortConfig(
-    const VideoFrameLayout& layout,
-    uint32_t fourcc,
+    Fourcc fourcc,
+    const gfx::Size& size,
+    const std::vector<ColorPlaneLayout>& planes,
     const gfx::Size& visible_size,
     const std::vector<VideoFrame::StorageType>& preferred_storage_types)
-    : layout(layout),
-      fourcc(fourcc),
+    : fourcc(fourcc),
+      size(size),
+      planes(planes),
       visible_size(visible_size),
       preferred_storage_types(preferred_storage_types) {}
 
-ImageProcessor::PortConfig::~PortConfig() {}
+ImageProcessor::PortConfig::~PortConfig() = default;
 
-ImageProcessor::ImageProcessor(const VideoFrameLayout& input_layout,
-                               VideoFrame::StorageType input_storage_type,
-                               const VideoFrameLayout& output_layout,
-                               VideoFrame::StorageType output_storage_type,
+std::string ImageProcessor::PortConfig::ToString() const {
+  return base::StringPrintf(
+      "PortConfig(format:%s, size:%s, planes: %s, visible_size:%s, "
+      "storage_types:%s)",
+      fourcc.ToString().c_str(), size.ToString().c_str(),
+      VectorToString(planes).c_str(), visible_size.ToString().c_str(),
+      VectorToString(preferred_storage_types).c_str());
+}
+
+ImageProcessor::ImageProcessor(const ImageProcessor::PortConfig& input_config,
+                               const ImageProcessor::PortConfig& output_config,
                                OutputMode output_mode)
-    : input_layout_(input_layout),
-      input_storage_type_(input_storage_type),
-      output_layout_(output_layout),
-      output_storage_type_(output_storage_type),
+    : input_config_(input_config),
+      output_config_(output_config),
       output_mode_(output_mode) {}
 
 #if defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/media/gpu/image_processor.h b/media/gpu/image_processor.h
index 771652a..b57991e 100644
--- a/media/gpu/image_processor.h
+++ b/media/gpu/image_processor.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include <string>
 #include <vector>
 
 #include "base/callback_forward.h"
@@ -14,8 +15,9 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "build/build_config.h"
+#include "media/base/color_plane_layout.h"
 #include "media/base/video_frame.h"
-#include "media/base/video_frame_layout.h"
+#include "media/gpu/chromeos/fourcc.h"
 #include "media/gpu/media_gpu_export.h"
 #include "ui/gfx/geometry/size.h"
 
@@ -48,27 +50,43 @@
   };
 
   // Encapsulates ImageProcessor input / output configurations.
-  // Note that |fourcc| is used when format cannot be described in |layout|,
-  // e.g. platform specific format not listed in VideoPixelFormat. The default
-  // value of |fourcc| is kUnassignedFourCC.
   struct MEDIA_GPU_EXPORT PortConfig {
     PortConfig() = delete;
+    PortConfig(const PortConfig&);
     PortConfig(
-        const VideoFrameLayout& layout,
-        const gfx::Size& visible_size,
-        const std::vector<VideoFrame::StorageType>& preferred_storage_types);
-    PortConfig(
-        const VideoFrameLayout& layout,
-        uint32_t fourcc,
+        Fourcc fourcc,
+        const gfx::Size& size,
+        const std::vector<ColorPlaneLayout>& planes,
         const gfx::Size& visible_size,
         const std::vector<VideoFrame::StorageType>& preferred_storage_types);
     ~PortConfig();
 
-    static const uint32_t kUnassignedFourCC = 0u;
+    // Get the first |preferred_storage_types|.
+    // If |preferred_storage_types| is empty, return STORAGE_UNKNOWN.
+    VideoFrame::StorageType storage_type() const {
+      return preferred_storage_types.empty() ? VideoFrame::STORAGE_UNKNOWN
+                                             : preferred_storage_types.front();
+    }
 
-    const VideoFrameLayout layout;
-    const uint32_t fourcc;
+    // Output human readable string of PortConfig.
+    // Example:
+    // PortConfig(format::NV12, size:640x480, planes:[(640, 0, 307200),
+    // (640,0,153600)], visible_size:640x480, storage_types:[DMABUFS])
+    std::string ToString() const;
+
+    // Video frame format represented as fourcc type.
+    const Fourcc fourcc;
+
+    // Width and height of the video frame in pixels. This must include pixel
+    // data for the whole image; i.e. for YUV formats with subsampled chroma
+    // planes. If a visible portion of the image does not line up on a sample
+    // boundary, |size_| must be rounded up appropriately.
+    const gfx::Size size;
+
+    // Layout property (stride, offset, size of bytes) for each color plane.
+    const std::vector<ColorPlaneLayout> planes;
     const gfx::Size visible_size;
+    // List of preferred storage types.
     const std::vector<VideoFrame::StorageType> preferred_storage_types;
   };
 
@@ -95,21 +113,8 @@
 
   virtual ~ImageProcessor() = default;
 
-  // Returns input layout of the processor.
-  const VideoFrameLayout& input_layout() const { return input_layout_; }
-
-  // Returns output layout of the processor.
-  const VideoFrameLayout& output_layout() const { return output_layout_; }
-
-  // Returns input storage type.
-  VideoFrame::StorageType input_storage_type() const {
-    return input_storage_type_;
-  }
-
-  // Returns output storage type.
-  VideoFrame::StorageType output_storage_type() const {
-    return output_storage_type_;
-  }
+  const PortConfig& input_config() const { return input_config_; }
+  const PortConfig& output_config() const { return output_config_; }
 
   // Returns output mode.
   // TODO(crbug.com/907767): Remove it once ImageProcessor always works as
@@ -149,21 +154,15 @@
   virtual bool Reset() = 0;
 
  protected:
-  ImageProcessor(const VideoFrameLayout& input_layout,
-                 VideoFrame::StorageType input_storage_type,
-                 const VideoFrameLayout& output_layout,
-                 VideoFrame::StorageType output_storage_type,
+  ImageProcessor(const PortConfig& input_config,
+                 const PortConfig& output_config,
                  OutputMode output_mode);
 
-  // Stores input frame's layout and storage type.
-  const VideoFrameLayout input_layout_;
-  const VideoFrame::StorageType input_storage_type_;
+  const PortConfig input_config_;
+  const PortConfig output_config_;
 
-  // Stores output frame's layout, storage type and output mode.
   // TODO(crbug.com/907767): Remove |output_mode_| once ImageProcessor always
   // works as IMPORT mode for output.
-  const VideoFrameLayout output_layout_;
-  const VideoFrame::StorageType output_storage_type_;
   const OutputMode output_mode_;
 
  private:
diff --git a/media/gpu/image_processor_test.cc b/media/gpu/image_processor_test.cc
index 8b0833de..d653e49b 100644
--- a/media/gpu/image_processor_test.cc
+++ b/media/gpu/image_processor_test.cc
@@ -15,6 +15,7 @@
 #include "media/base/video_frame.h"
 #include "media/base/video_frame_layout.h"
 #include "media/base/video_types.h"
+#include "media/gpu/chromeos/fourcc.h"
 #include "media/gpu/image_processor.h"
 #include "media/gpu/test/image.h"
 #include "media/gpu/test/image_processor/image_processor_client.h"
@@ -84,18 +85,16 @@
       const std::vector<VideoFrame::StorageType>& input_storage_types,
       const test::Image& output_image,
       const std::vector<VideoFrame::StorageType>& output_storage_types) {
-    const VideoPixelFormat input_format = input_image.PixelFormat();
-    const VideoPixelFormat output_format = output_image.PixelFormat();
-    auto input_config_layout =
-        test::CreateVideoFrameLayout(input_format, input_image.Size());
-    auto output_config_layout =
-        test::CreateVideoFrameLayout(output_format, output_image.Size());
-    LOG_ASSERT(input_config_layout);
-    LOG_ASSERT(output_config_layout);
-    ImageProcessor::PortConfig input_config(
-        *input_config_layout, input_image.Size(), input_storage_types);
-    ImageProcessor::PortConfig output_config(
-        *output_config_layout, output_image.Size(), output_storage_types);
+    Fourcc input_fourcc =
+        Fourcc::FromVideoPixelFormat(input_image.PixelFormat());
+    Fourcc output_fourcc =
+        Fourcc::FromVideoPixelFormat(output_image.PixelFormat());
+    ImageProcessor::PortConfig input_config(input_fourcc, input_image.Size(),
+                                            {}, input_image.Size(),
+                                            input_storage_types);
+    ImageProcessor::PortConfig output_config(output_fourcc, output_image.Size(),
+                                             {}, output_image.Size(),
+                                             output_storage_types);
     // TODO(crbug.com/917951): Select more appropriate number of buffers.
     constexpr size_t kNumBuffers = 1;
     LOG_ASSERT(output_image.IsMetadataLoaded());
@@ -104,7 +103,8 @@
     // TODO(crbug.com/917951): We should validate a scaled image with SSIM.
     // Validating processed frames is currently not supported when a format is
     // not YUV or when scaling images.
-    if (IsYuvPlanar(input_format) && IsYuvPlanar(output_format) &&
+    if (IsYuvPlanar(input_fourcc.ToVideoPixelFormat()) &&
+        IsYuvPlanar(output_fourcc.ToVideoPixelFormat()) &&
         input_image.Size() == output_image.Size()) {
       auto vf_validator = test::VideoFrameValidator::Create(
           {output_image.Checksum()}, output_image.PixelFormat());
@@ -116,7 +116,7 @@
           base::FilePath(base::FilePath::kCurrentDirectory)
               .Append(g_env->GetTestOutputFilePath());
       test::VideoFrameFileWriter::OutputFormat saved_file_format =
-          IsYuvPlanar(output_format)
+          IsYuvPlanar(output_fourcc.ToVideoPixelFormat())
               ? test::VideoFrameFileWriter::OutputFormat::kYUV
               : test::VideoFrameFileWriter::OutputFormat::kPNG;
       frame_processors.push_back(
diff --git a/media/gpu/libyuv_image_processor.cc b/media/gpu/libyuv_image_processor.cc
index 68d148ec..9bd914d 100644
--- a/media/gpu/libyuv_image_processor.cc
+++ b/media/gpu/libyuv_image_processor.cc
@@ -8,6 +8,7 @@
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "media/base/bind_to_current_loop.h"
+#include "media/gpu/chromeos/fourcc.h"
 #include "media/gpu/macros.h"
 #include "media/gpu/video_frame_mapper.h"
 #include "media/gpu/video_frame_mapper_factory.h"
@@ -25,25 +26,21 @@
   Unsupported,
 };
 
-SupportResult IsFormatSupported(VideoPixelFormat input_format,
-                                VideoPixelFormat output_format) {
-  constexpr struct {
-    VideoPixelFormat input;
-    VideoPixelFormat output;
+SupportResult IsFormatSupported(Fourcc input_fourcc, Fourcc output_fourcc) {
+  static constexpr struct {
+    uint32_t input;
+    uint32_t output;
     bool need_pivot;
   } kSupportFormatConversionArray[] = {
-      {PIXEL_FORMAT_ARGB, PIXEL_FORMAT_NV12, false},
-      {PIXEL_FORMAT_I420, PIXEL_FORMAT_NV12, false},
-      {PIXEL_FORMAT_YV12, PIXEL_FORMAT_NV12, false},
-      {PIXEL_FORMAT_ABGR, PIXEL_FORMAT_NV12, true},
-      {PIXEL_FORMAT_XBGR, PIXEL_FORMAT_NV12, true},
+      {Fourcc::AR24, Fourcc::NV12, false}, {Fourcc::YU12, Fourcc::NV12, false},
+      {Fourcc::YV12, Fourcc::NV12, false}, {Fourcc::AB24, Fourcc::NV12, true},
+      {Fourcc::XB24, Fourcc::NV12, true},
   };
 
-  for (auto* conv = std::cbegin(kSupportFormatConversionArray);
-       conv != std::cend(kSupportFormatConversionArray); conv++) {
-    if (conv->input == input_format && conv->output == output_format) {
-      return conv->need_pivot ? SupportResult::SupportedWithPivot
-                              : SupportResult::Supported;
+  for (const auto& conv : kSupportFormatConversionArray) {
+    if (conv.input == input_fourcc && conv.output == output_fourcc) {
+      return conv.need_pivot ? SupportResult::SupportedWithPivot
+                             : SupportResult::Supported;
     }
   }
 
@@ -53,21 +50,11 @@
 }  // namespace
 
 LibYUVImageProcessor::LibYUVImageProcessor(
-    const VideoFrameLayout& input_layout,
-    const gfx::Size& input_visible_size,
-    VideoFrame::StorageType input_storage_type,
-    const VideoFrameLayout& output_layout,
-    const gfx::Size& output_visible_size,
-    VideoFrame::StorageType output_storage_type,
+    const ImageProcessor::PortConfig& input_config,
+    const ImageProcessor::PortConfig& output_config,
     std::unique_ptr<VideoFrameMapper> video_frame_mapper,
     ErrorCB error_cb)
-    : ImageProcessor(input_layout,
-                     input_storage_type,
-                     output_layout,
-                     output_storage_type,
-                     OutputMode::IMPORT),
-      input_visible_rect_(input_visible_size),
-      output_visible_rect_(output_visible_size),
+    : ImageProcessor(input_config, output_config, OutputMode::IMPORT),
       video_frame_mapper_(std::move(video_frame_mapper)),
       error_cb_(error_cb),
       process_thread_("LibYUVImageProcessorThread") {}
@@ -83,7 +70,7 @@
 std::unique_ptr<LibYUVImageProcessor> LibYUVImageProcessor::Create(
     const ImageProcessor::PortConfig& input_config,
     const ImageProcessor::PortConfig& output_config,
-    const ImageProcessor::OutputMode output_mode,
+    ImageProcessor::OutputMode output_mode,
     ErrorCB error_cb) {
   VLOGF(2);
 
@@ -94,7 +81,7 @@
 #if defined(OS_LINUX)
     if (input_type == VideoFrame::STORAGE_DMABUFS) {
       video_frame_mapper = VideoFrameMapperFactory::CreateMapper(
-          input_config.layout.format(), true);
+          input_config.fourcc.ToVideoPixelFormat(), true);
       if (video_frame_mapper) {
         input_storage_type = input_type;
         break;
@@ -130,17 +117,21 @@
     return nullptr;
   }
 
-  SupportResult res = IsFormatSupported(input_config.layout.format(),
-                                        output_config.layout.format());
+  SupportResult res =
+      IsFormatSupported(input_config.fourcc, output_config.fourcc);
   if (res == SupportResult::Unsupported) {
-    VLOGF(2) << "Conversion from " << input_config.layout.format() << " to "
-             << output_config.layout.format() << " is not supported";
+    VLOGF(2) << "Conversion from " << input_config.fourcc.ToString() << " to "
+             << output_config.fourcc.ToString() << " is not supported";
     return nullptr;
   }
 
   auto processor = base::WrapUnique(new LibYUVImageProcessor(
-      input_config.layout, input_config.visible_size, input_storage_type,
-      output_config.layout, output_config.visible_size, output_storage_type,
+      ImageProcessor::PortConfig(input_config.fourcc, input_config.size, {},
+                                 input_config.visible_size,
+                                 {input_storage_type}),
+      ImageProcessor::PortConfig(output_config.fourcc, output_config.size, {},
+                                 output_config.visible_size,
+                                 {output_storage_type}),
       std::move(video_frame_mapper),
       media::BindToCurrentLoop(std::move(error_cb))));
   if (res == SupportResult::SupportedWithPivot) {
@@ -160,7 +151,7 @@
   }
 
   VLOGF(2) << "LibYUVImageProcessor created for converting from "
-           << input_config.layout << " to " << output_config.layout;
+           << input_config.ToString() << " to " << output_config.ToString();
   return processor;
 }
 
@@ -170,11 +161,13 @@
     FrameReadyCB cb) {
   DCHECK_CALLED_ON_VALID_THREAD(client_thread_checker_);
   DVLOGF(4);
-  DCHECK_EQ(input_frame->layout().format(), input_layout_.format());
-  DCHECK(input_frame->layout().coded_size() == input_layout_.coded_size());
-  DCHECK_EQ(output_frame->layout().format(), output_layout_.format());
-  DCHECK(output_frame->layout().coded_size() == output_layout_.coded_size());
-  DCHECK(input_storage_type_ == input_frame->storage_type() ||
+  DCHECK_EQ(input_frame->layout().format(),
+            input_config_.fourcc.ToVideoPixelFormat());
+  DCHECK(input_frame->layout().coded_size() == input_config_.size);
+  DCHECK_EQ(output_frame->layout().format(),
+            output_config_.fourcc.ToVideoPixelFormat());
+  DCHECK(output_frame->layout().coded_size() == output_config_.size);
+  DCHECK(input_config_.storage_type() == input_frame->storage_type() ||
          VideoFrame::IsStorageTypeMappable(input_frame->storage_type()));
   DCHECK(VideoFrame::IsStorageTypeMappable(output_frame->storage_type()));
 
diff --git a/media/gpu/libyuv_image_processor.h b/media/gpu/libyuv_image_processor.h
index aaf5131..66e44f1 100644
--- a/media/gpu/libyuv_image_processor.h
+++ b/media/gpu/libyuv_image_processor.h
@@ -45,16 +45,12 @@
   static std::unique_ptr<LibYUVImageProcessor> Create(
       const ImageProcessor::PortConfig& input_config,
       const ImageProcessor::PortConfig& output_config,
-      const ImageProcessor::OutputMode output_mode,
+      ImageProcessor::OutputMode output_mode,
       ErrorCB error_cb);
 
  private:
-  LibYUVImageProcessor(const VideoFrameLayout& input_layout,
-                       const gfx::Size& input_visible_size,
-                       VideoFrame::StorageType input_storage_type,
-                       const VideoFrameLayout& output_layout,
-                       const gfx::Size& output_visible_size,
-                       VideoFrame::StorageType output_storage_type,
+  LibYUVImageProcessor(const ImageProcessor::PortConfig& input_config,
+                       const ImageProcessor::PortConfig& output_config,
                        std::unique_ptr<VideoFrameMapper> video_frame_mapper,
                        ErrorCB error_cb);
 
diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn
index 572693b..514aa17 100644
--- a/media/gpu/test/BUILD.gn
+++ b/media/gpu/test/BUILD.gn
@@ -157,21 +157,24 @@
   ]
 }
 
-static_library("image_processor") {
-  testonly = true
-  sources = [
-    "image_processor/image_processor_client.cc",
-    "image_processor/image_processor_client.h",
-  ]
-  deps = [
-    ":helpers",
-    ":render_helpers",
-    "//media:test_support",
-    "//media/gpu",
-    "//testing/gtest",
-    "//third_party/libyuv",
-  ]
-  data = [
-    "//media/test/data/",
-  ]
+if (use_vaapi || use_v4l2_codec) {
+  static_library("image_processor") {
+    testonly = true
+    sources = [
+      "image_processor/image_processor_client.cc",
+      "image_processor/image_processor_client.h",
+    ]
+    deps = [
+      ":helpers",
+      ":render_helpers",
+      "//media:test_support",
+      "//media/gpu",
+      "//media/gpu/chromeos:fourcc",
+      "//testing/gtest",
+      "//third_party/libyuv",
+    ]
+    data = [
+      "//media/test/data/",
+    ]
+  }
 }
diff --git a/media/gpu/test/image_processor/image_processor_client.cc b/media/gpu/test/image_processor/image_processor_client.cc
index 6de8fa2b..b4ca656 100644
--- a/media/gpu/test/image_processor/image_processor_client.cc
+++ b/media/gpu/test/image_processor/image_processor_client.cc
@@ -18,6 +18,7 @@
 #include "media/base/video_frame.h"
 #include "media/base/video_frame_layout.h"
 #include "media/gpu/buildflags.h"
+#include "media/gpu/chromeos/fourcc.h"
 #include "media/gpu/image_processor_factory.h"
 #include "media/gpu/test/image.h"
 #include "media/gpu/test/video_frame_helpers.h"
@@ -107,22 +108,45 @@
   done->Signal();
 }
 
+namespace {
+
+base::Optional<VideoFrameLayout> CreateLayout(
+    const ImageProcessor::PortConfig& config) {
+  // V4L2 specific format hack:
+  // If VDA's output format is V4L2_PIX_FMT_MT21C, which is a platform specific
+  // format and now is only used for MT8173 VDA output and its image processor
+  // input, we set VideoFrameLayout for image processor's input with format
+  // PIXEL_FORMAT_NV12 as NV12's layout is the same as MT21.
+  const VideoPixelFormat pixel_format = config.fourcc.ToVideoPixelFormat();
+  if (config.planes.size() <= 1) {
+    return VideoFrameLayout::Create(pixel_format, config.size);
+  }
+  return VideoFrameLayout::CreateMultiPlanar(pixel_format, config.size,
+                                             config.planes);
+}
+
+}  // namespace
+
 scoped_refptr<VideoFrame> ImageProcessorClient::CreateInputFrame(
     const Image& input_image) const {
   DCHECK_CALLED_ON_VALID_THREAD(test_main_thread_checker_);
   LOG_ASSERT(image_processor_);
   LOG_ASSERT(input_image.IsLoaded());
 
-  const auto& input_layout = image_processor_->input_layout();
-  if (VideoFrame::IsStorageTypeMappable(
-          image_processor_->input_storage_type())) {
+  const ImageProcessor::PortConfig& input_config =
+      image_processor_->input_config();
+  const VideoFrame::StorageType input_storage_type =
+      input_config.storage_type();
+  base::Optional<VideoFrameLayout> input_layout = CreateLayout(input_config);
+  LOG_ASSERT(input_layout);
+
+  if (VideoFrame::IsStorageTypeMappable(input_storage_type)) {
     return CloneVideoFrame(gpu_memory_buffer_factory_.get(),
                            CreateVideoFrameFromImage(input_image).get(),
-                           input_layout, VideoFrame::STORAGE_OWNED_MEMORY);
+                           *input_layout, VideoFrame::STORAGE_OWNED_MEMORY);
   } else {
 #if defined(OS_CHROMEOS)
-    LOG_ASSERT(image_processor_->input_storage_type() ==
-               VideoFrame::STORAGE_DMABUFS);
+    LOG_ASSERT(input_storage_type == VideoFrame::STORAGE_DMABUFS);
     // NV12 and YV12 are the only formats that can be allocated with
     // gfx::BufferUsage::SCANOUT_VEA_READ_CAMERA_AND_CPU_READ_WRITE. So
     // gfx::BufferUsage::GPU_READ_CPU_READ_WRITE is specified for RGB formats.
@@ -132,7 +156,7 @@
             : gfx::BufferUsage::GPU_READ_CPU_READ_WRITE;
     return CloneVideoFrame(gpu_memory_buffer_factory_.get(),
                            CreateVideoFrameFromImage(input_image).get(),
-                           input_layout, VideoFrame::STORAGE_DMABUFS,
+                           *input_layout, VideoFrame::STORAGE_DMABUFS,
                            dst_buffer_usage);
 #endif
     return nullptr;
@@ -145,19 +169,22 @@
   LOG_ASSERT(output_image.IsMetadataLoaded());
   LOG_ASSERT(image_processor_);
 
-  const auto& output_layout = image_processor_->output_layout();
-  if (VideoFrame::IsStorageTypeMappable(
-          image_processor_->output_storage_type())) {
+  const ImageProcessor::PortConfig& output_config =
+      image_processor_->output_config();
+  const VideoFrame::StorageType output_storage_type =
+      output_config.storage_type();
+  base::Optional<VideoFrameLayout> output_layout = CreateLayout(output_config);
+  LOG_ASSERT(output_layout);
+  if (VideoFrame::IsStorageTypeMappable(output_storage_type)) {
     return VideoFrame::CreateFrameWithLayout(
-        output_layout, gfx::Rect(output_image.Size()), output_image.Size(),
+        *output_layout, gfx::Rect(output_image.Size()), output_image.Size(),
         base::TimeDelta(), false /* zero_initialize_memory*/);
   } else {
 #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
-    LOG_ASSERT(image_processor_->output_storage_type() ==
-               VideoFrame::STORAGE_DMABUFS);
+    LOG_ASSERT(output_storage_type == VideoFrame::STORAGE_DMABUFS);
     return CreatePlatformVideoFrame(
-        gpu_memory_buffer_factory_.get(), output_layout.format(),
-        output_layout.coded_size(), gfx::Rect(output_image.Size()),
+        gpu_memory_buffer_factory_.get(), output_layout->format(),
+        output_layout->coded_size(), gfx::Rect(output_image.Size()),
         output_image.Size(), base::TimeDelta(),
         gfx::BufferUsage::GPU_READ_CPU_READ_WRITE);
 #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc
index 8189481..dbc406c 100644
--- a/media/gpu/v4l2/v4l2_device.cc
+++ b/media/gpu/v4l2/v4l2_device.cc
@@ -1153,14 +1153,6 @@
 }
 
 // static
-uint32_t V4L2Device::VideoFrameLayoutToV4L2PixFmt(
-    const VideoFrameLayout& layout) {
-  return Fourcc::FromVideoPixelFormat(layout.format(),
-                                      !layout.is_multi_planar())
-      .ToV4L2PixFmt();
-}
-
-// static
 uint32_t V4L2Device::VideoCodecProfileToV4L2PixFmt(VideoCodecProfile profile,
                                                    bool slice_based) {
   if (profile >= H264PROFILE_MIN && profile <= H264PROFILE_MAX) {
diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h
index 0d06d93..862ed5f 100644
--- a/media/gpu/v4l2/v4l2_device.h
+++ b/media/gpu/v4l2/v4l2_device.h
@@ -381,9 +381,6 @@
     : public base::RefCountedThreadSafe<V4L2Device> {
  public:
   // Utility format conversion functions
-  // Returns v4l2 pixel format from |layout|. If there is no corresponding
-  // single- or multi-planar format or |layout| is invalid, returns 0.
-  static uint32_t VideoFrameLayoutToV4L2PixFmt(const VideoFrameLayout& layout);
   // If there is no corresponding single- or multi-planar format, returns 0.
   static uint32_t VideoCodecProfileToV4L2PixFmt(VideoCodecProfile profile,
                                                 bool slice_based);
diff --git a/media/gpu/v4l2/v4l2_image_processor.cc b/media/gpu/v4l2/v4l2_image_processor.cc
index c0fb718..75c607ff 100644
--- a/media/gpu/v4l2/v4l2_image_processor.cc
+++ b/media/gpu/v4l2/v4l2_image_processor.cc
@@ -18,6 +18,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/numerics/safe_conversions.h"
 #include "media/base/bind_to_current_loop.h"
+#include "media/base/color_plane_layout.h"
 #include "media/base/scopedfd_helper.h"
 #include "media/base/video_types.h"
 #include "media/gpu/chromeos/fourcc.h"
@@ -52,25 +53,15 @@
 
 V4L2ImageProcessor::V4L2ImageProcessor(
     scoped_refptr<V4L2Device> device,
-    VideoFrame::StorageType input_storage_type,
-    VideoFrame::StorageType output_storage_type,
+    const ImageProcessor::PortConfig& input_config,
+    const ImageProcessor::PortConfig& output_config,
     v4l2_memory input_memory_type,
     v4l2_memory output_memory_type,
     OutputMode output_mode,
-    const VideoFrameLayout& input_layout,
-    const VideoFrameLayout& output_layout,
-    gfx::Size input_visible_size,
-    gfx::Size output_visible_size,
     size_t num_buffers,
     ErrorCB error_cb)
-    : ImageProcessor(input_layout,
-                     input_storage_type,
-                     output_layout,
-                     output_storage_type,
-                     output_mode),
-      input_visible_size_(input_visible_size),
+    : ImageProcessor(input_config, output_config, output_mode),
       input_memory_type_(input_memory_type),
-      output_visible_size_(output_visible_size),
       output_memory_type_(output_memory_type),
       device_(device),
       device_thread_("V4L2ImageProcessorThread"),
@@ -172,20 +163,10 @@
     return nullptr;
   }
 
-  const VideoFrameLayout& input_layout = input_config.layout;
-
-  // Use input_config.fourcc as input format if it is specified, i.e. non-zero.
-  const uint32_t input_format_fourcc =
-      input_config.fourcc == ImageProcessor::PortConfig::kUnassignedFourCC
-          ? V4L2Device::VideoFrameLayoutToV4L2PixFmt(input_layout)
-          : input_config.fourcc;
-  if (!input_format_fourcc) {
-    VLOGF(1) << "Invalid VideoFrameLayout: " << input_layout;
-    return nullptr;
-  }
-  if (!device->Open(V4L2Device::Type::kImageProcessor, input_format_fourcc)) {
+  if (!device->Open(V4L2Device::Type::kImageProcessor,
+                    input_config.fourcc.ToV4L2PixFmt())) {
     VLOGF(1) << "Failed to open device with input fourcc: "
-             << FourccToString(input_format_fourcc);
+             << input_config.fourcc.ToString();
     return nullptr;
   }
 
@@ -193,77 +174,78 @@
   struct v4l2_format format;
   memset(&format, 0, sizeof(format));
   format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-  format.fmt.pix_mp.width = input_layout.coded_size().width();
-  format.fmt.pix_mp.height = input_layout.coded_size().height();
-  format.fmt.pix_mp.pixelformat = input_format_fourcc;
+  format.fmt.pix_mp.width = input_config.size.width();
+  format.fmt.pix_mp.height = input_config.size.height();
+  format.fmt.pix_mp.pixelformat = input_config.fourcc.ToV4L2PixFmt();
   if (device->Ioctl(VIDIOC_S_FMT, &format) != 0 ||
-      format.fmt.pix_mp.pixelformat != input_format_fourcc) {
+      format.fmt.pix_mp.pixelformat != input_config.fourcc.ToV4L2PixFmt()) {
     VLOGF(1) << "Failed to negotiate input format";
     return nullptr;
   }
 
-  base::Optional<VideoFrameLayout> negotiated_input_layout =
-      V4L2Device::V4L2FormatToVideoFrameLayout(format);
-  if (!negotiated_input_layout) {
-    VLOGF(1) << "Failed to negotiate input VideoFrameLayout";
-    return nullptr;
-  }
-
-  if (!gfx::Rect(negotiated_input_layout->coded_size())
+  const v4l2_pix_format_mplane& pix_mp = format.fmt.pix_mp;
+  const gfx::Size negotiated_input_size(pix_mp.width, pix_mp.height);
+  if (!gfx::Rect(negotiated_input_size)
            .Contains(gfx::Rect(input_config.visible_size))) {
     VLOGF(1) << "Negotiated input allocated size: "
-             << negotiated_input_layout->coded_size().ToString()
+             << negotiated_input_size.ToString()
              << " should contain visible size: "
              << input_config.visible_size.ToString();
     return nullptr;
   }
-
-  const VideoFrameLayout& output_layout = output_config.layout;
-  const uint32_t output_format_fourcc =
-      V4L2Device::VideoFrameLayoutToV4L2PixFmt(output_layout);
-  if (!output_format_fourcc) {
-    VLOGF(1) << "Invalid VideoFrameLayout: " << output_layout;
-    return nullptr;
+  std::vector<ColorPlaneLayout> input_planes(pix_mp.num_planes);
+  for (size_t i = 0; i < pix_mp.num_planes; ++i) {
+    input_planes[i].stride = pix_mp.plane_fmt[i].bytesperline;
+    // offset will be specified for a buffer in each VIDIOC_QBUF.
+    input_planes[i].offset = 0;
+    input_planes[i].size = pix_mp.plane_fmt[i].sizeimage;
   }
 
   // Try to set output format.
   memset(&format, 0, sizeof(format));
   format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-  format.fmt.pix_mp.width = output_layout.coded_size().width();
-  format.fmt.pix_mp.height = output_layout.coded_size().height();
-  format.fmt.pix_mp.pixelformat = output_format_fourcc;
-  format.fmt.pix_mp.num_planes =
-      V4L2Device::GetNumPlanesOfV4L2PixFmt(output_format_fourcc);
-  for (size_t i = 0; i < format.fmt.pix_mp.num_planes; ++i) {
-    format.fmt.pix_mp.plane_fmt[i].sizeimage = output_layout.planes()[i].size;
-    format.fmt.pix_mp.plane_fmt[i].bytesperline =
-        output_layout.planes()[i].stride;
+  v4l2_pix_format_mplane& out_pix_mp = format.fmt.pix_mp;
+  out_pix_mp.width = output_config.size.width();
+  out_pix_mp.height = output_config.size.height();
+  out_pix_mp.pixelformat = output_config.fourcc.ToV4L2PixFmt();
+  out_pix_mp.num_planes = output_config.planes.size();
+  for (size_t i = 0; i < output_config.planes.size(); ++i) {
+    out_pix_mp.plane_fmt[i].sizeimage = output_config.planes[i].size;
+    out_pix_mp.plane_fmt[i].bytesperline = output_config.planes[i].stride;
   }
   if (device->Ioctl(VIDIOC_S_FMT, &format) != 0 ||
-      format.fmt.pix_mp.pixelformat != output_format_fourcc) {
+      format.fmt.pix_mp.pixelformat != output_config.fourcc.ToV4L2PixFmt()) {
     VLOGF(1) << "Failed to negotiate output format";
     return nullptr;
   }
-  base::Optional<VideoFrameLayout> negotiated_output_layout =
-      V4L2Device::V4L2FormatToVideoFrameLayout(format);
-  if (!negotiated_output_layout) {
-    VLOGF(1) << "Failed to negotiate output VideoFrameLayout";
+
+  out_pix_mp = format.fmt.pix_mp;
+  const gfx::Size negotiated_output_size(out_pix_mp.width, out_pix_mp.height);
+  if (!gfx::Rect(negotiated_output_size)
+           .Contains(gfx::Rect(output_config.size))) {
+    VLOGF(1) << "Negotiated output allocated size: "
+             << negotiated_output_size.ToString()
+             << " should contain original output allocated size: "
+             << output_config.size.ToString();
     return nullptr;
   }
-  if (!gfx::Rect(negotiated_output_layout->coded_size())
-           .Contains(gfx::Rect(output_layout.coded_size()))) {
-    VLOGF(1) << "Negotiated output allocated size: "
-             << negotiated_output_layout->coded_size().ToString()
-             << " should contain original output allocated size: "
-             << output_layout.coded_size().ToString();
-    return nullptr;
+  std::vector<ColorPlaneLayout> output_planes(out_pix_mp.num_planes);
+  for (size_t i = 0; i < pix_mp.num_planes; ++i) {
+    output_planes[i].stride = pix_mp.plane_fmt[i].bytesperline;
+    // offset will be specified for a buffer in each VIDIOC_QBUF.
+    output_planes[i].offset = 0;
+    output_planes[i].size = pix_mp.plane_fmt[i].sizeimage;
   }
 
   auto processor = base::WrapUnique(new V4L2ImageProcessor(
-      std::move(device), input_storage_type, output_storage_type,
-      input_memory_type, output_memory_type, output_mode,
-      *negotiated_input_layout, *negotiated_output_layout,
-      input_config.visible_size, output_config.visible_size, num_buffers,
+      std::move(device),
+      ImageProcessor::PortConfig(input_config.fourcc, negotiated_input_size,
+                                 input_planes, input_config.visible_size,
+                                 {input_storage_type}),
+      ImageProcessor::PortConfig(output_config.fourcc, negotiated_output_size,
+                                 output_planes, output_config.visible_size,
+                                 {output_storage_type}),
+      input_memory_type, output_memory_type, output_mode, num_buffers,
       media::BindToCurrentLoop(std::move(error_cb))));
   if (!processor->Initialize()) {
     VLOGF(1) << "Failed to initialize V4L2ImageProcessor";
@@ -306,10 +288,8 @@
                                 base::Unretained(this)));
 
   VLOGF(2) << "V4L2ImageProcessor initialized for "
-           << "input_layout: " << input_layout_
-           << ", output_layout: " << output_layout_
-           << ", input_visible_size: " << input_visible_size_.ToString()
-           << ", output_visible_size: " << output_visible_size_.ToString();
+           << "input: " << input_config_.ToString()
+           << ", output: " << output_config_.ToString();
 
   return true;
 }
@@ -514,8 +494,10 @@
   struct v4l2_rect visible_rect;
   visible_rect.left = 0;
   visible_rect.top = 0;
-  visible_rect.width = base::checked_cast<__u32>(input_visible_size_.width());
-  visible_rect.height = base::checked_cast<__u32>(input_visible_size_.height());
+  visible_rect.width =
+      base::checked_cast<__u32>(input_config_.visible_size.width());
+  visible_rect.height =
+      base::checked_cast<__u32>(input_config_.visible_size.height());
 
   struct v4l2_selection selection_arg;
   memset(&selection_arg, 0, sizeof(selection_arg));
@@ -556,9 +538,10 @@
   struct v4l2_rect visible_rect;
   visible_rect.left = 0;
   visible_rect.top = 0;
-  visible_rect.width = base::checked_cast<__u32>(output_visible_size_.width());
+  visible_rect.width =
+      base::checked_cast<__u32>(output_config_.visible_size.width());
   visible_rect.height =
-    base::checked_cast<__u32>(output_visible_size_.height());
+      base::checked_cast<__u32>(output_config_.visible_size.height());
 
   output_queue_ = device_->GetQueue(V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
   if (!output_queue_)
@@ -796,11 +779,11 @@
   DCHECK(buffer.IsValid());
 
   std::vector<void*> user_ptrs;
-  size_t num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(
-      V4L2Device::VideoFrameLayoutToV4L2PixFmt(input_layout_));
+  const size_t num_planes =
+      V4L2Device::GetNumPlanesOfV4L2PixFmt(input_config_.fourcc.ToV4L2PixFmt());
   for (size_t i = 0; i < num_planes; ++i) {
     int bytes_used = VideoFrame::PlaneSize(job_record->input_frame->format(), i,
-                                           input_layout_.coded_size())
+                                           input_config_.size)
                          .GetArea();
     buffer.SetPlaneBytesUsed(i, bytes_used);
     if (buffer.Memory() == V4L2_MEMORY_USERPTR)
diff --git a/media/gpu/v4l2/v4l2_image_processor.h b/media/gpu/v4l2/v4l2_image_processor.h
index cc1483fd..1d85f3b 100644
--- a/media/gpu/v4l2/v4l2_image_processor.h
+++ b/media/gpu/v4l2/v4l2_image_processor.h
@@ -92,15 +92,11 @@
   };
 
   V4L2ImageProcessor(scoped_refptr<V4L2Device> device,
-                     VideoFrame::StorageType input_storage_type,
-                     VideoFrame::StorageType output_storage_type,
+                     const ImageProcessor::PortConfig& input_config,
+                     const ImageProcessor::PortConfig& output_config,
                      v4l2_memory input_memory_type,
                      v4l2_memory output_memory_type,
                      OutputMode output_mode,
-                     const VideoFrameLayout& input_layout,
-                     const VideoFrameLayout& output_layout,
-                     gfx::Size input_visible_size,
-                     gfx::Size output_visible_size,
                      size_t num_buffers,
                      ErrorCB error_cb);
 
@@ -143,12 +139,7 @@
   // callbacks will be invoked.
   void Destroy();
 
-  // Stores input frame's visible size and v4l2_memory type.
-  const gfx::Size input_visible_size_;
   const v4l2_memory input_memory_type_;
-
-  // Stores output frame's visible size and v4l2_memory type.
-  const gfx::Size output_visible_size_;
   const v4l2_memory output_memory_type_;
 
   // V4L2 device in use.
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
index f75ebb1..a013d21 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
@@ -585,7 +585,7 @@
     return false;
   }
 
-  DCHECK_EQ(gl_image_size_, image_processor_->output_layout().coded_size());
+  DCHECK_EQ(gl_image_size_, image_processor_->output_config().size);
 
   return true;
 }
diff --git a/media/gpu/v4l2/v4l2_slice_video_decoder.cc b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
index 1cd0639..d4a716a 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decoder.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
@@ -137,7 +137,10 @@
   DVLOGF(2);
 
   // Call all pending decode callback.
-  backend_->ClearPendingRequests(DecodeStatus::ABORTED);
+  if (backend_) {
+    backend_->ClearPendingRequests(DecodeStatus::ABORTED);
+    backend_ = nullptr;
+  }
 
   // Stop and Destroy device.
   StopStreamV4L2Queue();
@@ -513,7 +516,8 @@
   if (output_queue_)
     output_queue_->Streamoff();
 
-  backend_->OnStreamStopped();
+  if (backend_)
+    backend_->OnStreamStopped();
 
   return true;
 }
@@ -702,7 +706,8 @@
 
   if (new_state == State::kError) {
     VLOGF(1) << "Error occurred.";
-    backend_->ClearPendingRequests(DecodeStatus::DECODE_ERROR);
+    if (backend_)
+      backend_->ClearPendingRequests(DecodeStatus::DECODE_ERROR);
     return;
   }
   state_ = new_state;
diff --git a/media/gpu/v4l2/v4l2_slice_video_decoder.h b/media/gpu/v4l2/v4l2_slice_video_decoder.h
index 3ff593bd..5f36a12 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decoder.h
+++ b/media/gpu/v4l2/v4l2_slice_video_decoder.h
@@ -33,7 +33,6 @@
 
 namespace media {
 
-class AcceleratedVideoDecoder;
 class DmabufVideoFramePool;
 
 class MEDIA_GPU_EXPORT V4L2SliceVideoDecoder
diff --git a/media/gpu/v4l2/v4l2_vda_helpers.cc b/media/gpu/v4l2/v4l2_vda_helpers.cc
index a01d9cf..f73d4e94 100644
--- a/media/gpu/v4l2/v4l2_vda_helpers.cc
+++ b/media/gpu/v4l2/v4l2_vda_helpers.cc
@@ -13,38 +13,6 @@
 namespace media {
 namespace v4l2_vda_helpers {
 
-namespace {
-base::Optional<VideoFrameLayout> CreateLayout(uint32_t fourcc,
-                                              const gfx::Size& size) {
-  // V4L2 specific format hack:
-  // If VDA's output format is V4L2_PIX_FMT_MT21C, which is a platform specific
-  // format and now is only used for MT8173 VDA output and its image processor
-  // input, we set VideoFrameLayout for image processor's input with format
-  // PIXEL_FORMAT_NV12 as NV12's layout is the same as MT21.
-  size_t num_planes;
-  switch (fourcc) {
-    case V4L2_PIX_FMT_MT21C:
-    case V4L2_PIX_FMT_MM21:
-      num_planes = 2;
-      return VideoFrameLayout::CreateMultiPlanar(
-          PIXEL_FORMAT_NV12, size, std::vector<ColorPlaneLayout>(num_planes));
-
-    default:
-      VideoPixelFormat pixel_format =
-          Fourcc::FromV4L2PixFmt(fourcc).ToVideoPixelFormat();
-      if (pixel_format == PIXEL_FORMAT_UNKNOWN)
-        return base::nullopt;
-      num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(fourcc);
-      if (num_planes == 1)
-        return VideoFrameLayout::Create(pixel_format, size);
-      else
-        return VideoFrameLayout::CreateMultiPlanar(
-            pixel_format, size, std::vector<ColorPlaneLayout>(num_planes));
-      break;
-  }
-}
-}  // namespace
-
 uint32_t FindImageProcessorInputFormat(V4L2Device* vda_device) {
   std::vector<uint32_t> processor_input_formats =
       V4L2ImageProcessor::GetSupportedInputFormats();
@@ -103,45 +71,33 @@
     scoped_refptr<V4L2Device> image_processor_device,
     ImageProcessor::OutputMode image_processor_output_mode,
     ImageProcessor::ErrorCB error_cb) {
-  base::Optional<VideoFrameLayout> input_layout =
-      CreateLayout(vda_output_format, vda_output_coded_size);
-  if (!input_layout) {
-    VLOGF(1) << "Invalid input layout";
-    return nullptr;
-  }
-
-  base::Optional<VideoFrameLayout> output_layout =
-      CreateLayout(ip_output_format, ip_output_coded_size);
-  if (!output_layout) {
-    VLOGF(1) << "Invalid output layout";
-    return nullptr;
-  }
-
   // TODO(crbug.com/917798): Use ImageProcessorFactory::Create() once we remove
   //     |image_processor_device_| from V4L2VideoDecodeAccelerator.
   auto image_processor = V4L2ImageProcessor::Create(
       image_processor_device,
-      ImageProcessor::PortConfig(*input_layout, vda_output_format, visible_size,
+      ImageProcessor::PortConfig(Fourcc::FromV4L2PixFmt(vda_output_format),
+                                 vda_output_coded_size, {}, visible_size,
                                  {VideoFrame::STORAGE_DMABUFS}),
-      ImageProcessor::PortConfig(*output_layout, visible_size,
+      ImageProcessor::PortConfig(Fourcc::FromV4L2PixFmt(ip_output_format),
+                                 ip_output_coded_size, {}, visible_size,
                                  {VideoFrame::STORAGE_DMABUFS}),
       image_processor_output_mode, nb_buffers, std::move(error_cb));
   if (!image_processor)
     return nullptr;
 
-  if (image_processor->output_layout().coded_size() != ip_output_coded_size) {
+  if (image_processor->output_config().size != ip_output_coded_size) {
     VLOGF(1) << "Image processor should be able to use the requested output "
              << "coded size " << ip_output_coded_size.ToString()
              << " without adjusting to "
-             << image_processor->output_layout().coded_size().ToString();
+             << image_processor->output_config().size.ToString();
     return nullptr;
   }
 
-  if (image_processor->input_layout().coded_size() != vda_output_coded_size) {
+  if (image_processor->input_config().size != vda_output_coded_size) {
     VLOGF(1) << "Image processor should be able to take the output coded "
              << "size of decoder " << vda_output_coded_size.ToString()
              << " without adjusting to "
-             << image_processor->input_layout().coded_size().ToString();
+             << image_processor->input_config().size.ToString();
     return nullptr;
   }
 
diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
index 2197bec..a03f3bd 100644
--- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
@@ -96,6 +96,19 @@
 
 namespace media {
 
+namespace {
+// Convert VideoFrameLayout to ImageProcessor::PortConfig.
+ImageProcessor::PortConfig VideoFrameLayoutToPortConfig(
+    const VideoFrameLayout& layout,
+    const gfx::Size& visible_size,
+    const std::vector<VideoFrame::StorageType>& preferred_storage_types) {
+  return ImageProcessor::PortConfig(
+      Fourcc::FromVideoPixelFormat(layout.format(), !layout.is_multi_planar()),
+      layout.coded_size(), layout.planes(), visible_size,
+      preferred_storage_types);
+}
+}  // namespace
+
 struct V4L2VideoEncodeAccelerator::BitstreamBufferRef {
   BitstreamBufferRef(int32_t id, std::unique_ptr<UnalignedSharedMemory> shm)
       : id(id), shm(std::move(shm)) {}
@@ -267,12 +280,12 @@
       config.initial_bitrate, config.initial_framerate.value_or(
                                   VideoEncodeAccelerator::kDefaultFramerate));
   child_task_runner_->PostTask(
-      FROM_HERE,
-      base::BindOnce(
-          &Client::RequireBitstreamBuffers, client_, kInputBufferCount,
-          image_processor_.get() ? image_processor_->input_layout().coded_size()
-                                 : input_allocated_size_,
-          output_buffer_byte_size_));
+      FROM_HERE, base::BindOnce(&Client::RequireBitstreamBuffers, client_,
+                                kInputBufferCount,
+                                image_processor_.get()
+                                    ? image_processor_->input_config().size
+                                    : input_allocated_size_,
+                                output_buffer_byte_size_));
 
   // Finish initialization.
   *result = true;
@@ -294,9 +307,9 @@
   // for |input_storage_type| here, as long as VideoFrame on Process()'s data
   // can be accessed by VideoFrame::data().
   image_processor_ = ImageProcessorFactory::Create(
-      ImageProcessor::PortConfig(input_layout, visible_size,
-                                 {VideoFrame::STORAGE_OWNED_MEMORY}),
-      ImageProcessor::PortConfig(
+      VideoFrameLayoutToPortConfig(input_layout, visible_size,
+                                   {VideoFrame::STORAGE_OWNED_MEMORY}),
+      VideoFrameLayoutToPortConfig(
           output_layout, visible_size,
           {VideoFrame::STORAGE_DMABUFS, VideoFrame::STORAGE_OWNED_MEMORY}),
       // Try OutputMode::ALLOCATE first because we want v4l2IP chooses
@@ -319,7 +332,7 @@
   // Output coded height of processor can be larger but not smaller than the
   // input coded height of encoder. For example, suppose input size of encoder
   // is 320x193. It is OK if the output of processor is 320x208.
-  const auto& ip_output_size = image_processor_->output_layout().coded_size();
+  const auto& ip_output_size = image_processor_->output_config().size;
   if (ip_output_size.width() != output_layout.coded_size().width() ||
       ip_output_size.height() < output_layout.coded_size().height()) {
     VLOGF(1) << "Invalid image processor output coded size "
@@ -347,7 +360,8 @@
   }
 
   image_processor_output_buffers_.resize(count);
-  const auto output_storage_type = image_processor_->output_storage_type();
+  const auto output_storage_type =
+      image_processor_->output_config().storage_type();
   for (size_t i = 0; i < count; i++) {
     switch (output_storage_type) {
       case VideoFrame::STORAGE_OWNED_MEMORY:
@@ -372,7 +386,7 @@
 bool V4L2VideoEncodeAccelerator::InitInputMemoryType(const Config& config) {
   DCHECK(encoder_thread_.task_runner()->BelongsToCurrentThread());
   if (image_processor_) {
-    const auto storage_type = image_processor_->output_storage_type();
+    const auto storage_type = image_processor_->output_config().storage_type();
     if (storage_type == VideoFrame::STORAGE_DMABUFS) {
       input_memory_type_ = V4L2_MEMORY_DMABUF;
     } else if (VideoFrame::IsStorageTypeMappable(storage_type)) {
@@ -640,7 +654,7 @@
   // We should apply the frame size change to ImageProcessor if there is.
   if (image_processor_) {
     // Stride is the same. There is no need of executing S_FMT again.
-    if (image_processor_->input_layout().coded_size() == new_frame_size) {
+    if (image_processor_->input_config().size == new_frame_size) {
       return true;
     }
 
@@ -667,7 +681,7 @@
       NOTIFY_ERROR(kPlatformFailureError);
       return false;
     }
-    if (image_processor_->input_layout().coded_size().width() !=
+    if (image_processor_->input_config().size.width() !=
         new_frame_size.width()) {
       NOTIFY_ERROR(kPlatformFailureError);
       return false;
@@ -1068,7 +1082,9 @@
 
   DCHECK_EQ(device_input_layout_->format(), frame->format());
   size_t num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(
-      V4L2Device::VideoFrameLayoutToV4L2PixFmt(*device_input_layout_));
+      Fourcc::FromVideoPixelFormat(device_input_layout_->format(),
+                                   !device_input_layout_->is_multi_planar())
+          .ToV4L2PixFmt());
 
   // Create GpuMemoryBufferHandle for native_input_mode.
   gfx::GpuMemoryBufferHandle gmb_handle;
diff --git a/media/gpu/vaapi/vaapi_image_processor.cc b/media/gpu/vaapi/vaapi_image_processor.cc
index 52ee551b..885a0b8 100644
--- a/media/gpu/vaapi/vaapi_image_processor.cc
+++ b/media/gpu/vaapi/vaapi_image_processor.cc
@@ -4,6 +4,8 @@
 
 #include "media/gpu/vaapi/vaapi_image_processor.h"
 
+#include <stdint.h>
+
 #include <va/va.h>
 
 #include "base/bind.h"
@@ -35,23 +37,19 @@
   error_cb.Run();
 }
 
-bool IsSupported(VideoPixelFormat input_format,
-                 VideoPixelFormat output_format,
-                 gfx::Size input_size,
-                 gfx::Size output_size) {
-  const uint32_t input_va_fourcc =
-      Fourcc::FromVideoPixelFormat(input_format).ToVAFourCC();
+bool IsSupported(uint32_t input_va_fourcc,
+                 uint32_t output_va_fourcc,
+                 const gfx::Size& input_size,
+                 const gfx::Size& output_size) {
   if (!VaapiWrapper::IsVppFormatSupported(input_va_fourcc)) {
-    VLOGF(2) << "Unsupported input format: " << input_format << " (VA_FOURCC_"
-             << FourccToString(input_va_fourcc) << ")";
+    VLOGF(2) << "Unsupported input format: VA_FOURCC_"
+             << FourccToString(input_va_fourcc);
     return false;
   }
 
-  const uint32_t output_va_fourcc =
-      Fourcc::FromVideoPixelFormat(output_format).ToVAFourCC();
   if (!VaapiWrapper::IsVppFormatSupported(output_va_fourcc)) {
-    VLOGF(2) << "Unsupported output format: " << output_format << " (VA_FOURCC_"
-             << FourccToString(output_va_fourcc) << ")";
+    VLOGF(2) << "Unsupported output format: VA_FOURCC_"
+             << FourccToString(output_va_fourcc);
     return false;
   }
 
@@ -101,11 +99,9 @@
   return nullptr;
 #endif
 
-  const VideoFrameLayout& input_layout = input_config.layout;
-  const VideoFrameLayout& output_layout = output_config.layout;
-  if (!IsSupported(input_layout.format(), output_layout.format(),
-                   input_config.layout.coded_size(),
-                   output_config.layout.coded_size())) {
+  if (!IsSupported(input_config.fourcc.ToVAFourCC(),
+                   output_config.fourcc.ToVAFourCC(), input_config.size,
+                   output_config.size)) {
     return nullptr;
   }
 
@@ -131,27 +127,23 @@
     return nullptr;
   }
 
-  // We should restrict the acceptable VideoFrameLayout for input and output
-  // both to the one returned by GetPlatformVideoFrameLayout(). However,
+  // We should restrict the acceptable PortConfig for input and output both to
+  // the one returned by GetPlatformVideoFrameLayout(). However,
   // ImageProcessorFactory interface doesn't provide information about what
   // ImageProcessor will be used for. (e.g. format conversion after decoding and
   // scaling before encoding). Thus we cannot execute
   // GetPlatformVideoFrameLayout() with a proper gfx::BufferUsage.
   // TODO(crbug.com/898423): Adjust layout once ImageProcessor provide the use
   // scenario.
-  return base::WrapUnique(new VaapiImageProcessor(input_layout, output_layout,
+  return base::WrapUnique(new VaapiImageProcessor(input_config, output_config,
                                                   std::move(vaapi_wrapper)));
 }
 
 VaapiImageProcessor::VaapiImageProcessor(
-    const VideoFrameLayout& input_layout,
-    const VideoFrameLayout& output_layout,
+    const ImageProcessor::PortConfig& input_config,
+    const ImageProcessor::PortConfig& output_config,
     scoped_refptr<VaapiWrapper> vaapi_wrapper)
-    : ImageProcessor(input_layout,
-                     VideoFrame::STORAGE_DMABUFS,
-                     output_layout,
-                     VideoFrame::STORAGE_DMABUFS,
-                     OutputMode::IMPORT),
+    : ImageProcessor(input_config, output_config, OutputMode::IMPORT),
       processor_task_runner_(base::CreateSequencedTaskRunner(
           base::TaskTraits{base::ThreadPool()})),
       vaapi_wrapper_(std::move(vaapi_wrapper)) {}
@@ -169,32 +161,46 @@
   DCHECK(input_frame);
   DCHECK(output_frame);
 
-  const VideoFrameLayout& input_frame_layout = input_frame->layout();
-  if (input_frame_layout.format() != input_layout_.format() ||
-      input_frame_layout.coded_size() != input_layout_.coded_size()) {
-    VLOGF(1) << "Invalid input_frame->layout=" << input_frame->layout()
-             << ", input_layout_=" << input_layout_;
+  const Fourcc input_frame_fourcc =
+      Fourcc::FromVideoPixelFormat(input_frame->layout().format());
+  if (input_frame_fourcc != input_config_.fourcc) {
+    VLOGF(1) << "Invalid input_frame format=" << input_frame_fourcc.ToString()
+             << ", expected=" << input_config_.fourcc.ToString();
     return false;
   }
 
-  const VideoFrameLayout& output_frame_layout = output_frame->layout();
-  if (output_frame_layout.format() != output_layout_.format() ||
-      output_frame_layout.coded_size() != output_layout_.coded_size()) {
-    VLOGF(1) << "Invalid output_frame->layout=" << output_frame->layout()
-             << ", output_layout_=" << output_layout_;
+  if (input_frame->layout().coded_size() != input_config_.size) {
+    VLOGF(1) << "Invalid input_frame size="
+             << input_frame->layout().coded_size().ToString()
+             << ", expected=" << input_config_.size.ToString();
     return false;
   }
 
-  if (input_frame->storage_type() != input_storage_type()) {
+  const Fourcc output_frame_fourcc =
+      Fourcc::FromVideoPixelFormat(output_frame->layout().format());
+  if (output_frame_fourcc != output_config_.fourcc) {
+    VLOGF(1) << "Invalid output_frame format=" << output_frame_fourcc.ToString()
+             << ", expected=" << output_config_.fourcc.ToString();
+    return false;
+  }
+
+  if (output_frame->layout().coded_size() != output_config_.size) {
+    VLOGF(1) << "Invalid output_frame size="
+             << output_frame->layout().coded_size().ToString()
+             << ", expected=" << output_config_.size.ToString();
+    return false;
+  }
+
+  if (input_frame->storage_type() != input_config_.storage_type()) {
     VLOGF(1) << "Invalid input_frame->storage_type="
              << input_frame->storage_type()
-             << ", input_storage_type=" << input_storage_type();
+             << ", input_storage_type=" << input_config_.storage_type();
     return false;
   }
-  if (output_frame->storage_type() != output_storage_type()) {
+  if (output_frame->storage_type() != output_config_.storage_type()) {
     VLOGF(1) << "Invalid output_frame->storage_type="
              << output_frame->storage_type()
-             << ", output_storage_type=" << output_storage_type();
+             << ", expected=" << output_config_.storage_type();
     return false;
   }
 
diff --git a/media/gpu/vaapi/vaapi_image_processor.h b/media/gpu/vaapi/vaapi_image_processor.h
index 69a0082b..699be4c2 100644
--- a/media/gpu/vaapi/vaapi_image_processor.h
+++ b/media/gpu/vaapi/vaapi_image_processor.h
@@ -39,8 +39,8 @@
   bool Reset() override;
 
  private:
-  VaapiImageProcessor(const VideoFrameLayout& input_layout,
-                      const VideoFrameLayout& output_layout,
+  VaapiImageProcessor(const ImageProcessor::PortConfig& input_config,
+                      const ImageProcessor::PortConfig& output_config,
                       scoped_refptr<VaapiWrapper> vaapi_wrapper);
 
   // ImageProcessor implementation.
diff --git a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
index e5a4e7e..f0d75d99 100644
--- a/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
@@ -639,7 +639,7 @@
       }
 
       // Allocate the same number of surfaces as reconstructed surfaces.
-      if (vpp_vaapi_wrapper_->CreateContextAndSurfaces(
+      if (!vpp_vaapi_wrapper_->CreateContextAndSurfaces(
               kVaSurfaceFormat, aligned_input_size_,
               VaapiWrapper::SurfaceUsageHint::kVideoProcessWrite,
               num_frames_in_flight_ + 1, &available_vpp_va_surface_ids_)) {
diff --git a/media/mojo/clients/mojo_video_encode_accelerator.cc b/media/mojo/clients/mojo_video_encode_accelerator.cc
index a553f17..2845f59 100644
--- a/media/mojo/clients/mojo_video_encode_accelerator.cc
+++ b/media/mojo/clients/mojo_video_encode_accelerator.cc
@@ -144,9 +144,12 @@
     return;
   }
 
-  DCHECK_EQ(PIXEL_FORMAT_I420, frame->format());
-  DCHECK_EQ(VideoFrame::STORAGE_SHMEM, frame->storage_type());
-  DCHECK(frame->shm_region()->IsValid());
+  if (frame->format() != PIXEL_FORMAT_I420 ||
+      VideoFrame::STORAGE_SHMEM != frame->storage_type() ||
+      !frame->shm_region()->IsValid()) {
+    DLOG(ERROR) << "Unexpected video frame buffer";
+    return;
+  }
 
   // Oftentimes |frame|'s underlying planes will be aligned and not tightly
   // packed, so don't use VideoFrame::AllocationSize().
diff --git a/media/renderers/audio_renderer_impl_unittest.cc b/media/renderers/audio_renderer_impl_unittest.cc
index 227601d..0fc42e0 100644
--- a/media/renderers/audio_renderer_impl_unittest.cc
+++ b/media/renderers/audio_renderer_impl_unittest.cc
@@ -117,8 +117,8 @@
                                512);
     renderer_.reset(new AudioRendererImpl(
         main_thread_task_runner_, sink_.get(),
-        base::Bind(&AudioRendererImplTest::CreateAudioDecoderForTest,
-                   base::Unretained(this)),
+        base::BindRepeating(&AudioRendererImplTest::CreateAudioDecoderForTest,
+                            base::Unretained(this)),
         &media_log_));
     renderer_->tick_clock_ = &tick_clock_;
     tick_clock_.Advance(base::TimeDelta::FromSeconds(1));
@@ -144,8 +144,8 @@
     sink_ = new FakeAudioRendererSink(hardware_params_);
     renderer_.reset(new AudioRendererImpl(
         main_thread_task_runner_, sink_.get(),
-        base::Bind(&AudioRendererImplTest::CreateAudioDecoderForTest,
-                   base::Unretained(this)),
+        base::BindRepeating(&AudioRendererImplTest::CreateAudioDecoderForTest,
+                            base::Unretained(this)),
         &media_log_));
     testing::Mock::VerifyAndClearExpectations(&demuxer_stream_);
     ConfigureDemuxerStream(false);
@@ -158,8 +158,8 @@
     sink_ = new FakeAudioRendererSink(hardware_params_);
     renderer_.reset(new AudioRendererImpl(
         main_thread_task_runner_, sink_.get(),
-        base::Bind(&AudioRendererImplTest::CreateAudioDecoderForTest,
-                   base::Unretained(this)),
+        base::BindRepeating(&AudioRendererImplTest::CreateAudioDecoderForTest,
+                            base::Unretained(this)),
         &media_log_));
     testing::Mock::VerifyAndClearExpectations(&demuxer_stream_);
     ConfigureDemuxerStream(true);
@@ -169,8 +169,8 @@
     mock_sink_ = new MockAudioRendererSink();
     renderer_.reset(new AudioRendererImpl(
         main_thread_task_runner_, mock_sink_.get(),
-        base::Bind(&AudioRendererImplTest::CreateAudioDecoderForTest,
-                   base::Unretained(this)),
+        base::BindRepeating(&AudioRendererImplTest::CreateAudioDecoderForTest,
+                            base::Unretained(this)),
         &media_log_));
     testing::Mock::VerifyAndClearExpectations(&demuxer_stream_);
     ConfigureDemuxerStream(true);
@@ -227,8 +227,8 @@
 
     renderer_.reset(new AudioRendererImpl(
         main_thread_task_runner_, sink_.get(),
-        base::Bind(&AudioRendererImplTest::CreateAudioDecoderForTest,
-                   base::Unretained(this)),
+        base::BindRepeating(&AudioRendererImplTest::CreateAudioDecoderForTest,
+                            base::Unretained(this)),
         &media_log_));
 
     Initialize();
diff --git a/media/renderers/default_renderer_factory.cc b/media/renderers/default_renderer_factory.cc
index 6b379a6c..0eafcafcb 100644
--- a/media/renderers/default_renderer_factory.cc
+++ b/media/renderers/default_renderer_factory.cc
@@ -73,8 +73,8 @@
       // RendererWrapper::Stop -> RendererWrapper::DestroyRenderer(). And the
       // RendererFactory is owned by WMPI and gets called after WMPI destructor
       // finishes.
-      base::Bind(&DefaultRendererFactory::CreateAudioDecoders,
-                 base::Unretained(this), media_task_runner),
+      base::BindRepeating(&DefaultRendererFactory::CreateAudioDecoders,
+                          base::Unretained(this), media_task_runner),
       media_log_));
 
   GpuVideoAcceleratorFactories* gpu_factories = nullptr;
@@ -97,9 +97,10 @@
       // RendererWrapper::Stop -> RendererWrapper::DestroyRenderer(). And the
       // RendererFactory is owned by WMPI and gets called after WMPI destructor
       // finishes.
-      base::Bind(&DefaultRendererFactory::CreateVideoDecoders,
-                 base::Unretained(this), media_task_runner,
-                 request_overlay_info_cb, target_color_space, gpu_factories),
+      base::BindRepeating(&DefaultRendererFactory::CreateVideoDecoders,
+                          base::Unretained(this), media_task_runner,
+                          request_overlay_info_cb, target_color_space,
+                          gpu_factories),
       true, media_log_, std::move(gmb_pool)));
 
   return std::make_unique<RendererImpl>(
diff --git a/media/renderers/paint_canvas_video_renderer_unittest.cc b/media/renderers/paint_canvas_video_renderer_unittest.cc
index 3876b63..9690188 100644
--- a/media/renderers/paint_canvas_video_renderer_unittest.cc
+++ b/media/renderers/paint_canvas_video_renderer_unittest.cc
@@ -926,7 +926,7 @@
   gpu::MailboxHolder holders[VideoFrame::kMaxPlanes] = {gpu::MailboxHolder(
       gpu::Mailbox::Generate(), gpu::SyncToken(), GL_TEXTURE_RECTANGLE_ARB)};
   auto video_frame = VideoFrame::WrapNativeTextures(
-      PIXEL_FORMAT_NV12, holders, base::Bind(MailboxHoldersReleased), size,
+      PIXEL_FORMAT_NV12, holders, base::BindOnce(MailboxHoldersReleased), size,
       gfx::Rect(size), size, kNoTimestamp);
 
   cc::PaintFlags flags;
@@ -983,9 +983,9 @@
   TestGLES2Interface gles2;
   // Bind the texImage2D callback to verify the uint16 to float32 conversion.
   gles2.teximage2d_callback_ =
-      base::Bind([](GLenum target, GLint level, GLint internalformat,
-                    GLsizei width, GLsizei height, GLint border, GLenum format,
-                    GLenum type, const void* pixels) {
+      base::BindRepeating([](GLenum target, GLint level, GLint internalformat,
+                             GLsizei width, GLsizei height, GLint border,
+                             GLenum format, GLenum type, const void* pixels) {
         EXPECT_EQ(static_cast<unsigned>(GL_FLOAT), type);
         EXPECT_EQ(static_cast<unsigned>(GL_RGBA), format);
         EXPECT_EQ(GL_RGBA, internalformat);
@@ -1031,9 +1031,9 @@
   TestGLES2Interface gles2;
   // Bind the texImage2D callback to verify the uint16 to float32 conversion.
   gles2.texsubimage2d_callback_ =
-      base::Bind([](GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                    GLsizei width, GLsizei height, GLenum format, GLenum type,
-                    const void* pixels) {
+      base::BindRepeating([](GLenum target, GLint level, GLint xoffset,
+                             GLint yoffset, GLsizei width, GLsizei height,
+                             GLenum format, GLenum type, const void* pixels) {
         EXPECT_EQ(static_cast<unsigned>(GL_FLOAT), type);
         EXPECT_EQ(static_cast<unsigned>(GL_RED), format);
         EXPECT_EQ(2, xoffset);
diff --git a/media/renderers/renderer_impl.cc b/media/renderers/renderer_impl.cc
index 9fad1576..fffc6d7b 100644
--- a/media/renderers/renderer_impl.cc
+++ b/media/renderers/renderer_impl.cc
@@ -360,8 +360,8 @@
   DCHECK_EQ(state_, STATE_INITIALIZING);
   DCHECK(init_cb_);
 
-  PipelineStatusCB done_cb =
-      base::Bind(&RendererImpl::OnAudioRendererInitializeDone, weak_this_);
+  PipelineStatusCB done_cb = base::BindRepeating(
+      &RendererImpl::OnAudioRendererInitializeDone, weak_this_);
 
   // TODO(servolk): Implement proper support for multiple streams. But for now
   // pick the first enabled stream to preserve the existing behavior.
@@ -411,8 +411,8 @@
   DCHECK_EQ(state_, STATE_INITIALIZING);
   DCHECK(init_cb_);
 
-  PipelineStatusCB done_cb =
-      base::Bind(&RendererImpl::OnVideoRendererInitializeDone, weak_this_);
+  PipelineStatusCB done_cb = base::BindRepeating(
+      &RendererImpl::OnVideoRendererInitializeDone, weak_this_);
 
   // TODO(servolk): Implement proper support for multiple streams. But for now
   // pick the first enabled stream to preserve the existing behavior.
@@ -431,7 +431,8 @@
       new RendererClientInternal(DemuxerStream::VIDEO, this, media_resource_));
   video_renderer_->Initialize(
       video_stream, cdm_context_, video_renderer_client_.get(),
-      base::Bind(&RendererImpl::GetWallClockTimes, base::Unretained(this)),
+      base::BindRepeating(&RendererImpl::GetWallClockTimes,
+                          base::Unretained(this)),
       done_cb);
 }
 
@@ -716,8 +717,8 @@
         deferred_video_underflow_cb_.IsCancelled()) {
       DVLOG(4) << __func__ << " Deferring HAVE_NOTHING for video stream.";
       deferred_video_underflow_cb_.Reset(
-          base::Bind(&RendererImpl::OnBufferingStateChange, weak_this_, type,
-                     new_buffering_state, reason));
+          base::BindRepeating(&RendererImpl::OnBufferingStateChange, weak_this_,
+                              type, new_buffering_state, reason));
       task_runner_->PostDelayedTask(FROM_HERE,
                                     deferred_video_underflow_cb_.callback(),
                                     video_underflow_threshold_);
diff --git a/media/renderers/renderer_impl_unittest.cc b/media/renderers/renderer_impl_unittest.cc
index 89667c1..a3aeeeb9 100644
--- a/media/renderers/renderer_impl_unittest.cc
+++ b/media/renderers/renderer_impl_unittest.cc
@@ -136,9 +136,10 @@
       renderer_impl_->set_time_source_for_testing(&time_source_);
     }
 
-    renderer_impl_->Initialize(demuxer_.get(), &callbacks_,
-                               base::Bind(&CallbackHelper::OnInitialize,
-                                          base::Unretained(&callbacks_)));
+    renderer_impl_->Initialize(
+        demuxer_.get(), &callbacks_,
+        base::BindRepeating(&CallbackHelper::OnInitialize,
+                            base::Unretained(&callbacks_)));
     base::RunLoop().RunUntilIdle();
 
     if (start_status == PIPELINE_OK && audio_stream_) {
@@ -271,8 +272,8 @@
     SetFlushExpectationsForAVRenderers();
     EXPECT_CALL(callbacks_, OnFlushed());
 
-    renderer_impl_->Flush(
-        base::Bind(&CallbackHelper::OnFlushed, base::Unretained(&callbacks_)));
+    renderer_impl_->Flush(base::BindRepeating(&CallbackHelper::OnFlushed,
+                                              base::Unretained(&callbacks_)));
     base::RunLoop().RunUntilIdle();
   }
 
@@ -308,8 +309,8 @@
     EXPECT_CALL(callbacks_, OnCdmAttached(expected_result))
         .WillOnce(SaveArg<0>(&is_cdm_set_));
     renderer_impl_->SetCdm(cdm_context_.get(),
-                           base::Bind(&CallbackHelper::OnCdmAttached,
-                                      base::Unretained(&callbacks_)));
+                           base::BindRepeating(&CallbackHelper::OnCdmAttached,
+                                               base::Unretained(&callbacks_)));
     base::RunLoop().RunUntilIdle();
   }
 
@@ -556,8 +557,8 @@
 TEST_F(RendererImplTest, FlushAfterInitialization) {
   InitializeWithAudioAndVideo();
   EXPECT_CALL(callbacks_, OnFlushed());
-  renderer_impl_->Flush(
-      base::Bind(&CallbackHelper::OnFlushed, base::Unretained(&callbacks_)));
+  renderer_impl_->Flush(base::BindRepeating(&CallbackHelper::OnFlushed,
+                                            base::Unretained(&callbacks_)));
   base::RunLoop().RunUntilIdle();
 }
 
@@ -661,8 +662,8 @@
                       RunClosure<0>()));
   EXPECT_CALL(callbacks_, OnError(PIPELINE_ERROR_DECODE));
   EXPECT_CALL(callbacks_, OnFlushed());
-  renderer_impl_->Flush(
-      base::Bind(&CallbackHelper::OnFlushed, base::Unretained(&callbacks_)));
+  renderer_impl_->Flush(base::BindRepeating(&CallbackHelper::OnFlushed,
+                                            base::Unretained(&callbacks_)));
   base::RunLoop().RunUntilIdle();
 }
 
@@ -828,8 +829,8 @@
   EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce(RunClosure<0>());
   EXPECT_CALL(*video_renderer_, Flush(_)).WillOnce(RunClosure<0>());
   EXPECT_CALL(callbacks_, OnFlushed());
-  renderer_impl_->Flush(
-      base::Bind(&CallbackHelper::OnFlushed, base::Unretained(&callbacks_)));
+  renderer_impl_->Flush(base::BindRepeating(&CallbackHelper::OnFlushed,
+                                            base::Unretained(&callbacks_)));
   base::RunLoop().RunUntilIdle();
 
   // Start playback after the flush, but never return BUFFERING_HAVE_ENOUGH from
diff --git a/net/dns/public/dns_protocol.h b/net/dns/public/dns_protocol.h
index 29582d7..f26e281f 100644
--- a/net/dns/public/dns_protocol.h
+++ b/net/dns/public/dns_protocol.h
@@ -151,6 +151,13 @@
 static const uint16_t kTypeNSEC = 47;
 static const uint16_t kTypeANY = 255;
 
+// Experimental DNS record types pending IANA assignment.
+//
+// Record type proposed for TLS Encrypted Server Name Indication
+// (ESNI, draft 4) records:
+// https://tools.ietf.org/html/draft-ietf-tls-esni-04#section-8.3
+static const uint16_t kExperimentalTypeEsniDraft4 = 65439;
+
 // DNS reply codes (RCODEs).
 //
 // https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
diff --git a/net/dns/record_rdata.cc b/net/dns/record_rdata.cc
index e6366702..20fddae 100644
--- a/net/dns/record_rdata.cc
+++ b/net/dns/record_rdata.cc
@@ -8,13 +8,96 @@
 #include <numeric>
 
 #include "base/big_endian.h"
+#include "base/memory/ptr_util.h"
+#include "net/base/ip_address.h"
 #include "net/dns/dns_response.h"
 #include "net/dns/public/dns_protocol.h"
 
 namespace net {
 
+namespace {
+
+// Helper function for parsing ESNI (TLS 1.3 Encrypted
+// Server Name Indication, draft 4) RDATA.
+//
+// Precondition: |reader| points to the beginning of an
+// incoming ESNI-type RecordRdata's data
+//
+// If the ESNIRecord contains a well-formed
+// ESNIKeys field, advances |reader| immediately past the field
+// and returns true. Otherwise, returns false.
+WARN_UNUSED_RESULT bool AdvancePastEsniKeysField(
+    base::BigEndianReader* reader) {
+  DCHECK(reader);
+
+  // Skip |esni_keys.version|.
+  if (!reader->Skip(2))
+    return false;
+
+  // Within esni_keys, skip |public_name|,
+  // |keys|, and |cipher_suites|.
+  base::StringPiece piece_for_skipping;
+  for (int i = 0; i < 3; ++i) {
+    if (!reader->ReadU16LengthPrefixed(&piece_for_skipping))
+      return false;
+  }
+
+  // Skip the |esni_keys.padded_length| field.
+  if (!reader->Skip(2))
+    return false;
+
+  // Skip the |esni_keys.extensions| field.
+  return reader->ReadU16LengthPrefixed(&piece_for_skipping);
+}
+
+// Parses a single ESNI address set, appending the addresses to |out|.
+WARN_UNUSED_RESULT bool ParseEsniAddressSet(base::StringPiece address_set,
+                                            std::vector<IPAddress>* out) {
+  DCHECK(out);
+
+  IPAddressBytes address_bytes;
+  base::BigEndianReader address_set_reader(address_set.data(),
+                                           address_set.size());
+  while (address_set_reader.remaining()) {
+    // enum AddressType, section 4.2.1 of ESNI draft 4
+    // values: 4 (IPv4), 6 (IPv6)
+    uint8_t address_type = 0;
+    if (!address_set_reader.ReadU8(&address_type))
+      return false;
+
+    switch (address_type) {
+      case 4: {
+        address_bytes.Resize(IPAddress::kIPv4AddressSize);
+        break;
+      }
+      case 6: {
+        address_bytes.Resize(IPAddress::kIPv6AddressSize);
+        break;
+      }
+      default:  // invalid address type
+        return false;
+    }
+    if (!address_set_reader.ReadBytes(address_bytes.data(),
+                                      address_bytes.size()))
+      return false;
+    out->emplace_back(address_bytes);
+  }
+  return true;
+}
+
+}  // namespace
+
 static const size_t kSrvRecordMinimumSize = 6;
 
+// Source: https://tools.ietf.org/html/draft-ietf-tls-esni-04, section 4.1
+// (This isn't necessarily a tight bound, but it doesn't need to be:
+// |HasValidSize| is just used for sanity-check validation.)
+// - ESNIKeys field: 8 bytes of length prefixes, 4 bytes of mandatory u16
+// fields, >=7 bytes of length-prefixed fields' contents
+// - ESNIRecord field = ESNIKeys field + 2 bytes for |dns_extensions|'s
+// length prefix
+static const size_t kEsniDraft4MinimumSize = 21;
+
 bool RecordRdata::HasValidSize(const base::StringPiece& data, uint16_t type) {
   switch (type) {
     case dns_protocol::kTypeSRV:
@@ -23,6 +106,8 @@
       return data.size() == IPAddress::kIPv4AddressSize;
     case dns_protocol::kTypeAAAA:
       return data.size() == IPAddress::kIPv6AddressSize;
+    case dns_protocol::kExperimentalTypeEsniDraft4:
+      return data.size() >= kEsniDraft4MinimumSize;
     case dns_protocol::kTypeCNAME:
     case dns_protocol::kTypePTR:
     case dns_protocol::kTypeTXT:
@@ -362,4 +447,70 @@
   return code_ == other.code_ && data_ == other.data_;
 }
 
+EsniRecordRdata::EsniRecordRdata() = default;
+
+EsniRecordRdata::~EsniRecordRdata() = default;
+
+// static
+std::unique_ptr<EsniRecordRdata> EsniRecordRdata::Create(
+    base::StringPiece data,
+    const DnsRecordParser& parser) {
+  base::BigEndianReader reader(data.data(), data.size());
+
+  // TODO: Once BoringSSL CL 37704 lands, replace
+  // this with Boring's SSL_parse_esni_record,
+  // which does the same thing.
+  if (!AdvancePastEsniKeysField(&reader))
+    return nullptr;
+
+  size_t esni_keys_len = reader.ptr() - data.data();
+
+  base::StringPiece dns_extensions;
+  if (!reader.ReadU16LengthPrefixed(&dns_extensions) || reader.remaining() > 0)
+    return nullptr;
+
+  // Check defensively that we're not about to read OOB.
+  CHECK_LT(esni_keys_len, data.size());
+  auto rdata = base::WrapUnique(new EsniRecordRdata);
+  rdata->esni_keys_ = std::string(data.begin(), esni_keys_len);
+
+  base::BigEndianReader dns_extensions_reader(dns_extensions.data(),
+                                              dns_extensions.size());
+  if (dns_extensions_reader.remaining() == 0)
+    return rdata;
+
+  // ESNI Draft 4 only permits one extension type, address_set,
+  // so reject if we see any other extension type.
+  uint16_t dns_extension_type = 0;
+  if (!dns_extensions_reader.ReadU16(&dns_extension_type) ||
+      dns_extension_type != kAddressSetExtensionType)
+    return nullptr;
+
+  base::StringPiece address_set;
+  if (!dns_extensions_reader.ReadU16LengthPrefixed(&address_set) ||
+      !ParseEsniAddressSet(address_set, &rdata->addresses_))
+    return nullptr;
+
+  // In TLS, it's forbidden to send the same extension more than once in an
+  // extension block; assuming that the same restriction applies here, the
+  // record is ill-formed if any bytes follow the first (and only) extension.
+  if (dns_extensions_reader.remaining() > 0)
+    return nullptr;
+
+  return rdata;
+}
+
+uint16_t EsniRecordRdata::Type() const {
+  return EsniRecordRdata::kType;
+}
+
+bool EsniRecordRdata::IsEqual(const RecordRdata* other) const {
+  if (other->Type() != Type())
+    return false;
+  const EsniRecordRdata* esni_other =
+      static_cast<const EsniRecordRdata*>(other);
+  return esni_keys_ == esni_other->esni_keys_ &&
+         addresses_ == esni_other->addresses_;
+}
+
 }  // namespace net
diff --git a/net/dns/record_rdata.h b/net/dns/record_rdata.h
index e6864ae..e42c228 100644
--- a/net/dns/record_rdata.h
+++ b/net/dns/record_rdata.h
@@ -267,6 +267,49 @@
   DISALLOW_COPY_AND_ASSIGN(OptRecordRdata);
 };
 
+// TLS 1.3 Encrypted Server Name Indication
+// record format (https://tools.ietf.org/id/draft-ietf-tls-esni-04.txt)
+// struct {
+//   ESNIKeys esni_keys;  // see spec
+//   Extension dns_extensions<0..2 ^ 16 - 1>;
+// } ESNIRecord;
+class NET_EXPORT EsniRecordRdata : public RecordRdata {
+ public:
+  static constexpr uint16_t kType = dns_protocol::kExperimentalTypeEsniDraft4;
+  static constexpr uint16_t kAddressSetExtensionType = 0x1001u;
+
+  ~EsniRecordRdata() override;
+
+  // Parsing an ESNIRecord Rdata succeeds when all of the following hold:
+  // 1. The esni_keys field is well-formed.
+  // 2. The dns_extensions field is well-formed and, additionally, valid
+  // in the sense that its enum members have values allowed by the spec.
+  // 3. The Rdata field contains no data beyond the ESNIKeys and, optionally,
+  // one DNS extension of type address_set.
+  static std::unique_ptr<EsniRecordRdata> Create(base::StringPiece data,
+                                                 const DnsRecordParser& parser);
+
+  // Two EsniRecordRdatas compare equal if their ESNIKeys fields agree
+  // and their address sets contain the same addresses in the same order.
+  bool IsEqual(const RecordRdata* other) const override;
+  uint16_t Type() const override;
+
+  // Returns the ESNIKeys field of the record. This is an opaque bitstring
+  // passed to the SSL library.
+  base::StringPiece esni_keys() const { return esni_keys_; }
+
+  // Returns the IP addresses parsed from the address_set DNS extension, if any.
+  const std::vector<IPAddress>& addresses() const { return addresses_; }
+
+ private:
+  EsniRecordRdata();
+
+  std::string esni_keys_;
+  std::vector<IPAddress> addresses_;
+
+  DISALLOW_COPY_AND_ASSIGN(EsniRecordRdata);
+};
+
 }  // namespace net
 
 #endif  // NET_DNS_RECORD_RDATA_H_
diff --git a/net/dns/record_rdata_unittest.cc b/net/dns/record_rdata_unittest.cc
index 827a29e..eb8e476 100644
--- a/net/dns/record_rdata_unittest.cc
+++ b/net/dns/record_rdata_unittest.cc
@@ -4,9 +4,12 @@
 
 #include "net/dns/record_rdata.h"
 
+#include <algorithm>
 #include <memory>
 
+#include "base/big_endian.h"
 #include "net/dns/dns_response.h"
+#include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -126,6 +129,480 @@
   ASSERT_TRUE(record_obj->IsEqual(record_obj.get()));
 }
 
+// Cribbed from boringssl SSLTest.ESNIKeysDeserialize (CL 37704/13)
+const char kWellFormedEsniKeys[] = {
+    0xff, 0x3,  0x0,  0x0,  0x0,  0x24, 0x0,  0x1d, 0x0,  0x20,
+    0xed, 0xed, 0xc8, 0x68, 0xc1, 0x71, 0xd6, 0x9e, 0xa9, 0xf0,
+    0xa2, 0xc9, 0xf5, 0xa9, 0xdc, 0xcf, 0xf9, 0xb8, 0xed, 0x15,
+    0x5c, 0xc4, 0x5a, 0xec, 0x6f, 0xb2, 0x86, 0x14, 0xb7, 0x71,
+    0x1b, 0x7c, 0x0,  0x2,  0x13, 0x1,  0x1,  0x4,  0x0,  0x0};
+
+// Appends a well-formed ESNIKeys struct to the stream owned by "writer".
+// Returns the length, in bytes, of this struct, or 0 on error.
+//
+// (There is no ambiguity in the return value because a well-formed
+// ESNIKeys struct has positive length.)
+void AppendWellFormedEsniKeys(base::BigEndianWriter* writer) {
+  CHECK(writer);
+  writer->WriteBytes(kWellFormedEsniKeys, sizeof(kWellFormedEsniKeys));
+}
+
+// This helper checks |keys| against the well-formed sample ESNIKeys
+// struct; it's necessary because we can't implicitly convert
+// kWellFormedEsniKeys to a StringPiece (it's a byte array, not a
+// null-terminated string).
+void ExpectMatchesSampleKeys(base::StringPiece keys) {
+  EXPECT_EQ(keys, base::StringPiece(kWellFormedEsniKeys,
+                                    sizeof(kWellFormedEsniKeys)));
+}
+
+// Appends an IP address in network byte order, prepended by one byte
+// containing its version number, to |*serialized_addresses|. Appends
+// the corresponding IPAddress object to |*address_objects|.
+void AppendAnotherIPAddress(std::vector<uint8_t>* serialized_addresses,
+                            std::vector<IPAddress>* address_objects,
+                            int ip_version) {
+  CHECK(serialized_addresses);
+  CHECK(address_objects);
+
+  // To make the addresses vary, but in a deterministic manner, assign octets
+  // in increasing order as they're requested, potentially eventually wrapping
+  // to 0.
+  static uint8_t next_octet;
+
+  CHECK(ip_version == 4 || ip_version == 6);
+  const int address_num_bytes = ip_version == 4 ? 4 : 16;
+
+  std::vector<uint8_t> address_bytes;
+  for (int i = 0; i < address_num_bytes; ++i)
+    address_bytes.push_back(next_octet++);
+  IPAddress address(address_bytes.data(), address_num_bytes);
+
+  serialized_addresses->push_back(ip_version);
+  serialized_addresses->insert(serialized_addresses->end(),
+                               address_bytes.begin(), address_bytes.end());
+  address_objects->push_back(address);
+}
+
+// Writes a dns_extensions ESNIRecord block containing given the address
+// set to |writer|. This involves:
+// - writing the 16-bit length prefix for the dns_extensions block
+// - writing the 16-bit extension type (0x1001 "address_set")
+// - writing the 16-bit length prefix for the address set extension
+// - writing the extension itself
+void AppendDnsExtensionsBlock(base::BigEndianWriter* writer,
+                              const std::vector<uint8_t>& address_list) {
+  CHECK(writer);
+  // 2 bytes for the DNS extension type
+  writer->WriteU16(4 +
+                   address_list.size());  // length of the dns_extensions field
+  writer->WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer->WriteU16(address_list.size());  // length of the address set
+  writer->WriteBytes(address_list.data(), address_list.size());
+}
+
+// Test parsing a well-formed ESNI record with no DNS extensions.
+TEST(RecordRdataTest, ParseEsniRecordNoExtensions) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  writer.WriteU16(0);  // dns_extensions length
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+  ASSERT_THAT(record_obj, NotNull());
+  EXPECT_TRUE(record_obj->IsEqual(record_obj.get()));
+  EXPECT_EQ(record_obj->esni_keys(),
+            std::string(kWellFormedEsniKeys, sizeof(kWellFormedEsniKeys)));
+  EXPECT_EQ(record_obj->Type(), dns_protocol::kExperimentalTypeEsniDraft4);
+}
+
+// Test parsing a well-formed ESNI record bearing an address_set extension
+// containing a single IPv4 address.
+TEST(RecordRdataTest, ParseEsniRecordOneIPv4Address) {
+  // ESNI record:
+  // well-formed ESNI keys
+  // extensions length
+  // extension
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  std::vector<uint8_t> address_list;
+  std::vector<IPAddress> addresses_for_validation;
+
+  AppendAnotherIPAddress(&address_list, &addresses_for_validation,
+                         4 /* ip_version */);
+
+  AppendDnsExtensionsBlock(&writer, address_list);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+  ASSERT_THAT(record_obj, NotNull());
+
+  const auto& addresses = record_obj->addresses();
+
+  EXPECT_EQ(addresses, addresses_for_validation);
+
+  EXPECT_TRUE(record_obj->IsEqual(record_obj.get()));
+  ExpectMatchesSampleKeys(record_obj->esni_keys());
+}
+
+// Test parsing a well-formed ESNI record bearing an address_set extension
+// containing a single IPv6 address.
+TEST(RecordRdataTest, ParseEsniRecordOneIPv6Address) {
+  // ESNI record:
+  // well-formed ESNI keys
+  // extensions length
+  // extension
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  std::vector<uint8_t> address_list;
+  std::vector<IPAddress> addresses_for_validation;
+
+  AppendAnotherIPAddress(&address_list, &addresses_for_validation,
+                         6 /* ip_version */);
+
+  AppendDnsExtensionsBlock(&writer, address_list);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+  ASSERT_THAT(record_obj, NotNull());
+
+  const auto& addresses = record_obj->addresses();
+
+  EXPECT_EQ(addresses, addresses_for_validation);
+
+  EXPECT_TRUE(record_obj->IsEqual(record_obj.get()));
+  ExpectMatchesSampleKeys(record_obj->esni_keys());
+}
+
+// Test parsing a well-formed ESNI record bearing an address_set extension
+// containing several IPv4 and IPv6 addresses.
+TEST(RecordRdataTest, ParseEsniRecordManyAddresses) {
+  // ESNI record:
+  // well-formed ESNI keys
+  // extensions length
+  // extension
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  std::vector<uint8_t> address_list;
+  std::vector<IPAddress> addresses_for_validation;
+
+  for (int i = 0; i < 100; ++i)
+    AppendAnotherIPAddress(&address_list, &addresses_for_validation,
+                           (i % 3) ? 4 : 6 /* ip_version */);
+
+  AppendDnsExtensionsBlock(&writer, address_list);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+  ASSERT_THAT(record_obj, NotNull());
+
+  const auto& addresses = record_obj->addresses();
+
+  EXPECT_EQ(addresses, addresses_for_validation);
+
+  EXPECT_TRUE(record_obj->IsEqual(record_obj.get()));
+  ExpectMatchesSampleKeys(record_obj->esni_keys());
+}
+
+// Test that we correctly reject a record with an ill-formed ESNI keys field.
+//
+// This test makes sure that the //net-side record parser is able
+// correctly to handle the case where an external ESNI keys validation
+// subroutine reports that the keys are ill-formed; because this validation
+// will eventually be performed by BoringSSL once the corresponding
+// BSSL code lands, it's out of scope here to exercise the
+// validation logic itself.
+TEST(RecordRdataTest, EsniMalformedRecord_InvalidEsniKeys) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+
+  // Oops! This otherwise well-formed ESNIKeys struct is missing its
+  // final byte, and the reader contains no content after this incomplete
+  // struct.
+  const char ill_formed_esni_keys[] = {
+      0xff, 0x3,  0x0,  0x0,  0x0,  0x24, 0x0,  0x1d, 0x0,  0x20,
+      0xed, 0xed, 0xc8, 0x68, 0xc1, 0x71, 0xd6, 0x9e, 0xa9, 0xf0,
+      0xa2, 0xc9, 0xf5, 0xa9, 0xdc, 0xcf, 0xf9, 0xb8, 0xed, 0x15,
+      0x5c, 0xc4, 0x5a, 0xec, 0x6f, 0xb2, 0x86, 0x14, 0xb7, 0x71,
+      0x1b, 0x7c, 0x0,  0x2,  0x13, 0x1,  0x1,  0x4,  0x0};
+  writer.WriteBytes(ill_formed_esni_keys, sizeof(ill_formed_esni_keys));
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an empty address_set extension is correctly accepted.
+TEST(RecordRdataTest, ParseEsniRecord_EmptyAddressSet) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  writer.WriteU16(4);  // length of the dns_extensions field
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(0);  // length of the (empty) address_set extension
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, NotNull());
+}
+
+// Test that we correctly reject a record invalid due to having extra
+// data within its dns_extensions block but after its last extension.
+TEST(RecordRdataTest, EsniMalformedRecord_TrailingDataWithinDnsExtensions) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  writer.WriteU16(5);  // length of the dns_extensions field
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(0);  // length of the (empty) address_set extension
+
+  // Pad the otherwise-valid extensions block with one byte of garbage.
+  writer.WriteBytes(&"a", 1);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that we correctly reject a record with two well-formed
+// DNS extensions (only one extension of each type is permitted).
+TEST(RecordRdataTest, EsniMalformedRecord_TooManyExtensions) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  writer.WriteU16(8);  // length of the dns_extensions field
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(0);  // length of the (empty) address_set extension
+  // Write another (empty, but completely valid on its own) extension,
+  // rendering the record invalid.
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(0);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNIRecord with an extension of invalid type
+// is correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_InvalidExtensionType) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  // 2 bytes for the DNS extension type
+  writer.WriteU16(2);       // length of the dns_extensions field
+  writer.WriteU16(0xdead);  // invalid address type
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an address_set extension missing a length field
+// is correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_MalformedAddressSetLength) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  // 3 bytes: 2 for the DNS extension type, and one for our
+  // too-short address_set length
+  writer.WriteU16(3);  // length of the dns_extensions field
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  // oops! need two bytes for the address length
+  writer.WriteU8(57);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNI record with malformed dns_extensions length is
+// correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_MalformedDnsExtensionsLength) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  // Oops! Length field of dns_extensions should be 2 bytes.
+  writer.WriteU8(57);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNI record with invalid dns_extensions length is
+// correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_BadDnsExtensionsLength) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  // Length-prepend the dns_extensions field with value 5, even though
+  // the extensions object will have length 4 (two U16's): this should
+  // make the record be rejected as malformed.
+  writer.WriteU16(5);
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(0);  // length of the address_set extension
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNI record with invalid address_set extension length is
+// correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_BadAddressSetLength) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  writer.WriteU16(4);  // 2 bytes for each of the U16s to be written
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  // Oops! Length-prepending the empty address_set field with the value 1.
+  writer.WriteU16(1);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNI record with an address_set entry of bad address
+// type is correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_InvalidAddressType) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  writer.WriteU16(9);  // dns_extensions length: two U16's and a 5-byte address
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+
+  std::vector<uint8_t> address_list;
+  IPAddress ipv4;
+  ASSERT_TRUE(net::ParseURLHostnameToAddress("192.168.1.1", &ipv4));
+  address_list.push_back(5);  // Oops! "5" isn't a valid AddressType.
+  std::copy(ipv4.bytes().begin(), ipv4.bytes().end(),
+            std::back_inserter(address_list));
+
+  writer.WriteU16(address_list.size());
+  writer.WriteBytes(address_list.data(), address_list.size());
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNI record with an address_set entry of bad address
+// type is correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_NotEnoughAddressData_IPv4) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  std::vector<uint8_t> address_list;
+  std::vector<IPAddress> addresses_for_validation_unused;
+  AppendAnotherIPAddress(&address_list, &addresses_for_validation_unused, 4);
+
+  // dns_extensions length: 2 bytes for address type, 2 for address_set length
+  // Subtract 1 because we're deliberately writing one byte too few for the
+  // purposes of this test.
+  writer.WriteU16(address_list.size() - 1 + 4);
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(address_list.size() - 1);
+  // oops! missing the last byte of our IPv4 address
+  writer.WriteBytes(address_list.data(), address_list.size() - 1);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
+// Test that an ESNI record with an address_set entry of bad address
+// type is correctly rejected.
+TEST(RecordRdataTest, EsniMalformedRecord_NotEnoughAddressData_IPv6) {
+  char record[10000] = {};
+  base::BigEndianWriter writer(record, sizeof(record));
+  AppendWellFormedEsniKeys(&writer);
+
+  std::vector<uint8_t> address_list;
+  std::vector<IPAddress> addresses_for_validation_unused;
+  AppendAnotherIPAddress(&address_list, &addresses_for_validation_unused, 6);
+
+  // dns_extensions length: 2 bytes for address type, 2 for address_set length
+  // Subtract 1 because we're deliberately writing one byte too few for the
+  // purposes of this test.
+  writer.WriteU16(address_list.size() - 1 + 4);
+  writer.WriteU16(EsniRecordRdata::kAddressSetExtensionType);
+  writer.WriteU16(address_list.size() - 1);
+  // oops! missing the last byte of our IPv6 address
+  writer.WriteBytes(address_list.data(), address_list.size() - 1);
+
+  auto record_size = writer.ptr() - record;
+  DnsRecordParser parser(record, record_size, 0 /* offset */);
+  std::unique_ptr<EsniRecordRdata> record_obj =
+      EsniRecordRdata::Create(std::string(record, record_size), parser);
+
+  ASSERT_THAT(record_obj, IsNull());
+}
+
 TEST(RecordRdataTest, ParsePtrRecord) {
   // These are just the rdata portions of the DNS records, rather than complete
   // records, but it works well enough for this test.
diff --git a/net/log/net_log_event_type_list.h b/net/log/net_log_event_type_list.h
index f98139e..ccd0b773 100644
--- a/net/log/net_log_event_type_list.h
+++ b/net/log/net_log_event_type_list.h
@@ -1768,12 +1768,14 @@
 //   {
 //     "connection_id": <The 64-bit CONNECTION_ID for this connection, as a
 //                       base-10 string>,
-//     "reset_flag": <True if the reset flag is set for this packet>,
-//     "version_flag": <True if the version flag is set for this packet>,
-//     "packet_sequence_number": <The packet's full 64-bit sequence number,
-//                                as a base-10 string.>,
-//     "private_flags": <The private flags set for this packet>,
-//     "fec_group": <The FEC group of this packet>,
+//     "packet_number": <The packet's full 64-bit sequence number,
+//                       as a base-10 string.>,
+//     "header_format": <The format of the header in string>,
+//     If the header_format is long header:
+//      "long_header_type": <log the long header type>
+//     If Google QUIC is used:
+//      "reset_flag": <True if the reset flag is set for this packet>,
+//      "version_flag": <True if the version flag is set for this packet>
 //   }
 EVENT_TYPE(QUIC_SESSION_UNAUTHENTICATED_PACKET_HEADER_RECEIVED)
 
diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc
index 1614a5aa..375069c3 100644
--- a/net/quic/quic_connection_logger.cc
+++ b/net/quic/quic_connection_logger.cc
@@ -93,14 +93,23 @@
   return dict;
 }
 
-base::Value NetLogQuicPacketHeaderParams(const quic::QuicPacketHeader* header) {
+base::Value NetLogQuicPacketHeaderParams(const quic::QuicPacketHeader* header,
+                                         bool is_ietf_quic) {
   base::Value dict(base::Value::Type::DICTIONARY);
   dict.SetStringKey("connection_id",
                     header->destination_connection_id.ToString());
-  dict.SetIntKey("reset_flag", header->reset_flag);
-  dict.SetIntKey("version_flag", header->version_flag);
   dict.SetKey("packet_number",
               NetLogNumberValue(header->packet_number.ToUint64()));
+  dict.SetStringKey("header_format",
+                    quic::PacketHeaderFormatToString(header->form));
+  if (header->form == quic::IETF_QUIC_LONG_HEADER_PACKET) {
+    dict.SetStringKey("long_header_type", quic::QuicLongHeaderTypeToString(
+                                              header->long_packet_type));
+  }
+  if (!is_ietf_quic) {
+    dict.SetIntKey("reset_flag", header->reset_flag);
+    dict.SetIntKey("version_flag", header->version_flag);
+  }
   return dict;
 }
 
@@ -613,7 +622,11 @@
     return;
   net_log_.AddEvent(
       NetLogEventType::QUIC_SESSION_UNAUTHENTICATED_PACKET_HEADER_RECEIVED,
-      [&] { return NetLogQuicPacketHeaderParams(&header); });
+      [&] {
+        return NetLogQuicPacketHeaderParams(
+            &header,
+            quic::VersionHasIetfQuicFrames(session_->transport_version()));
+      });
 }
 
 void QuicConnectionLogger::OnIncorrectConnectionId(
diff --git a/remoting/host/installer/mac/LaunchAgents/org.chromium.chromoting.plist b/remoting/host/installer/mac/LaunchAgents/org.chromium.chromoting.plist
index be9a79b..aa70188 100644
--- a/remoting/host/installer/mac/LaunchAgents/org.chromium.chromoting.plist
+++ b/remoting/host/installer/mac/LaunchAgents/org.chromium.chromoting.plist
@@ -13,7 +13,7 @@
 	</array>
 	<key>ProgramArguments</key>
 	<array>
-		<string>/Library/PrivilegedHelperTools/@@HOST_BUNDLE_NAME@@/Contents/MacOS/host_service</string>
+		<string>/Library/PrivilegedHelperTools/@@HOST_BUNDLE_NAME@@/Contents/MacOS/remoting_me2me_host_service</string>
 		<string>--run-from-launchd</string>
 	</array>
 	<key>RunAtLoad</key>
diff --git a/remoting/host/installer/mac/Scripts/remoting_postflight.sh b/remoting/host/installer/mac/Scripts/remoting_postflight.sh
index 4c49e36..2dc90e5 100755
--- a/remoting/host/installer/mac/Scripts/remoting_postflight.sh
+++ b/remoting/host/installer/mac/Scripts/remoting_postflight.sh
@@ -9,15 +9,16 @@
 HELPERTOOLS=/Library/PrivilegedHelperTools
 SERVICE_NAME=org.chromium.chromoting
 CONFIG_FILE="$HELPERTOOLS/$SERVICE_NAME.json"
-SCRIPT_FILE="$HELPERTOOLS/$SERVICE_NAME.me2me.sh"
-USERS_TMP_FILE="$SCRIPT_FILE.users"
+OLD_SCRIPT_FILE="$HELPERTOOLS/$SERVICE_NAME.me2me.sh"
 PLIST=/Library/LaunchAgents/org.chromium.chromoting.plist
 PAM_CONFIG=/etc/pam.d/chrome-remote-desktop
 ENABLED_FILE="$HELPERTOOLS/$SERVICE_NAME.me2me_enabled"
 ENABLED_FILE_BACKUP="$ENABLED_FILE.backup"
 HOST_BUNDLE_NAME=@@HOST_BUNDLE_NAME@@
+HOST_SERVICE_BINARY="$HELPERTOOLS/$HOST_BUNDLE_NAME/Contents/MacOS/remoting_me2me_host_service"
 HOST_LEGACY_BUNDLE_NAME=@@HOST_LEGACY_BUNDLE_NAME@@
 HOST_EXE="$HELPERTOOLS/$HOST_BUNDLE_NAME/Contents/MacOS/remoting_me2me_host"
+USERS_TMP_FILE="$HOST_SERVICE_BINARY.users"
 
 KSADMIN=/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin
 KSUPDATE=https://tools.google.com/service/update2
@@ -67,12 +68,10 @@
   mv "$ENABLED_FILE_BACKUP" "$ENABLED_FILE"
 fi
 
-# If there is a backup plist, restore it in order to use the old launchd
-# service script instead of the new one.
-if [[ -f "$INSTALLER_TEMP/plist_backup" ]]; then
-  logger Restoring original launchd agent
-  mv "$INSTALLER_TEMP/plist_backup" "$PLIST"
-  mv "$INSTALLER_TEMP/script_backup" "$SCRIPT_FILE"
+# If there is a backup script, restore it.
+if [[ -f "$INSTALLER_TEMP/script_backup" ]]; then
+  logger Restoring original launchd script
+  mv "$INSTALLER_TEMP/script_backup" "$OLD_SCRIPT_FILE"
 fi
 
 # Create the PAM configuration unless it already exists and has been edited.
diff --git a/remoting/host/installer/mac/Scripts/remoting_preflight.sh b/remoting/host/installer/mac/Scripts/remoting_preflight.sh
index 312d82c..618a2c5 100755
--- a/remoting/host/installer/mac/Scripts/remoting_preflight.sh
+++ b/remoting/host/installer/mac/Scripts/remoting_preflight.sh
@@ -8,9 +8,11 @@
 
 HELPERTOOLS=/Library/PrivilegedHelperTools
 SERVICE_NAME=org.chromium.chromoting
+HOST_BUNDLE_NAME=@@HOST_BUNDLE_NAME@@
 CONFIG_FILE="$HELPERTOOLS/$SERVICE_NAME.json"
-SCRIPT_FILE="$HELPERTOOLS/$SERVICE_NAME.me2me.sh"
-USERS_TMP_FILE="$SCRIPT_FILE.users"
+OLD_SCRIPT_FILE="$HELPERTOOLS/$SERVICE_NAME.me2me.sh"
+HOST_SERVICE_BINARY="$HELPERTOOLS/$HOST_BUNDLE_NAME/Contents/MacOS/remoting_me2me_host_service"
+USERS_TMP_FILE="$HOST_SERVICE_BINARY.users"
 PLIST=/Library/LaunchAgents/org.chromium.chromoting.plist
 ENABLED_FILE="$HELPERTOOLS/$SERVICE_NAME.me2me_enabled"
 ENABLED_FILE_BACKUP="$ENABLED_FILE.backup"
@@ -24,10 +26,14 @@
 }
 
 function find_users_with_active_hosts {
-  ps -eo uid,command | awk -v script="$SCRIPT_FILE" '
-    $2 == "/bin/sh" && $3 == script && $4 == "--run-from-launchd" {
-      print $1
-    }'
+  # User might be running the old script, the new service binary, or both in
+  # some cases, so we need to find both processes then dedup the uid.
+  ps -eo uid,command |
+    awk -v script="$OLD_SCRIPT_FILE" -v binary="$HOST_SERVICE_BINARY" '
+      ($2 == "/bin/sh" && $3 == script && $4 == "--run-from-launchd") ||
+      ($2 == binary && $3 == "--run-from-launchd") {
+        print $1
+      }' | sort | uniq
 }
 
 function find_login_window_for_user {
@@ -63,16 +69,14 @@
   mv "$ENABLED_FILE" "$ENABLED_FILE_BACKUP"
 fi
 
-# If there is an old launchd script, create a backup of the system's launchd
-# agent plist, so that the postflight script can restore it. This ensures the
-# old launchd script gets used instead of the new one in the host bundle.
-# The script also needs to be backed up and restored, as the new package does
-# not provide it, and the installer deletes it from the system.
-# TODO(lambroslambrou): Remove this after users have authorized the new script.
-if [[ -f "$SCRIPT_FILE" ]]; then
+# If there is an old launchd script, create a backup of it, so that the
+# postflight script can restore it. This ensures the new host service falls back
+# to the old launchd script when it is available on Mojave.
+# The script needs to be backed up and restored, as the new package does not
+# provide it, and the installer deletes it from the system.
+if [[ -f "$OLD_SCRIPT_FILE" ]]; then
   logger Backing up launchd agent
-  cp "$PLIST" "$INSTALLER_TEMP/plist_backup"
-  cp "$SCRIPT_FILE" "$INSTALLER_TEMP/script_backup"
+  cp "$OLD_SCRIPT_FILE" "$INSTALLER_TEMP/script_backup"
 fi
 
 # Stop and unload the service for each user currently running the service, and
diff --git a/remoting/host/installer/mac/do_signing.sh b/remoting/host/installer/mac/do_signing.sh
index 675b539..8f87236 100755
--- a/remoting/host/installer/mac/do_signing.sh
+++ b/remoting/host/installer/mac/do_signing.sh
@@ -40,7 +40,7 @@
   # Binaries/bundles to sign.
   ME2ME_HOST="PrivilegedHelperTools/${HOST_BUNDLE_NAME}"
   ME2ME_EXE_DIR="${ME2ME_HOST}/Contents/MacOS/"
-  ME2ME_LAUNCHD_SERVICE="${ME2ME_EXE_DIR}/host_service"
+  ME2ME_LAUNCHD_SERVICE="${ME2ME_EXE_DIR}/remoting_me2me_host_service"
   ME2ME_NM_HOST="${ME2ME_EXE_DIR}/${NATIVE_MESSAGING_HOST_BUNDLE_NAME}/"
   IT2ME_NM_HOST="${ME2ME_EXE_DIR}/${REMOTE_ASSISTANCE_HOST_BUNDLE_NAME}/"
   UNINSTALLER="Applications/${HOST_UNINSTALLER_NAME}.app"
diff --git a/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm b/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm
index eaee378..f284110a2 100644
--- a/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm
+++ b/remoting/host/installer/mac/uninstaller/remoting_uninstaller.mm
@@ -133,15 +133,10 @@
 
   [self shutdownService];
 
-  // Remove the old helper script if it exists. The new helper script is part
-  // of the host bundle.
-  const char kOldHostHelperScriptPath[] =
-      "/Library/PrivilegedHelperTools/org.chromium.chromoting.me2me.sh";
-
   [self sudoDelete:remoting::kServicePlistPath usingAuth:authRef];
   [self sudoDelete:remoting::kHostBinaryPath usingAuth:authRef];
   [self sudoDelete:remoting::kHostLegacyBinaryPath usingAuth:authRef];
-  [self sudoDelete:kOldHostHelperScriptPath usingAuth:authRef];
+  [self sudoDelete:remoting::kOldHostHelperScriptPath usingAuth:authRef];
   [self sudoDelete:remoting::kHostConfigFilePath usingAuth:authRef];
   [self sudoDelete:remoting::kLogFilePath usingAuth:authRef];
   [self sudoDelete:remoting::kLogFileConfigPath usingAuth:authRef];
diff --git a/remoting/host/mac/BUILD.gn b/remoting/host/mac/BUILD.gn
index 5ab38ad..d251ddfa 100644
--- a/remoting/host/mac/BUILD.gn
+++ b/remoting/host/mac/BUILD.gn
@@ -80,15 +80,6 @@
   }
 }
 
-bundle_data("remoting_me2me_script") {
-  sources = [
-    "host_service",
-  ]
-  outputs = [
-    "{{bundle_executable_dir}}/{{source_file_part}}",
-  ]
-}
-
 target("mac_app_bundle", "remoting_me2me_host") {
   extra_configs = [ "//remoting/build/config:version" ]
   info_plist = "remoting_me2me_host-Info.plist"
@@ -125,8 +116,7 @@
   }
   deps += [
     ":remoting_host_resources",
-    #":remoting_me2me_host_service_bundle_data",
-    ":remoting_me2me_script",
+    ":remoting_me2me_host_service_bundle_data",
     "//remoting/host:remoting_infoplist_strings",
     "//remoting/resources:copy_locales",
   ]
diff --git a/remoting/host/mac/constants_mac.cc b/remoting/host/mac/constants_mac.cc
index 326e7e4..04e2a0a 100644
--- a/remoting/host/mac/constants_mac.cc
+++ b/remoting/host/mac/constants_mac.cc
@@ -21,8 +21,8 @@
 const char kHostConfigFileName[] = SERVICE_NAME ".json";
 const char kHostConfigFilePath[] = HELPER_TOOLS_DIR SERVICE_NAME ".json";
 
-const char kHostHelperScriptPath[] =
-    HELPER_TOOLS_DIR HOST_BUNDLE_NAME "/Contents/MacOS/host_service";
+const char kHostServiceBinaryPath[] = HELPER_TOOLS_DIR HOST_BUNDLE_NAME
+    "/Contents/MacOS/remoting_me2me_host_service";
 const char kOldHostHelperScriptPath[] =
     HELPER_TOOLS_DIR SERVICE_NAME ".me2me.sh";
 const char kHostBinaryPath[] = HELPER_TOOLS_DIR HOST_BUNDLE_NAME;
diff --git a/remoting/host/mac/constants_mac.h b/remoting/host/mac/constants_mac.h
index e3ec312e..a149d15 100644
--- a/remoting/host/mac/constants_mac.h
+++ b/remoting/host/mac/constants_mac.h
@@ -21,7 +21,7 @@
 // service.
 // It is also used (as non-root) to provide version information for the
 // installed host components.
-extern const char kHostHelperScriptPath[];
+extern const char kHostServiceBinaryPath[];
 
 // Path to the old host helper script, which is still used after user updates
 // their host on macOS 10.14.*.
diff --git a/remoting/host/mac/host_service b/remoting/host/mac/host_service
deleted file mode 100755
index 10528b10..0000000
--- a/remoting/host/mac/host_service
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-NAME=org.chromium.chromoting
-SCRIPT_DIR="$(dirname "${0}")"
-CONFIG_DIR=/Library/PrivilegedHelperTools
-ENABLED_FILE="$CONFIG_DIR/$NAME.me2me_enabled"
-CONFIG_FILE="$CONFIG_DIR/$NAME.json"
-HOST_EXE="$SCRIPT_DIR/remoting_me2me_host"
-PLIST_FILE="$SCRIPT_DIR/../Info.plist"
-
-# The exit code returned by 'wait' when a process is terminated by SIGTERM.
-SIGTERM_EXIT_CODE=143
-
-# Range of exit codes returned by the host to indicate that a permanent error
-# has occurred and that the host should not be restarted. Please, keep these
-# constants in sync with remoting/host/host_exit_codes.h.
-MIN_PERMANENT_ERROR_EXIT_CODE=100
-MAX_PERMANENT_ERROR_EXIT_CODE=105
-
-# Constants controlling the host process relaunch throttling.
-MINIMUM_RELAUNCH_INTERVAL=60
-MAXIMUM_HOST_FAILURES=10
-
-# Exit code 126 is defined by Posix to mean "Command found, but not
-# executable", and is returned if the process cannot be launched due to
-# parental control.
-PERMISSION_DENIED_PARENTAL_CONTROL=126
-
-HOST_PID=0
-SIGNAL_WAS_TRAPPED=0
-
-# This script works as a proxy between launchd and the host. Signals of
-# interest to the host must be forwarded.
-SIGNAL_LIST="SIGHUP SIGINT SIGQUIT SIGILL SIGTRAP SIGABRT SIGEMT \
-      SIGFPE SIGKILL SIGBUS SIGSEGV SIGSYS SIGPIPE SIGALRM SIGTERM SIGURG \
-      SIGSTOP SIGTSTP SIGCONT SIGCHLD SIGTTIN SIGTTOU SIGIO SIGXCPU SIGXFSZ \
-      SIGVTALRM SIGPROF SIGWINCH SIGINFO SIGUSR1 SIGUSR2"
-
-handle_signal() {
-  SIGNAL_WAS_TRAPPED=1
-}
-
-run_host() {
-  # Run the config-upgrade tool, but only if running as root, as normal users
-  # don't have permission to write the config file.
-  if [[ "$EUID" -eq 0 ]]; then
-    "$HOST_EXE" --upgrade-token --host-config="$CONFIG_FILE"
-  fi
-
-  local host_failure_count=0
-  local host_start_time=0
-
-  while true; do
-    if [[ ! -f "$ENABLED_FILE" ]]; then
-      echo "Daemon is disabled."
-      exit 0
-    fi
-
-    # If this is not the first time the host has run, make sure we don't
-    # relaunch it too soon.
-    if [[ "$host_start_time" -gt 0 ]]; then
-      local host_lifetime=$(($(date +%s) - $host_start_time))
-      echo "Host ran for ${host_lifetime}s"
-      if [[ "$host_lifetime" -lt "$MINIMUM_RELAUNCH_INTERVAL" ]]; then
-        # If the host didn't run for very long, assume it crashed. Relaunch only
-        # after a suitable delay and increase the failure count.
-        host_failure_count=$(($host_failure_count + 1))
-        echo "Host failure count $host_failure_count/$MAXIMUM_HOST_FAILURES"
-        if [[ "$host_failure_count" -ge "$MAXIMUM_HOST_FAILURES" ]]; then
-          echo "Too many host failures. Giving up."
-          exit 1
-        fi
-        local relaunch_in=$(($MINIMUM_RELAUNCH_INTERVAL - $host_lifetime))
-        echo "Relaunching in ${relaunch_in}s"
-        sleep "$relaunch_in"
-      else
-        # If the host ran for long enough, reset the crash counter.
-        host_failure_count=0
-      fi
-    fi
-
-    # Execute the host asynchronously and forward signals to it.
-    trap "handle_signal" $SIGNAL_LIST
-    host_start_time=$(date +%s)
-    "$HOST_EXE" --host-config="$CONFIG_FILE" \
-                --ssh-auth-sockname="/tmp/chromoting.$USER.ssh_auth_sock" &
-    HOST_PID="$!"
-
-    # Wait for the host to return and process its exit code.
-    while true; do
-      wait "$HOST_PID"
-      EXIT_CODE="$?"
-      if [[ $SIGNAL_WAS_TRAPPED -eq 1 ]]; then
-        # 'wait' returned as the result of a trapped signal and the exit code is
-        # the signal that was trapped + 128. Forward the signal to the host.
-        SIGNAL_WAS_TRAPPED=0
-        local SIGNAL=$(($EXIT_CODE - 128))
-        echo "Forwarding signal $SIGNAL to host"
-        kill -$SIGNAL "$HOST_PID"
-      elif [[ "$EXIT_CODE" -eq "0" ||
-              "$EXIT_CODE" -eq "$SIGTERM_EXIT_CODE" ||
-              "$EXIT_CODE" -eq "$PERMISSION_DENIED_PARENTAL_CONTROL" ||
-              ("$EXIT_CODE" -ge "$MIN_PERMANENT_ERROR_EXIT_CODE" && \
-              "$EXIT_CODE" -le "$MAX_PERMANENT_ERROR_EXIT_CODE") ]]; then
-        echo "Host returned permanent exit code $EXIT_CODE at ""$(date)"""
-        if [[ "$EXIT_CODE" -eq 101 ]]; then
-          # Exit code 101 is "hostID deleted", which indicates that the host
-          # was taken off-line remotely. To prevent the host being restarted
-          # when the login context changes, try to delete the "enabled" file.
-          # Since this requires root privileges, this is only possible when
-          # this script is launched in the "login" context. In the "aqua"
-          # context, just exit and try again next time.
-          echo "Host id deleted - disabling"
-          rm -f "$ENABLED_FILE" 2>/dev/null
-        fi
-        exit "$EXIT_CODE"
-      else
-        # Ignore non-permanent error-code and launch host again. Stop handling
-        # signals temporarily in case the script has to sleep to throttle host
-        # relaunches. While throttling, there is no host process to which to
-        # forward the signal, so the default behaviour should be restored.
-        echo "Host returned non-permanent exit code $EXIT_CODE at ""$(date)"""
-        trap - $SIGNAL_LIST
-        HOST_PID=0
-        break
-      fi
-    done
-  done
-}
-
-if [[ "$1" = "--disable" ]]; then
-  # This script is executed from base::mac::ExecuteWithPrivilegesAndWait(),
-  # which requires the child process to write its PID to stdout before
-  # anythine else. See base/mac/authorization_util.h for details.
-  echo $$
-  rm -f "$ENABLED_FILE"
-elif [[ "$1" = "--enable" ]]; then
-  echo $$
-  # Ensure the config file is private whilst being written.
-  rm -f "$CONFIG_FILE"
-  umask 0077
-  cat > "$CONFIG_FILE"
-  # Ensure the config is readable by the user registering the host.
-  chmod +a "$USER:allow:read" "$CONFIG_FILE"
-  touch "$ENABLED_FILE"
-elif [[ "$1" = "--save-config" ]]; then
-  echo $$
-  cat > "$CONFIG_FILE"
-elif [[ "$1" = "--host-version" ]]; then
-  /usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$PLIST_FILE"
-elif [[ "$1" = "--run-from-launchd" ]]; then
-  echo Host started for user $USER at $"$(date)"
-  run_host
-else
-  echo $$
-  exit 1
-fi
diff --git a/remoting/host/mac/permission_utils.h b/remoting/host/mac/permission_utils.h
index 6725bb5..4f114f9 100644
--- a/remoting/host/mac/permission_utils.h
+++ b/remoting/host/mac/permission_utils.h
@@ -15,8 +15,10 @@
 namespace mac {
 
 // Prompts the user to add the current application to the set of trusted
-// Accessibility applications.  This is only required for input injection on
-// 10.14 and later OSes.  |task_runner| is used to run the dialog message loop.
+// Accessibility and Screen Recording applications.  The Accessibility
+// permission is required for input injection (10.14 and later) and Screen
+// Recording is required for screen capture (10.15 and later).  |task_runner|
+// is used to run the dialog message loop.
 void PromptUserToChangeTrustStateIfNeeded(
     scoped_refptr<base::SingleThreadTaskRunner> task_runner);
 
diff --git a/remoting/host/mac/permission_utils.mm b/remoting/host/mac/permission_utils.mm
index 55a4d78d..e88586a8 100644
--- a/remoting/host/mac/permission_utils.mm
+++ b/remoting/host/mac/permission_utils.mm
@@ -9,6 +9,7 @@
 #include "base/bind.h"
 #include "base/location.h"
 #include "base/logging.h"
+#include "base/mac/mac_util.h"
 #include "base/mac/scoped_nsobject.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/single_thread_task_runner.h"
@@ -23,12 +24,13 @@
 
 // The name of the host service as it appears in the system's Accessibility
 // permission dialog.
-constexpr NSString* kHostServiceName = @"remoting_me2me_host";
+constexpr NSString* kHostServiceName = @"ChromeRemoteDesktopHost";
 
-void ShowPermissionDialog() {
+void ShowAccessibilityPermissionDialog() {
   base::scoped_nsobject<NSAlert> alert([[NSAlert alloc] init]);
-  [alert setMessageText:l10n_util::GetNSString(
-                            IDS_ACCESSIBILITY_PERMISSION_DIALOG_TITLE)];
+  [alert setMessageText:l10n_util::GetNSStringF(
+                            IDS_ACCESSIBILITY_PERMISSION_DIALOG_TITLE,
+                            l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))];
   [alert setInformativeText:
              l10n_util::GetNSStringF(
                  IDS_ACCESSIBILITY_PERMISSION_DIALOG_BODY_TEXT,
@@ -62,20 +64,99 @@
                                  @"preference.security?Privacy_Accessibility"]];
   }
 }
+
+void ShowScreenRecordingPermissionDialog() {
+  base::scoped_nsobject<NSAlert> alert([[NSAlert alloc] init]);
+  [alert setMessageText:l10n_util::GetNSStringF(
+                            IDS_SCREEN_RECORDING_PERMISSION_DIALOG_TITLE,
+                            l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))];
+  [alert setInformativeText:
+             l10n_util::GetNSStringF(
+                 IDS_SCREEN_RECORDING_PERMISSION_DIALOG_BODY_TEXT,
+                 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME),
+                 l10n_util::GetStringUTF16(
+                     IDS_SCREEN_RECORDING_PERMISSION_DIALOG_OPEN_BUTTON),
+                 base::SysNSStringToUTF16(kHostServiceName))];
+  [alert addButtonWithTitle:
+             l10n_util::GetNSString(
+                 IDS_SCREEN_RECORDING_PERMISSION_DIALOG_OPEN_BUTTON)];
+  [alert addButtonWithTitle:
+             l10n_util::GetNSString(
+                 IDS_ACCESSIBILITY_PERMISSION_DIALOG_NOT_NOW_BUTTON)];
+
+  // Increase the alert width so the title doesn't wrap and the body text is
+  // less scrunched.  Note that we only want to set a min-width, we don't
+  // want to shrink the dialog if it is already larger than our min value.
+  NSWindow* alert_window = [alert window];
+  NSRect frame = [alert_window frame];
+  if (frame.size.width < kMinDialogWidthPx)
+    frame.size.width = kMinDialogWidthPx;
+  [alert_window setFrame:frame display:YES];
+
+  [alert setAlertStyle:NSAlertStyleWarning];
+  [alert_window makeKeyWindow];
+  if ([alert runModal] == NSAlertFirstButtonReturn) {
+    // Launch the Security and Preferences pane with Accessibility selected.
+    [[NSWorkspace sharedWorkspace]
+        openURL:
+            [NSURL URLWithString:@"x-apple.systempreferences:com.apple."
+                                 @"preference.security?Privacy_ScreenCapture"]];
+  }
+}
+
 }  // namespace
 
 namespace remoting {
 namespace mac {
 
-void PromptUserToChangeTrustStateIfNeeded(
+bool CanRecordScreen() {
+  // Return true for now to avoid showing the dialog constantly.
+  // TODO(b/1012545) Perform real check for Screen Capture.
+  return true;
+}
+
+// MacOs 10.14+ requires an additional runtime permission for injecting input
+// using CGEventPost (we use this in our input injector for Mac).  This method
+// will request that the user enable this permission for us if they are on an
+// affected version and the permission has not already been approved.
+void PromptUserForAccessibilityPermissionIfNeeded(
     scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+  if (!base::mac::IsAtLeastOS10_14())
+    return;
+
   if (AXIsProcessTrusted())
     return;
 
   LOG(WARNING) << "AXIsProcessTrusted returned false, requesting "
                << "permission from user to allow input injection.";
 
-  task_runner->PostTask(FROM_HERE, base::BindOnce(&ShowPermissionDialog));
+  task_runner->PostTask(FROM_HERE,
+                        base::BindOnce(&ShowAccessibilityPermissionDialog));
+}
+
+// MacOs 10.15+ requires an additional runtime permission for capturing the
+// screen.  This method will request that the user enable this permission for
+// us if they are on an affected version and the permission has not already
+// been approved.
+void PromptUserForScreenRecordingPermissionIfNeeded(
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+  if (!base::mac::IsAtLeastOS10_15())
+    return;
+
+  if (CanRecordScreen())
+    return;
+
+  LOG(WARNING) << "CanRecordScreen returned false, requesting permission "
+               << "from user to allow screen recording.";
+
+  task_runner->PostTask(FROM_HERE,
+                        base::BindOnce(&ShowScreenRecordingPermissionDialog));
+}
+
+void PromptUserToChangeTrustStateIfNeeded(
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+  PromptUserForAccessibilityPermissionIfNeeded(task_runner);
+  PromptUserForScreenRecordingPermissionIfNeeded(task_runner);
 }
 
 }  // namespace mac
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index 9fbaaf8..d40aa6c 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -1556,13 +1556,7 @@
   // Ensure we are not running as root (i.e. at the login screen).
   DCHECK_NE(getuid(), 0U);
 
-  // MacOs 10.14+ requires an addition, runtime permission for injecting input
-  // using CGEventPost (we use this in our input injector for Mac).  This method
-  // will request that the user enable this permission for us if they are on an
-  // affected platform and the permission has not already been approved.
-  if (base::mac::IsAtLeastOS10_14()) {
-    mac::PromptUserToChangeTrustStateIfNeeded(context_->ui_task_runner());
-  }
+  mac::PromptUserToChangeTrustStateIfNeeded(context_->ui_task_runner());
 #endif
 
   host_->Start(host_owner_);
diff --git a/remoting/host/setup/daemon_controller_delegate_mac.mm b/remoting/host/setup/daemon_controller_delegate_mac.mm
index 29ada31a..5eae253 100644
--- a/remoting/host/setup/daemon_controller_delegate_mac.mm
+++ b/remoting/host/setup/daemon_controller_delegate_mac.mm
@@ -94,7 +94,7 @@
   FILE* pipe = nullptr;
   pid_t pid;
   OSStatus status = base::mac::ExecuteWithPrivilegesAndGetPID(
-      authorization.get(), remoting::kHostHelperScriptPath,
+      authorization.get(), remoting::kHostServiceBinaryPath,
       kAuthorizationFlagDefaults, arguments, &pipe, &pid);
   if (status != errAuthorizationSuccess) {
     LOG(ERROR) << "AuthorizationExecuteWithPrivileges: "
@@ -150,7 +150,7 @@
     return true;
   }
 
-  LOG(ERROR) << remoting::kHostHelperScriptPath << " failed with exit status "
+  LOG(ERROR) << remoting::kHostServiceBinaryPath << " failed with exit status "
              << exit_status;
   return false;
 }
diff --git a/remoting/resources/remoting_strings.grd b/remoting/resources/remoting_strings.grd
index 07283b1..58db62ef 100644
--- a/remoting/resources/remoting_strings.grd
+++ b/remoting/resources/remoting_strings.grd
@@ -1322,7 +1322,7 @@
           <ph name="PRODUCT_NAME">$1<ex>Chrome Remote Desktop</ex></ph> wants to make changes.
         </message>
         <message name="IDS_ACCESSIBILITY_PERMISSION_DIALOG_TITLE" desc="The title of the prompt that asks the user to grant 'Accessibility' permission to the Chrome Remote Desktop service. This permission is part of the 'Privacy and Security' preferences pane. Mac-only.">
-          Grant 'Accessibility' permission
+          Grant 'Accessibility' permission to <ph name="PRODUCT_NAME">$1<ex>Chrome Remote Desktop</ex></ph>
         </message>
         <message name="IDS_ACCESSIBILITY_PERMISSION_DIALOG_BODY_TEXT" desc="The body text of the prompt that asks the user to turn on the Chrome Remote Desktop service. This setting lives in the 'Accessibility' section of the 'Privacy and Security' preferences pane. Mac-only.">
 To use <ph name="PRODUCT_NAME">$1<ex>Chrome Remote Desktop</ex></ph>, you need to grant the 'Accessibility' permission so that input from the remote machine can be injected on this Mac.
@@ -1338,7 +1338,7 @@
           Not Now
         </message>
         <message name="IDS_SCREEN_RECORDING_PERMISSION_DIALOG_TITLE" desc="The title of the prompt that asks the user to grant 'Screen Recording' permission to the Chrome Remote Desktop service. This permission is part of the 'Privacy and Security' preferences pane. Mac-only.">
-          Grant 'Screen Recording' permission
+          Grant 'Screen Recording' permission to <ph name="PRODUCT_NAME">$1<ex>Chrome Remote Desktop</ex></ph>
         </message>
         <message name="IDS_SCREEN_RECORDING_PERMISSION_DIALOG_BODY_TEXT" desc="The body text that asks the user to grant the 'Screen Recording' permission to the Chrome Remote Desktop service. Mac-only, OS 10.15 and later.">
 To use <ph name="PRODUCT_NAME">$1<ex>Chrome Remote Desktop</ex></ph>, you need to grant the 'Screen Recording' permission so that the screen contents on this Mac can be sent to the remote machine.
diff --git a/remoting/resources/remoting_strings_am.xtb b/remoting/resources/remoting_strings_am.xtb
index 7d5f33f..5b494ca 100644
--- a/remoting/resources/remoting_strings_am.xtb
+++ b/remoting/resources/remoting_strings_am.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">የእርስዎ የ<ph name="APPLICATION_NAME" /> ክፍለ-ጊዜ ለተወሰነ ጊዜ ቦዝኗል፣ እና በቅርብ ይቋረጣል።</translation>
 <translation id="2317666076142640974">በአዲሱ <ph name="LINK_BEGIN" />የChrome የርቀት ዴስክቶፕ የድር መተግበሪያ<ph name="LINK_END" /> ላይ የጨረፍታ ዕይታን ያግኙ። የእርስዎን ግብረመልስ መስማት ደስ ይለናል።</translation>
 <translation id="2320166752086256636">የቁልፍ ሰሌዳን ደብቅ</translation>
-<translation id="2332192922827071008">ምርጫዎችን ክፈት</translation>
 <translation id="2353140552984634198">Chromotingን ተጠቅመው ይህንን ኮምፒውተር ደህንነቱ በተጠበቀ መልኩ ሊደርሱበት ይችላሉ።</translation>
 <translation id="2359808026110333948">ቀጥል</translation>
 <translation id="2366718077645204424">አስተናጋጁን መድረስ አልተቻለም። ይሄ በሚጠቀሙት አውታረ መረብ ላይ ባለ ውቅር ምክንያት ሳይሆን አይቀርም።</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">ከ<ph name="HOSTNAME" /> ጋር ተገናኝቷል</translation>
 <translation id="2512228156274966424">ማሳሰቢያ፦ ሁሉም የቁልፍ ሰሌዳ አቋራጮች የሚገኙ መሆናቸውን ለማረጋገጥ Chrome የርቀት ዴስክቶፕ ወደ «እንደ መስኮት ክፈት» ማዋቀር ይችላሉ።</translation>
 <translation id="2540992418118313681">ሌላ ተጠቃሚ ይህን ኮምፒውተር እንዲመለከት እና እንዲቆጣጠር ማጋራት ይፈልጋሉ?</translation>
-<translation id="254771646005658629">ይህንን Mac በርቀት ያሉ ተጠቃሚዎች እንዲቆጣጠሩ ፍቀድ</translation>
 <translation id="2579271889603567289">አስተናጋጅ ተበላሽቷል ወይም መጀመር አልቻለም።</translation>
 <translation id="2599300881200251572">ይህ አገልግሎት ከChrome የርቀት ዴስክቶፕ ደንበኞች ገቢ ግንኙነቶችን ያነቃል።</translation>
 <translation id="2647232381348739934">Chromoting አገልግሎት</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">መተግበሪያውን ዳግም ማስጀመር አልተቻለም። አሁንም የሳንካ ሪፖርት መላክ ይችላሉ።</translation>
 <translation id="5419418238395129586">መጨረሻ መስመር ላይ የነበረው በ፦ <ph name="DATE" /></translation>
 <translation id="544077782045763683">አስተናጋጅ ተዘግቷል።</translation>
-<translation id="5463789431147491241"><ph name="PRODUCT_NAME" /> ን በዚህ Mac ላይ ለመጠቀም፣ እነዚህን እርምጃዎች ይከተሉ፦
-
-ከዚህ በታች «<ph name="BUTTON_NAME" />» ን ይምረጡ። በእርስዎ የደኅንነት እና የግላዊነት ምርጫዎች ውስጥ፣ ከ«<ph name="SERVICE_SCRIPT_NAME" />» ቀጥሎ ያለውን ሣጥን ምልክት ያድርጉትበት።
-
-«<ph name="SERVICE_SCRIPT_NAME" />» ቀደም ብሎ ምልክት የተደረገበት ከሆነ፣ ምልክት እንዳይኖረው ያድርጉ ኣኣን በመቀጠል መልሰው እንደገና ምልክት ያድርጉበት።</translation>
 <translation id="5510035215749041527">አሁን አቋርጥ</translation>
 <translation id="5593560073513909978">አገልግሎቱ ለጊዜው አይገኝም። እባክዎ ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="5601503069213153581">ፒን</translation>
diff --git a/remoting/resources/remoting_strings_ar.xtb b/remoting/resources/remoting_strings_ar.xtb
index c80aaf87..3d0b68c 100644
--- a/remoting/resources/remoting_strings_ar.xtb
+++ b/remoting/resources/remoting_strings_ar.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">جلسة تطبيقك <ph name="APPLICATION_NAME" /> كانت غير نشطة لفترة من الوقت وسيتم إلغاء ربطها قريبًا.</translation>
 <translation id="2317666076142640974">‏اطلع على لمحة سريعة عن <ph name="LINK_BEGIN" />التطبيق الجديد لسطح المكتب البعيد من Chrome على الويب<ph name="LINK_END" />. نود معرفة تعليقاتك.</translation>
 <translation id="2320166752086256636">إخفاء لوحة المفاتيح</translation>
-<translation id="2332192922827071008">فتح الإعدادات المفضَّلة</translation>
 <translation id="2353140552984634198">‏يمكنك الدخول بأمان إلى هذا الكمبيوتر باستخدام تطبيق التوافق مع نظام التشغيل Chrome.</translation>
 <translation id="2359808026110333948">متابعة</translation>
 <translation id="2366718077645204424">يتعذر الوصول إلى المضيف. ربما يرجع ذلك إلى تهيئة الشبكة التي تستخدمها.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">متصل بـ <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">‏ملاحظة: للتأكد من توفر كل اختصارات لوحة المفاتيح، يمكنك تهيئة ميزة سطح المكتب البعيد من Chrome على "فتح كنافذة".</translation>
 <translation id="2540992418118313681">هل ترغب في مشاركة هذا الكمبيوتر مع مستخدم آخر للمشاهدة والتحكم؟</translation>
-<translation id="254771646005658629">‏السماح للمستخدمين بالتحكّم في نظام التشغيل Mac هذا عن بُعد</translation>
 <translation id="2579271889603567289">تعطّل المضيف أو تعذّر بدء تشغيله.</translation>
 <translation id="2599300881200251572">‏تمكن هذه الخدمة الاتصالات الواردة من عملاء سطح المكتب البعيد من Chrome.</translation>
 <translation id="2647232381348739934">‏خدمة التوافق مع نظام التشغيل Chrome</translation>
@@ -186,11 +184,6 @@
 <translation id="5419185025274123272">تعذر إعادة ضبط التطبيق. لا يزال بإمكانك إرسال تقرير للإبلاغ عن خلل.</translation>
 <translation id="5419418238395129586">آخر اتصال بالإنترنت: <ph name="DATE" /></translation>
 <translation id="544077782045763683">تم إيقاف تشغيل المضيف.</translation>
-<translation id="5463789431147491241">‏لاستخدام <ph name="PRODUCT_NAME" /> على نظام التشغيل Mac هذا، يُرجى اتّباع هذه الخطوات:
-
-اختَر '<ph name="BUTTON_NAME" />' أدناه. في إعدادات "الأمان والخصوصية" المفضَّلة، ضع علامة في المربع بجانب '<ph name="SERVICE_SCRIPT_NAME" />'.
-
-في حال سبق وتم وضع علامة في المربع بجانب '<ph name="SERVICE_SCRIPT_NAME" />' من قبل، عليك إزالة العلامة ثم وضعها مرة أخرى.</translation>
 <translation id="5510035215749041527">إلغاء الربط الآن</translation>
 <translation id="5593560073513909978">الخدمة غير متاحة مؤقتًا. يُرجى إعادة المحاولة لاحقًا.</translation>
 <translation id="5601503069213153581">رقم التعريف الشخصي</translation>
diff --git a/remoting/resources/remoting_strings_bg.xtb b/remoting/resources/remoting_strings_bg.xtb
index 7670124..c5474b6 100644
--- a/remoting/resources/remoting_strings_bg.xtb
+++ b/remoting/resources/remoting_strings_bg.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">От известно време сесията ви в/ъв <ph name="APPLICATION_NAME" /> е неактивна и скоро ще бъде прекратена.</translation>
 <translation id="2317666076142640974">Получете ранен достъп до новото <ph name="LINK_BEGIN" />уеб приложение Отдалечен работен плот на Chrome<ph name="LINK_END" />. Ще се радваме да ни изпратите отзивите си.</translation>
 <translation id="2320166752086256636">Скриване на клавиатурата</translation>
-<translation id="2332192922827071008">Отваряне на предпочитанията</translation>
 <translation id="2353140552984634198">Може да осъществите надеждно достъп до този компютър посредством Chromoting.</translation>
 <translation id="2359808026110333948">Напред</translation>
 <translation id="2366718077645204424">Не можем да се свържем с хоста. Това вероятно се дължи на конфигурацията на използваната от вас мрежа.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Установена е връзка с хоста „<ph name="HOSTNAME" />“</translation>
 <translation id="2512228156274966424">ЗАБЕЛЕЖКА: За да се гарантира, че всички клавишни комбинации са налице, можете да конфигурирате отдалечения работен плот на Chrome да се отваря като прозорец.</translation>
 <translation id="2540992418118313681">Искате ли да споделите компютъра с друг потребител, така че да вижда какво се случва и да управлява?</translation>
-<translation id="254771646005658629">Разрешаване на отдалечени потребители да контролират този Mac</translation>
 <translation id="2579271889603567289">Хостът претърпя срив или не се стартира успешно.</translation>
 <translation id="2599300881200251572">Тази услуга активира входящите връзки от клиентски програми за отдалечен работен плот на Chrome.</translation>
 <translation id="2647232381348739934">Услуга за Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Приложението не можа да се рестартира. Пак можете да изпратите сигнал за програмна грешка.</translation>
 <translation id="5419418238395129586">Последно онлайн: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Хостът се изключи.</translation>
-<translation id="5463789431147491241">За да използвате <ph name="PRODUCT_NAME" /> на този Mac, изпълнете следните стъпки:
-
-Изберете „<ph name="BUTTON_NAME" />“ по-долу. В настройките си за сигурност и поверителност поставете отметка в квадратчето до <ph name="SERVICE_SCRIPT_NAME" />.
-
-Ако до <ph name="SERVICE_SCRIPT_NAME" /> има отметка, премахнете я и я поставете отново.</translation>
 <translation id="5510035215749041527">Прекратяване на връзката сега</translation>
 <translation id="5593560073513909978">Временно няма достъп до услугата. Моля, опитайте отново по-късно.</translation>
 <translation id="5601503069213153581">ПИН код</translation>
diff --git a/remoting/resources/remoting_strings_bn.xtb b/remoting/resources/remoting_strings_bn.xtb
index 177cacc..a1f90df 100644
--- a/remoting/resources/remoting_strings_bn.xtb
+++ b/remoting/resources/remoting_strings_bn.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">আপনার <ph name="APPLICATION_NAME" />-এর সেশন কিছুক্ষণের জন্য নিষ্ক্রিয় করা হয়েছে এবং কিছুক্ষণের জন্য সংযোগ বিচ্ছিন্ন করা হবে।</translation>
 <translation id="2317666076142640974">বাকি সবার আগে <ph name="LINK_BEGIN" />Chrome রিমোট ডেস্কটপ ওয়েব অ্যাপ<ph name="LINK_END" /> ব্যবহার করে দেখুন। অ্যাপটির বিষয়ে আপনার মতামত পেলে আমরা বাধিত হব।</translation>
 <translation id="2320166752086256636">কীবোর্ড লুকান</translation>
-<translation id="2332192922827071008">অভিরুচি খুলুন</translation>
 <translation id="2353140552984634198">Chromoting ব্যবহার করে আপনি হয়ত নিরাপদভাবে এই কম্পিউটারটিকে অ্যাক্সেস করতে পারবেন৷</translation>
 <translation id="2359808026110333948">চালিয়ে যান</translation>
 <translation id="2366718077645204424">হোস্টে পৌঁছাতে পারেনি৷ আপনার ব্যবহার করা নেটওয়ার্কের কনফিগারেশনের কারণে সম্ভবত এটি হয়েছে৷</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> এ সংযুক্ত হয়েছে</translation>
 <translation id="2512228156274966424">দ্রষ্টব্য: সমস্ত কীবোর্ড শর্টকাট উপলভ্য থাকাকে নিশ্চিত করতে, আপনি Chrome রিমোট ডেস্কটপ ‘উইন্ডো হিসাবে খোলার জন্য’ কনফিগার করতে পারেন৷</translation>
 <translation id="2540992418118313681">আপনি কি অন্য ব্যবহারকারীকে দেখার এবং নিয়ন্ত্রণ করার জন্য এই কম্পিউটারটি শেয়ার করতে চান?</translation>
-<translation id="254771646005658629">রিমোট ব্যবহারকারীদের এই Mac সিস্টেম কন্ট্রোল করার অনুমতি দিন</translation>
 <translation id="2579271889603567289">হোস্ট ক্র্যাশ হয়েছে বা শুরু হতে পারেনি।</translation>
 <translation id="2599300881200251572">এই পরিষেবাটি Chrome রিমোট ডেস্কটপ থেকে আগত কানেকশন চালু করে৷</translation>
 <translation id="2647232381348739934">Chromoting পরিষেবা</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">অ্যাপ রিসেট করা গেল না। আপনি এখনও বাগ রিপোর্ট পাঠাতে পারবেন।</translation>
 <translation id="5419418238395129586">শেষ অনলাইনে ছিলেন: <ph name="DATE" /> তারিখে</translation>
 <translation id="544077782045763683">হোস্ট বন্ধ হয়ে গেছে৷</translation>
-<translation id="5463789431147491241"><ph name="PRODUCT_NAME" /> এই Mac-এ ব্যবহার করতে, নিচের ধাপগুলি অনুসরণ করুন:
-
-নিচে '<ph name="BUTTON_NAME" />' বিকল্পটি বেছে নিন। নিরাপত্তা ও গোপনীয়তা সংক্রান্ত অভিরুচির মেনু খুলুন ও '<ph name="SERVICE_SCRIPT_NAME" />'-এর পাশে টিক চিহ্ন দিন।
-
-'<ph name="SERVICE_SCRIPT_NAME" />'-এ আগে থেকেই টিক চিহ্ন দেওয়া থাকলে, আপনাকে সেটি সরিয়ে দিয়ে আবার দিতে হবে।</translation>
 <translation id="5510035215749041527">এখনই সংযোগ বিচ্ছিন্ন করুন</translation>
 <translation id="5593560073513909978">এই পরিষেবাটি অস্থায়ীভাবে অনুপলব্ধ আছে৷ দয়া করে পরে আবার চেষ্টা করুন৷</translation>
 <translation id="5601503069213153581">পিন</translation>
diff --git a/remoting/resources/remoting_strings_ca.xtb b/remoting/resources/remoting_strings_ca.xtb
index 7c5910e9..6a497fa7 100644
--- a/remoting/resources/remoting_strings_ca.xtb
+++ b/remoting/resources/remoting_strings_ca.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">La vostra sessió de <ph name="APPLICATION_NAME" /> ha estat inactiva durant una estona i es desconnectarà aviat.</translation>
 <translation id="2317666076142640974">Dona un cop d'ull a la nova <ph name="LINK_BEGIN" />aplicació web Escriptori remot de Chrome<ph name="LINK_END" />. Ens agradaria saber la teva opinió.</translation>
 <translation id="2320166752086256636">Amaga el teclat</translation>
-<translation id="2332192922827071008">Obre les preferències</translation>
 <translation id="2353140552984634198">Podeu accedir de manera segura a aquest ordinador mitjançant Chromoting.</translation>
 <translation id="2359808026110333948">Continua</translation>
 <translation id="2366718077645204424">No es pot connectar amb l'amfitrió. Probablement, això passa a causa de la configuració de la xarxa que esteu fent servir.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Connectat a <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NOTA: Per assegurar-vos que totes les tecles de drecera estiguin disponibles, podeu configurar l'escriptori remot de Chrome amb l'opció "Obre com a finestra".</translation>
 <translation id="2540992418118313681">Voleu compartir aquest ordinador perquè un altre usuari el pugui veure i controlar?</translation>
-<translation id="254771646005658629">Permet que els usuaris remots controlin aquest Mac</translation>
 <translation id="2579271889603567289">L'amfitrió s'ha bloquejat o no s'ha pogut iniciar.</translation>
 <translation id="2599300881200251572">Aquest servei permet les connexions entrants de clients de l'escriptori remot de Chrome.</translation>
 <translation id="2647232381348739934">Servei de Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">No es pot restablir l'aplicació. Podeu enviar un informe d'errors.</translation>
 <translation id="5419418238395129586">Última connexió: <ph name="DATE" /></translation>
 <translation id="544077782045763683">L'amfitrió s'ha tancat.</translation>
-<translation id="5463789431147491241">Per fer servir <ph name="PRODUCT_NAME" /> en aquest Mac, segueix aquests passos:
-
-Selecciona <ph name="BUTTON_NAME" /> més avall. A les preferències de Seguretat i privadesa, marca la casella corresponent a <ph name="SERVICE_SCRIPT_NAME" />.
-
-Si l'opció <ph name="SERVICE_SCRIPT_NAME" /> ja està marcada, desmarca-la i torna-la a marcar.</translation>
 <translation id="5510035215749041527">Desconnecta ara</translation>
 <translation id="5593560073513909978">El servei està temporalment no disponible. Torneu-ho a provar més tard.</translation>
 <translation id="5601503069213153581">PIN</translation>
@@ -295,7 +288,7 @@
 <translation id="80739703311984697">L'amfitrió remot necessita que us autentiqueu en un lloc web de tercers. Per continuar, cal que concediu permisos addicionals a Chromoting per accedir a aquesta adreça:</translation>
 <translation id="809687642899217504">Els meus ordinadors</translation>
 <translation id="811307782653349804">Accediu al vostre ordinador des de qualsevol lloc.</translation>
-<translation id="8116630183974937060">S'ha produït un error de xarxa. Comproveu que el dispositiu estigui en línia i torneu-ho a provar.</translation>
+<translation id="8116630183974937060">S'ha produït un error de la xarxa. Comproveu que el dispositiu estigui en línia i torneu-ho a provar.</translation>
 <translation id="8178433417677596899">Compartició de pantalla entre usuaris, una opció perfecta per a l'assistència tècnica remota.</translation>
 <translation id="8187079423890319756">Copyright 2013 Els autors de Chromium. Tots els drets reservats.</translation>
 <translation id="8196755618196986400">La vostra adreça electrònica s'inclourà en tots els suggeriments que envieu perquè us puguem escriure i proporcionar-vos més informació.</translation>
diff --git a/remoting/resources/remoting_strings_cs.xtb b/remoting/resources/remoting_strings_cs.xtb
index 66f4259..6337ac5 100644
--- a/remoting/resources/remoting_strings_cs.xtb
+++ b/remoting/resources/remoting_strings_cs.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Relace aplikace <ph name="APPLICATION_NAME" /> je již nějakou dobu neaktivní a brzy bude odpojena.</translation>
 <translation id="2317666076142640974">Vyzkoušejte novou <ph name="LINK_BEGIN" />webovou aplikaci Vzdálená plocha Chrome<ph name="LINK_END" /> a dejte nám vědět, jak se vám líbí.</translation>
 <translation id="2320166752086256636">Skrýt klávesnici</translation>
-<translation id="2332192922827071008">Otevřít nastavení</translation>
 <translation id="2353140552984634198">K tomuto počítači se můžete bezpečně připojit pomocí funkce Chromoting.</translation>
 <translation id="2359808026110333948">Pokračovat</translation>
 <translation id="2366718077645204424">Hostitele nelze nalézt. Pravděpodobnou příčinou je aktuální konfigurace sítě.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Připojeno k zařízení <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">POZNÁMKA: Pokud chcete mít k dispozici všechny klávesové zkratky, povolte v konfiguraci Vzdálené plochy Google možnost Otevřít jako okno.</translation>
 <translation id="2540992418118313681">Chcete tento počítač sdílet s dalším uživatelem, aby jej mohl zobrazit a ovládat?</translation>
-<translation id="254771646005658629">Povolit vzdáleným uživatelům ovládat tento počítač Mac</translation>
 <translation id="2579271889603567289">Hostitelský server selhal, nebo se jej nepodařilo spustit.</translation>
 <translation id="2599300881200251572">Tato služba umožňuje příchozí připojení od klientů Vzdálené plochy Chrome.</translation>
 <translation id="2647232381348739934">Služba funkce Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Resetování aplikace se nezdařilo. Stále můžete odeslat zprávu o chybě.</translation>
 <translation id="5419418238395129586">Naposledy online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Hostitel byl vypnut.</translation>
-<translation id="5463789431147491241">Chcete-li na tomto Macu používat aplikaci <ph name="PRODUCT_NAME" />, postupujte takto:
-
-Níže vyberte tlačítko <ph name="BUTTON_NAME" />. V předvolbách Zabezpečení a soukromí zaškrtněte políčko vedle možnosti <ph name="SERVICE_SCRIPT_NAME" />.
-
-Je-li již políčko <ph name="SERVICE_SCRIPT_NAME" /> zaškrtnuté, zrušte jeho zaškrtnutí a poté ho zaškrtněte znovu.</translation>
 <translation id="5510035215749041527">Odpojit</translation>
 <translation id="5593560073513909978">Služba je dočasně nedostupná. Zkuste to prosím znovu později.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_da.xtb b/remoting/resources/remoting_strings_da.xtb
index 6dbafa1..1ff211c 100644
--- a/remoting/resources/remoting_strings_da.xtb
+++ b/remoting/resources/remoting_strings_da.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Din <ph name="APPLICATION_NAME" />-session har været inaktiv i et stykke tid og vil snart blive afbrudt.</translation>
 <translation id="2317666076142640974">Få et smugkig på den nye <ph name="LINK_BEGIN" />webapp Chrome Fjernskrivebord<ph name="LINK_END" />. Vi vil meget gerne have feedback fra dig.</translation>
 <translation id="2320166752086256636">Skjul tastaturet</translation>
-<translation id="2332192922827071008">Åbn præferencer</translation>
 <translation id="2353140552984634198">Du kan få sikker adgang til denne computer via Chromoting.</translation>
 <translation id="2359808026110333948">Fortsæt</translation>
 <translation id="2366718077645204424">Værten kunne ikke nås. Dette skyldes sandsynligvis konfigurationen af det netværk, du bruger.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Der er oprettet forbindelse til <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">BEMÆRK! Du kan sikre, at alle tastaturgenveje er tilgængelige ved at konfigurere Chrome Fjernskrivebord til "Åbn som vindue".</translation>
 <translation id="2540992418118313681">Vil du dele denne computer, så en anden bruger kan se og styre den?</translation>
-<translation id="254771646005658629">Giv eksterne brugere tilladelse til at styre denne Mac</translation>
 <translation id="2579271889603567289">Hosten gik ned eller kunne ikke starte.</translation>
 <translation id="2599300881200251572">Denne tjeneste muliggør indgående forbindelse fra klienter i Chrome Fjernskrivebord.</translation>
 <translation id="2647232381348739934">Tjenesten Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Applikationen kunne ikke nulstilles. Du kan stadig sende en fejlrapport.</translation>
 <translation id="5419418238395129586">Sidst online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Hosten har lukket ned.</translation>
-<translation id="5463789431147491241">Hvis du vil bruge <ph name="PRODUCT_NAME" /> på denne Mac, skal du gennemføre disse trin:
-
-Vælg "<ph name="BUTTON_NAME" />" nedenfor. I præferencerne for Sikkerhed &amp; anonymitet skal du markere feltet ud for "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Hvis "<ph name="SERVICE_SCRIPT_NAME" />" allerede er markeret, skal du fjerne markeringen og markere det igen.</translation>
 <translation id="5510035215749041527">Afbryd nu</translation>
 <translation id="5593560073513909978">Tjenesten er midlertidigt utilgængelig. Prøv igen senere.</translation>
 <translation id="5601503069213153581">Pinkode</translation>
diff --git a/remoting/resources/remoting_strings_de.xtb b/remoting/resources/remoting_strings_de.xtb
index 3f6c601..6325260 100644
--- a/remoting/resources/remoting_strings_de.xtb
+++ b/remoting/resources/remoting_strings_de.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Ihre Sitzung bei <ph name="APPLICATION_NAME" /> war längere Zeit inaktiv und wird in Kürze beendet.</translation>
 <translation id="2317666076142640974">Werfen Sie vorab einen Blick auf die Web-App <ph name="LINK_BEGIN" />Chrome Remote Desktop<ph name="LINK_END" />. Wir freuen uns über Feedback.</translation>
 <translation id="2320166752086256636">Tastatur ausblenden</translation>
-<translation id="2332192922827071008">Einstellungen öffnen</translation>
 <translation id="2353140552984634198">Mit Chromoting erhalten Sie sicheren Zugriff auf diesen Computer.</translation>
 <translation id="2359808026110333948">Weiter</translation>
 <translation id="2366718077645204424">Die Verbindung zum Host kann nicht hergestellt werden. Das von Ihnen verwendete Netzwerk ist möglicherweise nicht korrekt konfiguriert.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Verbunden mit <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">HINWEIS: Sie können in Chrome Remote Desktop die Option zum Öffnen als Fenster einstellen, damit alle Tastenkombinationen verfügbar sind.</translation>
 <translation id="2540992418118313681">Möchten Sie diesen Computer für einen anderen Nutzer zur Ansicht und Steuerung freigeben?</translation>
-<translation id="254771646005658629">Zulassen, dass Remote-Nutzer auf diesen Mac zugreifen</translation>
 <translation id="2579271889603567289">Der Host ist abgestürzt oder konnte nicht gestartet werden.</translation>
 <translation id="2599300881200251572">Dieser Dienst ermöglicht eingehende Verbindungen von Chrome Remote Desktop-Clients.</translation>
 <translation id="2647232381348739934">Chromoting Service</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Die App konnte nicht zurückgesetzt werden. Sie können einen Fehlerbericht senden.</translation>
 <translation id="5419418238395129586">Zuletzt online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Der Host wurde heruntergefahren.</translation>
-<translation id="5463789431147491241">Wenn Sie <ph name="PRODUCT_NAME" /> auf diesem Mac verwenden möchten, gehen Sie so vor:
-
-Wählen Sie unten "<ph name="BUTTON_NAME" />" aus. Wählen Sie im Sicherheits- und Datenschutzfenster das Kästchen neben "<ph name="SERVICE_SCRIPT_NAME" />" aus.
-
-Wenn "<ph name="SERVICE_SCRIPT_NAME" />" bereits ausgewählt ist, entfernen Sie das Häkchen und wählen Sie das Kästchen noch einmal aus.</translation>
 <translation id="5510035215749041527">Verbindung jetzt aufheben</translation>
 <translation id="5593560073513909978">Der Dienst ist vorübergehend nicht verfügbar. Bitte versuchen Sie es später erneut.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_el.xtb b/remoting/resources/remoting_strings_el.xtb
index 0a8f702a..999cfa6 100644
--- a/remoting/resources/remoting_strings_el.xtb
+++ b/remoting/resources/remoting_strings_el.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Η περίοδος σύνδεσής σας στο <ph name="APPLICATION_NAME" /> ήταν ανενεργή για αρκετό καιρό και θα τερματιστεί σύντομα.</translation>
 <translation id="2317666076142640974">Ρίξτε μια ματιά στη νέα <ph name="LINK_BEGIN" />εφαρμογή ιστού "Απομακρυσμένη επιφάνεια εργασίας Chrome"<ph name="LINK_END" />. Θέλουμε πολύ να διαβάσουμε τα σχόλιά σας.</translation>
 <translation id="2320166752086256636">Απόκρυψη πληκτρολογίου</translation>
-<translation id="2332192922827071008">Άνοιγμα προτιμήσεων</translation>
 <translation id="2353140552984634198">Μπορείτε να αποκτήσετε ασφαλή πρόσβαση σε αυτόν τον υπολογιστή χρησιμοποιώντας το Chromoting.</translation>
 <translation id="2359808026110333948">Συνέχεια</translation>
 <translation id="2366718077645204424">Δεν ήταν δυνατή η επικοινωνία με τον κεντρικό υπολογιστή. Αυτό ενδέχεται να οφείλεται στη διαμόρφωση του δικτύου που χρησιμοποιείτε.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Σε σύνδεση με: <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">ΣΗΜΕΙΩΣΗ: για να διασφαλίσετε ότι όλες οι συντομεύσεις πληκτρολογίου είναι διαθέσιμες, μπορείτε να διαμορφώσετε την Απομακρυσμένη επιφάνεια εργασίας Chrome στη ρύθμιση "Άνοιγμα ως παράθυρο".</translation>
 <translation id="2540992418118313681">Θέλετε να μοιραστείτε αυτόν τον υπολογιστή με έναν άλλο χρήστη, ο οποίος θα μπορεί να τον βλέπει και να τον ελέγχει;</translation>
-<translation id="254771646005658629">Να επιτρέπεται στους απομακρυσμένους χρήστες να ελέγχουν αυτόν τον Mac</translation>
 <translation id="2579271889603567289">Σφάλμα ή αποτυχία εκκίνησης κεντρικού υπολογιστή.</translation>
 <translation id="2599300881200251572">Αυτή η υπηρεσία ενεργοποιεί τις εισερχόμενες συνδέσεις από υπολογιστές-πελάτες Απομακρυσμένης επιφάνειας εργασίας Chrome.</translation>
 <translation id="2647232381348739934">Υπηρεσία Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Δεν ήταν δυνατή η επαναφορά της εφαρμογής. Εξακολουθείτε να μπορείτε να στείλετε μια αναφορά σφάλματος.</translation>
 <translation id="5419418238395129586">Τελευταία σύνδεση στο διαδίκτυο: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Ο κεντρικός υπολογιστής τερματίστηκε.</translation>
-<translation id="5463789431147491241">Για να χρησιμοποιήσετε το <ph name="PRODUCT_NAME" /> σε αυτόν τον Mac, ακολουθήστε αυτά τα βήματα:
-
-Επιλέξτε "<ph name="BUTTON_NAME" />" παρακάτω. Στις προτιμήσεις Ασφάλειας και Απορρήτου, επιλέξτε το πλαίσιο δίπλα στο στοιχείο "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Εάν το "<ph name="SERVICE_SCRIPT_NAME" />" είναι ήδη επιλεγμένο, καταργήστε την επιλογή του και έπειτα επιλέξτε το ξανά.</translation>
 <translation id="5510035215749041527">Αποσύνδεση τώρα</translation>
 <translation id="5593560073513909978">Η υπηρεσία μας δεν είναι διαθέσιμη προσωρινά. Δοκιμάστε ξανά αργότερα.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_en-GB.xtb b/remoting/resources/remoting_strings_en-GB.xtb
index 0a5216e..0fc034b 100644
--- a/remoting/resources/remoting_strings_en-GB.xtb
+++ b/remoting/resources/remoting_strings_en-GB.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Your <ph name="APPLICATION_NAME" /> session has been inactive for a while and will be disconnected shortly.</translation>
 <translation id="2317666076142640974">Get a sneak peek at the new <ph name="LINK_BEGIN" />Chrome Remote Desktop web app<ph name="LINK_END" />. We'd love to hear your feedback.</translation>
 <translation id="2320166752086256636">Hide keyboard</translation>
-<translation id="2332192922827071008">Open preferences</translation>
 <translation id="2353140552984634198">You may securely access this computer using Chromoting.</translation>
 <translation id="2359808026110333948">Continue</translation>
 <translation id="2366718077645204424">Unable to reach the host. This is probably due to the configuration of the network you are using.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Connected to <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NOTE: To ensure that all keyboard shortcuts are available, you can configure Chrome Remote Desktop to ‘Open as window’.</translation>
 <translation id="2540992418118313681">Would you like to share this computer for another user to see and control?</translation>
-<translation id="254771646005658629">Allow remote users to control this Mac</translation>
 <translation id="2579271889603567289">Host crashed or failed to start.</translation>
 <translation id="2599300881200251572">This service enables incoming connections from Chrome Remote Desktop clients.</translation>
 <translation id="2647232381348739934">Chromoting Service</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Could not reset the application. You can still send a bug report.</translation>
 <translation id="5419418238395129586">Last online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Host has shut down.</translation>
-<translation id="5463789431147491241">To use <ph name="PRODUCT_NAME" /> on this Mac, follow these steps:
-
-Select '<ph name="BUTTON_NAME" />' below. In your Security and Privacy preferences, tick the box next to '<ph name="SERVICE_SCRIPT_NAME" />'.
-
-If '<ph name="SERVICE_SCRIPT_NAME" />' is already ticked, untick it and then tick it again.</translation>
 <translation id="5510035215749041527">Disconnect now</translation>
 <translation id="5593560073513909978">The service is temporarily unavailable. Please try again later.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_es-419.xtb b/remoting/resources/remoting_strings_es-419.xtb
index 5d11f4e7..0221ae3b 100644
--- a/remoting/resources/remoting_strings_es-419.xtb
+++ b/remoting/resources/remoting_strings_es-419.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">La sesión de <ph name="APPLICATION_NAME" /> estuvo inactiva por un tiempo y se desconectará en breve.</translation>
 <translation id="2317666076142640974">Obtén un adelanto de la nueva <ph name="LINK_BEGIN" />app web de Escritorio remoto de Chrome<ph name="LINK_END" />. Nos encantaría conocer tus comentarios.</translation>
 <translation id="2320166752086256636">Ocultar el teclado</translation>
-<translation id="2332192922827071008">Abrir preferencias</translation>
 <translation id="2353140552984634198">Puedes acceder a esta computadora sin correr ningún riesgo a través de Chromoting.</translation>
 <translation id="2359808026110333948">Continuar</translation>
 <translation id="2366718077645204424">No se puede establecer la conexión con el host. Probablemente esto se deba a la configuración de la red que usas.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Conectado a <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NOTA: Para asegurarte de que todas las combinaciones de teclas para acceso directo estén disponibles, puedes configurar Escritorio remoto de Chrome en "Abrir como ventana".</translation>
 <translation id="2540992418118313681">¿Quieres compartir esta computadora con otro usuario para que la vea y la controle?</translation>
-<translation id="254771646005658629">Permite que los usuarios remotos controlen esta Mac</translation>
 <translation id="2579271889603567289">El host se bloqueó o no pudo iniciarse.</translation>
 <translation id="2599300881200251572">Este servicio permite conexiones entrantes de los clientes del Escritorio remoto de Chrome.</translation>
 <translation id="2647232381348739934">Servicio de Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">No se pudo restablecer la aplicación. Puedes enviar un informe de errores.</translation>
 <translation id="5419418238395129586">Última conexión: <ph name="DATE" /></translation>
 <translation id="544077782045763683">El host se cerró.</translation>
-<translation id="5463789431147491241">Para usar <ph name="PRODUCT_NAME" /> en esta Mac, sigue estos pasos:
-
-Selecciona el botón "<ph name="BUTTON_NAME" />" que se encuentra a continuación. En las preferencias de Seguridad y privacidad, marca la casilla que aparece junto a "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Si ya está seleccionada la opción "<ph name="SERVICE_SCRIPT_NAME" />", desmárcala y vuelve a marcarla.</translation>
 <translation id="5510035215749041527">Desconectar ahora</translation>
 <translation id="5593560073513909978">El servicio no está disponible temporalmente. Vuelve a intentarlo más tarde.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_es.xtb b/remoting/resources/remoting_strings_es.xtb
index 3b4c870..f687628 100644
--- a/remoting/resources/remoting_strings_es.xtb
+++ b/remoting/resources/remoting_strings_es.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">La sesión de <ph name="APPLICATION_NAME" /> lleva un tiempo inactiva y se desconectará en breve.</translation>
 <translation id="2317666076142640974">Consigue un avance exclusivo de la nueva <ph name="LINK_BEGIN" />aplicación web Escritorio Remoto de Chrome<ph name="LINK_END" />. Nos gustaría conocer tu opinión.</translation>
 <translation id="2320166752086256636">Ocultar teclado</translation>
-<translation id="2332192922827071008">Abrir las preferencias</translation>
 <translation id="2353140552984634198">Puedes acceder de forma segura a este ordenador con Chromoting.</translation>
 <translation id="2359808026110333948">Continuar</translation>
 <translation id="2366718077645204424">No se puede establecer conexión con el host. Es probable que el error se deba a la configuración de la red que se está utilizando.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Conectado a <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NOTA: Para asegurarte de que estén disponibles todas las combinaciones de teclas, puedes configurar la aplicación Escritorio Remoto de Chrome para que se abra como una ventana.</translation>
 <translation id="2540992418118313681">¿Quieres compartir este ordenador para que otro usuario pueda acceder a él y controlarlo?</translation>
-<translation id="254771646005658629">Permitir a usuarios remotos controlar este Mac</translation>
 <translation id="2579271889603567289">El host ha fallado o no se ha podido iniciar.</translation>
 <translation id="2599300881200251572">Este servicio permite las conexiones entrantes de los clientes de Escritorio Remoto de Chrome.</translation>
 <translation id="2647232381348739934">Servicio de Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">No se ha podido restablecer la aplicación. Puedes seguir enviando un informe de errores.</translation>
 <translation id="5419418238395129586">Última conexión: <ph name="DATE" /></translation>
 <translation id="544077782045763683">El host se ha desconectado.</translation>
-<translation id="5463789431147491241">Si quieres usar <ph name="PRODUCT_NAME" /> en este Mac, sigue estos pasos:
-
-Selecciona <ph name="BUTTON_NAME" /> abajo. En el panel de preferencias Privacidad y seguridad, marca la casilla situada junto a <ph name="SERVICE_SCRIPT_NAME" />.
-
-Si la casilla de <ph name="SERVICE_SCRIPT_NAME" /> ya está marcada, desmárcala y márcala de nuevo.</translation>
 <translation id="5510035215749041527">Desconectar ahora</translation>
 <translation id="5593560073513909978">El servicio no está disponible temporalmente. Vuelve a intentarlo más tarde.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_et.xtb b/remoting/resources/remoting_strings_et.xtb
index 5cf4527..8400f82 100644
--- a/remoting/resources/remoting_strings_et.xtb
+++ b/remoting/resources/remoting_strings_et.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Teie rakenduse <ph name="APPLICATION_NAME" /> seanss on olnud mõnda aega passiivne ja ühendus katkestatakse peagi.</translation>
 <translation id="2317666076142640974">Vaadake uue <ph name="LINK_BEGIN" />veebirakenduse Chrome Remote Desktop<ph name="LINK_END" /> eelvaadet. Soovime kuulda teie tagasisidet.</translation>
 <translation id="2320166752086256636">Peida klaviatuur</translation>
-<translation id="2332192922827071008">Ava eelistused</translation>
 <translation id="2353140552984634198">Rakendus Chromoting võimaldab teil turvaliselt arvuti juurde pääseda.</translation>
 <translation id="2359808026110333948">Jätka</translation>
 <translation id="2366718077645204424">Hostiga ei saa ühendust. Seda põhjustab ilmselt kasutatava võrgu konfiguratsioon.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Ühendatud hostiga <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">MÄRKUS: kõigi klaviatuuri otseteede saadavuse tagamiseks saate rakenduse Chrome Remote Desktop seadistada valikule „Ava aknana”.</translation>
 <translation id="2540992418118313681">Kas soovite jagada seda arvutit teise kasutajaga, nii et ta saab seda kasutada ja juhtida?</translation>
-<translation id="254771646005658629">Kaugkasutajatel selle Maci haldamise lubamine</translation>
 <translation id="2579271889603567289">Host jooksis kokku või selle käivitamine ebaõnnestus.</translation>
 <translation id="2599300881200251572">See teenus lubab sissetulevad ühendused Chrome Remote Desktopi klientidelt.</translation>
 <translation id="2647232381348739934">Chromootimise teenus</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Rakendust ei saanud lähtestada. Saate siiski saata veaaruande.</translation>
 <translation id="5419418238395129586">Viimati veebis: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Host on välja lülitatud.</translation>
-<translation id="5463789431147491241">Teenuse <ph name="PRODUCT_NAME" /> kasutamiseks selles Macis toimige järgmiselt.
-
-Valige allpool nupp „<ph name="BUTTON_NAME" />”. Märkige turva- ja privaatsuseelistustes ruut „<ph name="SERVICE_SCRIPT_NAME" />”.
-
-Kui ruut „<ph name="SERVICE_SCRIPT_NAME" />” on juba märgitud, eemaldage märge ja märkige siis ruut uuesti.</translation>
 <translation id="5510035215749041527">Katkesta kohe ühendus</translation>
 <translation id="5593560073513909978">Teenus on ajutiselt kättesaamatu. Proovige hiljem uuesti.</translation>
 <translation id="5601503069213153581">PIN-kood</translation>
diff --git a/remoting/resources/remoting_strings_fa.xtb b/remoting/resources/remoting_strings_fa.xtb
index b4a6af7..6fa1fde 100644
--- a/remoting/resources/remoting_strings_fa.xtb
+++ b/remoting/resources/remoting_strings_fa.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">جلسه <ph name="APPLICATION_NAME" /> شما برای مدتی بیکار بوده است و به زودی قطع می‌شود.</translation>
 <translation id="2317666076142640974">‏پیش‌نمایشی از <ph name="LINK_BEGIN" />برنامه وب کنترل رایانه ازراه‌دور Chrome‬<ph name="LINK_END" /> جدید دریافت کنید. دوست داریم بازخوردتان را بشنویم.</translation>
 <translation id="2320166752086256636">پنهان کردن صفحه‌کلید</translation>
-<translation id="2332192922827071008">باز کردن اولویت‌ها</translation>
 <translation id="2353140552984634198">‏شما می‌توانید با استفاده از کار با Chrome، در حالت ایمن به رایانه دسترسی داشته باشید.</translation>
 <translation id="2359808026110333948">ادامه</translation>
 <translation id="2366718077645204424">دسترسی به میزبان امکان‌پذیر نیست. این احتمالاً به دلیل پیکربندی شبکه‌ای است که استفاده می‌کنید.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">متصل به <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">‏توجه: برای اطمینان از اینکه همه میان‌برهای صفحه‌کلید در دسترس است، می‌توانید کنترل رایانه ازراه‌دور Chrome را روی «بازکردن به‌عنوان پنجره» پیکربندی کنید.</translation>
 <translation id="2540992418118313681">می‌خواهید این رایانه را برای کاربر دیگر جهت مشاهده و کنترل به اشتراک بگذارید؟</translation>
-<translation id="254771646005658629">‏به کاربران راه دور اجازه دهید این Mac را کنترل کنند</translation>
 <translation id="2579271889603567289">میزبان خراب شد یا راه‌اندازی نشد.</translation>
 <translation id="2599300881200251572">‏این سرویس اتصال ورودی از کلاینت‌های کنترل رایانه ازراه‌دور Chrome را فعال می‌کند.</translation>
 <translation id="2647232381348739934">‏سرویس کار با Chrome</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">برنامه بازنشانی نمی‌شود. همچنان می‌توانید یک گزارش اشکال ارسال کنید.</translation>
 <translation id="5419418238395129586">آخرین حضور آنلاین: <ph name="DATE" /></translation>
 <translation id="544077782045763683">میزبان خاموش شد.</translation>
-<translation id="5463789431147491241">‏برای استفاده از <ph name="PRODUCT_NAME" /> در این Mac، این مراحل را دنبال کنید:
-
-«<ph name="BUTTON_NAME" />» را در زیر انتخاب کنید. در اولویت‌های «امنیت و حریم‌خصوصی»، کادر کنار «<ph name="SERVICE_SCRIPT_NAME" />» را علامت بزنید.
-
-اگر «<ph name="SERVICE_SCRIPT_NAME" />» ازقبل علامت زده شده است، علامت آن را بردارید و دوباره علامت بزنید.</translation>
 <translation id="5510035215749041527">قطع ارتباط</translation>
 <translation id="5593560073513909978">سرویس موقتاً در دسترس نیست. لطفاً بعداً دوباره امتحان کنید.</translation>
 <translation id="5601503069213153581">پین</translation>
diff --git a/remoting/resources/remoting_strings_fi.xtb b/remoting/resources/remoting_strings_fi.xtb
index aeb72a3..f790033a 100644
--- a/remoting/resources/remoting_strings_fi.xtb
+++ b/remoting/resources/remoting_strings_fi.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792"><ph name="APPLICATION_NAME" /> -istuntosi on ollut epäaktiivinen jonkin aikaa, ja se katkaistaan pian.</translation>
 <translation id="2317666076142640974">Tutustu uuteen <ph name="LINK_BEGIN" />Chrome-etäkäyttö-verkkosovellukseen<ph name="LINK_END" />. Kuulisimme mielellämme palautetta.</translation>
 <translation id="2320166752086256636">Piilota näppäimistö</translation>
-<translation id="2332192922827071008">Siirry valintoihin</translation>
 <translation id="2353140552984634198">Tähän tietokoneeseen voi muodostaa suojatun yhteyden Chromotingin avulla.</translation>
 <translation id="2359808026110333948">Jatka</translation>
 <translation id="2366718077645204424">Isäntään ei saatu yhteyttä. Tämä johtuu luultavasti käyttämäsi verkon määrityksistä.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Yhdistetty isäntään <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">Huomaa: voit varmistaa kaikkien pikanäppäinten käytettävyyden, kun määrität Chrome-etäkäytön avautumaan ikkunassa.</translation>
 <translation id="2540992418118313681">Haluatko jakaa tämän tietokoneen niin, että toinen käyttäjä voi käyttää ja valvoa sitä?</translation>
-<translation id="254771646005658629">Anna etäkäyttäjien hallita tätä Macia</translation>
 <translation id="2579271889603567289">Isäntä kaatui tai sen käynnistäminen epäonnistui.</translation>
 <translation id="2599300881200251572">Tämä palvelu mahdollistaa Chrome-etäkäytön asiakkaiden muodostamat yhteydet.</translation>
 <translation id="2647232381348739934">Chromoting-palvelu</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Sovelluksen nollaus epäonnistui. Voit silti lähettää vikailmoituksen.</translation>
 <translation id="5419418238395129586">Yhdistetty verkkoon viimeksi: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Isäntä on offline-tilassa.</translation>
-<translation id="5463789431147491241">Jotta <ph name="PRODUCT_NAME" /> olisi käytettävissä tällä Macilla, tee nämä vaiheet:
-
-Valitse alta <ph name="BUTTON_NAME" />. Valitse tietosuoja- ja yksityisyysvalinnoista ruutu <ph name="SERVICE_SCRIPT_NAME" />.
-
-Jos <ph name="SERVICE_SCRIPT_NAME" /> on jo valittu, poista valinta ja valitse se uudelleen.</translation>
 <translation id="5510035215749041527">Katkaise yhteys nyt</translation>
 <translation id="5593560073513909978">Palvelu ei ole tällä hetkellä käytettävissä. Yritä myöhemmin uudelleen.</translation>
 <translation id="5601503069213153581">PIN-koodi</translation>
diff --git a/remoting/resources/remoting_strings_fil.xtb b/remoting/resources/remoting_strings_fil.xtb
index dec1203f..69732442 100644
--- a/remoting/resources/remoting_strings_fil.xtb
+++ b/remoting/resources/remoting_strings_fil.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Ilang sandali nang hindi aktibo ang iyong session ng <ph name="APPLICATION_NAME" /> at aalisin na ito sa pagkakakonekta maya-maya.</translation>
 <translation id="2317666076142640974">Maunang makita ang bagong <ph name="LINK_BEGIN" />web app na Remote na Desktop ng Chrome<ph name="LINK_END" />. Gusto naming marinig ang iyong feedback.</translation>
 <translation id="2320166752086256636">Itago ang keyboard</translation>
-<translation id="2332192922827071008">Buksan ang Mga Kagustuhan</translation>
 <translation id="2353140552984634198">Maaari mong ligtas na i-access ang computer na ito gamit ang Chromoting.</translation>
 <translation id="2359808026110333948">Magpatuloy</translation>
 <translation id="2366718077645204424">Hindi maabot ang host. Malamang na dahil ito sa configuration ng network na iyong ginagamit.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Nakakonekta sa <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">TANDAAN: Upang matiyak na available ang lahat ng keyboard shortcut, maaari mong i-configure ang Remote na Desktop ng Chrome sa ‘Buksan bilang window’.</translation>
 <translation id="2540992418118313681">Gusto mo bang ibahagi ang computer na ito upang makita at makontrol ng ibang user?</translation>
-<translation id="254771646005658629">Payagan ang malalayong user na kontrolin ang Mac na ito</translation>
 <translation id="2579271889603567289">Nag-crash o hindi nagsimula ang host.</translation>
 <translation id="2599300881200251572">Ini-enable ng serbisyong ito ang mga papasok na koneksyon mula sa mga client ng Remote na Desktop ng Chrome.</translation>
 <translation id="2647232381348739934">Serbisyo ng Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Hindi ma-reset ang application. Maaari ka pa ring magpadala ng ulat sa bug.</translation>
 <translation id="5419418238395129586">Huling nag-online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Nag-shut down ang host.</translation>
-<translation id="5463789431147491241">Para gamitin ang <ph name="PRODUCT_NAME" /> sa Mac na ito, sundin ang mga hakbang na ito:
-
-Piliin ang '<ph name="BUTTON_NAME" />' sa ibaba. Sa iyong mga kagustuhan sa Seguridad at Privacy, lagyan ng check ang kahon sa tabi ng '<ph name="SERVICE_SCRIPT_NAME" />.'
-
-Kung may check na ang '<ph name="SERVICE_SCRIPT_NAME" />,' i-uncheck ito at lagyan ito ulit ng check.</translation>
 <translation id="5510035215749041527">Alisin na sa pagkakakonekta</translation>
 <translation id="5593560073513909978">Pansamantalang hindi available ang serbisyo. Pakisubukang muli sa ibang pagkakataon.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_fr.xtb b/remoting/resources/remoting_strings_fr.xtb
index 7cb2bfe5..d05d2d55 100644
--- a/remoting/resources/remoting_strings_fr.xtb
+++ b/remoting/resources/remoting_strings_fr.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Votre session <ph name="APPLICATION_NAME" /> est inactive depuis un certain temps et risque de se fermer bientôt.</translation>
 <translation id="2317666076142640974">Découvrez en avant-première la nouvelle <ph name="LINK_BEGIN" />application Web Bureau à distance Chrome<ph name="LINK_END" />. Faites-nous part de vos remarques !</translation>
 <translation id="2320166752086256636">Masquer le clavier</translation>
-<translation id="2332192922827071008">Ouvrir les préférences</translation>
 <translation id="2353140552984634198">Vous pouvez accéder à cet ordinateur en toute sécurité via Google Chromoting.</translation>
 <translation id="2359808026110333948">Continuer</translation>
 <translation id="2366718077645204424">Impossible de joindre l'hôte, probablement en raison de la configuration du réseau que vous utilisez.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Connecté à <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">REMARQUE : Pour vous assurer que tous les raccourcis clavier sont disponibles, vous pouvez configurer le bureau à distance Chrome pour qu'il s'ouvre dans une fenêtre.</translation>
 <translation id="2540992418118313681">Voulez-vous partager cet ordinateur pour qu'un autre utilisateur puisse consulter le contenu et en prendre le contrôle ?</translation>
-<translation id="254771646005658629">Autoriser les utilisateurs distants à contrôler ce Mac</translation>
 <translation id="2579271889603567289">Plantage de l'hôte ou échec lors de son démarrage.</translation>
 <translation id="2599300881200251572">Ce service permet la réception de connexions provenant des clients du Bureau à distance Google Chrome.</translation>
 <translation id="2647232381348739934">Service Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Impossible de réinitialiser l'application. Vous pouvez toujours envoyer un rapport de bug.</translation>
 <translation id="5419418238395129586">Dernière connexion : <ph name="DATE" /></translation>
 <translation id="544077782045763683">L'hôte a été arrêté.</translation>
-<translation id="5463789431147491241">Pour utiliser <ph name="PRODUCT_NAME" /> avec ce Mac, procédez comme suit :
-
-Sélectionnez "<ph name="BUTTON_NAME" />" ci-dessous. Dans le volet des préférences de sécurité et de confidentialité, cochez la case à côté de "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Si "<ph name="SERVICE_SCRIPT_NAME" />" est déjà coché, décochez-le, puis cochez-le à nouveau.</translation>
 <translation id="5510035215749041527">Se déconnecter maintenant</translation>
 <translation id="5593560073513909978">Le service est momentanément indisponible. Veuillez réessayer ultérieurement.</translation>
 <translation id="5601503069213153581">Code d'accès</translation>
diff --git a/remoting/resources/remoting_strings_gu.xtb b/remoting/resources/remoting_strings_gu.xtb
index 1dcb9e7..305f15e 100644
--- a/remoting/resources/remoting_strings_gu.xtb
+++ b/remoting/resources/remoting_strings_gu.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">તમારું <ph name="APPLICATION_NAME" /> સત્ર થોડીવાર માટે નિષ્ક્રિય થઈ ગયું છે અને ટૂંક સમયમાં ડિસ્કનેક્ટ થઈ જશે.</translation>
 <translation id="2317666076142640974">નવી <ph name="LINK_BEGIN" />Chrome રીમોટ ડેસ્કટૉપ વેબ ઍપ<ph name="LINK_END" />ની એક ઝલક જુઓ. અમને તમારો પ્રતિસાદ સાંભળવો ગમશે.</translation>
 <translation id="2320166752086256636">કીબોર્ડ છુપાવો</translation>
-<translation id="2332192922827071008">પસંદગીઓ ખોલો</translation>
 <translation id="2353140552984634198">તમે Chromoting નો ઉપયોગ કરીને આ કમ્પ્યુટરને સુરક્ષિત રીતે ઍક્સેસ કરી શકો છો.</translation>
 <translation id="2359808026110333948">આગળ વધો</translation>
 <translation id="2366718077645204424">હોસ્ટ સુધી પહોંચવામાં અક્ષમ. આ કદાચ તમે ઉપયોગ કરી રહ્યાં છો એ નેટવર્કની ગોઠવણીનાં કારણે છે.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> સાથે કનેક્ટ કર્યું</translation>
 <translation id="2512228156274966424">નોંધ: બધા કીબોર્ડ શોર્ટકટ્સ ઉપલબ્ધ છે તેની ખાતરી કરવા, તમે Chrome રીમોટ ડેસ્કટૉપને 'વિંડો તરીકે ખોલો' પર ગોઠવી શકો છો.</translation>
 <translation id="2540992418118313681">શું તમે આ કમ્પ્યુટર બીજા વપરાશકર્તા માટે જોવા અને નિયંત્રિત કરવા માટે શેર કરવા માંગો છો?</translation>
-<translation id="254771646005658629">રીમોટ વપરાશકર્તાઓને આ Macનું નિયંત્રણ કરવાની મંજૂરી આપો</translation>
 <translation id="2579271889603567289">હોસ્ટ ક્રૅશ થયું અથવા શરૂ કરવામાં નિષ્ફળ થયું.</translation>
 <translation id="2599300881200251572">આ સેવા Chrome રીમોટ ડેસ્કટૉપ ક્લાઇન્ટ્સ પાસેથી આવતા કનેક્શન્સ સક્ષમ કરે છે.</translation>
 <translation id="2647232381348739934">Chromoting સેવા</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">ઍપ્લિકેશન ફરીથી સેટ કરી શકાઈ નથી. તમે હજી પણ બગ રિપોર્ટ મોકલી શકો છો.</translation>
 <translation id="5419418238395129586">છેલ્લે ઑનલાઇન: <ph name="DATE" /></translation>
 <translation id="544077782045763683">હોસ્ટ શટ ડાઉન થયું છે.</translation>
-<translation id="5463789431147491241">આ Mac પર <ph name="PRODUCT_NAME" />નો ઉપયોગ કરવા માટે, આ પગલાંને ફૉલો કરો:
-
-નીચે '<ph name="BUTTON_NAME" />' પસંદ કરો. તમારી સુરક્ષા અને પ્રાઇવસી પસંદગીઓમાં, '<ph name="SERVICE_SCRIPT_NAME" />'ની પાસેના બૉક્સને ચેક કરો.
-
-જો '<ph name="SERVICE_SCRIPT_NAME" />' પહેલાંથી ચેક કરેલું હોય, તો તેને અનચેક કરો અને પછી તેને ફરી ચેક કરો.</translation>
 <translation id="5510035215749041527">હવે ડિસ્કનેક્ટ કરો</translation>
 <translation id="5593560073513909978">અમારી સેવા અસ્થાયી રીતે અનુપલબ્ધ છે. કૃપા કરીને પછીથી ફરી પ્રયાસ કરો.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_hi.xtb b/remoting/resources/remoting_strings_hi.xtb
index b6fd3bf2..bbc4233 100644
--- a/remoting/resources/remoting_strings_hi.xtb
+++ b/remoting/resources/remoting_strings_hi.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">आपका <ph name="APPLICATION_NAME" /> सत्र कुछ समय से निष्‍क्रिय है और जल्‍दी ही डिस्‍कनेक्‍ट कर दिया जाएगा.</translation>
 <translation id="2317666076142640974">नए <ph name="LINK_BEGIN" />Chrome दूरस्थ डेस्कटॉप वेब ऐप्लिकेशन<ph name="LINK_END" /> पर एक नज़र डालें. हमें आपका फ़ीडबैक पाकर खुशी होगी.</translation>
 <translation id="2320166752086256636">कीबोर्ड छिपाएं</translation>
-<translation id="2332192922827071008">'प्राथमिकताएं' खोलें</translation>
 <translation id="2353140552984634198">आप Chromoting का उपयोग करके सुरक्षित रूप से इस कंप्यूटर को एक्सेस कर सकते हैं.</translation>
 <translation id="2359808026110333948">जारी रखें</translation>
 <translation id="2366718077645204424">होस्‍ट तक पहुंचने में असमर्थ. यह संभवत:   उपयोग किए जाने वाले नेटवर्क के कॉन्फ़िगरेशन के कारण है.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> से कनेक्‍ट है</translation>
 <translation id="2512228156274966424">ध्यान दें: सभी कीबोर्ड शॉर्टकट की उपलब्धता पक्का करने के लिए, आप Chrome रिमोट डेस्कटॉप को ‘विंडो के रूप में खोलें’ पर कॉन्फ़िगर कर सकते हैं.</translation>
 <translation id="2540992418118313681">क्या आप इस कंप्यूटर को किसी दूसरे उपयोगकर्ता से शेयर करना चाहते हैं ताकि वह इसे देख और नियंत्रित कर सके?</translation>
-<translation id="254771646005658629">कहीं और मौजूद उपयोगकर्ताओं को इस Mac का नियंत्रण दें</translation>
 <translation id="2579271889603567289">होस्ट बंद हो गया या चालू नहीं हो पाया.</translation>
 <translation id="2599300881200251572">यह सेवा Chrome दूरस्थ डेस्कटॉप क्लाइंट के इनकमिंग कनेक्शन सक्षम करती है.</translation>
 <translation id="2647232381348739934">Chromoting सेवा</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">ऐप्‍लिकेशन को रीसेट नहीं किया जा सका. फिर भी आप गड़बड़ी की रिपोर्ट भेज सकते हैं.</translation>
 <translation id="5419418238395129586">पिछली बार ऑनलाइन: <ph name="DATE" /></translation>
 <translation id="544077782045763683">होस्‍ट बंद हो गया है.</translation>
-<translation id="5463789431147491241">इस Mac पर <ph name="PRODUCT_NAME" /> का इस्तेमाल करने के लिए, इन चरणों का पालन करें:
-
-नीचे '<ph name="BUTTON_NAME" />' चुनें. अपनी 'सुरक्षा और निजता' की प्राथमिकताओं में '<ph name="SERVICE_SCRIPT_NAME" />' के आगे बने बॉक्स पर सही का निशान लगाएं.
-
-अगर '<ph name="SERVICE_SCRIPT_NAME" />' पर पहले से सही का निशान लगा है, तो निशान हटाकर दोबारा लगाएं.</translation>
 <translation id="5510035215749041527">अभी डिस्‍कनेक्‍ट करें</translation>
 <translation id="5593560073513909978">सेवा अस्थायी रूप से अनुपलब्ध है. कृपया बाद में फिर से प्रयास करें.</translation>
 <translation id="5601503069213153581">पिन</translation>
diff --git a/remoting/resources/remoting_strings_hr.xtb b/remoting/resources/remoting_strings_hr.xtb
index d0a2cf7..10c0e1a 100644
--- a/remoting/resources/remoting_strings_hr.xtb
+++ b/remoting/resources/remoting_strings_hr.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Vaša sesija u aplikaciji <ph name="APPLICATION_NAME" /> nije aktivna već neko vrijeme, pa će se uskoro prekinuti veza.</translation>
 <translation id="2317666076142640974">Isprobajte novu <ph name="LINK_BEGIN" />web-aplikaciju Udaljena radna površina Chrome<ph name="LINK_END" />. Zanimaju nas vaše povratne informacije.</translation>
 <translation id="2320166752086256636">Sakrij tipkovnicu</translation>
-<translation id="2332192922827071008">Otvori Postavke</translation>
 <translation id="2353140552984634198">Ovom računalu možete sigurno pristupiti pomoću aplikacije Chromoting.</translation>
 <translation id="2359808026110333948">Nastavi</translation>
 <translation id="2366718077645204424">Nije moguće pristupiti hostu. To je vjerojatno zbog konfiguracije mreže koju upotrebljavate.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Povezano s računalom <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NAPOMENA: kako biste osigurali dostupnost svih tipkovničkih prečaca, možete konfigurirati udaljenu radnu površinu Chrome da se otvara kao prozor.</translation>
 <translation id="2540992418118313681">Želite li dijeliti ovo računalo tako da ga neki drugi korisnik može vidjeti i upravljati njime?</translation>
-<translation id="254771646005658629">Dopusti udaljenim korisnicima da upravljaju ovim Macom</translation>
 <translation id="2579271889603567289">Host se srušio ili se nije pokrenuo.</translation>
 <translation id="2599300881200251572">Ta usluga omogućuje dolazne veze s klijenata Udaljene radne površine Chrome.</translation>
 <translation id="2647232381348739934">Usluga Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Vraćanje aplikacije na zadano nije uspjelo. I dalje možete poslati izvješće o programskim pogreškama.</translation>
 <translation id="5419418238395129586">Zadnji put online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Host je isključen.</translation>
-<translation id="5463789431147491241">Da biste na ovom Macu upotrebljavali <ph name="PRODUCT_NAME" />, slijedite ove korake:
-
-Odaberite „<ph name="BUTTON_NAME" />” u nastavku. U postavkama za sigurnost i privatnost potvrdite okvir opcije „<ph name="SERVICE_SCRIPT_NAME" />”.
-
-Ako je opcija „'<ph name="SERVICE_SCRIPT_NAME" />” već potvrđena, poništite odabir i potom ga ponovo potvrdite.</translation>
 <translation id="5510035215749041527">Prekini vezu odmah</translation>
 <translation id="5593560073513909978">Usluga je privremeno nedostupna. Pokušajte ponovo kasnije.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_hu.xtb b/remoting/resources/remoting_strings_hu.xtb
index 1e332401..858b4fa 100644
--- a/remoting/resources/remoting_strings_hu.xtb
+++ b/remoting/resources/remoting_strings_hu.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">A(z) <ph name="APPLICATION_NAME" /> munkamenete egy ideje inaktív, ezért a rendszer rövidesen leválasztja.</translation>
 <translation id="2317666076142640974">Vessen egy pillantást az új <ph name="LINK_BEGIN" />Chrome távoliasztal-szolgáltatás internetes alkalmazásra<ph name="LINK_END" />. Szeretnénk megismerni a véleményét.</translation>
 <translation id="2320166752086256636">Billentyűzet elrejtése</translation>
-<translation id="2332192922827071008">A beállítások megnyitása</translation>
 <translation id="2353140552984634198">A Chromoting használatával biztonságosan hozzáférhet a számítógéphez.</translation>
 <translation id="2359808026110333948">Tovább</translation>
 <translation id="2366718077645204424">A gazdagép nem érhető el. Ez valószínűleg az Ön által használt hálózat konfigurációja miatt van.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Csatlakozva a következőhöz: <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">MEGJEGYZÉS: ha biztosítani akarja valamennyi billentyűkód elérhetőségét, konfigurálja a Chrome távoliasztal-szolgáltatást a „Megnyitás ablakban” lehetőséggel.</translation>
 <translation id="2540992418118313681">Meg szeretné osztani a számítógép megtekintését és vezérlését egy másik felhasználóval?</translation>
-<translation id="254771646005658629">Engedélyezze, hogy távoli felhasználók használhassák ezt a Mac számítógépet</translation>
 <translation id="2579271889603567289">A gazdagép rendszere összeomlott vagy nem tudott elindulni.</translation>
 <translation id="2599300881200251572">Ez a szolgáltatás engedélyezi a bejövő kapcsolatokat a Chrome távoliasztal-szolgáltatás klienseitől.</translation>
 <translation id="2647232381348739934">Chromoting szolgáltatás</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Nem sikerült az alkalmazás visszaállítása. Küldhet egy jelentést a programhibáról.</translation>
 <translation id="5419418238395129586">Utoljára online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">A gazdagép leállt.</translation>
-<translation id="5463789431147491241">A(z) <ph name="PRODUCT_NAME" /> ezen Mac számítógépen való használatához hajtsa végre ezeket a lépéseket:
-
-Kattintson az alábbi „<ph name="BUTTON_NAME" />” gombra. A biztonsági és adatvédelmi beállításokban jelölje be a következő jelölőnégyzetet: „<ph name="SERVICE_SCRIPT_NAME" />”.
-
-Ha a(z) „<ph name="SERVICE_SCRIPT_NAME" />” már be van jelölve, törölje a bejelölést, majd jelölje be újra a négyzetet.</translation>
 <translation id="5510035215749041527">Leválasztás most</translation>
 <translation id="5593560073513909978">A szolgáltatás átmenetileg nem érhető el. Kérjük, próbálkozzon újra később.</translation>
 <translation id="5601503069213153581">PIN-kód</translation>
diff --git a/remoting/resources/remoting_strings_id.xtb b/remoting/resources/remoting_strings_id.xtb
index 2972d2c..0c352296 100644
--- a/remoting/resources/remoting_strings_id.xtb
+++ b/remoting/resources/remoting_strings_id.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Sesi <ph name="APPLICATION_NAME" /> Anda tidak aktif untuk sementara waktu dan akan diputuskan sementara.</translation>
 <translation id="2317666076142640974">Coba <ph name="LINK_BEGIN" />aplikasi web Chrome Desktop Jarak Jauh<ph name="LINK_END" /> yang baru. Kami ingin mendengar masukan Anda.</translation>
 <translation id="2320166752086256636">Sembunyikan keyboard</translation>
-<translation id="2332192922827071008">Buka Preferensi</translation>
 <translation id="2353140552984634198">Anda dapat mengakses komputer ini dengan aman menggunakan Chromoting.</translation>
 <translation id="2359808026110333948">Lanjutkan</translation>
 <translation id="2366718077645204424">Tidak dapat menjangkau inang. Ini mungkin karena konfigurasi jaringan yang Anda gunakan.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Terhubung ke <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">CATATAN: Untuk memastikan bahwa semua pintasan keyboard tersedia, Anda dapat mengonfigurasi Chrome Desktop Jarak Jauh menjadi ‘Buka sebagai jendela’.</translation>
 <translation id="2540992418118313681">Ingin membagikan komputer ini agar dapat dilihat dan dikontrol oleh pengguna lain?</translation>
-<translation id="254771646005658629">Izinkan pengguna jarak jauh untuk mengontrol Mac ini</translation>
 <translation id="2579271889603567289">Host error atau gagal dimulai.</translation>
 <translation id="2599300881200251572">Layanan ini mengaktifkan sambungan masuk dari klien Chrome Desktop Jarak Jauh.</translation>
 <translation id="2647232381348739934">Layanan Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Tidak dapat menyetel ulang aplikasi. Anda masih dapat mengirim laporan bug.</translation>
 <translation id="5419418238395129586">Online terakhir: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Hosting telah dimatikan.</translation>
-<translation id="5463789431147491241">Untuk menggunakan <ph name="PRODUCT_NAME" /> pada Mac ini, ikuti langkah-langkah berikut:
-
-Pilih '<ph name="BUTTON_NAME" />' di bawah. Dalam preferensi Keamanan dan Privasi, centang kotak di samping '<ph name="SERVICE_SCRIPT_NAME" />'.
-
-Jika '<ph name="SERVICE_SCRIPT_NAME" />' telah tercentang, hapus centang lalu centang lagi.</translation>
 <translation id="5510035215749041527">Putuskan hubungan sekarang</translation>
 <translation id="5593560073513909978">Layanan kami tidak tersedia untuk sementara. Coba lagi nanti.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_it.xtb b/remoting/resources/remoting_strings_it.xtb
index 9e2e4f3..339a6d9 100644
--- a/remoting/resources/remoting_strings_it.xtb
+++ b/remoting/resources/remoting_strings_it.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">La tua sessione in <ph name="APPLICATION_NAME" /> non è attiva da un po' di tempo e verrà disconnessa a breve.</translation>
 <translation id="2317666076142640974">Dai un'occhiata alla nuova <ph name="LINK_BEGIN" />app web Chrome Remote Desktop<ph name="LINK_END" />. Ci piacerebbe sapere cosa ne pensi.</translation>
 <translation id="2320166752086256636">Nascondi tastiera</translation>
-<translation id="2332192922827071008">Apri Preferenze</translation>
 <translation id="2353140552984634198">Puoi accedere a questo computer in sicurezza utilizzando Chromoting.</translation>
 <translation id="2359808026110333948">Continua</translation>
 <translation id="2366718077645204424">Impossibile raggiungere l'host. Il problema potrebbe essere dovuto alla configurazione della rete in uso.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Connessione a <ph name="HOSTNAME" /> effettuata</translation>
 <translation id="2512228156274966424">NOTA. Per assicurarti che siano disponibili tutte le scorciatoie da tastiera, puoi configurare l'opzione "Apri in una finestra" per Chrome Remote Desktop.</translation>
 <translation id="2540992418118313681">Vuoi condividere questo computer con un altro utente che potrà accedervi e controllarlo?</translation>
-<translation id="254771646005658629">Consenti agli utenti remoti di controllare questo Mac</translation>
 <translation id="2579271889603567289">L'host si è arrestato in modo anomalo o non si è avviato.</translation>
 <translation id="2599300881200251572">Questo servizio consente connessioni in entrata da client Chrome Remote Desktop.</translation>
 <translation id="2647232381348739934">Servizio Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Impossibile ripristinare l'applicazione. Puoi comunque inviare una segnalazione di bug.</translation>
 <translation id="5419418238395129586">Ultimo collegamento online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">L'host è stato chiuso.</translation>
-<translation id="5463789431147491241">Per usare <ph name="PRODUCT_NAME" /> su questo Mac, svolgi i seguenti passaggi:
-
-Seleziona "<ph name="BUTTON_NAME" />" sotto. Nelle preferenze Sicurezza e Privacy, seleziona la casella "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Se la casella "<ph name="SERVICE_SCRIPT_NAME" />" è già selezionata, deselezionala e selezionala di nuovo.</translation>
 <translation id="5510035215749041527">Scollegati ora</translation>
 <translation id="5593560073513909978">Il servizio non è al momento disponibile. Riprova più tardi.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_iw.xtb b/remoting/resources/remoting_strings_iw.xtb
index b7358ee..8335171 100644
--- a/remoting/resources/remoting_strings_iw.xtb
+++ b/remoting/resources/remoting_strings_iw.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">לא הייתה פעילות ב-<ph name="APPLICATION_NAME" /> במשך זמן-מה. אתה תנותק בקרוב.</translation>
 <translation id="2317666076142640974">‏יש לך הזדמנות לקבל הצצה מקדימה אל <ph name="LINK_BEGIN" />אפליקציית האינטרנט Chrome Remote Desktop<ph name="LINK_END" />. נשמח לקבל ממך משוב.</translation>
 <translation id="2320166752086256636">הסתר מקלדת</translation>
-<translation id="2332192922827071008">פתיחת ההעדפות</translation>
 <translation id="2353140552984634198">‏תוכל לגשת למחשב זה באופן מאובטח באמצעות Chromoting.</translation>
 <translation id="2359808026110333948">המשך</translation>
 <translation id="2366718077645204424">לא ניתן להשיג את המארח. הסיבה לכך יכולה להיות תצורת הרשת שבה אתה משתמש.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">בוצעה התחברות אל <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">‏הערה: על מנת לוודא שכל מקשי הקיצור זמינים, ניתן להגדיר את Chrome Remote Desktop ל'פתח כחלון'.</translation>
 <translation id="2540992418118313681">האם ברצונך לשתף מחשב זה כך שמשתמש אחר יראה אותו וישלוט בו?</translation>
-<translation id="254771646005658629">‏הענקת שליטה במחשב ה-Mac הזה למשתמשים מרוחקים</translation>
 <translation id="2579271889603567289">המארח קרס או שלא הופעל.</translation>
 <translation id="2599300881200251572">‏שירות זה מאפשר חיבורים נכנסים מלקוחות Chrome Remote Desktop.</translation>
 <translation id="2647232381348739934">‏שירות Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">לא ניתן היה לאפס את היישום. תוכל עדיין לשלוח דוח באגים.</translation>
 <translation id="5419418238395129586">חיבור אחרון לרשת: <ph name="DATE" /></translation>
 <translation id="544077782045763683">המארח כבה.</translation>
-<translation id="5463789431147491241">‏כדי להשתמש ב-<ph name="PRODUCT_NAME" /> במחשב ה-Mac הזה:
-
-לוחצים למטה על '<ph name="BUTTON_NAME" />'. בהעדפות של 'אבטחה ופרטיות' מסמנים את התיבה לצד '<ph name="SERVICE_SCRIPT_NAME" />'.
-
-אם האפשרות '<ph name="SERVICE_SCRIPT_NAME" />' כבר מסומנת, מבטלים את הסימון ואז מסמנים שוב.</translation>
 <translation id="5510035215749041527">נתק עכשיו</translation>
 <translation id="5593560073513909978">באופן זמני, השירות אינו זמין. נסה שוב מאוחר יותר.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_ja.xtb b/remoting/resources/remoting_strings_ja.xtb
index e622df1..3abc62a 100644
--- a/remoting/resources/remoting_strings_ja.xtb
+++ b/remoting/resources/remoting_strings_ja.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792"><ph name="APPLICATION_NAME" /> のセッションでしばらく操作がありませんでした。セッションを間もなく切断します。</translation>
 <translation id="2317666076142640974">今回の新しい <ph name="LINK_BEGIN" />Chrome リモート デスクトップ ウェブアプリ<ph name="LINK_END" />の使用感について、ご意見やご感想をお聞かせください。</translation>
 <translation id="2320166752086256636">キーボードを非表示</translation>
-<translation id="2332192922827071008">設定を開く</translation>
 <translation id="2353140552984634198">Chromoting を使用して、このパソコンに安全にアクセスできます。</translation>
 <translation id="2359808026110333948">続行</translation>
 <translation id="2366718077645204424">ホストにアクセスできません。お使いのネットワークの設定が原因であることが考えられます。</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> に接続されました</translation>
 <translation id="2512228156274966424">注: すべてのキーボード ショートカットを使用できるようにするには、Chrome リモート デスクトップを [ウィンドウとして開く] に設定してください。</translation>
 <translation id="2540992418118313681">このパソコンの閲覧と制御の権限を別のユーザーと共有しますか?</translation>
-<translation id="254771646005658629">リモート ユーザーがこの Mac を管理できるようにする</translation>
 <translation id="2579271889603567289">ホストがクラッシュしたか、ホストを起動できませんでした。</translation>
 <translation id="2599300881200251572">このサービスにより、Chrome リモート デスクトップ クライアントからの着信接続が有効になります。</translation>
 <translation id="2647232381348739934">Chromoting サービス</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">アプリケーションをリセットできませんでした。バグレポートの送信は可能です。</translation>
 <translation id="5419418238395129586">前回のインターネット接続日: <ph name="DATE" /></translation>
 <translation id="544077782045763683">ホストはシャットダウンしました。</translation>
-<translation id="5463789431147491241">この Mac で <ph name="PRODUCT_NAME" /> を使用するには、次の手順を行ってください。
-
-下の [<ph name="BUTTON_NAME" />] を選択します。[セキュリティとプライバシー] の設定で、[<ph name="SERVICE_SCRIPT_NAME" />] の横のチェックボックスをオンにします。
-
-[<ph name="SERVICE_SCRIPT_NAME" />] がすでにオンになっている場合は、一度オフにしてからオンにします。</translation>
 <translation id="5510035215749041527">切断</translation>
 <translation id="5593560073513909978">このサービスは一時的に利用できなくなっています。しばらくしてからもう一度お試しください。</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_kn.xtb b/remoting/resources/remoting_strings_kn.xtb
index d442661..53b12475 100644
--- a/remoting/resources/remoting_strings_kn.xtb
+++ b/remoting/resources/remoting_strings_kn.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">ನಿಮ್ಮ <ph name="APPLICATION_NAME" /> ಅವಧಿಯು ಸದ್ಯ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ ಮತ್ತು ಶೀಘ್ರದಲ್ಲಿಯೇ ಸಂಪರ್ಕಕಡಿತಗೊಳಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="2317666076142640974">ಹೊಸ <ph name="LINK_BEGIN" />Chrome ರಿಮೋಟ್ ಡೆಸ್ಕ್‌ಟಾಪ್ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್<ph name="LINK_END" />ನಲ್ಲಿ ಸ್ನೀಕ್ ಪೀಕ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳಿ. ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಆಲಿಸಲು ನಾವು ಇಷ್ಟಪಡುತ್ತೇವೆ.</translation>
 <translation id="2320166752086256636">ಕೀಬೋರ್ಡ್ ಮರೆಮಾಡಿ</translation>
-<translation id="2332192922827071008">ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="2353140552984634198">ಕ್ರೊಮೊಟಿಂಗ್‌ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಕಂಪ್ಯೂಟರ್‌ಗೆ ನೀವು ಸುರಕ್ಷಿತವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು.</translation>
 <translation id="2359808026110333948">ಮುಂದುವರೆಸಿ</translation>
 <translation id="2366718077645204424">ಹೋಸ್ಟ್‌ ಅನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದಕ್ಕೆ ಬಹುಶಃ ನೀವು ಬಳಸುತ್ತಿರುವ ಕಾನ್ಫಿಗರೇಶನ್ ನೆಟ್‌ವರ್ಕ್ ಕಾರಣವಾಗಿರಬಹುದು.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> ಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ</translation>
 <translation id="2512228156274966424">ಗಮನಿಸಿ: ಎಲ್ಲ ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು ಲಭ್ಯವಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ‘ವಿಂಡೊ ರೂಪದಲ್ಲಿ ತೆರೆಯಲು’ Chrome ರಿಮೋಟ್ ಡೆಸ್ಕ್‌ಟಾಪ್ ಅನ್ನು ನೀವು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು.</translation>
 <translation id="2540992418118313681">ನಿಯಂತ್ರಣವನ್ನು ವೀಕ್ಷಿಸಲು ನೀವು ಮತ್ತೊಬ್ಬ ಬಳಕೆದಾರರಿಗೆ ಈ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಲು ಬಯಸುತ್ತೀರಾ?</translation>
-<translation id="254771646005658629">ಈ ಮ್ಯಾಕ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ದೂರಸ್ಥಳದಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಿ</translation>
 <translation id="2579271889603567289">ಹೋಸ್ಟ್ ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ ಅಥವಾ ಕಾರ್ಯಾರಂಭ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="2599300881200251572">ಈ ಸೇವೆಯು Chrome ರಿಮೋಟ್ ಡೆಸ್ಕ್‌ಟಾಪ್ ಕ್ಲೈಂಟ್‌ಗಳಿಂದ ಒಳಬರುವ ಸಂಪರ್ಕಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.</translation>
 <translation id="2647232381348739934">ಕ್ರೊಮೋಟಿಂಗ್ ಸೇವೆ</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನೀವು ಈಗಲೂ ದೋಷ ವರದಿಯನ್ನು ಕಳುಹಿಸಬಹುದು.</translation>
 <translation id="5419418238395129586">ಕೊನೆಯದಾಗಿ ಆನ್‌ಲೈನ್: <ph name="DATE" /></translation>
 <translation id="544077782045763683">ಹೋಸ್ಟ್ ಆಫ್‌ಲೈನ್‌ ಆಗಿದ್ದಾರೆ</translation>
-<translation id="5463789431147491241">ಈ ಮ್ಯಾಕ್‌ನಲ್ಲಿ <ph name="PRODUCT_NAME" /> ಬಳಸಲು, ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:
-
-ಕೆಳಗಿರುವ '<ph name="BUTTON_NAME" />' ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ. ನಿಮ್ಮ ಸುರಕ್ಷತೆ ಮತ್ತು ಗೌಪ್ಯತೆ ಆದ್ಯತೆಗಳಲ್ಲಿ, '<ph name="SERVICE_SCRIPT_NAME" />' ಯ ಮುಂದೆ ಇರುವ ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಗುರುತು ಮಾಡಿ.
-
-'<ph name="SERVICE_SCRIPT_NAME" />' ನಲ್ಲಿ ಈಗಾಗಲೇ ಗುರುತು ಮಾಡಿದ್ದರೆ, ಅದರಿಂದ ಗುರುತು ತೆಗೆದುಹಾಕಿ ಮತ್ತು ನಂತರ ಪುನಃ ಗುರುತು ಹಾಕಿ.</translation>
 <translation id="5510035215749041527">ಇದೀಗ ಸಂಪರ್ಕಕಡಿತಗೊಳಿಸು</translation>
 <translation id="5593560073513909978">ಈ ಸೇವೆಯು ತಾತ್ಕಾಲಿಕವಾಗಿ ಲಭ್ಯವಿಲ್ಲ. ನಂತರ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_ko.xtb b/remoting/resources/remoting_strings_ko.xtb
index 2688d680..943ad8bc 100644
--- a/remoting/resources/remoting_strings_ko.xtb
+++ b/remoting/resources/remoting_strings_ko.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792"><ph name="APPLICATION_NAME" /> 세션이 일정 시간 비활성화 상태였으므로 곧 연결 해제됩니다.</translation>
 <translation id="2317666076142640974">새로운 <ph name="LINK_BEGIN" />Chrome 원격 데스크톱 웹 앱<ph name="LINK_END" />을 미리 체험해 보시고 의견을 들려주세요.</translation>
 <translation id="2320166752086256636">키보드 숨기기</translation>
-<translation id="2332192922827071008">환경설정 열기</translation>
 <translation id="2353140552984634198">Chromoting을 사용하여 컴퓨터에 안전하게 액세스할 수 있습니다.</translation>
 <translation id="2359808026110333948">계속</translation>
 <translation id="2366718077645204424">호스트에 연결할 수 없습니다. 사용 중인 네트워크의 구성 때문일 수 있습니다.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" />에 연결되었습니다</translation>
 <translation id="2512228156274966424">참고: 모든 단축키를 사용하려면 Chrome 원격 데스크톱을 '창으로 열기'로 설정합니다.</translation>
 <translation id="2540992418118313681">이 컴퓨터를 다른 사용자가 보고 제어하도록 공유하시겠습니까?</translation>
-<translation id="254771646005658629">원격 사용자가 이 Mac 기기를 제어하도록 허용</translation>
 <translation id="2579271889603567289">호스트가 다운되었거나 시작되지 못했습니다.</translation>
 <translation id="2599300881200251572">이 서비스를 이용하면 Chrome 원격 데스크톱 클라이언트로부터의 연결을 수신할 수 있습니다.</translation>
 <translation id="2647232381348739934">Chromoting 서비스</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">애플리케이션을 재설정할 수 없지만 버그 보고서를 보낼 수는 있습니다.</translation>
 <translation id="5419418238395129586">최근 온라인 접속일: <ph name="DATE" /></translation>
 <translation id="544077782045763683">호스트가 꺼져 있습니다.</translation>
-<translation id="5463789431147491241">이 Mac 기기에서 <ph name="PRODUCT_NAME" />을(를) 사용하려면 다음 단계를 따르세요.
-
-아래의 ‘<ph name="BUTTON_NAME" />’ 버튼을 선택합니다. 보안 및 개인정보 보호 환경설정에서 ‘<ph name="SERVICE_SCRIPT_NAME" />’ 옆에 있는 체크박스를 선택합니다.
-
-‘<ph name="SERVICE_SCRIPT_NAME" />’이(가) 이미 선택되어 있다면 이를 선택 해제하고 다시 선택해야 할 수도 있습니다.</translation>
 <translation id="5510035215749041527">지금 연결 해제</translation>
 <translation id="5593560073513909978">서비스를 일시적으로 이용할 수 없습니다. 잠시 후 다시 시도해 주세요.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_lt.xtb b/remoting/resources/remoting_strings_lt.xtb
index 4714e69..89a177c 100644
--- a/remoting/resources/remoting_strings_lt.xtb
+++ b/remoting/resources/remoting_strings_lt.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Jūsų „<ph name="APPLICATION_NAME" />“ sesija buvo neaktyvi ir netrukus bus atjungta.</translation>
 <translation id="2317666076142640974">Išbandykite naująją <ph name="LINK_BEGIN" />„Chrome“ nuotolinio kompiuterio valdymo žiniatinklio programą<ph name="LINK_END" /> pirmieji. Džiaugtumės, jeigu gautume jūsų atsiliepimus.</translation>
 <translation id="2320166752086256636">Slėpti klaviatūrą</translation>
-<translation id="2332192922827071008">Atidarykite nuostatas</translation>
 <translation id="2353140552984634198">Galite saugiai pasiekti kompiuterį naudodami „Chrome“ nuotolinį ryšį.</translation>
 <translation id="2359808026110333948">Tęskite</translation>
 <translation id="2366718077645204424">Neįmanoma pasiekti prieglobos. Taip greičiausiai nutiko dėl naudojamo tinklo konfigūracijos.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Prisijungta prie „<ph name="HOSTNAME" />“</translation>
 <translation id="2512228156274966424">PASTABA: jei norite užtikrinti, kad galimi visi spartieji klavišai, galite konfigūruoti „Chrome“ nuotolinio kompiuterio valdymą į „Atidaryti kaip langą“.</translation>
 <translation id="2540992418118313681">Ar norite bendrinti šį kompiuterį su kitu naudotoju, kuris galės matyti ir tvarkyti jo turinį?</translation>
-<translation id="254771646005658629">Leiskite nuotoliniams naudotojams valdyti šį „Mac“ įrenginį</translation>
 <translation id="2579271889603567289">Priegloba užstrigo arba jos nepavyko paleisti.</translation>
 <translation id="2599300881200251572">Naudojant šią paslaugą įgalinami „Chrome“ nuotolinio kompiuterio valdymo klientų prisijungimai.</translation>
 <translation id="2647232381348739934">„Chrome“ nuotolinio ryšio paslauga</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Nepavyko iš naujo nustatyti programos. Vis tiek galite išsiųsti rikto ataskaitą.</translation>
 <translation id="5419418238395129586">Paskutinį kartą prisijungta: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Priegloba išjungta.</translation>
-<translation id="5463789431147491241">Kad <ph name="PRODUCT_NAME" /> veiktų šiame „Mac“, atlikite nurodytus veiksmus.
-
-Toliau pasirinkite mygtuką „<ph name="BUTTON_NAME" />“. Saugos ir privatumo nuostatų skiltyje pažymėkite žymimąjį langelį šalia „<ph name="SERVICE_SCRIPT_NAME" />“.
-
-Jei parinktis „<ph name="SERVICE_SCRIPT_NAME" />“ jau pažymėta, atžymėkite ir pažymėkite ją iš naujo.</translation>
 <translation id="5510035215749041527">Atjungti dabar</translation>
 <translation id="5593560073513909978">Paslauga laikinai negalima. Bandykite dar kartą vėliau.</translation>
 <translation id="5601503069213153581">PIN kodas</translation>
diff --git a/remoting/resources/remoting_strings_lv.xtb b/remoting/resources/remoting_strings_lv.xtb
index cc3b436..aa058e90 100644
--- a/remoting/resources/remoting_strings_lv.xtb
+++ b/remoting/resources/remoting_strings_lv.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Jūsu <ph name="APPLICATION_NAME" /> sesija jau kādu laiku nav aktīva, un drīzumā tiks pārtraukts savienojums.</translation>
 <translation id="2317666076142640974">Izmēģiniet jauno <ph name="LINK_BEGIN" />Chrome attālās darbvirsmas tīmekļa lietotni<ph name="LINK_END" />. Mēs labprāt saņemtu atsauksmes no jums.</translation>
 <translation id="2320166752086256636">Paslēpt tastatūru</translation>
-<translation id="2332192922827071008">Atvērt preferences</translation>
 <translation id="2353140552984634198">Varat izveidot drošu savienojumu ar šo datoru, izmantojot Chrome saiti.</translation>
 <translation id="2359808026110333948">Turpināt</translation>
 <translation id="2366718077645204424">Nevar sasniegt saimniekdatoru. Iespējamais iemesls var būt tīkla konfigurācija, kuru izmantojat.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Izveidots savienojums ar “<ph name="HOSTNAME" />”</translation>
 <translation id="2512228156274966424">PIEZĪME. Lai būtu pieejami visi īsinājumtaustiņi, Chrome attālo darbvirsmu varat konfigurēt šādi: “Atvērt kā logu”.</translation>
 <translation id="2540992418118313681">Vai vēlaties koplietot šo datoru ar citu lietotāju, lai viņš varētu skatīt un pārvaldīt tajā esošo saturu?</translation>
-<translation id="254771646005658629">Atļaujiet attālajiem lietotājiem kontrolēt šo Mac datoru</translation>
 <translation id="2579271889603567289">Saimniekdators avarēja, vai neizdevās to palaist.</translation>
 <translation id="2599300881200251572">Izmantojot šo pakalpojumu, tiek iespējota ienākošo savienojumu izveide no Chrome attālās darbvirsmas klientiem.</translation>
 <translation id="2647232381348739934">Chrome saites pakalpojums</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Nevarēja atiestatīt lietojumprogrammu. Jūs joprojām varat nosūtīt kļūdu pārskatu.</translation>
 <translation id="5419418238395129586">Pēdējoreiz tiešsaistē: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Saimniekdators tika izslēgts.</translation>
-<translation id="5463789431147491241">Lai varētu izmantot <ph name="PRODUCT_NAME" /> šajā Mac datorā, veiciet tālāk norādītās darbības.
-
-Tālāk nospiediet pogu “<ph name="BUTTON_NAME" />”. Drošības un konfidencialitātes preferencēs atzīmējiet izvēles rūtiņu blakus vienumam “<ph name="SERVICE_SCRIPT_NAME" />”.
-
-Ja vienums “<ph name="SERVICE_SCRIPT_NAME" />” jau ir atzīmēts, noņemiet atzīmi no tā un pēc tam vēlreiz to atzīmējiet.</translation>
 <translation id="5510035215749041527">Atvienot tūlīt</translation>
 <translation id="5593560073513909978">Šobrīd pakalpojums nav pieejams. Lūdzu, vēlāk mēģiniet vēlreiz.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_ml.xtb b/remoting/resources/remoting_strings_ml.xtb
index 78beabf..2c8cfd2 100644
--- a/remoting/resources/remoting_strings_ml.xtb
+++ b/remoting/resources/remoting_strings_ml.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">നിങ്ങളുടെ <ph name="APPLICATION_NAME" /> സെഷൻ കുറച്ചുനേരത്തേക്ക് നിർജ്ജീവമാകുകയും അത് ഉടൻ തന്നെ വിച്ഛേദിക്കപ്പെടുകയും ചെയ്യും.</translation>
 <translation id="2317666076142640974">പുതിയ <ph name="LINK_BEGIN" />Chrome വിദൂര ഡെസ്‌ക്‌ടോപ്പ് വെബ് ആപ്പ്<ph name="LINK_END" /> ഒന്ന് പരീക്ഷിച്ചുനോക്കൂ. നിങ്ങളുടെ ഫീഡ്ബാക്ക് കേൾക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="2320166752086256636">കീബോർഡ് മറയ്‌ക്കുക</translation>
-<translation id="2332192922827071008">മുൻഗണനകൾ തുറക്കുക</translation>
 <translation id="2353140552984634198">നിങ്ങൾക്ക് ക്രോമോട്ടിംഗ് ഉപയോഗിച്ച് ഈ കമ്പ്യൂട്ടർ സുരക്ഷിതമായി ആക്‌സസ് ചെയ്യാം.</translation>
 <translation id="2359808026110333948">തുടരുക</translation>
 <translation id="2366718077645204424">ഹോസ്റ്റിൽ എത്തിച്ചേരാനായില്ല. ഇത് നിങ്ങൾ ഉപയോഗിക്കുന്ന നെറ്റ്‌വർക്കിന്റെ കോൺഫിഗറേഷൻ കാരണമാകാം.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> എന്നതിലേക്ക് കണക്റ്റുചെയ്‌തു</translation>
 <translation id="2512228156274966424">ശ്രദ്ധിക്കുക: എല്ലാ കീബോർഡ് കുറുക്കുവഴികളും ലഭ്യമാണെന്ന് ഉറപ്പാക്കുന്നതിന്, നിങ്ങൾക്ക് Chrome വിദൂര ഡെസ്‌ക്‌ടോപ്പ് 'വിൻഡോ ആയി തുറക്കുക' എന്നതിലേക്ക് കോൺഫിഗർ ചെയ്യാനാകും.</translation>
 <translation id="2540992418118313681">ഈ കമ്പ്യൂട്ടർ കാണുന്നതിനും നിയന്ത്രിക്കുന്നതിനും മറ്റൊരു ഉപയോക്താവിന് പങ്കിടാൻ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടോ?</translation>
-<translation id="254771646005658629">ഈ Mac നിയന്ത്രിക്കാൻ വിദൂര ഉപയോക്താക്കളെ അനുവദിക്കുക</translation>
 <translation id="2579271889603567289">ഹോസ്റ്റ് ക്രാഷായി അല്ലെങ്കിൽ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു.</translation>
 <translation id="2599300881200251572">Chrome വിദൂര ഡെസ്‌ക്ടോപ്പ് ക്ലയന്റുകളിൽ നിന്നുള്ള ഇൻകമിംഗ് കണക്ഷനുകളെ ഈ സേവനം പ്രവർത്തനക്ഷമമാക്കുന്നു.</translation>
 <translation id="2647232381348739934">ക്രോമോട്ടിംഗ് സേവനം</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">അപ്ലിക്കേഷൻ റീസെറ്റ് ചെയ്യാനായില്ല. തുടർന്നും ഒരു ബഗ് റിപ്പോർട്ട് നിങ്ങൾക്ക് അയയ്‌ക്കാനാകും.</translation>
 <translation id="5419418238395129586">അവസാന ഓൺലൈൻ: <ph name="DATE" /></translation>
 <translation id="544077782045763683">ഹോസ്റ്റ് ഷട്ട്‌ ഡൗൺ ചെയ്‌തു.</translation>
-<translation id="5463789431147491241">ഈ Mac-ൽ <ph name="PRODUCT_NAME" /> ഉപയോഗിക്കാൻ, ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ പാലിക്കുക:
-
-ചുവടെയുള്ള '<ph name="BUTTON_NAME" />' തിരഞ്ഞെടുക്കുക. നിങ്ങളുടെ സുരക്ഷാ, സ്വകാര്യതാ മുൻഗണനകളിൽ '<ph name="SERVICE_SCRIPT_NAME" />' എന്നതിന് അടുത്തുള്ള ബോക്‌സിൽ ചെക്ക് മാർക്കിടുക.
-
-'<ph name="SERVICE_SCRIPT_NAME" />' എന്നതിൽ മുമ്പേ ചെക്ക് മാർക്ക് ഇട്ടിട്ടുണ്ടെങ്കിലും അത് അൺചെക്ക് ചെയ്‌ത ശേഷം വീണ്ടും ചെക്ക് മാർക്കിടുക.</translation>
 <translation id="5510035215749041527">ഇപ്പോൾ വിച്ഛേദിക്കുക</translation>
 <translation id="5593560073513909978">സേവനം താല്‍‌ക്കാലികമായി ലഭ്യമല്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_mr.xtb b/remoting/resources/remoting_strings_mr.xtb
index 3332c7b..166c13fc 100644
--- a/remoting/resources/remoting_strings_mr.xtb
+++ b/remoting/resources/remoting_strings_mr.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">तुमचे <ph name="APPLICATION_NAME" /> सेशन काही काळ निष्क्रिय होते आणि लवकरच डिस्कनेक्ट केले जाईल.</translation>
 <translation id="2317666076142640974"><ph name="LINK_BEGIN" />Chrome रिमोट डेस्कटॉप वेब अॅप<ph name="LINK_END" />मध्ये डोकावून पहा. आम्हाला तुमचा फीडबॅक जाणून घ्यायला आवडेल.</translation>
 <translation id="2320166752086256636">कीबोर्ड लपवा</translation>
-<translation id="2332192922827071008">प्राधान्ये उघडा</translation>
 <translation id="2353140552984634198">Chromoting वापरून तुम्ही या कॉंप्युटरवर सुरक्षितरितीने अॅक्सेस करू शकता.</translation>
 <translation id="2359808026110333948">सुरू ठेवा</translation>
 <translation id="2366718077645204424">होस्‍टवर पोहोचण्‍यात अक्षम. हे बहुदा तुम्ही वापरत असलेल्या नेटवर्कच्या कॉन्फिगरेशनमुळे झाले आहे.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> शी कनेक्ट केले</translation>
 <translation id="2512228156274966424">टीप: सर्व कीबोर्ड शॉर्टकट उपलब्ध असल्याचे सुनिश्चित करण्यासाठी, तुम्ही ‘विंडो म्हणून उघडण्यासाठी’ Chrome रिमोट डेस्कटॉप कॉन्फिगर करू शकता.</translation>
 <translation id="2540992418118313681">तुम्ही हा कॉंप्युटर दुसर्‍या वापरकर्त्याकरिता पाहण्यासाठी आणि नियंत्रित करण्यासाठी शेअर करू इच्छिता?</translation>
-<translation id="254771646005658629">रिमोट वापरकर्त्यांना हे Mac नियंत्रित करू द्या</translation>
 <translation id="2579271889603567289">होस्ट क्रॅश झाले किंवा सुरू झाले नाही.</translation>
 <translation id="2599300881200251572">ही सेवा Chrome रिमोट डेस्कटॉप क्लायंटकडील येणारी कनेक्शन सक्षम करते.</translation>
 <translation id="2647232381348739934">Chromoting सेवा</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">अॅप्लिकेशन रीसेट करणे शक्य झाले नाही. तुम्ही तरीही एक बग अहवाल पाठवू शकता.</translation>
 <translation id="5419418238395129586">अखेरचे ऑनलाइन होते: <ph name="DATE" /></translation>
 <translation id="544077782045763683">होस्टने बंद केले आहे.</translation>
-<translation id="5463789431147491241">या Mac वर <ph name="PRODUCT_NAME" /> वापरण्यासाठी, या पायऱ्या फॉलो करा:
-
-खाली '<ph name="BUTTON_NAME" />' निवडा. तुमच्या सुरक्षा आणि गोपनीयता प्राधान्यांमध्ये, '<ph name="SERVICE_SCRIPT_NAME" />' पुढे असलेल्या चौकटीवर खूण करा.
-
-जर '<ph name="SERVICE_SCRIPT_NAME" />' वर आधीच खूण केलेली असल्यास, चौकटीतली खूण काढा आणि परत चौकटीवर खूण करा.</translation>
 <translation id="5510035215749041527">आता डिस्कनेक्ट करा</translation>
 <translation id="5593560073513909978">सेवा तात्पुरती अनुपलब्ध आहे. कृपया नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="5601503069213153581">पिन</translation>
diff --git a/remoting/resources/remoting_strings_ms.xtb b/remoting/resources/remoting_strings_ms.xtb
index 3c1b2b8a..47899001 100644
--- a/remoting/resources/remoting_strings_ms.xtb
+++ b/remoting/resources/remoting_strings_ms.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Sesi <ph name="APPLICATION_NAME" /> anda tidak aktif untuk sementara waktu dan akan diputuskan sambungannya tidak lama lagi.</translation>
 <translation id="2317666076142640974">Intai sepintas lalu <ph name="LINK_BEGIN" />apl web Desktop Jauh Chrome<ph name="LINK_END" />. Kami ingin mendengar maklum balas anda.</translation>
 <translation id="2320166752086256636">Sembunyikan papan kekunci</translation>
-<translation id="2332192922827071008">Buka Pilihan</translation>
 <translation id="2353140552984634198">Anda boleh mengakses komputer ini dengan selamat menggunakan Chromoting.</translation>
 <translation id="2359808026110333948">Teruskan</translation>
 <translation id="2366718077645204424">Tidak dapat mencapai hos. Hal ini mungkin disebabkan oleh konfigurasi rangkaian yang anda gunakan.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Disambungkan ke <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">PERHATIAN: Untuk memastikan semua pintasan papan kekunci tersedia, anda boleh mengkonfigurasi Desktop Jauh Chrome kepada ‘Buka sebagai tetingkap’.</translation>
 <translation id="2540992418118313681">Adakah anda ingin berkongsi komputer ini untuk dilihat dan dikawal oleh pengguna lain?</translation>
-<translation id="254771646005658629">Benarkan pengguna jauh mengawal Mac ini</translation>
 <translation id="2579271889603567289">Hos mengalami ranap sistem atau gagal bermula.</translation>
 <translation id="2599300881200251572">Perkhidmatan ini membolehkan sambungan masuk daripada klien Desktop Jauh Chrome.</translation>
 <translation id="2647232381348739934">Perkhidmatan Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Tidak dapat menetapkan semula aplikasi. Anda masih boleh menghantar laporan pepijat.</translation>
 <translation id="5419418238395129586">Terakhir dalam talian: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Hos telah ditutup.</translation>
-<translation id="5463789431147491241">Untuk menggunakan <ph name="PRODUCT_NAME" /> pada Mac ini, ikut langkah berikut:
-
-Pilih '<ph name="BUTTON_NAME" />' di bawah. Dalam pilihan Keselamatan dan Privasi anda, tandai kotak di sebelah '<ph name="SERVICE_SCRIPT_NAME" />'.
-
-Jika '<ph name="SERVICE_SCRIPT_NAME" />' telah pun ditandai, nyahtanda dan kemudian tandai semula.</translation>
 <translation id="5510035215749041527">Putuskan sambungan sekarang</translation>
 <translation id="5593560073513909978">Perkhidmatan ini tergendala buat sementara waktu. Sila cuba lagi kemudian.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_nl.xtb b/remoting/resources/remoting_strings_nl.xtb
index 9cfdba7a..868f94cf 100644
--- a/remoting/resources/remoting_strings_nl.xtb
+++ b/remoting/resources/remoting_strings_nl.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Je <ph name="APPLICATION_NAME" />-sessie is al enige tijd inactief. Binnenkort wordt de verbinding verbroken.</translation>
 <translation id="2317666076142640974">Bekijk een voorproefje van de nieuwe <ph name="LINK_BEGIN" />Chrome Remote Desktop-webapp<ph name="LINK_END" />. We horen graag wat je ervan vindt.</translation>
 <translation id="2320166752086256636">Toetsenbord verbergen</translation>
-<translation id="2332192922827071008">Voorkeuren openen</translation>
 <translation id="2353140552984634198">Je kunt beveiligd toegang krijgen tot deze computer via Chromoting.</translation>
 <translation id="2359808026110333948">Doorgaan</translation>
 <translation id="2366718077645204424">Kan de host niet bereiken. Dit komt waarschijnlijk door de configuratie van het netwerk dat je gebruikt.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Verbonden met <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">Opmerking: als je er zeker van wilt zijn dat alle sneltoetsen beschikbaar zijn, kun je Chrome Remote Desktop configureren om de modus 'Openen als venster' te gebruiken.</translation>
 <translation id="2540992418118313681">Wil je deze computer delen zodat een andere gebruiker deze kan bekijken en bedienen?</translation>
-<translation id="254771646005658629">Externe gebruikers toestaan om deze Mac te beheren</translation>
 <translation id="2579271889603567289">De host is gecrasht of kan niet worden gestart.</translation>
 <translation id="2599300881200251572">Met deze service worden inkomende verbindingen van Chrome Remote Desktop-clients ingeschakeld.</translation>
 <translation id="2647232381348739934">Chromoting-service</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Kan de app niet opnieuw instellen. Je kunt nog steeds een foutmelding verzenden.</translation>
 <translation id="5419418238395129586">Laatst online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Host is afgesloten.</translation>
-<translation id="5463789431147491241">Volg deze stappen om <ph name="PRODUCT_NAME" /> te gebruiken op deze Mac:
-
-Selecteer '<ph name="BUTTON_NAME" />' hieronder. Vink het selectievakje naast '<ph name="SERVICE_SCRIPT_NAME" />' aan in je voorkeuren voor beveiliging en privacy.
-
-Als '<ph name="SERVICE_SCRIPT_NAME" />' al is aangevinkt, vink je dit eerst uit en opnieuw aan.</translation>
 <translation id="5510035215749041527">Nu verbinding verbreken</translation>
 <translation id="5593560073513909978">De service is tijdelijk niet beschikbaar. Probeer het later opnieuw.</translation>
 <translation id="5601503069213153581">Pincode</translation>
diff --git a/remoting/resources/remoting_strings_no.xtb b/remoting/resources/remoting_strings_no.xtb
index be23f47..e15c05b 100644
--- a/remoting/resources/remoting_strings_no.xtb
+++ b/remoting/resources/remoting_strings_no.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792"><ph name="APPLICATION_NAME" />-økten din har vært inaktiv en stund og kommer snart til å bli koblet fra.</translation>
 <translation id="2317666076142640974">Ta en sniktitt på det nye <ph name="LINK_BEGIN" />Chrome Eksternt skrivebord-nettprogrammet<ph name="LINK_END" />. Vi vil gjerne høre hva du synes.</translation>
 <translation id="2320166752086256636">Skjul tastaturet</translation>
-<translation id="2332192922827071008">Åpne Innstillinger</translation>
 <translation id="2353140552984634198">Du kan trygt bruke denne datamaskinen med Chromoting.</translation>
 <translation id="2359808026110333948">Fortsett</translation>
 <translation id="2366718077645204424">Kunne ikke nå verten. Dette er sannsynligvis på grunn av innstillingene for nettverket du bruker.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Koblet til <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">MERK: For å sikre at alle hurtigtastene er tilgjengelige, kan du konfigurere Chrome Eksternt skrivebord til «Åpne som vindu».</translation>
 <translation id="2540992418118313681">Har du lyst til å dele denne datamaskinen slik at en annen bruker kan se og kontrollere den?</translation>
-<translation id="254771646005658629">La eksterne brukere styre denne Macen</translation>
 <translation id="2579271889603567289">Verten kræsjet eller kunne ikke starte.</translation>
 <translation id="2599300881200251572">Med denne tjenesten kan du motta innkommende tilkoblinger fra Chrome Eksternt skrivebord-klienter.</translation>
 <translation id="2647232381348739934">Chromoting-tjeneste</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Programmet kunne ikke tilbakestilles. Du kan likevel sende inn en feilrapport.</translation>
 <translation id="5419418238395129586">Sist på nett: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Verten har slått seg av.</translation>
-<translation id="5463789431147491241">For å bruke <ph name="PRODUCT_NAME" /> på denne Macen, følg disse trinnene:
-
-Velg «<ph name="BUTTON_NAME" />» nedenfor. I innstillinger for sikkerhet og personvern merker du av i boksen ved siden av «<ph name="SERVICE_SCRIPT_NAME" />».
-
-Hvis det allerede er merket av for «<ph name="SERVICE_SCRIPT_NAME" />», fjern avmerkingen og merk deretter av på nytt.</translation>
 <translation id="5510035215749041527">Koble fra nå</translation>
 <translation id="5593560073513909978">Tjenesten er ikke tilgjengelig for øyeblikket. Prøv på nytt senere.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_pl.xtb b/remoting/resources/remoting_strings_pl.xtb
index 2a416a3..89098e2 100644
--- a/remoting/resources/remoting_strings_pl.xtb
+++ b/remoting/resources/remoting_strings_pl.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Sesja aplikacji <ph name="APPLICATION_NAME" /> jest od jakiegoś czasu nieaktywna i zostanie wkrótce zakończona.</translation>
 <translation id="2317666076142640974">Zobacz, jak wygląda nowa <ph name="LINK_BEGIN" />aplikacja internetowa Pulpit zdalny Chrome<ph name="LINK_END" /> i podziel się z nami opinią.</translation>
 <translation id="2320166752086256636">Ukryj klawiaturę</translation>
-<translation id="2332192922827071008">Otwórz Ustawienia</translation>
 <translation id="2353140552984634198">Możesz bezpiecznie korzystać z tego komputera przez Chromoting.</translation>
 <translation id="2359808026110333948">Dalej</translation>
 <translation id="2366718077645204424">Nie można połączyć się z hostem. Problem prawdopodobnie wynika z konfiguracji Twojej sieci.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Połączono z: <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">UWAGA: aby wszystkie skróty klawiszowe były dostępne, ustaw Pulpit zdalny Chrome na „Otwórz jako okno”.</translation>
 <translation id="2540992418118313681">Chcesz udostępnić ten komputer innemu użytkownikowi, by mógł przeglądać jego zawartość i sterować nim?</translation>
-<translation id="254771646005658629">Zezwól użytkownikom zdalnym na sterowanie tym Makiem</translation>
 <translation id="2579271889603567289">Host nie uruchomił się lub wystąpił na nim błąd.</translation>
 <translation id="2599300881200251572">Ta usługa umożliwia obsługę połączeń przychodzących z klientów Pulpitu zdalnego Chrome.</translation>
 <translation id="2647232381348739934">Usługa Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Nie można zresetować aplikacji. Wciąż możesz przesłać zgłoszenie błędu.</translation>
 <translation id="5419418238395129586">Ostatnio online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Host został wyłączony.</translation>
-<translation id="5463789431147491241">Aby używać usługi <ph name="PRODUCT_NAME" /> na tym Maku:
-
-Kliknij „<ph name="BUTTON_NAME" />” poniżej. W ustawieniach Prywatność i bezpieczeństwo zaznacz „<ph name="SERVICE_SCRIPT_NAME" />”.
-
-Jeśli pole „<ph name="SERVICE_SCRIPT_NAME" />” jest już zaznaczone, odznacz je i zaznacz ponownie.</translation>
 <translation id="5510035215749041527">Odłącz teraz</translation>
 <translation id="5593560073513909978">Usługa jest tymczasowo niedostępna. Spróbuj ponownie później.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_pt-BR.xtb b/remoting/resources/remoting_strings_pt-BR.xtb
index 896d4db..7de3a97d 100644
--- a/remoting/resources/remoting_strings_pt-BR.xtb
+++ b/remoting/resources/remoting_strings_pt-BR.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Sua sessão do <ph name="APPLICATION_NAME" /> está inativa há um tempo e será desconectada em breve.</translation>
 <translation id="2317666076142640974">Dê uma olhada no novo <ph name="LINK_BEGIN" />app da Web da Área de trabalho remota do Google Chrome<ph name="LINK_END" />. Adoraríamos receber seu feedback.</translation>
 <translation id="2320166752086256636">Ocultar teclado</translation>
-<translation id="2332192922827071008">Abrir preferências</translation>
 <translation id="2353140552984634198">Com o Chromoting, você pode acessar este computador com segurança.</translation>
 <translation id="2359808026110333948">Continuar</translation>
 <translation id="2366718077645204424">Não é possível acessar o host. Isso se deve, provavelmente, à configuração da rede que você está usando.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Conectado a <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">OBSERVAÇÃO: para garantir que todos os atalhos do teclado estejam disponíveis, você pode configurar a Área de trabalho remota do Google Chrome para "Abrir como janela".</translation>
 <translation id="2540992418118313681">Gostaria de compartilhar este computador para que outro usuário o veja e controle?</translation>
-<translation id="254771646005658629">Permitir que usuários remotos controlem este Mac</translation>
 <translation id="2579271889603567289">Ocorreu uma falha no host ou não foi possível iniciá-lo.</translation>
 <translation id="2599300881200251572">Este serviço permite conexões de entrada a partir de clientes da Área de trabalho remota do Google Chrome.</translation>
 <translation id="2647232381348739934">Serviço Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Não foi possível redefinir o aplicativo. Você ainda pode enviar um relatório de bug.</translation>
 <translation id="5419418238395129586">Última conexão: <ph name="DATE" /></translation>
 <translation id="544077782045763683">O host foi desligado.</translation>
-<translation id="5463789431147491241">Para usar o <ph name="PRODUCT_NAME" /> neste Mac, siga estas etapas:
-
-Selecione "<ph name="BUTTON_NAME" />" abaixo. Nas suas preferências de "Segurança e Privacidade", marque a caixa ao lado de "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Se a caixa de "<ph name="SERVICE_SCRIPT_NAME" />" já estiver marcada, desmarque e marque novamente.</translation>
 <translation id="5510035215749041527">Desconectar agora</translation>
 <translation id="5593560073513909978">O serviço está temporariamente indisponível. Tente novamente mais tarde.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_pt-PT.xtb b/remoting/resources/remoting_strings_pt-PT.xtb
index 600080a..1b6d3ff8 100644
--- a/remoting/resources/remoting_strings_pt-PT.xtb
+++ b/remoting/resources/remoting_strings_pt-PT.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">A sua sessão de <ph name="APPLICATION_NAME" /> está inativa há algum tempo e será desligada dentro de momentos.</translation>
 <translation id="2317666076142640974">Conheça em primeira mão a nova <ph name="LINK_BEGIN" />aplicação Web do Ambiente de Trabalho Remoto do Chrome<ph name="LINK_END" />. Gostaríamos de receber os seus comentários.</translation>
 <translation id="2320166752086256636">Ocultar teclado</translation>
-<translation id="2332192922827071008">Abrir as Preferências</translation>
 <translation id="2353140552984634198">Pode aceder com segurança a este computador utilizando o Chromoting.</translation>
 <translation id="2359808026110333948">Continuar</translation>
 <translation id="2366718077645204424">Não é possível contactar o anfitrião. Provavelmente, isso deve-se à configuração da rede que está a utilizar.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Ligado a <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NOTA: Para garantir que todos os atalhos de teclado estão disponíveis, pode configurar o Ambiente de Trabalho Remoto do Chrome para "Abrir como janela".</translation>
 <translation id="2540992418118313681">Pretende partilhar este computador e permitir que outro utilizador o veja e controle?</translation>
-<translation id="254771646005658629">Permita que utilizadores remotos controlem este Mac</translation>
 <translation id="2579271889603567289">Falha do anfitrião ou falha ao iniciar o anfitrião.</translation>
 <translation id="2599300881200251572">Este serviço permite receber ligações de clientes do Ambiente de Trabalho Remoto do Chrome.</translation>
 <translation id="2647232381348739934">Serviço Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Não foi possível repor a aplicação. Ainda pode enviar um relatório de erros.</translation>
 <translation id="5419418238395129586">Último acesso online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">O anfitrião foi desligado.</translation>
-<translation id="5463789431147491241">Para utilizar o <ph name="PRODUCT_NAME" /> neste Mac, siga estes passos:
-
-Selecione "<ph name="BUTTON_NAME" />" abaixo. Nas preferências de Segurança e privacidade, selecione a caixa junto a "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Se "<ph name="SERVICE_SCRIPT_NAME" />" já estiver selecionado, desselecione-o e volte a selecioná-lo.</translation>
 <translation id="5510035215749041527">Desligar agora</translation>
 <translation id="5593560073513909978">O serviço está temporariamente indisponível. Tente novamente mais tarde.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_ro.xtb b/remoting/resources/remoting_strings_ro.xtb
index 9e6bf1d..2fccb37 100644
--- a/remoting/resources/remoting_strings_ro.xtb
+++ b/remoting/resources/remoting_strings_ro.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Sesiunea <ph name="APPLICATION_NAME" /> este inactivă de ceva timp și în curând va fi deconectată.</translation>
 <translation id="2317666076142640974">Încearcă în avans noua <ph name="LINK_BEGIN" />aplicație web Desktop la distanță Chrome<ph name="LINK_END" />. Ne-ar face plăcere să primim feedbackul tău.</translation>
 <translation id="2320166752086256636">Ascunde tastatura</translation>
-<translation id="2332192922827071008">Deschide Preferințele</translation>
 <translation id="2353140552984634198">Puteți accesa acest computer în siguranță utilizând Chromoting.</translation>
 <translation id="2359808026110333948">Continuă</translation>
 <translation id="2366718077645204424">Gazda nu poate fi accesată. Acest lucru este cauzat, probabil, de configurația rețelei pe care o utilizați.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Conectat la <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">NOTĂ: pentru a vă asigura că toate comenzile rapide de la tastatură sunt disponibile, puteți seta Desktop la distanță Chrome în modul „Deschideți ca fereastră”.</translation>
 <translation id="2540992418118313681">Dorești să permiți accesul la acest computer altui utilizator, pentru ca acesta să îl poată vedea și controla?</translation>
-<translation id="254771646005658629">Permite utilizatorilor la distanță să controleze acest Mac</translation>
 <translation id="2579271889603567289">Gazda s-a blocat sau nu a pornit.</translation>
 <translation id="2599300881200251572">Acest serviciu permite conexiuni primite de la clienți Desktop la distanță Chrome.</translation>
 <translation id="2647232381348739934">Serviciul Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Aplicația nu a putut fi resetată. Poți totuși să trimiți un raport de eroare.</translation>
 <translation id="5419418238395129586">Ultima dată online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Gazda a fost închisă.</translation>
-<translation id="5463789431147491241">Pentru a folosi <ph name="PRODUCT_NAME" /> pe acest Mac, urmează acești pași:
-
-selectează „<ph name="BUTTON_NAME" />” de mai jos; în preferințele pentru securitate și confidențialitate, bifează caseta de lângă „<ph name="SERVICE_SCRIPT_NAME" />”;
-
-dacă opțiunea „<ph name="SERVICE_SCRIPT_NAME" />” este deja bifată, debifeaz-o și bifeaz-o din nou.</translation>
 <translation id="5510035215749041527">Deconectează acum</translation>
 <translation id="5593560073513909978">Serviciul este temporar indisponibil. Încercați din nou mai târziu.</translation>
 <translation id="5601503069213153581">Cod PIN</translation>
diff --git a/remoting/resources/remoting_strings_ru.xtb b/remoting/resources/remoting_strings_ru.xtb
index ae6b661d..2b0f455 100644
--- a/remoting/resources/remoting_strings_ru.xtb
+++ b/remoting/resources/remoting_strings_ru.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Приложение <ph name="APPLICATION_NAME" /> бездействует уже некоторое время. Сессия скоро будет завершена.</translation>
 <translation id="2317666076142640974">Испытайте наше новое веб-приложение <ph name="LINK_BEGIN" />Удаленный рабочий стол Chrome<ph name="LINK_END" /> и поделитесь мнением о нем.</translation>
 <translation id="2320166752086256636">Скрыть клавиатуру</translation>
-<translation id="2332192922827071008">Открыть настройки</translation>
 <translation id="2353140552984634198">Вы можете безопасно подключиться к этому компьютеру с помощью Пульта Chrome.</translation>
 <translation id="2359808026110333948">Продолжить</translation>
 <translation id="2366718077645204424">Не удалось связаться с хостом. Вероятная причина – используемые вами настройки сети.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Подключено к устройству "<ph name="HOSTNAME" />"</translation>
 <translation id="2512228156274966424">ПРИМЕЧАНИЕ. Чтобы пользоваться всеми быстрыми клавишами, Удаленный рабочий стол Chrome можно открывать в отдельном окне, задав соответствующие настройки.</translation>
 <translation id="2540992418118313681">Предоставить доступ к этому компьютеру другому пользователю?</translation>
-<translation id="254771646005658629">Разрешите пользователям управлять этим устройством удаленно</translation>
 <translation id="2579271889603567289">Сбой хоста или ошибка при его запуске.</translation>
 <translation id="2599300881200251572">Данная служба обеспечивает входящие соединения от клиентов Удаленного рабочего стола Chrome.</translation>
 <translation id="2647232381348739934">Служба Пульта Chrome</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Не удалось сбросить настройки приложения. Вы можете отправить сообщение об ошибке.</translation>
 <translation id="5419418238395129586">Последний раз в сети: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Хост отключен.</translation>
-<translation id="5463789431147491241">Чтобы использовать <ph name="PRODUCT_NAME" /> на этом устройстве, выполните следующие шаги.
-
-Нажмите кнопку "<ph name="BUTTON_NAME" />" ниже. В разделе "Защита и безопасность" установите флажок рядом с пунктом <ph name="SERVICE_SCRIPT_NAME" />.
-
-Если пункт <ph name="SERVICE_SCRIPT_NAME" /> уже отмечен флажком, снимите его и снова установите.</translation>
 <translation id="5510035215749041527">Отключить</translation>
 <translation id="5593560073513909978">Служба временно недоступна. Повторите попытку позже.</translation>
 <translation id="5601503069213153581">PIN-код</translation>
diff --git a/remoting/resources/remoting_strings_sk.xtb b/remoting/resources/remoting_strings_sk.xtb
index 0427bc8..36d26eb 100644
--- a/remoting/resources/remoting_strings_sk.xtb
+++ b/remoting/resources/remoting_strings_sk.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Relácia vašej aplikácie <ph name="APPLICATION_NAME" /> je už istý čas neaktívna a čoskoro bude odpojená.</translation>
 <translation id="2317666076142640974">Vyskúšajte novú <ph name="LINK_BEGIN" />webovú aplikáciu Vzdialená plocha Chrome<ph name="LINK_END" />. Radi by sme počuli vašu spätnú väzbu.</translation>
 <translation id="2320166752086256636">Skryť klávesnicu</translation>
-<translation id="2332192922827071008">Otvoriť predvoľby</translation>
 <translation id="2353140552984634198">K tomuto počítaču môžete bezpečne pristupovať pomocou aplikácie Chromoting.</translation>
 <translation id="2359808026110333948">Pokračovať</translation>
 <translation id="2366718077645204424">Hostiteľa sa nepodarilo nájsť. Pravdepodobne je to spôsobené konfiguráciou siete, ktorú používate.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Pripojené k zariadeniu <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">POZNÁMKA: Ak chcete mať k dispozícii všetky klávesové skratky, povoľte v konfigurácii Vzdialenej plochy Chrome možnosť Otvoriť ako okno.</translation>
 <translation id="2540992418118313681">Chcete tento počítač zdieľať s ďalším používateľom, aby ho mohol zobraziť a ovládať?</translation>
-<translation id="254771646005658629">Povolenie vzdialeným používateľom ovládať tento Mac</translation>
 <translation id="2579271889603567289">Hostiteľ zlyhal alebo sa ho nepodarilo spustiť.</translation>
 <translation id="2599300881200251572">Táto služba povoľuje prichádzajúce pripojenia od klientov Vzdialenej plochy Chrome.</translation>
 <translation id="2647232381348739934">Služba Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Aplikáciu sa nepodarilo resetovať. Stále však môžete odoslať hlásenie o chybách.</translation>
 <translation id="5419418238395129586">Naposledy online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Hostiteľ je vypnutý</translation>
-<translation id="5463789431147491241">Ak chcete používať <ph name="PRODUCT_NAME" /> v tomto Macu, postupujte nasledovne:
-
-Vyberte tlačidlo <ph name="BUTTON_NAME" /> nižšie. V nastaveniach zabezpečenia a ochrany súkromia začiarknite políčko vedľa možnosti <ph name="SERVICE_SCRIPT_NAME" />.
-
-Ak je políčko <ph name="SERVICE_SCRIPT_NAME" /> už začiarknuté, zrušte jeho začiarknutie a začiarknite ho znova.</translation>
 <translation id="5510035215749041527">Odpojiť</translation>
 <translation id="5593560073513909978">Služba je dočasne nedostupná. Skúste to znova neskôr.</translation>
 <translation id="5601503069213153581">Kód PIN</translation>
diff --git a/remoting/resources/remoting_strings_sl.xtb b/remoting/resources/remoting_strings_sl.xtb
index 113e563..77ee725 100644
--- a/remoting/resources/remoting_strings_sl.xtb
+++ b/remoting/resources/remoting_strings_sl.xtb
@@ -47,7 +47,6 @@
 <translation id="2314101195544969792">Seja aplikacije <ph name="APPLICATION_NAME" /> je že nekaj časa nedejavna, zato bo povezava kmalu prekinjena.</translation>
 <translation id="2317666076142640974">Oglejte si novo <ph name="LINK_BEGIN" />spletno aplikacijo Oddaljeno namizje za Chrome<ph name="LINK_END" /> pred izdajo. Veseli bomo vaših povratnih informacij.</translation>
 <translation id="2320166752086256636">Skrij tipkovnico</translation>
-<translation id="2332192922827071008">Odpri nastavitve</translation>
 <translation id="2353140552984634198">Oddaljeno povezovanje s Chromom omogoča varen dostop do tega računalnika.</translation>
 <translation id="2359808026110333948">Naprej</translation>
 <translation id="2366718077645204424">Ni mogoče vzpostaviti povezave z gostiteljem; verjetno zaradi konfiguracije omrežja, ki ga uporabljate.</translation>
@@ -56,7 +55,6 @@
 <translation id="2499160551253595098">Pomagajte nam izboljšati Oddaljeno namizje za Chrome, tako da nam dovolite zbiranje statističnih podatkov o uporabi in poročil o zrušitvah.</translation>
 <translation id="2512228156274966424">OPOMBA: Če želite zagotoviti, da bodo na voljo vse bližnjične tipke, lahko Oddaljeno namizje za Chrome konfigurirate na »Odpri kot okno«.</translation>
 <translation id="2540992418118313681">Ali želite ta računalnik deliti z drugimi, tako da bo imel drug uporabnik do njega dostop in ga bo lahko nadziral?</translation>
-<translation id="254771646005658629">Oddaljenim uporabnikom dovoli upravljanje tega Maca</translation>
 <translation id="2579271889603567289">Gostitelj se je zrušil ali ga ni bilo mogoče zagnati.</translation>
 <translation id="2599300881200251572">Ta storitev omogoča dohodne povezave iz odjemalcev za Oddaljeno namizje za Chrome.</translation>
 <translation id="2647232381348739934">Storitev Oddaljeno povezovanje s Chromom</translation>
@@ -177,11 +175,6 @@
 <translation id="5397086374758643919">Odstranitveni program gostitelja za Oddaljeno namizje za Chrome</translation>
 <translation id="5419185025274123272">Aplikacije ni bilo mogoče ponastaviti. Kljub temu lahko pošljete poročilo o napakah.</translation>
 <translation id="544077782045763683">Gostitelj se je zaustavil.</translation>
-<translation id="5463789431147491241">Če želite uporabljati izdelek <ph name="PRODUCT_NAME" /> v tem Macu, upoštevajte ta navodila:
-
-Spodaj izberite »<ph name="BUTTON_NAME" />«. V podoknu z nastavitvami za varnost in zasebnost izberite polje zraven »<ph name="SERVICE_SCRIPT_NAME" />«.
-
-Če je možnost »<ph name="SERVICE_SCRIPT_NAME" />« že označena, jo morate morda počistiti in nato znova označiti.</translation>
 <translation id="5510035215749041527">Prekini povezavo</translation>
 <translation id="5593560073513909978">Ta storitev začasno ni na voljo. Poskusite znova pozneje.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_sr.xtb b/remoting/resources/remoting_strings_sr.xtb
index 3fcba81..566ec40 100644
--- a/remoting/resources/remoting_strings_sr.xtb
+++ b/remoting/resources/remoting_strings_sr.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Сесија апликације <ph name="APPLICATION_NAME" /> је неактивна неко време и веза ће ускоро бити прекинута.</translation>
 <translation id="2317666076142640974">Погледајте нову <ph name="LINK_BEGIN" />веб-апликацију Chrome удаљени рачунар<ph name="LINK_END" />. Желели бисмо да добијемо повратне информације.</translation>
 <translation id="2320166752086256636">Сакриј тастатуру</translation>
-<translation id="2332192922827071008">Отвори Подешавања</translation>
 <translation id="2353140552984634198">Овом рачунару можете безбедно да приступите помоћу Chromoting-а.</translation>
 <translation id="2359808026110333948">Наставите</translation>
 <translation id="2366718077645204424">Није могуће успоставити везу са хостом. До овога је вероватно дошло због конфигурације мреже коју користите.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Повезани сте са <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">НАПОМЕНА: Да бисте обезбедили доступност свих тастерских пречица, можете да конфигуришете Chrome удаљени рачунар на „Отвори као прозор“.</translation>
 <translation id="2540992418118313681">Желите ли да делите овај рачунар да би други корисник могао да га види и контролише?</translation>
-<translation id="254771646005658629">Дозволите да удаљени корисници управљају овим Mac-ом</translation>
 <translation id="2579271889603567289">Хост је отказао или није успео да се покрене.</translation>
 <translation id="2599300881200251572">Ова услуга омогућава долазне везе клијената Chrome удаљеног рачунара.</translation>
 <translation id="2647232381348739934">Услуга Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Ресетовање апликације није успело. И даље можете да пошаљете извештај о грешци.</translation>
 <translation id="5419418238395129586">Последњи пут онлајн: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Хост се искључио.</translation>
-<translation id="5463789431147491241">Да бисте користили <ph name="PRODUCT_NAME" /> на овом Mac-у, пратите следеће кораке:
-
-Изаберите „<ph name="BUTTON_NAME" />“ у наставку. У подешавањима Безбедности и приватност означите поље поред ставке „<ph name="SERVICE_SCRIPT_NAME" />“.
-
-Ако је поље поред ставке „<ph name="SERVICE_SCRIPT_NAME" />“ већ означено, уклоните ознаку па га поново означите.</translation>
 <translation id="5510035215749041527">Прекини везу одмах</translation>
 <translation id="5593560073513909978">Услуга је привремено недоступна. Пробајте поново касније.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_sv.xtb b/remoting/resources/remoting_strings_sv.xtb
index 1e06b23b..597c08a 100644
--- a/remoting/resources/remoting_strings_sv.xtb
+++ b/remoting/resources/remoting_strings_sv.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Sessionen med <ph name="APPLICATION_NAME" /> har varit inaktiv en stund och kommer snart att kopplas från.</translation>
 <translation id="2317666076142640974">Få en förhandstitt på den nya <ph name="LINK_BEGIN" />webbappen Chrome Remote Desktop<ph name="LINK_END" />. Vi vill gärna höra vad du tycker!</translation>
 <translation id="2320166752086256636">Dölj tangentbordet</translation>
-<translation id="2332192922827071008">Öppna inställningarna</translation>
 <translation id="2353140552984634198">Du kan få säker åtkomst till den här datorn med Chromoting.</translation>
 <translation id="2359808026110333948">Fortsätt</translation>
 <translation id="2366718077645204424">Det går inte att nå värden. Detta beror troligen på konfigurationen av nätverket som du använder.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Ansluten till <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">Obs! Om du vill vara säker på att alla kortkommandon är tillgängliga kan du ställa in Chrome Remote Desktop på Öppna som fönster.</translation>
 <translation id="2540992418118313681">Vill du dela den här datorn så att en annan användare kan visa och styra den?</translation>
-<translation id="254771646005658629">Tillåt fjärranvändare att styra denna Mac</translation>
 <translation id="2579271889603567289">Värden kraschade eller gick inte att starta.</translation>
 <translation id="2599300881200251572">Med den här tjänsten aktiveras inkommande anslutningar från Chrome Remote Desktop-klienter.</translation>
 <translation id="2647232381348739934">Tjänsten Chromoting</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Det gick inte att återställa programmet. Du kan fortfarande skicka en felrapport.</translation>
 <translation id="5419418238395129586">Senast online: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Värdenheten har stängts av.</translation>
-<translation id="5463789431147491241">Om du vill använda <ph name="PRODUCT_NAME" /> på denna Mac följer du dessa steg:
-
-Välj <ph name="BUTTON_NAME" /> nedan. Markera kryssrutan bredvid <ph name="SERVICE_SCRIPT_NAME" /> på inställningspanelen Säkerhet och sekretess.
-
-Om <ph name="SERVICE_SCRIPT_NAME" /> redan har markerats avmarkerar du rutan och markerar den på nytt.</translation>
 <translation id="5510035215749041527">Koppla från nu</translation>
 <translation id="5593560073513909978">Tjänsten är inte tillgänglig för närvarande. Försök igen senare.</translation>
 <translation id="5601503069213153581">PIN-kod</translation>
diff --git a/remoting/resources/remoting_strings_sw.xtb b/remoting/resources/remoting_strings_sw.xtb
index 02c9775..876456b 100644
--- a/remoting/resources/remoting_strings_sw.xtb
+++ b/remoting/resources/remoting_strings_sw.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Kipindi chako cha <ph name="APPLICATION_NAME" /> hakijawa kikitumika kwa muda na kitaondolewa baada ya muda mfupi.</translation>
 <translation id="2317666076142640974">Ijaribu <ph name="LINK_BEGIN" />programu mpya ya wavuti ya Chrome ya Ufikiaji wa Kompyuta kutoka Mbali<ph name="LINK_END" />. Tungependa kupata maoni yako.</translation>
 <translation id="2320166752086256636">Ficha kibodi</translation>
-<translation id="2332192922827071008">Fungua Mapendeleo</translation>
 <translation id="2353140552984634198">Unaweza kufikia kwa usalama kompyuta hii kutumia Chromoting.</translation>
 <translation id="2359808026110333948">Endelea</translation>
 <translation id="2366718077645204424">Haiwezi kufikia seva pangishi. Labda hii ni kwa sababu ya usanidi wa mtandao unaotumia.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Imeunganisha kwenye <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">KUMBUKA: Ili kuhakikisha kuwa mikato yote ya kibodi inapatikana, unaweza kusanidi Kompyuta ya Mbali ya Chrome ili "Ifungue kama dirisha'’.</translation>
 <translation id="2540992418118313681">Ungependa kushiriki kompyuta hii kwa mtumiaji mwingine ili kuangalia na kudhibiti?</translation>
-<translation id="254771646005658629">Ruhusu watumiaji wadhibiti Mac hii kutoka mbali</translation>
 <translation id="2579271889603567289">Kompyuta pangishi imeacha kufanya kazi au imeshindwa kufunguka.</translation>
 <translation id="2599300881200251572">Huduma hii inawezesha miunganisho inayoingia kutoka kwa viteja vya Kompyuta za Mbali za Chrome</translation>
 <translation id="2647232381348739934">Huduma ya Chromoting</translation>
@@ -185,9 +183,6 @@
 <translation id="5419185025274123272">Haikuweza kuweka upya programu. Bado unaweza kutuma ripoti ya hitilafu.</translation>
 <translation id="5419418238395129586">Mara ya mwisho kuwa mtandaoni: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Pangishi imezima.</translation>
-<translation id="5463789431147491241">Ili utumie <ph name="PRODUCT_NAME" /> kwenye Mac hii, fuata hatua hizi:
-Chagua '<ph name="BUTTON_NAME" />' hapa chini. Katika sehemu ya mapendeleo yako ya Usalama na Faragha, chagua kisanduku kilicho karibu na '<ph name="SERVICE_SCRIPT_NAME" />'.
-Ikiwa '<ph name="SERVICE_SCRIPT_NAME" />' tayari imechaguliwa, batilisha uteuzi kisha uichague tena.</translation>
 <translation id="5510035215749041527">Ondoa sasa</translation>
 <translation id="5593560073513909978">Huduma haipatikani kwa muda. Tafadhali jaribu tena baadaye.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_ta.xtb b/remoting/resources/remoting_strings_ta.xtb
index cd65d42..d0e4a1e 100644
--- a/remoting/resources/remoting_strings_ta.xtb
+++ b/remoting/resources/remoting_strings_ta.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792"><ph name="APPLICATION_NAME" />க்கான அமர்வின் இயக்கம் சிறிது நேரம் செயல்படுத்தப்படாது மற்றும் விரைவில் இது துண்டிக்கப்படும்.</translation>
 <translation id="2317666076142640974">புதிய <ph name="LINK_BEGIN" />Chrome தொலைநிலை டெஸ்க்டாப் இணையப் பயன்பாட்டைப்<ph name="LINK_END" /> பயன்படுத்திப் பாருங்கள். உங்கள் கருத்துகளைக் கேட்க விரும்புகிறோம்.</translation>
 <translation id="2320166752086256636">விசைப்பலகையை மறை</translation>
-<translation id="2332192922827071008">விருப்பத்தேர்வுகளைத் திற</translation>
 <translation id="2353140552984634198">Chromotingகைப் பயன்படுத்தி இந்தக் கம்ப்யூட்டரைப் பாதுகாப்பாக நீங்கள் அணுகலாம்.</translation>
 <translation id="2359808026110333948">தொடர்க</translation>
 <translation id="2366718077645204424">ஹோஸ்ட்டை அடைய முடியவில்லை. இததற்கு நீங்கள் பயன்படுத்தும் நெட்வொர்க்கின் உள்ளமைவு காரணமாக இருக்கலாம்.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> உடன் இணைக்கப்பட்டது</translation>
 <translation id="2512228156274966424">குறிப்பு: எல்லா விசைப்பலகைக் குறுக்குவழிகளும் இருப்பதை உறுதிப்படுத்த, ‘சாளரமாக திற" என்பதற்கு Chrome தொலைநிலை டெஸ்க்டாப்பை  உள்ளமைக்கலாம்.</translation>
 <translation id="2540992418118313681">பிறர் இந்தக் கம்ப்யூட்டரைப் பார்க்கவும் கட்டுப்படுத்தவும், அதைப் பகிர்ந்து கொள்ள விரும்புகிறீர்களா?</translation>
-<translation id="254771646005658629">இந்த Mac சாதனத்தை தொலைநிலைப் பயனர்கள் கட்டுப்படுத்த அனுமதிக்கவும்</translation>
 <translation id="2579271889603567289">ஹோஸ்ட் சிதைந்தது அல்லது தொடங்கவே இல்லை.</translation>
 <translation id="2599300881200251572">இந்தச் சேவை Chrome தொலைநிலை டெஸ்க்டாப் க்ளையன்ட்களிடமிருந்து வரும் இணைப்புகளை இயக்குகிறது.</translation>
 <translation id="2647232381348739934">குரோமோட்டிங் சேவை</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">பயன்பாட்டை மீட்டமைக்க முடியவில்லை. தொடர்ந்து நீங்கள் பிழைத் தொடர்பான புகாரை அனுப்பலாம்.</translation>
 <translation id="5419418238395129586">கடைசியாக ஆன்லைனில் இருந்தது: <ph name="DATE" /></translation>
 <translation id="544077782045763683">ஹோஸ்ட் இயங்கவில்லை.</translation>
-<translation id="5463789431147491241">Macகில் <ph name="PRODUCT_NAME" /> ஐப் பயன்படுத்த இவற்றை செய்யவும்:
-
-கீழேயுள்ள '<ph name="BUTTON_NAME" />' பட்டனை கிளிக் செய்யவும். உங்கள் 'பாதுகாப்பும் தனியுரிமையும்’ விருப்பத்தேர்வுகளில் ’<ph name="SERVICE_SCRIPT_NAME" />'க்கு அடுத்துள்ள பெட்டியைத் தேர்வு செய்யவும்.
-
-'<ph name="SERVICE_SCRIPT_NAME" />' என்பது ஏற்கெனவே தேர்ந்தெடுக்கப்பட்டிருந்தால் அதைத் தேர்வுநீக்கி மீண்டும் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="5510035215749041527">இப்போது துண்டிக்கவும்</translation>
 <translation id="5593560073513909978">சேவை தற்காலிகமாக கிடைக்கவில்லை. பின்னர் மீண்டும் முயலவும்.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb
index 83023afe..d0f9f91 100644
--- a/remoting/resources/remoting_strings_te.xtb
+++ b/remoting/resources/remoting_strings_te.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">మీ <ph name="APPLICATION_NAME" /> సెషన్ కొద్ది సమయం నుండి ఇన్‌యాక్టివ్‌గా ఉంది, కనుక కాసేపటిలో డిస్‌కనెక్ట్ చేయబడుతుంది.</translation>
 <translation id="2317666076142640974">కొత్త <ph name="LINK_BEGIN" />Chrome రిమోట్ డెస్క్‌టాప్ వెబ్ యాప్‌‌<ph name="LINK_END" />ను పరిశీలించండి. మేము మీ అభిప్రాయాన్ని తెలుసుకోవాల‌ని అనుకుంటున్నాము.</translation>
 <translation id="2320166752086256636">కీబోర్డ్‌ను దాచు</translation>
-<translation id="2332192922827071008">ప్రాధాన్యతలను తెరువు</translation>
 <translation id="2353140552984634198">మీరు Chromotingను ఉపయోగించి ఈ కంప్యూటర్‌ను సురక్షితంగా యాక్సెస్ చేయవచ్చు.</translation>
 <translation id="2359808026110333948">కొనసాగించు</translation>
 <translation id="2366718077645204424">హోస్ట్‌కు చేరుకోవడం సాధ్యపడలేదు. ఇది బహుశా మీరు ఉపయోగిస్తున్న నెట్‌వర్క్ కాన్ఫిగరేషన్ వల్ల ఏర్పడి ఉండవచ్చు.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" />కి కనెక్ట్ అయ్యింది</translation>
 <translation id="2512228156274966424">గమనిక: అన్ని కీబోర్డ్ షార్ట్‌కట్‌లు అందుబాటులో ఉన్నాయని నిర్ధారించుకోవడానికి, మీరు Chrome రిమోట్ డెస్క్‌టాప్‌ను ‘విండోగా తెరువు’కు కాన్ఫిగర్ చేయవచ్చు.</translation>
 <translation id="2540992418118313681">మీరు ఈ కంప్యూటర్‌ను మరో వినియోగదారు చూడటానికి మరియు నియంత్రించడానికి దీన్ని షేర్‌ చేయాలని అనుకుంటున్నారా?</translation>
-<translation id="254771646005658629">ఈ మెషిన్‌ను నియంత్రించడానికి రిమోట్ వినియోగదారులను అనుమతించండి</translation>
 <translation id="2579271889603567289">హోస్ట్ క్రాష్ అయింది లేదా ప్రారంభించడంలో విఫలమైంది.</translation>
 <translation id="2599300881200251572">ఈ సేవ Chrome రిమోట్ డెస్క్‌టాప్ క్లయింట్‌ల నుండి ఇన్‌కమింగ్ కనెక్షన్‌లను అనుమతిస్తుంది.</translation>
 <translation id="2647232381348739934">Chromoting సేవ</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">యాప్‌ను రీసెట్ చేయలేకపోయింది. అయినప్పటికీ, మీరు బగ్ నివేదికను పంపవచ్చు.</translation>
 <translation id="5419418238395129586">చివరిగా ఆన్‌లైన్‌లో ఉన్నది: <ph name="DATE" /></translation>
 <translation id="544077782045763683">హోస్ట్ షట్‌డౌన్ అయ్యింది.</translation>
-<translation id="5463789431147491241"><ph name="PRODUCT_NAME" />ను ఈ Macలో ఉపయోగించడానికి, ఈ దశలను అనుసరించండి:
-
-కింది '<ph name="BUTTON_NAME" />'ను ఎంచుకోండి. మీ భద్రత మరియు గోప్యతా ప్రాధాన్యతలలో, '<ph name="SERVICE_SCRIPT_NAME" />' పక్కన ఉన్న బాక్స్‌ను ఎంచుకోండి.
-
-'<ph name="SERVICE_SCRIPT_NAME" />' ఇప్పటికే ఎంపిక గుర్తు పెట్టి ఉన్నట్లయితే, గుర్తును తీసివేసి, ఆపై మళ్లీ పెట్టండి.</translation>
 <translation id="5510035215749041527">ఇప్పుడే డిస్‌కనెక్ట్ చేయి</translation>
 <translation id="5593560073513909978">సేవ తాత్కాలికంగా అందుబాటులో లేదు. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_th.xtb b/remoting/resources/remoting_strings_th.xtb
index 4b9bbaac..cbb095bd 100644
--- a/remoting/resources/remoting_strings_th.xtb
+++ b/remoting/resources/remoting_strings_th.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">เซสชัน <ph name="APPLICATION_NAME" /> ไม่มีการใช้งานมาระยะหนึ่งแล้ว และระบบจะยกเลิกการเชื่อมต่อเร็วๆ นี้</translation>
 <translation id="2317666076142640974">ลองใช้<ph name="LINK_BEGIN" />เว็บแอป Chrome Remote Desktop<ph name="LINK_END" /> ใหม่ก่อนใคร เราอยากฟังความคิดเห็นของคุณ</translation>
 <translation id="2320166752086256636">ซ่อนแป้นพิมพ์</translation>
-<translation id="2332192922827071008">เปิดค่ากำหนด</translation>
 <translation id="2353140552984634198">คุณสามารถเข้าถึงคอมพิวเตอร์เครื่องนี้ได้อย่างปลอดภัยโดยใช้ Chromoting</translation>
 <translation id="2359808026110333948">ต่อไป</translation>
 <translation id="2366718077645204424">ไม่สามารถเข้าถึงโฮสต์ อาจเป็นเพราะการกำหนดค่าของเครือข่ายที่คุณกำลังใช้อยู่</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">เชื่อมต่อกับ <ph name="HOSTNAME" /> แล้ว</translation>
 <translation id="2512228156274966424">หมายเหตุ: เพื่อให้มั่นใจว่าทุกแป้นพิมพ์ลัดพร้อมใช้งาน คุณสามารถกำหนดค่า Chrome Remote Desktop เป็น "เปิดเป็นหน้าต่าง"</translation>
 <translation id="2540992418118313681">คุณต้องการจะแชร์คอมพิวเตอร์เครื่องนี้เพื่อให้ผู้ใช้อื่นเห็นและควบคุมไหม</translation>
-<translation id="254771646005658629">อนุญาตให้ผู้ใช้ระยะไกลควบคุม Mac เครื่องนี้</translation>
 <translation id="2579271889603567289">โฮสต์ขัดข้องหรือเริ่มต้นไม่สำเร็จ</translation>
 <translation id="2599300881200251572">บริการนี้จะช่วยให้สามารถใช้การเชื่อมต่อขาเข้าจากไคลเอ็นต์ Chrome Remote Desktop</translation>
 <translation id="2647232381348739934">Chromoting Service</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">ไม่สามารถรีเซ็ตแอปพลิเคชันนี้ คุณยังคงสามารถส่งรายงานข้อบกพร่องได้</translation>
 <translation id="5419418238395129586">ออนไลน์ครั้งล่าสุด: <ph name="DATE" /></translation>
 <translation id="544077782045763683">โฮสต์ปิดตัวลงแล้ว</translation>
-<translation id="5463789431147491241">ทำตามขั้นตอนต่อไปนี้เพื่อใช้ <ph name="PRODUCT_NAME" /> ใน Mac เครื่องนี้
-
-เลือก "<ph name="BUTTON_NAME" />" ด้านล่าง ในค่ากำหนดความปลอดภัยและความเป็นส่วนตัว ให้เลือกช่องข้างๆ "<ph name="SERVICE_SCRIPT_NAME" />"
-
-หากมีการเลือก "<ph name="SERVICE_SCRIPT_NAME" />" ไว้อยู่แล้ว ให้ยกเลิกการเลือกแล้วเลือกอีกครั้ง</translation>
 <translation id="5510035215749041527">ยกเลิกการเชื่อมต่อเลย</translation>
 <translation id="5593560073513909978">ไม่สามารถให้บริการนี้ได้ชั่วคราว โปรดลองอีกครั้งในภายหลัง</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_tr.xtb b/remoting/resources/remoting_strings_tr.xtb
index 4cc88d3..3a88a0d7 100644
--- a/remoting/resources/remoting_strings_tr.xtb
+++ b/remoting/resources/remoting_strings_tr.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792"><ph name="APPLICATION_NAME" /> oturumunuz bir süredir etkin değil ve kısa bir süre sonra bağlantısı kesilecek.</translation>
 <translation id="2317666076142640974">Yeni <ph name="LINK_BEGIN" />Chrome Uzaktan Masaüstü web uygulamasına<ph name="LINK_END" /> önceden göz atın. Geri bildirimlerinizi merakla bekliyoruz.</translation>
 <translation id="2320166752086256636">Klavyeyi gizle</translation>
-<translation id="2332192922827071008">Tercihleri Aç</translation>
 <translation id="2353140552984634198">Chromoting'i kullanarak bu bilgisayara güvenli bir şekilde erişebilirsiniz.</translation>
 <translation id="2359808026110333948">Devam et</translation>
 <translation id="2366718077645204424">Ana bilgisayara erişilemiyor. Bu sorun, kullandığınız ağın yapılandırmasından kaynaklanıyor olabilir.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552"><ph name="HOSTNAME" /> adlı ana makineye bağlandı</translation>
 <translation id="2512228156274966424">NOT: Tüm klavye kısayollarının kullanılabilir olmasını sağlamak için Chrome Uzaktan Masaüstü'nü 'Pencere olarak aç' modunda yapılandırabilirsiniz.</translation>
 <translation id="2540992418118313681">Bu bilgisayarı başka bir kullanıcının görmesi ve kontrol etmesi için paylaşmak istiyor musunuz?</translation>
-<translation id="254771646005658629">Uzak kullanıcıların bu Mac'i kontrol etmesine izin verin</translation>
 <translation id="2579271889603567289">Ana makine kilitlendi veya başlatılamadı.</translation>
 <translation id="2599300881200251572">Bu hizmet Chrome Uzaktan Masaüstü istemcilerinden gelen bağlantıları etkinleştirir.</translation>
 <translation id="2647232381348739934">Chromoting Hizmeti</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Uygulama sıfırlanamadı. Hâlâ bir hata raporu gönderebilirsiniz.</translation>
 <translation id="5419418238395129586">Son çevrimiçi olduğu tarih: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Ana makine kapatıldı.</translation>
-<translation id="5463789431147491241"><ph name="PRODUCT_NAME" /> uygulamasını bu Mac'te kullanmak için aşağıdaki adımları uygulayın:
-
-Aşağıda "<ph name="BUTTON_NAME" />" düğmesini seçin. Güvenlik ve Gizlilik tercihlerinizde "<ph name="SERVICE_SCRIPT_NAME" />" komut dosyası adının yanındaki kutuyu işaretleyin.
-
-"<ph name="SERVICE_SCRIPT_NAME" />" zaten işaretliyse işaretini kaldırın ve ardından tekrar işaretleyin.</translation>
 <translation id="5510035215749041527">Bağlantıyı şimdi kes</translation>
 <translation id="5593560073513909978">Hizmet geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin.</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_uk.xtb b/remoting/resources/remoting_strings_uk.xtb
index 6905332a..978acc3 100644
--- a/remoting/resources/remoting_strings_uk.xtb
+++ b/remoting/resources/remoting_strings_uk.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Сеанс у додатку <ph name="APPLICATION_NAME" /> був неактивний тривалий час. Невдовзі його буде закрито.</translation>
 <translation id="2317666076142640974">Спробуйте новий <ph name="LINK_BEGIN" />веб-додаток Віддалене керування Chrome<ph name="LINK_END" /> перед офіційним випуском. Ми хотіли б отримати ваш відгук.</translation>
 <translation id="2320166752086256636">Сховати клавіатуру</translation>
-<translation id="2332192922827071008">Відкрити налаштування</translation>
 <translation id="2353140552984634198">Ви можете отримати безпечний доступ до цього комп’ютера за допомогою програми Віддалений доступ ОС Chrome.</translation>
 <translation id="2359808026110333948">Продовжити</translation>
 <translation id="2366718077645204424">Не вдається зв’язатися з хостом. Можливо, це пов’язано з конфігурацією мережі, яку ви використовуєте.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">З’єднано з хостом <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">ПРИМІТКА. Щоб переконатися, що всі комбінацій клавіш доступні, можна встановити для Віддаленого керування Chrome параметр "Відкрити вікно".</translation>
 <translation id="2540992418118313681">Дозволити цьому користувачеві бачити цей комп’ютер і керувати ним?</translation>
-<translation id="254771646005658629">Дозвольте віддаленим користувачам керувати цим комп'ютером Mac</translation>
 <translation id="2579271889603567289">Хост не запустився або аварійно завершив роботу.</translation>
 <translation id="2599300881200251572">Ця служба дозволяє встановлювати вхідні з’єднання з клієнтів Віддаленого керування Chrome.</translation>
 <translation id="2647232381348739934">Служба Віддалений доступ ОС Chrome</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Не вдалося скинути дані додатка. Ви можете надіслати звіт про помилку.</translation>
 <translation id="5419418238395129586">Востаннє онлайн: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Хост завершив роботу.</translation>
-<translation id="5463789431147491241">Щоб використовувати <ph name="PRODUCT_NAME" /> на цьому комп'ютері Mac, виконайте кроки нижче.
-
-Виберіть "<ph name="BUTTON_NAME" />" нижче. У вікні налаштувань безпеки та конфіденційності поставте прапорець біля опції "<ph name="SERVICE_SCRIPT_NAME" />".
-
-Якщо опцію "<ph name="SERVICE_SCRIPT_NAME" />" уже вибрано, зніміть прапорець і поставте його знову.</translation>
 <translation id="5510035215749041527">Від’єднати зараз</translation>
 <translation id="5593560073513909978">Ця служба тимчасово недоступна. Повторіть спробу пізніше.</translation>
 <translation id="5601503069213153581">PIN-код</translation>
diff --git a/remoting/resources/remoting_strings_vi.xtb b/remoting/resources/remoting_strings_vi.xtb
index 916761d..0958a5e 100644
--- a/remoting/resources/remoting_strings_vi.xtb
+++ b/remoting/resources/remoting_strings_vi.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">Phiên <ph name="APPLICATION_NAME" /> của bạn đã không hoạt động một thời gian và sẽ sớm bị ngắt kết nối.</translation>
 <translation id="2317666076142640974">Hãy xem trước <ph name="LINK_BEGIN" />ứng dụng web Chrome Remote Desktop<ph name="LINK_END" /> mới. Chúng tôi rất mong nhận được ý kiến phản hồi của bạn.</translation>
 <translation id="2320166752086256636">Ẩn bàn phím</translation>
-<translation id="2332192922827071008">Mở Tùy chọn</translation>
 <translation id="2353140552984634198">Bạn có thể truy cập an toàn vào máy tính này bằng Kết nối từ xa trên Chrome.</translation>
 <translation id="2359808026110333948">Tiếp tục</translation>
 <translation id="2366718077645204424">Không thể kết nối với máy chủ. Điều này có thể do cấu hình của mạng bạn đang sử dụng.</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">Đã kết nối với <ph name="HOSTNAME" /></translation>
 <translation id="2512228156274966424">LƯU Ý: Nhằm đảm bảo rằng tất cả các phím tắt đều khả dụng, bạn có thể định cấu hình Chrome Remote Desktop để ‘Mở dưới dạng cửa sổ’.</translation>
 <translation id="2540992418118313681">Bạn có muốn chia sẻ máy tính này cho một người dùng khác xem và kiểm soát không?</translation>
-<translation id="254771646005658629">Cho phép người dùng từ xa điều khiển máy Mac này</translation>
 <translation id="2579271889603567289">Máy chủ đã bị lỗi hoặc không khởi động được.</translation>
 <translation id="2599300881200251572">Dịch vụ này kích hoạt các kết nối đến từ ứng dụng khách Chrome Remote Desktop.</translation>
 <translation id="2647232381348739934">Dịch vụ kết nối từ xa trên Chrome</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">Không thể đặt lại ứng dụng. Bạn sẽ vẫn có thể gửi báo cáo lỗi.</translation>
 <translation id="5419418238395129586">Lần trực tuyến gần đây nhất: <ph name="DATE" /></translation>
 <translation id="544077782045763683">Máy chủ đã tắt.</translation>
-<translation id="5463789431147491241">Để sử dụng <ph name="PRODUCT_NAME" /> trên máy Mac này, hãy làm theo các bước sau:
-
-Chọn nút '<ph name="BUTTON_NAME" />' dưới đây. Trong phần tùy chọn Bảo mật và quyền riêng tư, hãy chọn hộp bên cạnh '<ph name="SERVICE_SCRIPT_NAME" />'.
-
-Nếu bạn đã chọn '<ph name="SERVICE_SCRIPT_NAME" />', hãy bỏ chọn hộp này rồi chọn lại.</translation>
 <translation id="5510035215749041527">Ngắt kết nối ngay bây giờ</translation>
 <translation id="5593560073513909978">Dịch vụ tạm thời không khả dụng. Vui lòng thử lại sau.</translation>
 <translation id="5601503069213153581">Mã PIN</translation>
diff --git a/remoting/resources/remoting_strings_zh-CN.xtb b/remoting/resources/remoting_strings_zh-CN.xtb
index 5b34adf7..a72e4bf 100644
--- a/remoting/resources/remoting_strings_zh-CN.xtb
+++ b/remoting/resources/remoting_strings_zh-CN.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">您的<ph name="APPLICATION_NAME" />会话已经有一段时间没有活动了,连接即将断开。</translation>
 <translation id="2317666076142640974">快来试用一下新版<ph name="LINK_BEGIN" />“Chrome 远程桌面”网络应用<ph name="LINK_END" />吧。我们期待听到您的反馈。</translation>
 <translation id="2320166752086256636">隐藏键盘</translation>
-<translation id="2332192922827071008">打开偏好设置</translation>
 <translation id="2353140552984634198">您可使用 Chrome 远程访问安全地访问此计算机。</translation>
 <translation id="2359808026110333948">继续</translation>
 <translation id="2366718077645204424">无法连接到主机,这可能是由您所使用网络的配置导致的。</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">已连接到“<ph name="HOSTNAME" />”</translation>
 <translation id="2512228156274966424">注意:为确保所有键盘快捷键都能正常使用,请将 Chrome 远程桌面配置为“在窗口中打开”。</translation>
 <translation id="2540992418118313681">您要与其他用户共享此计算机的查看和控制权限吗?</translation>
-<translation id="254771646005658629">允许远程用户控制此 Mac</translation>
 <translation id="2579271889603567289">主机已崩溃或未能顺利启动。</translation>
 <translation id="2599300881200251572">此服务允许来自 Chrome 远程桌面客户端的连接。</translation>
 <translation id="2647232381348739934">Chrome 远程访问服务</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">无法重置该应用。您仍可以发送错误报告。</translation>
 <translation id="5419418238395129586">上次在线日期:<ph name="DATE" /></translation>
 <translation id="544077782045763683">主机已关机。</translation>
-<translation id="5463789431147491241">要在此 Mac 上使用 <ph name="PRODUCT_NAME" />,请按以下步骤操作:
-
-选择下方的“<ph name="BUTTON_NAME" />”。在“安全性与隐私”偏好设置中,勾选“<ph name="SERVICE_SCRIPT_NAME" />”旁边的复选框。
-
-如果“<ph name="SERVICE_SCRIPT_NAME" />”已处于选中状态,请先取消选中,然后再次勾选。</translation>
 <translation id="5510035215749041527">立即断开</translation>
 <translation id="5593560073513909978">此服务暂时无法使用。请稍后再试。</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/remoting/resources/remoting_strings_zh-TW.xtb b/remoting/resources/remoting_strings_zh-TW.xtb
index 3a6a2d1..ed6391f 100644
--- a/remoting/resources/remoting_strings_zh-TW.xtb
+++ b/remoting/resources/remoting_strings_zh-TW.xtb
@@ -48,7 +48,6 @@
 <translation id="2314101195544969792">您的「<ph name="APPLICATION_NAME" />」工作階段已閒置一段時間,且即將中斷連線。</translation>
 <translation id="2317666076142640974">歡迎搶先體驗最新 <ph name="LINK_BEGIN" />Chrome 遠端桌面網路應用程式<ph name="LINK_END" />,並提供意見給我們。</translation>
 <translation id="2320166752086256636">隱藏鍵盤</translation>
-<translation id="2332192922827071008">開啟偏好設定</translation>
 <translation id="2353140552984634198">你可以透過 Chromoting 安全地存取這台電腦。</translation>
 <translation id="2359808026110333948">繼續</translation>
 <translation id="2366718077645204424">無法連線到主機,原因可能與你使用的網路設定有關。</translation>
@@ -58,7 +57,6 @@
 <translation id="2509394361235492552">已連線至「<ph name="HOSTNAME" />」</translation>
 <translation id="2512228156274966424">注意:如要確保所有鍵盤快捷鍵都能正常使用,請將 Chrome 遠端桌面設定為 [在視窗中開啟]。</translation>
 <translation id="2540992418118313681">您要與其他使用者分享這台電腦的瀏覽及控制權限嗎?</translation>
-<translation id="254771646005658629">允許遠端使用者控制這部 Mac</translation>
 <translation id="2579271889603567289">主機當機或無法啟動。</translation>
 <translation id="2599300881200251572">這項服務允許來自 Chrome 遠端桌面用戶端的連線。</translation>
 <translation id="2647232381348739934">Chromoting 服務</translation>
@@ -185,11 +183,6 @@
 <translation id="5419185025274123272">無法重設應用程式。您仍然可以傳送錯誤報告。</translation>
 <translation id="5419418238395129586">上次上線日期:<ph name="DATE" /></translation>
 <translation id="544077782045763683">主機已關閉。</translation>
-<translation id="5463789431147491241">如要在這部 Mac 上使用 <ph name="PRODUCT_NAME" />,請按照下列步驟操作:
-
-選取下方的 [<ph name="BUTTON_NAME" />]。在「安全性和隱私權」偏好設定中,勾選 [<ph name="SERVICE_SCRIPT_NAME" />] 旁邊的方塊。
-
-如果 [<ph name="SERVICE_SCRIPT_NAME" />] 已勾選,請先取消勾選,然後再次勾選。</translation>
 <translation id="5510035215749041527">立即中斷連線</translation>
 <translation id="5593560073513909978">服務暫時無法使用,請稍後再試。</translation>
 <translation id="5601503069213153581">PIN</translation>
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index fa93718..2c44110 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2531,24 +2531,6 @@
             ]
         }
     ],
-    "FFmpegDecodeOpaqueVP8": [
-        {
-            "platforms": [
-                "chromeos",
-                "mac",
-                "linux",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "libvpx_for_vp8",
-                    "disable_features": [
-                        "FFmpegDecodeOpaqueVP8"
-                    ]
-                }
-            ]
-        }
-    ],
     "FastBorderRadius": [
         {
             "platforms": [
@@ -7256,6 +7238,24 @@
             ]
         }
     ],
+    "libvpx_for_vp8": [
+        {
+            "platforms": [
+                "chromeos",
+                "mac",
+                "linux",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "libvpx_for_vp8",
+                    "disable_features": [
+                        "FFmpegDecodeOpaqueVP8"
+                    ]
+                }
+            ]
+        }
+    ],
     "use-new-media-cache": [
         {
             "platforms": [
diff --git a/third_party/blink/public/strings/translations/blink_strings_ml.xtb b/third_party/blink/public/strings/translations/blink_strings_ml.xtb
index ee438df..372fc30 100644
--- a/third_party/blink/public/strings/translations/blink_strings_ml.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_ml.xtb
@@ -52,7 +52,7 @@
 <translation id="2653659639078652383">സമര്‍പ്പിക്കൂ</translation>
 <translation id="2657045182931379222">ഗ്രാഫിക്‌സ് ഒബ്‌ജക്‌റ്റ്</translation>
 <translation id="2674318244760992338">അടിക്കുറിപ്പ്</translation>
-<translation id="2709516037105925701">ഓട്ടോഫില്‍</translation>
+<translation id="2709516037105925701">സ്വയമേവ പൂരിപ്പിക്കൽ</translation>
 <translation id="2723001399770238859">ഓഡിയോ</translation>
 <translation id="2725963129578236554">കമന്റുകൾ</translation>
 <translation id="2746543609216772311">മൂല്യം <ph name="MINIMUM_DATE_OR_TIME" /> എന്നതോ അതിനുശേഷമുള്ള തീയതിയോ ആയിരിക്കണം.</translation>
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc
index 1f809da..ac49e12 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -270,7 +270,8 @@
             // If a custom property is not used by CSS Paint, then we should not
             // support that on the compositor thread.
             if (!layout_object->Style()->HasCSSPaintImagesUsingCustomProperty(
-                    property.CustomPropertyName()))
+                    property.CustomPropertyName(),
+                    layout_object->GetDocument()))
               reasons |= kUnsupportedCSSProperty;
             // TODO: Add support for keyframes containing different types
             if (keyframes.front()->GetCompositorKeyframeValue()->GetType() !=
diff --git a/third_party/blink/renderer/core/css/css_image_generator_value.cc b/third_party/blink/renderer/core/css/css_image_generator_value.cc
index bee88075..db328c5 100644
--- a/third_party/blink/renderer/core/css/css_image_generator_value.cc
+++ b/third_party/blink/renderer/core/css/css_image_generator_value.cc
@@ -160,9 +160,12 @@
 }
 
 bool CSSImageGeneratorValue::IsUsingCustomProperty(
-    const AtomicString& custom_property_name) const {
-  if (GetClassType() == kPaintClass)
-    return To<CSSPaintValue>(this)->IsUsingCustomProperty(custom_property_name);
+    const AtomicString& custom_property_name,
+    const Document& document) const {
+  if (GetClassType() == kPaintClass) {
+    return To<CSSPaintValue>(this)->IsUsingCustomProperty(custom_property_name,
+                                                          document);
+  }
   return false;
 }
 
diff --git a/third_party/blink/renderer/core/css/css_image_generator_value.h b/third_party/blink/renderer/core/css/css_image_generator_value.h
index 5d00608a..9418049 100644
--- a/third_party/blink/renderer/core/css/css_image_generator_value.h
+++ b/third_party/blink/renderer/core/css/css_image_generator_value.h
@@ -105,7 +105,8 @@
   CSSImageGeneratorValue* ComputedCSSValue(const ComputedStyle&,
                                            bool allow_visited_style);
 
-  bool IsUsingCustomProperty(const AtomicString& custom_property_name) const;
+  bool IsUsingCustomProperty(const AtomicString& custom_property_name,
+                             const Document&) const;
 
   void TraceAfterDispatch(blink::Visitor* visitor) {
     CSSValue::TraceAfterDispatch(visitor);
diff --git a/third_party/blink/renderer/core/css/css_paint_value.cc b/third_party/blink/renderer/core/css/css_paint_value.cc
index 7dc08d42..e2571f0dc 100644
--- a/third_party/blink/renderer/core/css/css_paint_value.cc
+++ b/third_party/blink/renderer/core/css/css_paint_value.cc
@@ -55,18 +55,35 @@
   return name_->Value();
 }
 
+const Vector<CSSPropertyID>* CSSPaintValue::NativeInvalidationProperties(
+    const Document& document) const {
+  if (!generators_.Contains(&document))
+    return nullptr;
+  return &(generators_.at(&document)->NativeInvalidationProperties());
+}
+
+const Vector<AtomicString>* CSSPaintValue::CustomInvalidationProperties(
+    const Document& document) const {
+  if (!generators_.Contains(&document))
+    return nullptr;
+  return &(generators_.at(&document)->CustomInvalidationProperties());
+}
+
 bool CSSPaintValue::IsUsingCustomProperty(
-    const AtomicString& custom_property_name) const {
-  if (!generator_ || !generator_->IsImageGeneratorReady())
+    const AtomicString& custom_property_name,
+    const Document& document) const {
+  if (!generators_.Contains(&document) ||
+      !generators_.at(&document)->IsImageGeneratorReady())
     return false;
-  return generator_->CustomInvalidationProperties().Contains(
+  return generators_.at(&document)->CustomInvalidationProperties().Contains(
       custom_property_name);
 }
 
 void CSSPaintValue::CreateGeneratorForTesting(const Document& document) {
-  if (!generator_) {
-    generator_ = CSSPaintImageGenerator::Create(
-        GetName(), document, paint_image_generator_observer_);
+  if (!generators_.Contains(&document)) {
+    generators_.insert(
+        &document, CSSPaintImageGenerator::Create(
+                       GetName(), document, paint_image_generator_observer_));
   }
 }
 
@@ -80,15 +97,16 @@
   if (style.InsideLink() != EInsideLink::kNotInsideLink)
     return nullptr;
 
-  if (!generator_) {
-    generator_ = CSSPaintImageGenerator::Create(
-        GetName(), document, paint_image_generator_observer_);
+  if (!generators_.Contains(&document)) {
+    generators_.insert(
+        &document, CSSPaintImageGenerator::Create(
+                       GetName(), document, paint_image_generator_observer_));
   }
 
   // If the generator isn't ready yet, we have nothing to paint. Our
   // |paint_image_generator_observer_| will cause us to be called again once the
   // generator is ready.
-  if (!generator_->IsImageGeneratorReady())
+  if (!generators_.at(&document)->IsImageGeneratorReady())
     return nullptr;
 
   if (!ParseInputArguments(document))
@@ -121,9 +139,9 @@
     layout_object.GetMutableForPainting().EnsureId();
 
     Vector<CSSPropertyID> native_properties =
-        generator_->NativeInvalidationProperties();
+        generators_.at(&document)->NativeInvalidationProperties();
     Vector<AtomicString> custom_properties =
-        generator_->CustomInvalidationProperties();
+        generators_.at(&document)->CustomInvalidationProperties();
     float zoom = layout_object.StyleRef().EffectiveZoom();
     CompositorPaintWorkletInput::PropertyKeys input_property_keys;
     auto style_data = PaintWorkletStylePropertyMap::BuildCrossThreadData(
@@ -143,15 +161,16 @@
       scoped_refptr<PaintWorkletInput> input =
           base::MakeRefCounted<PaintWorkletInput>(
               GetName(), target_size, zoom, device_scale_factor,
-              generator_->WorkletId(), std::move(style_data.value()),
+              generators_.at(&document)->WorkletId(),
+              std::move(style_data.value()),
               std::move(cross_thread_input_arguments),
               std::move(input_property_keys));
       return PaintWorkletDeferredImage::Create(std::move(input), target_size);
     }
   }
 
-  return generator_->Paint(client, target_size, parsed_input_arguments_,
-                           device_scale_factor);
+  return generators_.at(&document)->Paint(
+      client, target_size, parsed_input_arguments_, device_scale_factor);
 }
 
 void CSSPaintValue::BuildInputArgumentValues(
@@ -174,9 +193,9 @@
       !RuntimeEnabledFeatures::CSSPaintAPIArgumentsEnabled())
     return true;
 
-  DCHECK(generator_->IsImageGeneratorReady());
+  DCHECK(generators_.at(&document)->IsImageGeneratorReady());
   const Vector<CSSSyntaxDefinition>& input_argument_types =
-      generator_->InputArgumentTypes();
+      generators_.at(&document)->InputArgumentTypes();
   if (argument_variable_data_.size() != input_argument_types.size()) {
     input_arguments_invalid_ = true;
     return false;
@@ -215,9 +234,9 @@
   }
 }
 
-bool CSSPaintValue::KnownToBeOpaque(const Document&,
+bool CSSPaintValue::KnownToBeOpaque(const Document& document,
                                     const ComputedStyle&) const {
-  return generator_ && !generator_->HasAlpha();
+  return generators_.at(&document) && !generators_.at(&document)->HasAlpha();
 }
 
 bool CSSPaintValue::Equals(const CSSPaintValue& other) const {
@@ -227,7 +246,7 @@
 
 void CSSPaintValue::TraceAfterDispatch(blink::Visitor* visitor) {
   visitor->Trace(name_);
-  visitor->Trace(generator_);
+  visitor->Trace(generators_);
   visitor->Trace(paint_image_generator_observer_);
   visitor->Trace(parsed_input_arguments_);
   CSSImageGeneratorValue::TraceAfterDispatch(visitor);
diff --git a/third_party/blink/renderer/core/css/css_paint_value.h b/third_party/blink/renderer/core/css/css_paint_value.h
index 36275b0c..fcf98c8 100644
--- a/third_party/blink/renderer/core/css/css_paint_value.h
+++ b/third_party/blink/renderer/core/css/css_paint_value.h
@@ -44,12 +44,10 @@
 
   bool Equals(const CSSPaintValue&) const;
 
-  const Vector<CSSPropertyID>* NativeInvalidationProperties() const {
-    return generator_ ? &generator_->NativeInvalidationProperties() : nullptr;
-  }
-  const Vector<AtomicString>* CustomInvalidationProperties() const {
-    return generator_ ? &generator_->CustomInvalidationProperties() : nullptr;
-  }
+  const Vector<CSSPropertyID>* NativeInvalidationProperties(
+      const Document&) const;
+  const Vector<AtomicString>* CustomInvalidationProperties(
+      const Document&) const;
 
   const CSSStyleValueVector* GetParsedInputArgumentsForTesting() {
     return parsed_input_arguments_;
@@ -64,9 +62,11 @@
     return this;
   }
 
-  bool IsUsingCustomProperty(const AtomicString& custom_property_name) const;
+  bool IsUsingCustomProperty(const AtomicString& custom_property_name,
+                             const Document&) const;
 
   void CreateGeneratorForTesting(const Document& document);
+  unsigned NumberOfGeneratorsForTesting() const { return generators_.size(); }
 
   void TraceAfterDispatch(blink::Visitor*);
 
@@ -98,7 +98,12 @@
   bool input_arguments_invalid_ = false;
 
   Member<CSSCustomIdentValue> name_;
-  Member<CSSPaintImageGenerator> generator_;
+  // CSSValues may be shared between Documents. This map stores the
+  // CSSPaintImageGenerator for each Document using this CSSPaintValue. We use a
+  // WeakMember to ensure that entries are removed when Documents are destroyed
+  // (since the CSSValue may outlive any given Document).
+  HeapHashMap<WeakMember<const Document>, Member<CSSPaintImageGenerator>>
+      generators_;
   Member<Observer> paint_image_generator_observer_;
   Member<CSSStyleValueVector> parsed_input_arguments_;
   Vector<scoped_refptr<CSSVariableData>> argument_variable_data_;
diff --git a/third_party/blink/renderer/core/css/css_paint_value_test.cc b/third_party/blink/renderer/core/css/css_paint_value_test.cc
index 58249ba..03fe77e1 100644
--- a/third_party/blink/renderer/core/css/css_paint_value_test.cc
+++ b/third_party/blink/renderer/core/css/css_paint_value_test.cc
@@ -209,6 +209,53 @@
       paint_value->GetImage(*target, GetDocument(), style, target_size));
 }
 
+// Regression test for crbug.com/998439. The problem is that GetImage is called
+// on a new document. This test simulates the situation by having two different
+// documents and call GetImage on different ones.
+TEST_P(CSSPaintValueTest, GetImageCalledOnMultipleDocuments) {
+  const FloatSize target_size(100, 100);
+
+  SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML");
+  LayoutObject* target = GetLayoutObjectByElementId("target");
+  const ComputedStyle& style = *target->Style();
+
+  auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
+  CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident);
+
+  EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u);
+  paint_value->GetImage(*target, GetDocument(), style, target_size);
+  // A new generator should be created if there is no generator exists.
+  EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 1u);
+
+  auto new_page_holder = std::make_unique<DummyPageHolder>(IntSize(800, 600));
+  // Call GetImage on a new Document should not crash.
+  paint_value->GetImage(*target, new_page_holder->GetDocument(), style,
+                        target_size);
+  EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 2u);
+}
+
+TEST_P(CSSPaintValueTest, NativeInvalidationPropertiesWithNoGenerator) {
+  SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML");
+
+  auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
+  CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident);
+
+  EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u);
+  // There is no generator, so returning a nullptr.
+  EXPECT_EQ(paint_value->NativeInvalidationProperties(GetDocument()), nullptr);
+}
+
+TEST_P(CSSPaintValueTest, CustomInvalidationPropertiesWithNoGenerator) {
+  SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML");
+
+  auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
+  CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident);
+
+  EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u);
+  // There is no generator, so returning a nullptr.
+  EXPECT_EQ(paint_value->CustomInvalidationProperties(GetDocument()), nullptr);
+}
+
 TEST_P(CSSPaintValueTest, PrintingMustFallbackToMainThread) {
   if (!RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled())
     return;
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
index 8cabbf6..f76cf85 100644
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -413,8 +413,8 @@
 
   if (WebInputEvent::kRawKeyDown == event.GetType()) {
     Element* focused_element = FocusedElement();
-    if (focused_element && focused_element->IsKeyboardFocusable() &&
-        event.windows_key_code == VKEY_TAB) {
+    if (event.windows_key_code == VKEY_TAB && focused_element &&
+        focused_element->IsKeyboardFocusable()) {
       // If the tab key is pressed while a keyboard focusable element is
       // focused, we should not send a corresponding keypress event.
       suppress_next_keypress_event_ = true;
diff --git a/third_party/blink/renderer/core/frame/frame_serializer.cc b/third_party/blink/renderer/core/frame/frame_serializer.cc
index 943d7cb5..29e96a7 100644
--- a/third_party/blink/renderer/core/frame/frame_serializer.cc
+++ b/third_party/blink/renderer/core/frame/frame_serializer.cc
@@ -30,6 +30,8 @@
 
 #include "third_party/blink/renderer/core/frame/frame_serializer.h"
 
+#include "base/feature_list.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/renderer/core/css/css_font_face_rule.h"
 #include "third_party/blink/renderer/core/css/css_font_face_src_value.h"
 #include "third_party/blink/renderer/core/css/css_image_value.h"
@@ -630,7 +632,19 @@
     if (font_face_src_value->IsLocal())
       return;
 
-    AddFontToResources(font_face_src_value->Fetch(&document, nullptr));
+    if (base::FeatureList::IsEnabled(
+            features::kHtmlImportsRequestInitiatorLock)) {
+      if (Document* context_document = document.ContextDocument()) {
+        // For @imports from HTML imported Documents, we use the
+        // context document for getting origin and ResourceFetcher to use the
+        // main Document's origin, while using the element document for
+        // CompleteURL() to use imported Documents' base URLs.
+        AddFontToResources(
+            font_face_src_value->Fetch(context_document, nullptr));
+      }
+    } else {
+      AddFontToResources(font_face_src_value->Fetch(&document, nullptr));
+    }
   } else if (const auto* css_value_list = DynamicTo<CSSValueList>(css_value)) {
     for (unsigned i = 0; i < css_value_list->length(); i++)
       RetrieveResourcesForCSSValue(css_value_list->Item(i), document);
diff --git a/third_party/blink/renderer/core/html/forms/resources/color_picker.js b/third_party/blink/renderer/core/html/forms/resources/color_picker.js
index 6958ba6..108e4da4 100644
--- a/third_party/blink/renderer/core/html/forms/resources/color_picker.js
+++ b/third_party/blink/renderer/core/html/forms/resources/color_picker.js
@@ -444,6 +444,8 @@
 
     this.addEventListener('visual-color-change', this.onVisualColorChange_);
 
+    this.addEventListener('format-change', this.updateFocusableElements_);
+
     document.documentElement.addEventListener('keydown', this.onKeyDown_);
   }
 
@@ -509,9 +511,35 @@
       case 'Escape':
         this.submissionControls_.cancelButton.click();
         break;
+      case 'Tab':
+        event.preventDefault();
+        if (this.focusableElements_ === undefined) {
+          this.updateFocusableElements_();
+        }
+        const length = this.focusableElements_.length;
+        if (length > 0) {
+          const currentFocusIndex =
+              this.focusableElements_.indexOf(document.activeElement);
+          let nextFocusIndex;
+          if (event.shiftKey) {
+            nextFocusIndex = (currentFocusIndex > 0) ?
+                currentFocusIndex - 1 :
+                length - 1;
+          } else {
+            nextFocusIndex = (currentFocusIndex + 1) % length;
+          }
+          this.focusableElements_[nextFocusIndex].focus({preventScroll: true});
+        }
+        break;
     }
   }
 
+  updateFocusableElements_ = () => {
+    this.focusableElements_ = Array.from(this.querySelectorAll(
+        'color-value-container:not(.hidden-color-value-container) > input,' +
+        '[tabindex]:not([tabindex=\'-1\'])'));
+  }
+
   static get COMMIT_DELAY_MS() {
     return 100;
   }
@@ -739,7 +767,7 @@
    * @param {!Point} point
    */
   mouseDown(point) {
-    this.focused_ = true;
+    this.colorSelectionRing_.focus({preventScroll: true});
     this.colorSelectionRing_.drag = true;
     this.moveColorSelectionRingTo_(point);
   }
@@ -1702,7 +1730,8 @@
     this.adjustFormatLabelVisibility_();
 
     this.dispatchEvent(new CustomEvent(
-        'format-change', {detail: {colorFormat: this.currentColorFormat_}}));
+        'format-change',
+        {bubbles: true, detail: {colorFormat: this.currentColorFormat_}}));
   }
 
   adjustFormatLabelVisibility_() {
diff --git a/third_party/blink/renderer/core/style/computed_style.cc b/third_party/blink/renderer/core/style/computed_style.cc
index f12a175..b2d7aeb 100644
--- a/third_party/blink/renderer/core/style/computed_style.cc
+++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -606,7 +606,7 @@
   if (DiffNeedsPaintInvalidationSubtree(other))
     diff.SetNeedsPaintInvalidationSubtree();
   else
-    AdjustDiffForNeedsPaintInvalidationObject(other, diff);
+    AdjustDiffForNeedsPaintInvalidationObject(other, diff, document);
 
   if (DiffNeedsVisualRectUpdate(other))
     diff.SetNeedsVisualRectUpdate();
@@ -770,7 +770,8 @@
 
 void ComputedStyle::AdjustDiffForNeedsPaintInvalidationObject(
     const ComputedStyle& other,
-    StyleDifference& diff) const {
+    StyleDifference& diff,
+    const Document& document) const {
   if (ComputedStyleBase::DiffNeedsPaintInvalidationObject(*this, other) ||
       !BorderVisuallyEqual(other) || !RadiiEqual(other))
     diff.SetNeedsPaintInvalidationObject();
@@ -783,7 +784,8 @@
   if (PaintImagesInternal()) {
     for (const auto& image : *PaintImagesInternal()) {
       DCHECK(image);
-      if (DiffNeedsPaintInvalidationObjectForPaintImage(*image, other)) {
+      if (DiffNeedsPaintInvalidationObjectForPaintImage(*image, other,
+                                                        document)) {
         diff.SetNeedsPaintInvalidationObject();
         return;
       }
@@ -812,7 +814,8 @@
 
 bool ComputedStyle::DiffNeedsPaintInvalidationObjectForPaintImage(
     const StyleImage& image,
-    const ComputedStyle& other) const {
+    const ComputedStyle& other,
+    const Document& document) const {
   // https://crbug.com/835589: early exit when paint target is associated with
   // a link.
   if (InsideLink() != EInsideLink::kNotInsideLink)
@@ -823,14 +826,15 @@
   // NOTE: If the invalidation properties vectors are null, we are invalid as
   // we haven't yet been painted (and can't provide the invalidation
   // properties yet).
-  if (!value->NativeInvalidationProperties() ||
-      !value->CustomInvalidationProperties())
+  if (!value->NativeInvalidationProperties(document) ||
+      !value->CustomInvalidationProperties(document))
     return true;
 
-  if (!PropertiesEqual(*value->NativeInvalidationProperties(), other))
+  if (!PropertiesEqual(*value->NativeInvalidationProperties(document), other))
     return true;
 
-  if (!CustomPropertiesEqual(*value->CustomInvalidationProperties(), other))
+  if (!CustomPropertiesEqual(*value->CustomInvalidationProperties(document),
+                             other))
     return true;
 
   return false;
@@ -945,7 +949,8 @@
 }
 
 bool ComputedStyle::HasCSSPaintImagesUsingCustomProperty(
-    const AtomicString& custom_property_name) const {
+    const AtomicString& custom_property_name,
+    const Document& document) const {
   if (PaintImagesInternal()) {
     for (const auto& image : *PaintImagesInternal()) {
       DCHECK(image);
@@ -953,7 +958,7 @@
       // constructor of StyleGeneratedImage.
       if (image->IsPaintImage()) {
         return To<StyleGeneratedImage>(image.Get())
-            ->IsUsingCustomProperty(custom_property_name);
+            ->IsUsingCustomProperty(custom_property_name, document);
       }
     }
   }
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
index 0e99d9f..68258db 100644
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -2315,7 +2315,8 @@
   // Returns true if any property has an <image> value that is a CSS paint
   // function that is using a given custom property.
   bool HasCSSPaintImagesUsingCustomProperty(
-      const AtomicString& custom_property_name) const;
+      const AtomicString& custom_property_name,
+      const Document&) const;
 
   // FIXME: reflections should belong to this helper function but they are
   // currently handled through their self-painting layers. So the layout code
@@ -2771,10 +2772,11 @@
       const ComputedStyle& other) const;
   bool DiffNeedsPaintInvalidationSubtree(const ComputedStyle& other) const;
   void AdjustDiffForNeedsPaintInvalidationObject(const ComputedStyle& other,
-                                                 StyleDifference&) const;
-  bool DiffNeedsPaintInvalidationObjectForPaintImage(
-      const StyleImage&,
-      const ComputedStyle& other) const;
+                                                 StyleDifference&,
+                                                 const Document&) const;
+  bool DiffNeedsPaintInvalidationObjectForPaintImage(const StyleImage&,
+                                                     const ComputedStyle& other,
+                                                     const Document&) const;
   bool DiffNeedsVisualRectUpdate(const ComputedStyle& other) const;
   CORE_EXPORT void UpdatePropertySpecificDifferences(const ComputedStyle& other,
                                                      StyleDifference&) const;
diff --git a/third_party/blink/renderer/core/style/style_generated_image.cc b/third_party/blink/renderer/core/style/style_generated_image.cc
index d903d265..dda3c293 100644
--- a/third_party/blink/renderer/core/style/style_generated_image.cc
+++ b/third_party/blink/renderer/core/style/style_generated_image.cc
@@ -79,8 +79,10 @@
 }
 
 bool StyleGeneratedImage::IsUsingCustomProperty(
-    const AtomicString& custom_property_name) const {
-  return image_generator_value_->IsUsingCustomProperty(custom_property_name);
+    const AtomicString& custom_property_name,
+    const Document& document) const {
+  return image_generator_value_->IsUsingCustomProperty(custom_property_name,
+                                                       document);
 }
 
 scoped_refptr<Image> StyleGeneratedImage::GetImage(
diff --git a/third_party/blink/renderer/core/style/style_generated_image.h b/third_party/blink/renderer/core/style/style_generated_image.h
index b57ad91..24fc4bb 100644
--- a/third_party/blink/renderer/core/style/style_generated_image.h
+++ b/third_party/blink/renderer/core/style/style_generated_image.h
@@ -60,7 +60,8 @@
                                 const FloatSize& target_size) const override;
   bool KnownToBeOpaque(const Document&, const ComputedStyle&) const override;
 
-  bool IsUsingCustomProperty(const AtomicString& custom_property_name) const;
+  bool IsUsingCustomProperty(const AtomicString& custom_property_name,
+                             const Document&) const;
 
   void Trace(blink::Visitor*) override;
 
diff --git a/third_party/blink/renderer/devtools/front_end/audits/AuditsStartView.js b/third_party/blink/renderer/devtools/front_end/audits/AuditsStartView.js
index 027130c3..f26f26e4 100644
--- a/third_party/blink/renderer/devtools/front_end/audits/AuditsStartView.js
+++ b/third_party/blink/renderer/devtools/front_end/audits/AuditsStartView.js
@@ -64,6 +64,8 @@
       row.title = preset.description;
       row.appendChild(checkbox.element);
     }
+    UI.ARIAUtils.markAsGroup(categoryFormElements);
+    UI.ARIAUtils.setAccessibleName(categoryFormElements, ls`Audits`);
 
     // Populate the throttling
     const throttlingFormElements = fragment.$('throttling-form-elements');
diff --git a/third_party/blink/renderer/devtools/front_end/audits/audits_strings.grdp b/third_party/blink/renderer/devtools/front_end/audits/audits_strings.grdp
index 132daa2b..bebdb98 100644
--- a/third_party/blink/renderer/devtools/front_end/audits/audits_strings.grdp
+++ b/third_party/blink/renderer/devtools/front_end/audits/audits_strings.grdp
@@ -135,7 +135,7 @@
   <message name="IDS_DEVTOOLS_b002a564ceda05dbdf012a48a145d0d3" desc="Status header in the Audits panel">
     Printing
   </message>
-  <message name="IDS_DEVTOOLS_b06c94565d768dd75535120f2f8482a7" desc="Text in Audits Start View">
+  <message name="IDS_DEVTOOLS_b06c94565d768dd75535120f2f8482a7" desc="Text in Audits Start View labeling audit configuraion control group">
     Audits
   </message>
   <message name="IDS_DEVTOOLS_b1b01acb63f79615b05f6d816705d7d3" desc="Text in Audits Controller">
diff --git a/third_party/blink/renderer/devtools/front_end/quick_open/FilteredListWidget.js b/third_party/blink/renderer/devtools/front_end/quick_open/FilteredListWidget.js
index ca8cdc8..3101d9b 100644
--- a/third_party/blink/renderer/devtools/front_end/quick_open/FilteredListWidget.js
+++ b/third_party/blink/renderer/devtools/front_end/quick_open/FilteredListWidget.js
@@ -19,6 +19,7 @@
 
     this.contentElement.classList.add('filtered-list-widget');
     this.contentElement.addEventListener('keydown', this._onKeyDown.bind(this), true);
+    UI.ARIAUtils.markAsCombobox(this.contentElement);
     this.registerRequiredCSS('quick_open/filteredListWidget.css');
 
     this._promptElement = this.contentElement.createChild('div', 'filtered-list-widget-input');
@@ -43,6 +44,9 @@
     this._itemElementsContainer.classList.add('container');
     this._bottomElementsContainer.appendChild(this._itemElementsContainer);
     this._itemElementsContainer.addEventListener('click', this._onClick.bind(this), false);
+    UI.ARIAUtils.markAsListBox(this._itemElementsContainer);
+    UI.ARIAUtils.setControls(this._promptElement, this._itemElementsContainer);
+    UI.ARIAUtils.setAutocomplete(this._promptElement, UI.ARIAUtils.AutocompleteInteractionModel.list);
 
     this._notFoundElement = this._bottomElementsContainer.createChild('div', 'not-found-text');
     this._notFoundElement.classList.add('hidden');
@@ -113,6 +117,7 @@
     this._dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.SetExactWidthMaxHeight);
     this._dialog.setContentPosition(null, 22);
     this.show(this._dialog.contentElement);
+    UI.ARIAUtils.setExpanded(this.contentElement, true);
     this._dialog.show();
   }
 
@@ -178,6 +183,7 @@
       this._provider.detach();
     }
     this._clearTimers();
+    UI.ARIAUtils.setExpanded(this.contentElement, false);
   }
 
   _clearTimers() {
@@ -232,6 +238,7 @@
     const subtitleElement = itemElement.createChild('div', 'filtered-list-widget-subtitle');
     subtitleElement.textContent = '\u200B';
     this._provider.renderItem(item, this._cleanValue(), titleElement, subtitleElement);
+    UI.ARIAUtils.markAsOption(itemElement);
     return itemElement;
   }
 
@@ -267,8 +274,8 @@
     }
     if (toElement) {
       toElement.classList.add('selected');
-      UI.ARIAUtils.alert(toElement.textContent, toElement);
     }
+    UI.ARIAUtils.setActiveDescendant(this._promptElement, toElement);
   }
 
   /**
diff --git a/third_party/blink/renderer/devtools/front_end/ui/ARIAUtils.js b/third_party/blink/renderer/devtools/front_end/ui/ARIAUtils.js
index d2d9bfc2..365f3b9 100644
--- a/third_party/blink/renderer/devtools/front_end/ui/ARIAUtils.js
+++ b/third_party/blink/renderer/devtools/front_end/ui/ARIAUtils.js
@@ -47,6 +47,13 @@
 /**
  * @param {!Element} element
  */
+export function markAsCombobox(element) {
+  element.setAttribute('role', 'combobox');
+}
+
+/**
+ * @param {!Element} element
+ */
 export function markAsModalDialog(element) {
   element.setAttribute('role', 'dialog');
   element.setAttribute('aria-modal', 'true');
@@ -282,6 +289,24 @@
 }
 
 /**
+ * @enum {string}
+ */
+export const AutocompleteInteractionModel = {
+  inline: 'inline',
+  list: 'list',
+  both: 'both',
+  none: 'none',
+};
+
+/**
+ * @param {!Element} element
+ * @param {!AutocompleteInteractionModel=} interactionModel
+ */
+export function setAutocomplete(element, interactionModel = AutocompleteInteractionModel.none) {
+  element.setAttribute('aria-autocomplete', interactionModel);
+}
+
+/**
  * @param {!Element} element
  * @param {boolean} value
  */
@@ -476,6 +501,7 @@
   markAsAlert,
   markAsButton,
   markAsCheckbox,
+  markAsCombobox,
   markAsModalDialog,
   markAsGroup,
   markAsLink,
@@ -506,6 +532,8 @@
   setCheckboxAsIndeterminate,
   setExpanded,
   unsetExpandable,
+  AutocompleteInteractionModel,
+  setAutocomplete,
   setSelected,
   setInvalid,
   setPressed,
diff --git a/third_party/blink/renderer/devtools/front_end/ui/Toolbar.js b/third_party/blink/renderer/devtools/front_end/ui/Toolbar.js
index 0d5b6fb..b830b889 100644
--- a/third_party/blink/renderer/devtools/front_end/ui/Toolbar.js
+++ b/third_party/blink/renderer/devtools/front_end/ui/Toolbar.js
@@ -759,6 +759,7 @@
     super('', 'largeicon-menu');
     this._contextMenuHandler = contextMenuHandler;
     this._useSoftMenu = !!useSoftMenu;
+    UI.ARIAUtils.markAsMenuButton(this.element);
   }
 
   /**
diff --git a/third_party/blink/renderer/devtools/front_end/web_audio/AudioContextSelector.js b/third_party/blink/renderer/devtools/front_end/web_audio/AudioContextSelector.js
index 047b4457..c71eff469 100644
--- a/third_party/blink/renderer/devtools/front_end/web_audio/AudioContextSelector.js
+++ b/third_party/blink/renderer/devtools/front_end/web_audio/AudioContextSelector.js
@@ -6,19 +6,22 @@
  * @implements {UI.SoftDropDown.Delegate<!Protocol.WebAudio.BaseAudioContext>}
  */
 WebAudio.AudioContextSelector = class extends Common.Object {
-  constructor(title) {
+  constructor() {
     super();
 
+    /** @type {string} */
+    this._placeholderText = ls`(no recordings)`;
+
     /** @type {!UI.ListModel<!Protocol.WebAudio.BaseAudioContext>} */
     this._items = new UI.ListModel();
 
     /** @type {!UI.SoftDropDown<!Protocol.WebAudio.BaseAudioContext>} */
     this._dropDown = new UI.SoftDropDown(this._items, this);
-    this._dropDown.setPlaceholderText(ls`(no recordings)`);
+    this._dropDown.setPlaceholderText(this._placeholderText);
 
     this._toolbarItem = new UI.ToolbarItem(this._dropDown.element);
     this._toolbarItem.setEnabled(false);
-    this._toolbarItem.setTitle(title);
+    this._toolbarItem.setTitle(ls`Audio context: ${this._placeholderText}`);
     this._items.addEventListener(UI.ListModel.Events.ItemsReplaced, this._onListItemReplaced, this);
     this._toolbarItem.element.classList.add('toolbar-has-dropdown');
 
@@ -27,7 +30,11 @@
   }
 
   _onListItemReplaced() {
-    this._toolbarItem.setEnabled(!!this._items.length);
+    const hasItems = !!this._items.length;
+    this._toolbarItem.setEnabled(hasItems);
+    if (!hasItems) {
+      this._toolbarItem.setTitle(ls`Audio context: ${this._placeholderText}`);
+    }
   }
 
   /**
@@ -132,6 +139,7 @@
     // It's possible that no context is selected yet.
     if (!this._selectedContext || this._selectedContext.contextId !== item.contextId) {
       this._selectedContext = item;
+      this._toolbarItem.setTitle(ls`Audio context: ${this.titleFor(item)}`);
     }
 
     this.dispatchEventToListeners(WebAudio.AudioContextSelector.Events.ContextSelected, item);
diff --git a/third_party/blink/renderer/devtools/front_end/web_audio/WebAudioView.js b/third_party/blink/renderer/devtools/front_end/web_audio/WebAudioView.js
index 03108d4..dba3cd6 100644
--- a/third_party/blink/renderer/devtools/front_end/web_audio/WebAudioView.js
+++ b/third_party/blink/renderer/devtools/front_end/web_audio/WebAudioView.js
@@ -14,7 +14,7 @@
     // Creates the toolbar.
     const toolbarContainer = this.contentElement.createChild(
       'div', 'web-audio-toolbar-container vbox');
-    this._contextSelector = new WebAudio.AudioContextSelector(ls`BaseAudioContexts`);
+    this._contextSelector = new WebAudio.AudioContextSelector();
     const toolbar = new UI.Toolbar('web-audio-toolbar', toolbarContainer);
     toolbar.appendToolbarItem(UI.Toolbar.createActionButtonForId('components.collect-garbage'));
     toolbar.appendSeparator();
diff --git a/third_party/blink/renderer/devtools/front_end/web_audio/web_audio_strings.grdp b/third_party/blink/renderer/devtools/front_end/web_audio/web_audio_strings.grdp
index ec0fcbc..190df42 100644
--- a/third_party/blink/renderer/devtools/front_end/web_audio/web_audio_strings.grdp
+++ b/third_party/blink/renderer/devtools/front_end/web_audio/web_audio_strings.grdp
@@ -21,8 +21,8 @@
   <message name="IDS_DEVTOOLS_ab7799fb0ebb5a4167781f756efb820a" desc="Text in Audio Context Content Builder">
     Callback Interval
   </message>
-  <message name="IDS_DEVTOOLS_b78dc7712ef83a078c1c68822d2a1a3f" desc="Text in Web Audio View">
-    BaseAudioContexts
+  <message name="IDS_DEVTOOLS_d1adc6d57af38b75e7b7c3bb0b9a44ee" desc="Label prefix for an audio context selection">
+    Audio context: <ph name="THIS__PLACEHOLDERTEXT">$1s<ex>realtime (1e03ec)</ex></ph>
   </message>
   <message name="IDS_DEVTOOLS_f047f03535a9154caf9a858b5aed17c0" desc="Text in Audio Context Content Builder">
     Current Time
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
index e495bf0..7bfe79c 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
@@ -827,8 +827,12 @@
                 next_frame->video_frame_buffer().get())
                 ->getMediaVideoFrame();
   }
-  DCHECK_EQ(frame->storage_type(),
-            media::VideoFrame::STORAGE_GPU_MEMORY_BUFFER);
+
+  if (frame->storage_type() != media::VideoFrame::STORAGE_GPU_MEMORY_BUFFER) {
+    LogAndNotifyError(FROM_HERE, "frame isn't GpuMemoryBuffer based VideoFrame",
+                      media::VideoEncodeAccelerator::kPlatformFailureError);
+    return;
+  }
 
   constexpr int kDummyIndex = -1;
   frame->AddDestructionObserver(media::BindToCurrentLoop(base::BindOnce(
diff --git a/third_party/blink/tools/blinkpy/common/net/file_uploader.py b/third_party/blink/tools/blinkpy/common/net/file_uploader.py
index b2d20bcd..664db11 100644
--- a/third_party/blink/tools/blinkpy/common/net/file_uploader.py
+++ b/third_party/blink/tools/blinkpy/common/net/file_uploader.py
@@ -48,7 +48,7 @@
       (content_type, body) ready for httplib.HTTP instance.
 
     Source:
-      http://code.google.com/p/rietveld/source/browse/trunk/upload.py
+      https://github.com/rietveld-codereview/rietveld/blob/1be266f92fbd6e01732e1bde10589bc408d65633/upload.py#L964
     """
     BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-'
     CRLF = '\r\n'
diff --git a/third_party/blink/tools/blinkpy/common/net/git_cl.py b/third_party/blink/tools/blinkpy/common/net/git_cl.py
index 9e2ba67ea..2caf360 100644
--- a/third_party/blink/tools/blinkpy/common/net/git_cl.py
+++ b/third_party/blink/tools/blinkpy/common/net/git_cl.py
@@ -4,8 +4,8 @@
 
 """An interface to git-cl.
 
-The git-cl tool is responsible for communicating with Rietveld, Gerrit,
-and Buildbucket to manage changelists and try jobs associated with them.
+The git-cl tool is responsible for communicating with Gerrit and Buildbucket to
+manage changelists and try jobs associated with them.
 """
 
 import collections
diff --git a/third_party/blink/tools/blinkpy/w3c/wpt_github.py b/third_party/blink/tools/blinkpy/w3c/wpt_github.py
index dd71479f..ebeaea7 100644
--- a/third_party/blink/tools/blinkpy/w3c/wpt_github.py
+++ b/third_party/blink/tools/blinkpy/w3c/wpt_github.py
@@ -348,16 +348,9 @@
 
     def pr_for_chromium_commit(self, chromium_commit):
         """Returns a PR corresponding to the given ChromiumCommit, or None."""
-        pull_request = self.pr_with_change_id(chromium_commit.change_id())
-        if pull_request:
-            return pull_request
-        # The Change ID can't be used for commits made via Rietveld,
-        # so we fall back to trying to use commit position here.
-        # Note that Gerrit returns ToT+1 as the commit positions for in-flight
-        # CLs, but they are scrubbed from the PR description and hence would
-        # not be mismatched to random Chromium commits in the fallback.
-        # TODO(robertma): Remove this fallback after Rietveld becomes read-only.
-        return self.pr_with_position(chromium_commit.position)
+        # We rely on Change-Id because Gerrit returns ToT+1 as the commit
+        # positions for in-flight CLs, whereas Change-Id is permanent.
+        return self.pr_with_change_id(chromium_commit.change_id())
 
     def pr_with_change_id(self, target_change_id):
         for pull_request in self.all_pull_requests():
@@ -368,14 +361,6 @@
                 return pull_request
         return None
 
-    def pr_with_position(self, position):
-        for pull_request in self.all_pull_requests():
-            # Same as above, search all 'Cr-Commit-Position's.
-            pr_commit_positions = self.extract_metadata('Cr-Commit-Position: ', pull_request.body, all_matches=True)
-            if position in pr_commit_positions:
-                return pull_request
-        return None
-
     @staticmethod
     def extract_metadata(tag, commit_body, all_matches=False):
         values = []
diff --git a/third_party/blink/tools/blinkpy/w3c/wpt_github_mock.py b/third_party/blink/tools/blinkpy/w3c/wpt_github_mock.py
index 621ef34..8278637 100644
--- a/third_party/blink/tools/blinkpy/w3c/wpt_github_mock.py
+++ b/third_party/blink/tools/blinkpy/w3c/wpt_github_mock.py
@@ -86,13 +86,6 @@
                 return pr
         return None
 
-    def pr_with_position(self, position):
-        self.calls.append('pr_with_position')
-        for pr in self.pull_requests:
-            if position in pr.body:
-                return pr
-        return None
-
     def pr_with_change_id(self, change_id):
         self.calls.append('pr_with_change_id')
         for pr in self.pull_requests:
diff --git a/third_party/blink/tools/blinkpy/w3c/wpt_github_unittest.py b/third_party/blink/tools/blinkpy/w3c/wpt_github_unittest.py
index 2532bbb8..470346f 100644
--- a/third_party/blink/tools/blinkpy/w3c/wpt_github_unittest.py
+++ b/third_party/blink/tools/blinkpy/w3c/wpt_github_unittest.py
@@ -199,16 +199,6 @@
         pull_request = self.wpt_github.pr_for_chromium_commit(chromium_commit)
         self.assertEqual(pull_request.number, 2)
 
-    def test_pr_for_chromium_commit_falls_back_to_commit_position(self):
-        self.wpt_github.all_pull_requests = lambda: [
-            PullRequest('PR1', 1, 'body\nChange-Id: I00c0ffee\nCr-Commit-Position: refs/heads/master@{#10}', 'open', []),
-            PullRequest('PR2', 2, 'body\nChange-Id: I00decade\nCr-Commit-Position: refs/heads/master@{#33}', 'open', []),
-        ]
-        chromium_commit = MockChromiumCommit(
-            MockHost(), position='refs/heads/master@{#10}')
-        pull_request = self.wpt_github.pr_for_chromium_commit(chromium_commit)
-        self.assertEqual(pull_request.number, 1)
-
     def test_pr_for_chromium_commit_multiple_change_ids(self):
         self.wpt_github.all_pull_requests = lambda: [
             PullRequest('PR1', 1, 'body\nChange-Id: I00c0ffee\nChange-Id: I00decade', 'open', []),
@@ -223,19 +213,3 @@
             MockHost(), change_id='I00decade', position='refs/heads/master@{#33}')
         pull_request = self.wpt_github.pr_for_chromium_commit(chromium_commit)
         self.assertEqual(pull_request.number, 1)
-
-    def test_pr_for_chromium_commit_multiple_commit_positions(self):
-        self.wpt_github.all_pull_requests = lambda: [
-            PullRequest('PR1', 1, 'body\nCr-Commit-Position: refs/heads/master@{#10}\n'
-                        'Cr-Commit-Position: refs/heads/master@{#33}', 'open', []),
-        ]
-
-        chromium_commit = MockChromiumCommit(
-            MockHost(), position='refs/heads/master@{#10}')
-        pull_request = self.wpt_github.pr_for_chromium_commit(chromium_commit)
-        self.assertEqual(pull_request.number, 1)
-
-        chromium_commit = MockChromiumCommit(
-            MockHost(), position='refs/heads/master@{#33}')
-        pull_request = self.wpt_github.pr_for_chromium_commit(chromium_commit)
-        self.assertEqual(pull_request.number, 1)
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 89aede9..6a67aa4 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -60,7 +60,6 @@
 # Tests temporarily disabled with Site Isolation - test issues or test harness
 # issues (e.g. missing OOPIF support in the test harness).
 # TODO(lukasza, alexmos): Burn down this list.
-crbug.com/645641 external/wpt/html/syntax/parsing/html5lib_tests19.html [ Crash Failure ]
 crbug.com/665058 http/tests/local/drag-over-remote-content.html [ Crash Timeout ]
 crbug.com/771003 http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
 
@@ -5661,10 +5660,6 @@
 # Sheriff 2019-09-20
 crbug.com/1005128 crypto/subtle/abandon-crypto-operation2.html [ Pass Crash ]
 
-# Sheriff 2019-09-26
-crbug.com/1008257 external/wpt/service-workers/service-worker/claim-shared-worker-fetch.https.html [ Pass Crash ]
-crbug.com/1008257 external/wpt/service-workers/service-worker/worker-interception-redirect.https.html [ Pass Crash ]
-
 # Sheriff 2019-09-27
 crbug.com/1008826 [ Mac10.13 ] http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change.html [ Pass Failure Timeout ]
 
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index a66c757b..5b4c0ab 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -828,11 +828,6 @@
   },
   {
     "prefix": "not-site-per-process",
-    "base": "external/wpt/html/syntax/parsing/html5lib_tests19.html",
-    "args": ["--disable-site-isolation-trials"]
-  },
-  {
-    "prefix": "not-site-per-process",
     "base": "external/wpt/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html",
     "args": ["--disable-site-isolation-trials"]
   },
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
index 7792c624..2306446 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -40231,6 +40231,18 @@
      {}
     ]
    ],
+   "css/css-contain/contain-size-scrollbars-004.html": [
+    [
+     "css/css-contain/contain-size-scrollbars-004.html",
+     [
+      [
+       "/css/css-contain/reference/contain-size-scrollbars-004-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/css-contain/contain-size-select-001.html": [
     [
      "css/css-contain/contain-size-select-001.html",
@@ -118999,6 +119011,18 @@
      {}
     ]
    ],
+   "svg/text/reftests/dominant-baseline-hanging-small-font-size.svg": [
+    [
+     "svg/text/reftests/dominant-baseline-hanging-small-font-size.svg",
+     [
+      [
+       "/svg/embedded/reference/green-rect-100x100.svg",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "svg/text/reftests/text-clipped-offscreen-move-onscreen.html": [
     [
      "svg/text/reftests/text-clipped-offscreen-move-onscreen.html",
@@ -132037,6 +132061,9 @@
    "css/css-contain/reference/contain-size-scrollbars-001-ref.html": [
     []
    ],
+   "css/css-contain/reference/contain-size-scrollbars-004-ref.html": [
+    []
+   ],
    "css/css-contain/reference/contain-size-select-001-ref.html": [
     []
    ],
@@ -185646,8 +185673,13 @@
        [
         "script",
         "support.js"
+       ],
+       [
+        "timeout",
+        "long"
        ]
-      ]
+      ],
+      "timeout": "long"
      }
     ],
     [
@@ -185661,8 +185693,13 @@
        [
         "script",
         "support.js"
+       ],
+       [
+        "timeout",
+        "long"
        ]
-      ]
+      ],
+      "timeout": "long"
      }
     ]
    ],
@@ -335043,7 +335080,7 @@
    "testharness"
   ],
   "IndexedDB/blob-contenttype.any.js": [
-   "6faa0ad4f3eecfa2a1a2ef2df60d175b3b61a699",
+   "0b2debae7b1a6498523459ee97882257a7ac974c",
    "testharness"
   ],
   "IndexedDB/blob-delete-objectstore-db.any.js": [
@@ -336435,7 +336472,7 @@
    "testharness"
   ],
   "IndexedDB/structured-clone.any.js": [
-   "8078aaf796b843aaf9f23be5889febbe4c8fb960",
+   "e03ba7aeee47bcd8ae75e2210fc2165581c0a82f",
    "testharness"
   ],
   "IndexedDB/support-promises.js": [
@@ -337535,7 +337572,7 @@
    "support"
   ],
   "animation-worklet/inactive-timeline.https.html": [
-   "24dc98c2327e45dd263b63139510445e96141ce1",
+   "bdd46f9abc0c8702931965f981b9beab2792380f",
    "testharness"
   ],
   "animation-worklet/multiple-effects-on-same-target-driven-by-individual-local-time.https.html": [
@@ -366870,6 +366907,10 @@
    "4684440bdbfd9886fd34a6ba1144ae1724b6a157",
    "reftest"
   ],
+  "css/css-contain/contain-size-scrollbars-004.html": [
+   "6a45fdd23f4b797565e3cfa1934308f62709a0ca",
+   "reftest"
+  ],
   "css/css-contain/contain-size-select-001.html": [
    "071db67831fd7951b8568ca1b7e4dcc5dbc119a1",
    "reftest"
@@ -367174,6 +367215,10 @@
    "402ff6c95e14c7c6dbe6e91cd779937bf6c4caa8",
    "support"
   ],
+  "css/css-contain/reference/contain-size-scrollbars-004-ref.html": [
+   "91d9e51709465a24fbf418f197d2c01fd4cf2789",
+   "support"
+  ],
   "css/css-contain/reference/contain-size-select-001-ref.html": [
    "960abc1e158756fca26ed3e42afcc9d97a0d07b1",
    "support"
@@ -419935,7 +419980,7 @@
    "testharness"
   ],
   "css/cssom-view/elementFromPoint-list-001.html": [
-   "e3c2c4d18f4c35f31908fd1095b0516fd0161b8a",
+   "b31453d6c32c2c7ed8192dc1e4b5037476645bcd",
    "testharness"
   ],
   "css/cssom-view/elementFromPoint-mixed-font-sizes.html": [
@@ -438399,7 +438444,7 @@
    "support"
   ],
   "fetch/corb/resources/html-js-polyglot.js": [
-   "5b048d336443c809831bdc08d1d8b0a6e2aecddb",
+   "db45bb4acc9251959a240da6c5c57603fb8fbce8",
    "support"
   ],
   "fetch/corb/resources/html-js-polyglot.js.headers": [
@@ -438407,7 +438452,7 @@
    "support"
   ],
   "fetch/corb/resources/html-js-polyglot2.js": [
-   "9443f8ed6c35efe7928249735b2faa0ef9bdf0a6",
+   "faae1b7682b547e93d492ba2c6085a956243f61c",
    "support"
   ],
   "fetch/corb/resources/html-js-polyglot2.js.headers": [
@@ -438467,7 +438512,7 @@
    "testharness"
   ],
   "fetch/corb/script-html-js-polyglot.sub.html": [
-   "ec4103771fb243864bbd8855b5c949922f1f3939",
+   "9a272d63ffc30e9ac365e6ce5e2179c1c694a955",
    "testharness"
   ],
   "fetch/corb/script-html-via-cross-origin-blob-url.sub.html": [
@@ -438483,11 +438528,11 @@
    "testharness"
   ],
   "fetch/corb/script-resource-with-json-parser-breaker.tentative.sub.html": [
-   "cabc7b09c458ca1f3852c633c9cd47680ab6e89d",
+   "d46944727f8ee9fc144caec437a5505be75e3d4b",
    "testharness"
   ],
   "fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html": [
-   "4cbdd7b99e6b4bae045951733d61a794c476571c",
+   "f83eff82b5e4b21adfaf20915632e3ed6e6b9ba6",
    "testharness"
   ],
   "fetch/corb/style-css-mislabeled-as-html-nosniff.sub.html": [
@@ -500314,6 +500359,10 @@
    "df64cc9ec3d387f26238b66b92c9f356f2f23e09",
    "testharness"
   ],
+  "svg/text/reftests/dominant-baseline-hanging-small-font-size.svg": [
+   "aa27ec9c09484634330d04b3a1876640856f10f5",
+   "reftest"
+  ],
   "svg/text/reftests/text-clipped-offscreen-move-onscreen-ref.html": [
    "b03ac22aaa3155323ea1574e49241368ec1ad66c",
    "support"
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/blob-contenttype.any.js b/third_party/blink/web_tests/external/wpt/IndexedDB/blob-contenttype.any.js
index 6faa0ad4..0b2deba 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/blob-contenttype.any.js
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/blob-contenttype.any.js
@@ -1,5 +1,6 @@
 // META: title=Blob Content Type
 // META: script=support.js
+// META: timeout=long
 
 indexeddb_test(
     function upgrade(t, db) {
@@ -35,4 +36,4 @@
         });
     },
     'Ensure that content type round trips when reading blob data'
-);
\ No newline at end of file
+);
diff --git a/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js b/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js
index 8078aaf..e03ba7a 100644
--- a/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js
+++ b/third_party/blink/web_tests/external/wpt/IndexedDB/structured-clone.any.js
@@ -288,8 +288,6 @@
     assert_equals(orig.type, clone.type);
     assert_equals(orig.name, clone.name);
     assert_equals(orig.lastModified, clone.lastModified);
-    assert_equals(String(orig.lastModifiedDate),
-                  String(clone.lastModifiedDate));
     assert_equals(await orig.text(), await clone.text());
   });
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/simple-inline.html b/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/simple-inline.html
new file mode 100644
index 0000000..f2c3638d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/simple-inline.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS Shadow Parts - Simple Inline</title>
+    <meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
+    <link href="http://www.google.com/" rel="author" title="Google">
+    <link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="support/shadow-helper.js"></script>
+  </head>
+  <body>
+    <style>#c-e::part(partp) { color: green; }</style>
+    <script>installCustomElement("custom-element", "custom-element-template");</script>
+    <template id="custom-element-template">
+      <span id="part" part="partp" style="color: red">This text</span>
+    </template>
+    The following text should be green:
+    <custom-element id="c-e"></custom-element>
+    <script>
+      "use strict";
+      const colorGreen = "rgb(0, 128, 0)";
+      test(function() {
+        const el = getElementByShadowIds(document, ["c-e", "part"]);
+        assert_equals(window.getComputedStyle(el).color, colorGreen);
+      }, "Part in selected host is styled");
+    </script>
+  </body>
+</html>
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation.html
index bf83b3e1..2719c2b 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,27 +15,36 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWellSelectionRing = popupDocument.querySelector('color-well > color-selection-ring');
-  const colorWellSelectionRingRect = colorWellSelectionRing.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellSelectionRingRect.left + (colorWellSelectionRingRect.width / 2),
-      colorWellSelectionRingRect.top + (colorWellSelectionRingRect.height / 2));
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 3; i++) {
-    eventSender.keyDown('ArrowDown', ['ctrlKey']);
-  }
-  eventSender.keyDown('ArrowLeft', ['ctrlKey']);
-  eventSender.keyDown('ArrowUp', ['ctrlKey']);
-  for (let i = 0; i < 3; i++) {
-    eventSender.keyDown('ArrowRight', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWellSelectionRing = popupDocument.querySelector('color-well > color-selection-ring');
+    const colorWellSelectionRingRect = colorWellSelectionRing.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellSelectionRingRect.left + (colorWellSelectionRingRect.width / 2),
+        colorWellSelectionRingRect.top + (colorWellSelectionRingRect.height / 2));
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 3; i++) {
+      eventSender.keyDown('ArrowDown', ['ctrlKey']);
+    }
+    eventSender.keyDown('ArrowLeft', ['ctrlKey']);
+    eventSender.keyDown('ArrowUp', ['ctrlKey']);
+    for (let i = 0; i < 3; i++) {
+      eventSender.keyDown('ArrowRight', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '60');
+    assert_equals(gValueContainer.value, '144');
+    assert_equals(bValueContainer.value, '180');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner.html
index ccc29ab..3732f075 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.top);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowDown', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.top);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowDown', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '69');
+    assert_equals(gValueContainer.value, '69');
+    assert_equals(bValueContainer.value, '69');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner.html
index c807e84d..7ac0a7f5 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.top);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowDown', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.top);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowDown', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '66');
+    assert_equals(gValueContainer.value, '0');
+    assert_equals(bValueContainer.value, '0');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag.html
index a1663fb..9f4e01c5 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,28 +15,37 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  const colorWellSelectionRing = popupDocument.querySelector('color-well > color-selection-ring');
-  const colorWellSelectionRingRect = colorWellSelectionRing.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellSelectionRingRect.left + (colorWellSelectionRingRect.width / 2),
-      colorWellSelectionRingRect.top + (colorWellSelectionRingRect.height / 2));
-  eventSender.mouseDown();
-  eventSender.mouseMoveTo(colorWellSelectionRingRect.left + (colorWellSelectionRingRect.width / 2), colorWellRect.bottom);
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowUp');
-  }
-  for (let i = 0; i < 3; i++) {
-    eventSender.keyDown('ArrowUp', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using the keyboard after a drag.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    const colorWellSelectionRing = popupDocument.querySelector('color-well > color-selection-ring');
+    const colorWellSelectionRingRect = colorWellSelectionRing.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellSelectionRingRect.left + (colorWellSelectionRingRect.width / 2),
+        colorWellSelectionRingRect.top + (colorWellSelectionRingRect.height / 2));
+    eventSender.mouseDown();
+    eventSender.mouseMoveTo(colorWellSelectionRingRect.left + (colorWellSelectionRingRect.width / 2), colorWellRect.bottom);
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowUp');
+    }
+    for (let i = 0; i < 3; i++) {
+      eventSender.keyDown('ArrowUp', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '123');
+    assert_equals(gValueContainer.value, '50');
+    assert_equals(bValueContainer.value, '93');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner.html
index 70d228d6..2f757e9 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.bottom);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowLeft', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.bottom);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowLeft', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '0');
+    assert_equals(gValueContainer.value, '0');
+    assert_equals(bValueContainer.value, '0');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner.html
index 7c68578..996a36d 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.top);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowLeft', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.top);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowLeft', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '255');
+    assert_equals(gValueContainer.value, '112');
+    assert_equals(bValueContainer.value, '112');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner.html
index 1ba280e..213c5e9 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.bottom);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowRight', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.bottom);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowRight', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '0');
+    assert_equals(gValueContainer.value, '0');
+    assert_equals(bValueContainer.value, '0');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner.html
index 6e7b71a..5da5adf6 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.top);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowRight', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.top);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowRight', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '255');
+    assert_equals(gValueContainer.value, '143');
+    assert_equals(bValueContainer.value, '143');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner.html
index 7ba4614..096fcee 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.bottom);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowUp', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.left, colorWellRect.bottom);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowUp', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '186');
+    assert_equals(gValueContainer.value, '186');
+    assert_equals(bValueContainer.value, '186');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner.html
index 2b9a2ea6..7fb0039 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner.html
@@ -4,6 +4,8 @@
 <script>
 testRunner.waitUntilDone();
 </script>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
 <script src='../../../forms/resources/picker-common.js'></script>
 </head>
 <body>
@@ -13,21 +15,30 @@
 <div id='console' style='opacity: 0'></div>
 
 <script>
-openPicker(document.getElementById('color'), openPickerSuccessfulCallback, () => testRunner.notifyDone());
-
-function openPickerSuccessfulCallback() {
-  popupWindow.focus();
-  const popupDocument = popupWindow.document;
-  const colorWell = popupDocument.querySelector('color-well');
-  const colorWellRect = colorWell.getBoundingClientRect();
-  eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.bottom);
-  eventSender.mouseDown();
-  eventSender.mouseUp();
-  for (let i = 0; i < 5; i++) {
-    eventSender.keyDown('ArrowUp', ['ctrlKey']);
-  }
-  testRunner.notifyDone();
-}
+let t = async_test('Color picker: Moving the color well\'s selection ring using accelerated keyboard movement.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWell = popupDocument.querySelector('color-well');
+    const colorWellRect = colorWell.getBoundingClientRect();
+    eventSender.mouseMoveTo(colorWellRect.right - 1, colorWellRect.bottom);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    for (let i = 0; i < 5; i++) {
+      eventSender.keyDown('ArrowUp', ['ctrlKey']);
+    }
+    const rValueContainer = popupDocument.getElementById('rValueContainer');
+    const gValueContainer = popupDocument.getElementById('gValueContainer');
+    const bValueContainer = popupDocument.getElementById('bValueContainer');
+    assert_equals(rValueContainer.value, '189');
+    assert_equals(gValueContainer.value, '0');
+    assert_equals(bValueContainer.value, '0');
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-color-well-selection-ring-no-scroll.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-color-well-selection-ring-no-scroll.html
new file mode 100644
index 0000000..0258414e
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-color-well-selection-ring-no-scroll.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src='../../../../resources/testharness.js'></script>
+<script src='../../../../resources/testharnessreport.js'></script>
+<script src='../../../forms/resources/picker-common.js'></script>
+</head>
+<body>
+<input type='color' id='color' value='#0072A3'>
+<script>
+'use strict';
+
+let t = async_test('Color picker: Focusing the color well\'s selection ring should not scroll it into view.');
+t.step(() => {
+  let colorControl = document.getElementById('color');
+  openPicker(colorControl, t.step_func_done(() => {
+    popupWindow.focus();
+    const popupDocument = popupWindow.document;
+    const colorWellSelectionRing = popupDocument.querySelector('color-well > color-selection-ring');
+    const colorWellSelectionRingOriginalRect = colorWellSelectionRing.getBoundingClientRect();
+    eventSender.keyDown('Tab');
+    assert_false(didColorWellSelectionRingMove(colorWellSelectionRingOriginalRect, colorWellSelectionRing.getBoundingClientRect()), "Color well selection ring should not have moved after it was focused via tab.");
+    eventSender.keyDown('Tab');
+    eventSender.keyDown('Tab', ['shiftKey']);
+    assert_false(didColorWellSelectionRingMove(colorWellSelectionRingOriginalRect, colorWellSelectionRing.getBoundingClientRect()), "Color well selection ring should not have moved after it was focused via shift+tab.");
+    eventSender.mouseMoveTo(colorWellSelectionRingOriginalRect.left + (colorWellSelectionRingOriginalRect.width / 2),
+        colorWellSelectionRingOriginalRect.top + (colorWellSelectionRingOriginalRect.height / 2));
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    assert_false(didColorWellSelectionRingMove(colorWellSelectionRingOriginalRect, colorWellSelectionRing.getBoundingClientRect()), "Color well selection ring should not have moved after it was focused via click.");
+  }), t.step_func_done(() => {
+    assert_false(internals.runtimeFlags.formControlsRefreshEnabled, "Popup should only not open when the formControlsRefresh flag is disabled.");
+  }));
+});
+
+function didColorWellSelectionRingMove(colorWellSelectionRingOriginalRect, colorWellSelectionRingCurrentRect) {
+  return ((colorWellSelectionRingOriginalRect.top !== colorWellSelectionRingCurrentRect.top) ||
+      (colorWellSelectionRingOriginalRect.left !== colorWellSelectionRingCurrentRect.left) ||
+      (colorWellSelectionRingOriginalRect.bottom !== colorWellSelectionRingCurrentRect.bottom) ||
+      (colorWellSelectionRingOriginalRect.right !== colorWellSelectionRingCurrentRect.right));
+}
+
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-tab-navigation.html b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-tab-navigation.html
index 974123f..2010b140c 100644
--- a/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-tab-navigation.html
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui/color/color-picker-tab-navigation.html
@@ -22,24 +22,38 @@
     descriptionContainer.append('Popup opened.', document.createElement('br'));
     popupWindow.focus();
     const popupDocument = popupWindow.document;
-    const focusableElements = popupDocument
-        .querySelectorAll('color-value-container:not(.hidden-color-value-container) > input, ' +
-                          '[tabindex]:not([tabindex=\'-1\'])');
-    for(let i = 0; i < focusableElements.length; i++) {
-      eventSender.keyDown('Tab');
-      if (popupDocument.activeElement.hasAttribute('id')) {
-        descriptionContainer.append(popupDocument.activeElement.getAttribute('id').toUpperCase());
-      } else {
-        descriptionContainer.append(popupDocument.activeElement.tagName);
-      }
-      descriptionContainer.append(document.createElement('br'));
-    }
+    const formatToggler = popupDocument.querySelector('format-toggler');
+    tabNavigateAndLogFocusableElements(popupDocument);
+    changeActiveColorFormat(formatToggler);
+    tabNavigateAndLogFocusableElements(popupDocument);
+    changeActiveColorFormat(formatToggler);
+    tabNavigateAndLogFocusableElements(popupDocument);
   } else {
     descriptionContainer.append('Popup did not open.', document.createElement('br'));
   }
   descriptionContainer.append('TEST COMPLETE');
   testRunner.notifyDone();
 }
+
+function changeActiveColorFormat(formatToggler) {
+  formatToggler.click();  // first click changes format to HSL, second click changes format to Hex
+  descriptionContainer.append(formatToggler.tagName + ' clicked. Active color format changed.', document.createElement('br'));
+}
+
+function tabNavigateAndLogFocusableElements(popupDocument) {
+  const focusableElements = popupDocument
+      .querySelectorAll('color-value-container:not(.hidden-color-value-container) > input, ' +
+                        '[tabindex]:not([tabindex=\'-1\'])');
+  for(let i = 0; i < focusableElements.length; i++) {
+    eventSender.keyDown('Tab');
+    if (popupDocument.activeElement.hasAttribute('id')) {
+      descriptionContainer.append(popupDocument.activeElement.getAttribute('id').toUpperCase());
+    } else {
+      descriptionContainer.append(popupDocument.activeElement.tagName);
+    }
+    descriptionContainer.append(document.createElement('br'));
+  }
+}
 </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test-expected.txt b/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test-expected.txt
index 40243f6..320da982 100644
--- a/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test-expected.txt
@@ -3,12 +3,14 @@
 Running: testStartsEmpty
 
 Number of contexts (items): 0
+Title: Audio context: (no recordings)}
 Selected Context: null
 
 
 Running: testSelectsCreatedContext
 
 Number of contexts (items): 1
+Title: Audio context: realtime (dc39fd)}
 Selected Context: {
    "contextId": "924c4ee4-4cae-4e62-b4c6-71603edc39fd",
    "contextType": "realtime"
@@ -18,6 +20,7 @@
 Running: testResetClearsList
 
 Number of contexts (items): 0
+Title: Audio context: (no recordings)}
 Selected Context: {
    "contextId": "924c4ee4-4cae-4e62-b4c6-71603edc39fd",
    "contextType": "realtime"
@@ -27,6 +30,7 @@
 Running: testReSelectsCreatedContextAfterChange
 
 Number of contexts (items): 1
+Title: Audio context: realtime (dc39fd)}
 Selected Context: {
    "contextId": "924c4ee4-4cae-4e62-b4c6-71603edc39fd",
    "contextType": "realtime"
@@ -36,6 +40,7 @@
 Running: testFirstCreatedContextStaysSelected
 
 Number of contexts (items): 2
+Title: Audio context: realtime (dc39fd)}
 Selected Context: {
    "contextId": "924c4ee4-4cae-4e62-b4c6-71603edc39fd",
    "contextType": "realtime"
@@ -45,6 +50,7 @@
 Running: testChangingContextDoesNotChangeSelection
 
 Number of contexts (items): 2
+Title: Audio context: realtime (dc39fd)}
 Selected Context: {
    "contextId": "924c4ee4-4cae-4e62-b4c6-71603edc39fd",
    "contextType": "realtime"
@@ -54,6 +60,7 @@
 Running: testSelectedContextBecomesSelected
 
 Number of contexts (items): 2
+Title: Audio context: realtime (695c9e)}
 Selected Context: {
    "contextId": "78a3e94e-4968-4bf6-8905-325109695c9e",
    "contextType": "realtime"
@@ -65,6 +72,7 @@
 _onListItemReplaced called with contexts (items) count: 1
 
 Number of contexts (items): 1
+Title: Audio context: realtime (dc39fd)}
 Selected Context: {
    "contextId": "924c4ee4-4cae-4e62-b4c6-71603edc39fd",
    "contextType": "realtime"
diff --git a/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test.js b/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test.js
index eae8a16..a53924f 100644
--- a/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test.js
+++ b/third_party/blink/web_tests/http/tests/devtools/webaudio/audio-context-selector-test.js
@@ -21,6 +21,7 @@
       /** @type {!WebAudio.AudioContextSelector} */ selector) {
     TestRunner.addResult(`
 Number of contexts (items): ${selector._items.length}
+Title: ${selector.toolbarItem()._title}}
 Selected Context: ${JSON.stringify(selector.selectedContext(), null, 3)}
 `);
   }
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/websocket/failure-message-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/websocket/failure-message-expected.txt
new file mode 100644
index 0000000..b6c84ff
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/websocket/failure-message-expected.txt
@@ -0,0 +1,4 @@
+Verifies that a helpful console message is emitted on websocket failure.
+WebSocket failure console message:
+WebSocket connection to 'ws://localhost:8000/' failed: Error during WebSocket handshake: Unexpected response code: 200
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/websocket/failure-message.js b/third_party/blink/web_tests/http/tests/inspector-protocol/websocket/failure-message.js
new file mode 100644
index 0000000..64e538a
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/websocket/failure-message.js
@@ -0,0 +1,16 @@
+(async function(testRunner) {
+  var {page, session, dp} = await testRunner.startBlank(
+      `Verifies that a helpful console message is emitted on websocket failure.`);
+
+  await dp.Log.enable();
+  dp.Log.onEntryAdded(entryAddedEvent => {
+    const message = entryAddedEvent.params.entry.text;
+    if (message.includes('WebSocket') && message.includes('failed')) {
+      testRunner.log('WebSocket failure console message:\n' + message);
+      testRunner.completeTest();
+    }
+    testRunner.log('logEntry: ' + JSON.stringify(logEntry, null, 2));
+  });
+
+  session.evaluate(`new WebSocket('ws://localhost:8000/')`);
+})
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
index 3e48c5c7..6fc5e74 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
deleted file mode 100644
index d1308d0..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
index 564997c..0e0745a 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 6760c5b2..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index 74844ee..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
index a55f681..1a5e4647e 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
index 13a4921..85a7d4e7 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
index 564997c..0e0745a 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
deleted file mode 100644
index a82856eb..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
index b682542..cb5bdbe 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 8ce73bf4..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index 44970eee..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
index 79e5538e..c3987f1c 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
index 43b653b7..a36bb563 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index f63b74f..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index d8c4d700..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
index 099e68d..328f25d 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
index b0f5ed6..7f42ecbe 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index 0fb4952..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 0fe372b..0000000
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
index d43052d..2e6dd9e6 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
index 7ba5489..6ae3335f 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
index 599297e..c50691b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
index 095ba310..1deb0f37 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
index 095ba310..1deb0f37 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
index 10da3ce..f81cf07 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
index 1761312c..97bb825 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
new file mode 100644
index 0000000..6fcedf7
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
new file mode 100644
index 0000000..c45d628
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..faca3b7c
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..a277a33
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
new file mode 100644
index 0000000..c45d628
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
new file mode 100644
index 0000000..51751a5
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..0d48178
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..38e8bb29
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..26f961b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..5cd609e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..b82a302
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..08d7fcd
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
new file mode 100644
index 0000000..b562da06
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
new file mode 100644
index 0000000..e187127
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
new file mode 100644
index 0000000..e187127
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
new file mode 100644
index 0000000..b3019a3b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
new file mode 100644
index 0000000..5817e628
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
new file mode 100644
index 0000000..6fcedf7
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
new file mode 100644
index 0000000..c45d628
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..faca3b7c
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..a277a33
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
new file mode 100644
index 0000000..c45d628
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
new file mode 100644
index 0000000..51751a5
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..0d48178
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..38e8bb29
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..26f961b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..5cd609e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..b82a302
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..08d7fcd
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
new file mode 100644
index 0000000..b562da06
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
new file mode 100644
index 0000000..e187127
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
new file mode 100644
index 0000000..e187127
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
new file mode 100644
index 0000000..b3019a3b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
new file mode 100644
index 0000000..5817e628
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/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-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
index 01983a7..6fcedf7 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
deleted file mode 100644
index 588e3c1..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
index 0da2707..c45d628 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index f35c1e9..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index d223f31..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
index 14de13b..faca3b7c 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
index ffb3e70..a277a33 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
index 0da2707..c45d628 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
deleted file mode 100644
index 3df2b76f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
index 691a734..51751a5 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 35788cce..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index dd7acecb..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
index 1ce598c..0d48178 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
index 2d693d1..38e8bb29 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index 22bb5460..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 8b733cb..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
index 7a5cb9c..26f961b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
index 1e35869..5cd609e 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index 432827f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 178218e..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
index c52614d..b82a302 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
index 5cbaa17..08d7fcd 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
index e0ddcf3..b562da06 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
index 67e3d5d7d..e187127 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
index 67e3d5d7d..e187127 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
index 06946ad..b3019a3b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
index 1f181be5..5817e628 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
new file mode 100644
index 0000000..18442dc
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
new file mode 100644
index 0000000..c8cb89d
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..f53c287
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..40846239
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
new file mode 100644
index 0000000..c8cb89d
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
new file mode 100644
index 0000000..b8f5df7
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..f4cc43e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..b1fda7f1
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..5c71a22
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..7fec7741
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..342943ba
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..1247676
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
new file mode 100644
index 0000000..5deb472
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
new file mode 100644
index 0000000..d6f634b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
new file mode 100644
index 0000000..d6f634b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
new file mode 100644
index 0000000..4b5ec410
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
new file mode 100644
index 0000000..e70429a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
deleted file mode 100644
index aa39c2e9..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
deleted file mode 100644
index 1a45db0e..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index c6466c7..0000000
--- a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
index 7f2e3b7..18442dc 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
deleted file mode 100644
index 97f3e0ba..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
index eb920755..c8cb89d 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 339c358c..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index bea5af6..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
index 484795ac..f53c287 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
index 17f9cd7..40846239 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
index eb920755..c8cb89d 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
deleted file mode 100644
index 810ed4f4..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
index 3299373..b8f5df7 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index fb3d7a8..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index a3cd7c6..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
index 65f86c9..f4cc43e 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
index 8dfb7a7..b1fda7f1 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index dc34cfe..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 9af846a..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
index 8568a674..5c71a22 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
index 3dc809c..7fec7741 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index 8120b1e..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index dda6fc30..0000000
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
index 56e1713..342943ba 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
index e1f6b98..1247676 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
index 3b9d1ecd..5deb472 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
index dea7434..d6f634b 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
index dea7434..d6f634b 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
index c56ebc4..4b5ec410 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
index 9638e7e..e70429a 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
deleted file mode 100644
index 01646946..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
deleted file mode 100644
index b846542..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 6a88d971..0000000
--- a/third_party/blink/web_tests/platform/win/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
index 82aa5b6..2d8883e 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
deleted file mode 100644
index 3ba0b87..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-accelerated-keyboard-navigation-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
index af0ea68..1631bf4fc 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 6d2a54e..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index 4f37007..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
index 558a290f..f62df5a 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
index 23c8623..cbf3df8 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
index af0ea68..1631bf4fc 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
deleted file mode 100644
index 94ee3f9f..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-after-drag-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
index 4766a22..c320778e 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 8c5b7cb..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
deleted file mode 100644
index de46fa7..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-accelerated-keyboard-navigation-from-top-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
index c7ebf501..dba88cd 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
index 117eb51..c88fc7c 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index a21b277..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
deleted file mode 100644
index 06baebef..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-accelerated-keyboard-navigation-from-top-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
index d34e81a..ec290f43 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
index 0e8189e3..d27ed8b3 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
deleted file mode 100644
index d4d03d9..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-left-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
deleted file mode 100644
index 4f2a7316..0000000
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-accelerated-keyboard-navigation-from-bottom-right-corner-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
index 9abf64c..e85d2cc 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
index 0800f4a..157c594 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
index 51f0be4..5354ab0 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
index 36a0c7a..b4a6229 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
index 36a0c7a..b4a6229 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
index 0c79191..9e0d7be 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/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/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
index f870823..f85961b 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png b/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
new file mode 100644
index 0000000..fcf7406
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/color-picker-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
new file mode 100644
index 0000000..9bcdc7a2
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..d79ff0aa
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-down-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..0085b827
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
new file mode 100644
index 0000000..9bcdc7a2
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
new file mode 100644
index 0000000..b0c3420a3
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..b32ce6c
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-left-keyboard-navigation-from-top-right-corner-expected.png
new file mode 100644
index 0000000..7ac5e5ca
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..fd9c432
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-right-keyboard-navigation-from-top-left-corner-expected.png
new file mode 100644
index 0000000..f7e9d29
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-left-corner-expected.png
new file mode 100644
index 0000000..fd26ec6c
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-color-well-up-keyboard-navigation-from-bottom-right-corner-expected.png
new file mode 100644
index 0000000..aaa8129
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/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/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
new file mode 100644
index 0000000..04018d8
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-accelerated-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
new file mode 100644
index 0000000..d874d6e
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
new file mode 100644
index 0000000..d874d6e
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-drag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
new file mode 100644
index 0000000..d77225f
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-keyboard-navigation-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
new file mode 100644
index 0000000..7285ce5
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-appearance-hue-slider-right-edge-zero-hue-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-tab-navigation-expected.txt b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-tab-navigation-expected.txt
index f8190be..4fe22dc 100644
--- a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-tab-navigation-expected.txt
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/color/color-picker-tab-navigation-expected.txt
@@ -7,4 +7,20 @@
 FORMAT-TOGGLER
 SUBMISSION-BUTTON
 SUBMISSION-BUTTON
+FORMAT-TOGGLER clicked. Active color format changed.
+SUBMISSION-BUTTON
+SUBMISSION-BUTTON
+COLOR-SELECTION-RING
+COLOR-SELECTION-RING
+HVALUECONTAINER
+SVALUECONTAINER
+LVALUECONTAINER
+FORMAT-TOGGLER
+FORMAT-TOGGLER clicked. Active color format changed.
+SUBMISSION-BUTTON
+SUBMISSION-BUTTON
+COLOR-SELECTION-RING
+COLOR-SELECTION-RING
+HEXVALUECONTAINER
+FORMAT-TOGGLER
 TEST COMPLETE
diff --git a/third_party/gvr-android-sdk/OWNERS b/third_party/gvr-android-sdk/OWNERS
index b41e0ac..b11ad03 100644
--- a/third_party/gvr-android-sdk/OWNERS
+++ b/third_party/gvr-android-sdk/OWNERS
@@ -1,4 +1,6 @@
+alcooper@chromium.org
 bajones@chromium.org
+bialpio@chromium.org
 mthiesse@chromium.org
 vollick@chromium.org
 
diff --git a/third_party/libvpx/generate_gni.sh b/third_party/libvpx/generate_gni.sh
index fa8d847..ee2cfa80 100755
--- a/third_party/libvpx/generate_gni.sh
+++ b/third_party/libvpx/generate_gni.sh
@@ -284,6 +284,10 @@
   # Disable HAVE_UNISTD_H as it causes vp8 to try to detect how many cpus
   # available, which doesn't work from inside a sandbox on linux.
   sed -i.bak -e 's/\(HAVE_UNISTD_H[[:space:]]*\)1/\10/' vpx_config.h
+  # Maintain old ARCH_ defines to avoid build errors because assembly file
+  # dependencies are incorrect.
+  sed -i.bak -e 's/\(#define \)VPX_\(ARCH_[_0-9A-Z]\+ [01]\)/&\n\1\2/' vpx_config.h
+
   rm vpx_config.h.bak
 
   # Use the correct ads2gas script.
diff --git a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm
index 1bda112..4fbfdb36 100644
--- a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm
+++ b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm
@@ -3,10 +3,15 @@
 
 	.syntax unified
 .set VPX_ARCH_ARM ,  1
+.set ARCH_ARM ,  1
 .set VPX_ARCH_MIPS ,  0
+.set ARCH_MIPS ,  0
 .set VPX_ARCH_X86 ,  0
+.set ARCH_X86 ,  0
 .set VPX_ARCH_X86_64 ,  0
+.set ARCH_X86_64 ,  0
 .set VPX_ARCH_PPC ,  0
+.set ARCH_PPC ,  0
 .set HAVE_NEON ,  1
 .set HAVE_NEON_ASM ,  1
 .set HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h
index 34a7ebc8..9b93abc 100644
--- a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h
+++ b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 1
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/ios/arm64/vpx_config.asm b/third_party/libvpx/source/config/ios/arm64/vpx_config.asm
index 30b0ffa..9a9f359 100644
--- a/third_party/libvpx/source/config/ios/arm64/vpx_config.asm
+++ b/third_party/libvpx/source/config/ios/arm64/vpx_config.asm
@@ -3,10 +3,15 @@
 
 	.syntax unified
 .set VPX_ARCH_ARM ,  1
+.set ARCH_ARM ,  1
 .set VPX_ARCH_MIPS ,  0
+.set ARCH_MIPS ,  0
 .set VPX_ARCH_X86 ,  0
+.set ARCH_X86 ,  0
 .set VPX_ARCH_X86_64 ,  0
+.set ARCH_X86_64 ,  0
 .set VPX_ARCH_PPC ,  0
+.set ARCH_PPC ,  0
 .set HAVE_NEON ,  1
 .set HAVE_NEON_ASM ,  0
 .set HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/ios/arm64/vpx_config.h b/third_party/libvpx/source/config/ios/arm64/vpx_config.h
index e67dba7..26c6c93b 100644
--- a/third_party/libvpx/source/config/ios/arm64/vpx_config.h
+++ b/third_party/libvpx/source/config/ios/arm64/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm
index 38a8f66..c88836d 100644
--- a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  1
+.equ ARCH_ARM ,  1
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  1
 .equ HAVE_NEON_ASM ,  1
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h
index 76e117fa..b55e9c2 100644
--- a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 1
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.asm b/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.asm
index e4fe896..b03bab5b 100644
--- a/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  1
+.equ ARCH_ARM ,  1
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  1
 .equ HAVE_NEON_ASM ,  1
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.h b/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.h
index f95f4c3..8c96f343 100644
--- a/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 1
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm
index 6ce7cc1..51b7a0c 100644
--- a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  1
+.equ ARCH_ARM ,  1
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  1
 .equ HAVE_NEON_ASM ,  1
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h
index 34a7ebc8..9b93abc 100644
--- a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 1
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/arm/vpx_config.asm b/third_party/libvpx/source/config/linux/arm/vpx_config.asm
index ed666184..833aa3b 100644
--- a/third_party/libvpx/source/config/linux/arm/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/arm/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  1
+.equ ARCH_ARM ,  1
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  0
 .equ HAVE_NEON_ASM ,  0
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/arm/vpx_config.h b/third_party/libvpx/source/config/linux/arm/vpx_config.h
index 6bcf43a..8b5d776 100644
--- a/third_party/libvpx/source/config/linux/arm/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/arm/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.asm b/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.asm
index a1595907..36b9ae9 100644
--- a/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  1
+.equ ARCH_ARM ,  1
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  1
 .equ HAVE_NEON_ASM ,  0
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.h b/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.h
index ee9afbb..4a4a983 100644
--- a/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/arm64/vpx_config.asm b/third_party/libvpx/source/config/linux/arm64/vpx_config.asm
index 2cbe16c..2a97149 100644
--- a/third_party/libvpx/source/config/linux/arm64/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/arm64/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  1
+.equ ARCH_ARM ,  1
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  1
 .equ HAVE_NEON_ASM ,  0
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/arm64/vpx_config.h b/third_party/libvpx/source/config/linux/arm64/vpx_config.h
index e67dba7..26c6c93b 100644
--- a/third_party/libvpx/source/config/linux/arm64/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/arm64/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/generic/vpx_config.asm b/third_party/libvpx/source/config/linux/generic/vpx_config.asm
index 9bad89cc..b222974 100644
--- a/third_party/libvpx/source/config/linux/generic/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/generic/vpx_config.asm
@@ -2,10 +2,15 @@
 @  using the ads2gas.pl script.
 	.syntax unified
 .equ VPX_ARCH_ARM ,  0
+.equ ARCH_ARM ,  0
 .equ VPX_ARCH_MIPS ,  0
+.equ ARCH_MIPS ,  0
 .equ VPX_ARCH_X86 ,  0
+.equ ARCH_X86 ,  0
 .equ VPX_ARCH_X86_64 ,  0
+.equ ARCH_X86_64 ,  0
 .equ VPX_ARCH_PPC ,  0
+.equ ARCH_PPC ,  0
 .equ HAVE_NEON ,  0
 .equ HAVE_NEON_ASM ,  0
 .equ HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/linux/generic/vpx_config.h b/third_party/libvpx/source/config/linux/generic/vpx_config.h
index b6b74f2..b3aa3ec4 100644
--- a/third_party/libvpx/source/config/linux/generic/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/generic/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_config.asm b/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
index 6a99cf4b..d5bb465 100644
--- a/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
@@ -1,8 +1,13 @@
 %define VPX_ARCH_ARM 0
+%define ARCH_ARM 0
 %define VPX_ARCH_MIPS 0
+%define ARCH_MIPS 0
 %define VPX_ARCH_X86 1
+%define ARCH_X86 1
 %define VPX_ARCH_X86_64 0
+%define ARCH_X86_64 0
 %define VPX_ARCH_PPC 0
+%define ARCH_PPC 0
 %define HAVE_NEON 0
 %define HAVE_NEON_ASM 0
 %define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_config.h b/third_party/libvpx/source/config/linux/ia32/vpx_config.h
index 96081aa..c485a8c 100644
--- a/third_party/libvpx/source/config/linux/ia32/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/ia32/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 1
+#define ARCH_X86 1
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/mips64el/vpx_config.h b/third_party/libvpx/source/config/linux/mips64el/vpx_config.h
index c5fc4ae3..39abec3 100644
--- a/third_party/libvpx/source/config/linux/mips64el/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/mips64el/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 1
+#define ARCH_MIPS 1
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/mipsel/vpx_config.h b/third_party/libvpx/source/config/linux/mipsel/vpx_config.h
index 5cf1ed8..f8cffcd 100644
--- a/third_party/libvpx/source/config/linux/mipsel/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/mipsel/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 1
+#define ARCH_MIPS 1
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 1
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_config.asm b/third_party/libvpx/source/config/linux/x64/vpx_config.asm
index 285e36b..b1428b1 100644
--- a/third_party/libvpx/source/config/linux/x64/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/x64/vpx_config.asm
@@ -1,8 +1,13 @@
 %define VPX_ARCH_ARM 0
+%define ARCH_ARM 0
 %define VPX_ARCH_MIPS 0
+%define ARCH_MIPS 0
 %define VPX_ARCH_X86 0
+%define ARCH_X86 0
 %define VPX_ARCH_X86_64 1
+%define ARCH_X86_64 1
 %define VPX_ARCH_PPC 0
+%define ARCH_PPC 0
 %define HAVE_NEON 0
 %define HAVE_NEON_ASM 0
 %define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_config.h b/third_party/libvpx/source/config/linux/x64/vpx_config.h
index 51205cfc..51bcbedd 100644
--- a/third_party/libvpx/source/config/linux/x64/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/x64/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 1
+#define ARCH_X86_64 1
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_config.asm b/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
index 6a99cf4b..d5bb465 100644
--- a/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
+++ b/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
@@ -1,8 +1,13 @@
 %define VPX_ARCH_ARM 0
+%define ARCH_ARM 0
 %define VPX_ARCH_MIPS 0
+%define ARCH_MIPS 0
 %define VPX_ARCH_X86 1
+%define ARCH_X86 1
 %define VPX_ARCH_X86_64 0
+%define ARCH_X86_64 0
 %define VPX_ARCH_PPC 0
+%define ARCH_PPC 0
 %define HAVE_NEON 0
 %define HAVE_NEON_ASM 0
 %define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_config.h b/third_party/libvpx/source/config/mac/ia32/vpx_config.h
index 96081aa..c485a8c 100644
--- a/third_party/libvpx/source/config/mac/ia32/vpx_config.h
+++ b/third_party/libvpx/source/config/mac/ia32/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 1
+#define ARCH_X86 1
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.asm b/third_party/libvpx/source/config/mac/x64/vpx_config.asm
index 285e36b..b1428b1 100644
--- a/third_party/libvpx/source/config/mac/x64/vpx_config.asm
+++ b/third_party/libvpx/source/config/mac/x64/vpx_config.asm
@@ -1,8 +1,13 @@
 %define VPX_ARCH_ARM 0
+%define ARCH_ARM 0
 %define VPX_ARCH_MIPS 0
+%define ARCH_MIPS 0
 %define VPX_ARCH_X86 0
+%define ARCH_X86 0
 %define VPX_ARCH_X86_64 1
+%define ARCH_X86_64 1
 %define VPX_ARCH_PPC 0
+%define ARCH_PPC 0
 %define HAVE_NEON 0
 %define HAVE_NEON_ASM 0
 %define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.h b/third_party/libvpx/source/config/mac/x64/vpx_config.h
index 51205cfc..51bcbedd 100644
--- a/third_party/libvpx/source/config/mac/x64/vpx_config.h
+++ b/third_party/libvpx/source/config/mac/x64/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 1
+#define ARCH_X86_64 1
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/nacl/vpx_config.h b/third_party/libvpx/source/config/nacl/vpx_config.h
index b6b74f2..b3aa3ec4 100644
--- a/third_party/libvpx/source/config/nacl/vpx_config.h
+++ b/third_party/libvpx/source/config/nacl/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/win/arm64/vpx_config.asm b/third_party/libvpx/source/config/win/arm64/vpx_config.asm
index 437949ec..e6a1b069 100644
--- a/third_party/libvpx/source/config/win/arm64/vpx_config.asm
+++ b/third_party/libvpx/source/config/win/arm64/vpx_config.asm
@@ -3,10 +3,15 @@
 
 	.syntax unified
 .set VPX_ARCH_ARM ,  1
+.set ARCH_ARM ,  1
 .set VPX_ARCH_MIPS ,  0
+.set ARCH_MIPS ,  0
 .set VPX_ARCH_X86 ,  0
+.set ARCH_X86 ,  0
 .set VPX_ARCH_X86_64 ,  0
+.set ARCH_X86_64 ,  0
 .set VPX_ARCH_PPC ,  0
+.set ARCH_PPC ,  0
 .set HAVE_NEON ,  1
 .set HAVE_NEON_ASM ,  0
 .set HAVE_MIPS32 ,  0
diff --git a/third_party/libvpx/source/config/win/arm64/vpx_config.h b/third_party/libvpx/source/config/win/arm64/vpx_config.h
index 427b655..54366eb 100644
--- a/third_party/libvpx/source/config/win/arm64/vpx_config.h
+++ b/third_party/libvpx/source/config/win/arm64/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      __inline
 #define VPX_ARCH_ARM 1
+#define ARCH_ARM 1
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.asm b/third_party/libvpx/source/config/win/ia32/vpx_config.asm
index 4370d52..da1a5d6 100644
--- a/third_party/libvpx/source/config/win/ia32/vpx_config.asm
+++ b/third_party/libvpx/source/config/win/ia32/vpx_config.asm
@@ -1,8 +1,13 @@
 %define VPX_ARCH_ARM 0
+%define ARCH_ARM 0
 %define VPX_ARCH_MIPS 0
+%define ARCH_MIPS 0
 %define VPX_ARCH_X86 1
+%define ARCH_X86 1
 %define VPX_ARCH_X86_64 0
+%define ARCH_X86_64 0
 %define VPX_ARCH_PPC 0
+%define ARCH_PPC 0
 %define HAVE_NEON 0
 %define HAVE_NEON_ASM 0
 %define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.h b/third_party/libvpx/source/config/win/ia32/vpx_config.h
index ac727cb..d0db091 100644
--- a/third_party/libvpx/source/config/win/ia32/vpx_config.h
+++ b/third_party/libvpx/source/config/win/ia32/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      __inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 1
+#define ARCH_X86 1
 #define VPX_ARCH_X86_64 0
+#define ARCH_X86_64 0
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.asm b/third_party/libvpx/source/config/win/x64/vpx_config.asm
index 107e572..d9c5cc9 100644
--- a/third_party/libvpx/source/config/win/x64/vpx_config.asm
+++ b/third_party/libvpx/source/config/win/x64/vpx_config.asm
@@ -1,8 +1,13 @@
 %define VPX_ARCH_ARM 0
+%define ARCH_ARM 0
 %define VPX_ARCH_MIPS 0
+%define ARCH_MIPS 0
 %define VPX_ARCH_X86 0
+%define ARCH_X86 0
 %define VPX_ARCH_X86_64 1
+%define ARCH_X86_64 1
 %define VPX_ARCH_PPC 0
+%define ARCH_PPC 0
 %define HAVE_NEON 0
 %define HAVE_NEON_ASM 0
 %define HAVE_MIPS32 0
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.h b/third_party/libvpx/source/config/win/x64/vpx_config.h
index be057ad..96d05ea 100644
--- a/third_party/libvpx/source/config/win/x64/vpx_config.h
+++ b/third_party/libvpx/source/config/win/x64/vpx_config.h
@@ -11,10 +11,15 @@
 #define RESTRICT    
 #define INLINE      __inline
 #define VPX_ARCH_ARM 0
+#define ARCH_ARM 0
 #define VPX_ARCH_MIPS 0
+#define ARCH_MIPS 0
 #define VPX_ARCH_X86 0
+#define ARCH_X86 0
 #define VPX_ARCH_X86_64 1
+#define ARCH_X86_64 1
 #define VPX_ARCH_PPC 0
+#define ARCH_PPC 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
diff --git a/third_party/metrics_proto/BUILD.gn b/third_party/metrics_proto/BUILD.gn
index cef117f..a5d70d2 100644
--- a/third_party/metrics_proto/BUILD.gn
+++ b/third_party/metrics_proto/BUILD.gn
@@ -4,32 +4,45 @@
 
 import("//third_party/protobuf/proto_library.gni")
 
+if (is_android) {
+  import("//build/config/android/rules.gni")
+}
+
+_proto_files = [
+  "call_stack_profile.proto",
+  "cast_logs.proto",
+  "chrome_os_app_list_launch_event.proto",
+  "chrome_user_metrics_extension.proto",
+  "execution_context.proto",
+  "extension_install.proto",
+  "histogram_event.proto",
+  "memory_leak_report.proto",
+  "omnibox_event.proto",
+  "omnibox_input_type.proto",
+  "perf_data.proto",
+  "perf_stat.proto",
+  "printer_event.proto",
+  "reporting_info.proto",
+  "sampled_profile.proto",
+  "system_profile.proto",
+  "trace_log.proto",
+  "translate_event.proto",
+  "ukm/aggregate.proto",
+  "ukm/entry.proto",
+  "ukm/report.proto",
+  "ukm/source.proto",
+  "user_action_event.proto",
+  "user_demographics.proto",
+]
+
 proto_library("metrics_proto") {
-  sources = [
-    "call_stack_profile.proto",
-    "cast_logs.proto",
-    "chrome_os_app_list_launch_event.proto",
-    "chrome_user_metrics_extension.proto",
-    "execution_context.proto",
-    "extension_install.proto",
-    "histogram_event.proto",
-    "memory_leak_report.proto",
-    "omnibox_event.proto",
-    "omnibox_input_type.proto",
-    "perf_data.proto",
-    "perf_stat.proto",
-    "printer_event.proto",
-    "reporting_info.proto",
-    "sampled_profile.proto",
-    "system_profile.proto",
-    "trace_log.proto",
-    "translate_event.proto",
-    "ukm/aggregate.proto",
-    "ukm/entry.proto",
-    "ukm/report.proto",
-    "ukm/source.proto",
-    "user_action_event.proto",
-    "user_demographics.proto",
-  ]
+  sources = _proto_files
   proto_in_dir = "."
 }
+
+if (is_android) {
+  proto_java_library("metrics_proto_java") {
+    proto_path = "."
+    sources = _proto_files
+  }
+}
diff --git a/third_party/metrics_proto/README.chromium b/third_party/metrics_proto/README.chromium
index c953365..3c98621d 100644
--- a/third_party/metrics_proto/README.chromium
+++ b/third_party/metrics_proto/README.chromium
@@ -1,8 +1,8 @@
 Name: Metrics Protos
 Short Name: metrics_proto
 URL: This is the canonical public repository
-Version: 270927279
-Date: 2019/09/24 UTC
+Version: 274892279
+Date: 2019/10/15 UTC
 License: BSD
 Security Critical: Yes
 
diff --git a/third_party/metrics_proto/cast_logs.proto b/third_party/metrics_proto/cast_logs.proto
index 212befa..f4484d6b8 100644
--- a/third_party/metrics_proto/cast_logs.proto
+++ b/third_party/metrics_proto/cast_logs.proto
@@ -17,7 +17,7 @@
   // Next tag: 7
   message CastDeviceInfo {
     // The product type of Cast device sent from Cast-enabled devices.
-    // Next tag: 9
+    // Next tag: 10
     enum CastProductType {
       CAST_PRODUCT_TYPE_UNKNOWN = 0;
       CAST_PRODUCT_TYPE_CHROMECAST = 1;
@@ -28,6 +28,7 @@
       CAST_PRODUCT_TYPE_ANDROID_THINGS = 6;
       CAST_PRODUCT_TYPE_CHROME_OS = 7;
       CAST_PRODUCT_TYPE_FUCHSIA_OS = 8;
+      CAST_PRODUCT_TYPE_LITE = 9;
     }
     optional CastProductType type = 1;
 
diff --git a/third_party/metrics_proto/ukm/report.proto b/third_party/metrics_proto/ukm/report.proto
index a845b97..7a74d107 100644
--- a/third_party/metrics_proto/ukm/report.proto
+++ b/third_party/metrics_proto/ukm/report.proto
@@ -12,9 +12,10 @@
 import "ukm/entry.proto";
 import "ukm/source.proto";
 import "system_profile.proto";
+import "user_demographics.proto";
 
 // This is the message type sent from Chrome to the UKM collector.
-// Next tag: 11
+// Next tag: 12
 message Report {
   // A unique identifier for a Chrome install. This ID should be used only
   // in UKM reports, and not linked to any other data sources.
@@ -45,6 +46,11 @@
   // Information about the user's browser and system configuration.
   optional metrics.SystemProfileProto system_profile = 2;
 
+  // The user's demographic information that consists of their noised birth year
+  // and gender. This data is made available to Chrome via syncable priority
+  // pref, so is only available if the user is signed-in and syncing.
+  optional metrics.UserDemographicsProto user_demographics = 11;
+
   // A list of the top-level navigations that data was collected for.
   repeated Source sources = 3;
 
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 6a5e2e2..1fa7dc9f 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -1744,7 +1744,7 @@
 
 <enum name="AndroidSearchEngineChoiceEventsV2">
   <summary>Events related to Search Engine Choice V2 feature.</summary>
-  <int value="0" label="Request recieved from play"/>
+  <int value="0" label="Request received from play"/>
   <int value="1"
       label="User skipped (didn't complete) Search Engine Choice flow"/>
   <int value="2" label="Play API returned empty list of providers"/>
@@ -2812,6 +2812,7 @@
   <int value="17" label="App started from Smart Text Selection context menu"/>
   <int value="18" label="App started from Kiosk Next Home"/>
   <int value="19" label="Interaction with gamepad"/>
+  <int value="20" label="App started from URL in the Omnibox"/>
 </enum>
 
 <enum name="ArcVideoDecodeAcceleratorResult">
@@ -16161,6 +16162,7 @@
   <int value="4" label="ANGLE D3D11"/>
   <int value="5" label="ANGLE OpenGL"/>
   <int value="6" label="ANGLE OpenGL ES"/>
+  <int value="13" label="Angle D3D11on12"/>
 </enum>
 
 <enum name="EmbeddedWorkerStartingPhase">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index b00cfb4..0fc5eb2b 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -4954,6 +4954,30 @@
   <owner>jiameng@chromium.org</owner>
   <summary>
     The number of results returned from a call to the Drive QuickAccess API.
+    Only reported if the API call did not error.
+  </summary>
+</histogram>
+
+<histogram name="Apps.AppList.DriveQuickAccessProvider.CacheEmpty"
+    enum="BooleanEmpty" expires_after="M81">
+  <owner>tby@chromium.org</owner>
+  <owner>wrong@chromium.org</owner>
+  <owner>jiameng@chromium.org</owner>
+  <summary>
+    Whether or not the results cache is empty. An empty cache means either poor
+    network conditions, the user opening zero-state very quickly, or an API
+    error.
+  </summary>
+</histogram>
+
+<histogram name="Apps.AppList.DriveQuickAccessProvider.DriveFSMounted"
+    enum="Boolean" expires_after="M81">
+  <owner>tby@chromium.org</owner>
+  <owner>wrong@chromium.org</owner>
+  <owner>jiameng@chromium.org</owner>
+  <summary>
+    Whether or not DriveFS is mounted on a call to
+    DriveQuickAccessProvider::Start or ::GetQuickAccessItems.
   </summary>
 </histogram>
 
@@ -4975,7 +4999,7 @@
   <owner>jiameng@chromium.org</owner>
   <summary>
     The time between when GetQuickAccessItems was last called, and receiving
-    Drive Quick Access results back.
+    Drive QuickAccess results back. Only reported if the API call did not error.
   </summary>
 </histogram>
 
@@ -5002,6 +5026,17 @@
   </summary>
 </histogram>
 
+<histogram name="Apps.AppList.DriveQuickAccessProvider.ValidResults"
+    units="count" expires_after="M81">
+  <owner>tby@chromium.org</owner>
+  <owner>wrong@chromium.org</owner>
+  <owner>jiameng@chromium.org</owner>
+  <summary>
+    Counts how many results from one call to the QuickAccess API exist in the
+    DriveFS mount and are OK for display.
+  </summary>
+</histogram>
+
 <histogram name="Apps.AppList.LauncherSearchProvider.QueryTime" units="ms"
     expires_after="2019-12-31">
   <owner>jennyz@chriomium.org</owner>
@@ -8875,6 +8910,16 @@
   </summary>
 </histogram>
 
+<histogram name="Assistant.ServiceReadyTime" units="ms"
+    expires_after="2020-02-23">
+  <owner>xiaohuic@chromium.org</owner>
+  <owner>jeroendh@google.com</owner>
+  <summary>
+    Amount of time between when the Assistant service is launched, and when the
+    Assistant back-end signals it is ready to process queries.
+  </summary>
+</histogram>
+
 <histogram name="Assistant.ServiceStartTime" units="ms"
     expires_after="2020-02-23">
   <owner>updowndota@chromium.org</owner>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index b61ff2cb..351f8f5 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -2426,6 +2426,22 @@
   </metric>
 </event>
 
+<event name="ClickInput" singular="True">
+  <owner>dougarnett@chromium.org</owner>
+  <summary>
+    Metrics associated with user click input. In particular, captures when user
+    has a burst of clicks at the same location which may be a signal of user
+    unhappiness for an experiment if it differs from the baseline data for the
+    site.
+  </summary>
+  <metric name="Experimental.ClickInputBurst">
+    <summary>
+      The count of the largest burst of click inputs for a page load. Only
+      recorded if it meets a minimum threshold to be considered a burst.
+    </summary>
+  </metric>
+</event>
+
 <event name="Compositor.Rendering">
   <owner>khushalsagar@chromium.org</owner>
   <summary>
diff --git a/tools/perf/PRESUBMIT.py b/tools/perf/PRESUBMIT.py
index c8011f7a..b724f30 100644
--- a/tools/perf/PRESUBMIT.py
+++ b/tools/perf/PRESUBMIT.py
@@ -68,97 +68,77 @@
   out, _ = p.communicate()
   return (out, p.returncode)
 
+def _RunValidationScript(
+    input_api,
+    output_api,
+    script_path,
+    extra_args = None,
+    block_on_failure = None):
+  results = []
+  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
+  perf_dir = input_api.PresubmitLocalPath()
+  script_abs_path = input_api.os_path.join(perf_dir, script_path)
+  extra_args = extra_args if extra_args else []
+  args = [vpython, script_abs_path] + extra_args
+  out, return_code = _RunArgs(args, input_api)
+  if return_code:
+    error_msg = 'Script ' + script_path + ' failed.'
+    if block_on_failure is None or block_on_failure:
+      results.append(output_api.PresubmitError(
+          error_msg, long_text=out))
+    else:
+      results.append(output_api.PresubmitPromptWarning(
+          error_msg, long_text=out))
+  return results
 
 def _CheckExpectations(input_api, output_api):
-  results = []
-  perf_dir = input_api.PresubmitLocalPath()
-  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
-  out, return_code = _RunArgs([
-      vpython,
-      input_api.os_path.join(perf_dir, 'validate_story_expectation_data')],
-      input_api)
-  if return_code:
-    results.append(output_api.PresubmitError(
-        'Validating story expectation data failed.', long_text=out))
-  return results
-
+  return _RunValidationScript(
+      input_api,
+      output_api,
+      'validate_story_expectation_data',
+  )
 
 def _CheckPerfDataCurrentness(input_api, output_api, block_on_failure):
-  results = []
-  perf_dir = input_api.PresubmitLocalPath()
-  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
-  out, return_code = _RunArgs([
-      vpython,
-      input_api.os_path.join(perf_dir, 'generate_perf_data'),
-      '--validate-only'], input_api)
-  if return_code:
-    if block_on_failure:
-      results.append(output_api.PresubmitError(
-          'Validating perf data currentness failed', long_text=out))
-    else:
-      results.append(output_api.PresubmitPromptWarning(
-          'Validating perf data currentness failed', long_text=out))
-  return results
-
+  return _RunValidationScript(
+      input_api,
+      output_api,
+      'generate_perf_data',
+      ['--validate-only'],
+      block_on_failure
+  )
 
 def _CheckPerfJsonConfigs(input_api, output_api, block_on_failure):
-  results = []
-  perf_dir = input_api.PresubmitLocalPath()
-  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
-  out, return_code = _RunArgs([
-      vpython,
-      input_api.os_path.join(perf_dir, 'validate_perf_json_config')], input_api)
-  if return_code:
-    if block_on_failure:
-      results.append(output_api.PresubmitError(
-          'Validating perf data correctness failed', long_text=out))
-    else:
-      results.append(output_api.PresubmitPromptWarning(
-          'Validating perf data correctness failed', long_text=out))
-  return results
-
+  return _RunValidationScript(
+      input_api,
+      output_api,
+      'validate_perf_json_config',
+      ['--validate-only'],
+      block_on_failure
+  )
 
 def _CheckWprShaFiles(input_api, output_api):
   """Check whether the wpr sha files have matching URLs."""
-  perf_dir = input_api.PresubmitLocalPath()
-
-  results = []
   wpr_archive_shas = []
   for affected_file in input_api.AffectedFiles(include_deletes=False):
     filename = affected_file.AbsoluteLocalPath()
     if not filename.endswith('.sha1'):
       continue
     wpr_archive_shas.append(filename)
-
-  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
-  out, return_code = _RunArgs([
-      vpython,
-      input_api.os_path.join(perf_dir, 'validate_wpr_archives')] +
-      wpr_archive_shas,
-      input_api)
-  if return_code:
-    results.append(output_api.PresubmitError(
-        'Validating WPR archives failed:', long_text=out))
-  return results
-
+  return _RunValidationScript(
+      input_api,
+      output_api,
+      'validate_wpr_archives',
+      wpr_archive_shas
+  )
 
 def _CheckShardMaps(input_api, output_api, block_on_failure):
-  results = []
-  perf_dir = input_api.PresubmitLocalPath()
-  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
-  out, return_code = _RunArgs([
-      vpython,
-      input_api.os_path.join(perf_dir, 'generate_perf_sharding'),
-      'validate'], input_api)
-  if return_code:
-    if block_on_failure:
-      results.append(output_api.PresubmitError(
-          'Validating shard maps failed', long_text=out))
-    else:
-      results.append(output_api.PresubmitPromptWarning(
-          'Validating shard maps failed', long_text=out))
-  return results
-
+  return _RunValidationScript(
+      input_api,
+      output_api,
+      'generate_perf_sharding',
+      ['validate'],
+      block_on_failure
+  )
 
 def _CheckJson(input_api, output_api):
   """Checks whether JSON files in this change can be parsed."""
@@ -173,19 +153,12 @@
   return []
 
 def _CheckVersionsInSmokeTests(input_api, output_api):
-  results = []
-  perf_dir = input_api.PresubmitLocalPath()
-  vpython = 'vpython.bat' if input_api.is_windows else 'vpython'
-  out, return_code = _RunArgs([
-      vpython,
+  return _RunValidationScript(
+      input_api,
+      output_api,
       input_api.os_path.join(
-          perf_dir, 'benchmarks', 'system_health_load_tests_smoke_test.py')],
-      input_api)
-  if return_code:
-    results.append(output_api.PresubmitError(
-        'Validating story versions failed', long_text=out))
-
-  return results
+          'benchmarks', 'system_health_load_tests_smoke_test.py'),
+  )
 
 def CheckChangeOnUpload(input_api, output_api):
   report = []
diff --git a/tools/perf/core/shard_maps/android-go-perf_map.json b/tools/perf/core/shard_maps/android-go-perf_map.json
index 278357b..996f218 100644
--- a/tools/perf/core/shard_maps/android-go-perf_map.json
+++ b/tools/perf/core/shard_maps/android-go-perf_map.json
@@ -1,27 +1,44 @@
 {
     "0": {
-        "benchmarks": {}
-    },
-    "1": {
-        "benchmarks": {}
-    },
-    "2": {
         "benchmarks": {
             "speedometer": {
                 "abridged": false
             },
             "speedometer2": {
                 "abridged": false
+            },
+            "startup.mobile": {
+                "end": 3,
+                "abridged": false
+            }
+        }
+    },
+    "1": {
+        "benchmarks": {
+            "startup.mobile": {
+                "begin": 3,
+                "abridged": false
+            },
+            "system_health.common_mobile": {
+                "end": 18,
+                "abridged": false
+            }
+        }
+    },
+    "2": {
+        "benchmarks": {
+            "system_health.common_mobile": {
+                "begin": 18,
+                "end": 36,
+                "abridged": false
             }
         }
     },
     "3": {
         "benchmarks": {
-            "startup.mobile": {
-                "abridged": false
-            },
             "system_health.common_mobile": {
-                "end": 7,
+                "begin": 36,
+                "end": 71,
                 "abridged": false
             }
         }
@@ -29,38 +46,38 @@
     "4": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 7,
-                "end": 20,
+                "begin": 71,
+                "abridged": false
+            },
+            "system_health.memory_mobile": {
+                "end": 4,
                 "abridged": false
             }
         }
     },
     "5": {
         "benchmarks": {
-            "system_health.common_mobile": {
-                "begin": 20,
-                "end": 47,
+            "system_health.memory_mobile": {
+                "begin": 4,
+                "end": 13,
                 "abridged": false
             }
         }
     },
     "6": {
         "benchmarks": {
-            "system_health.common_mobile": {
-                "begin": 47,
-                "end": 78,
+            "system_health.memory_mobile": {
+                "begin": 13,
+                "end": 18,
                 "abridged": false
             }
         }
     },
     "7": {
         "benchmarks": {
-            "system_health.common_mobile": {
-                "begin": 78,
-                "abridged": false
-            },
             "system_health.memory_mobile": {
-                "end": 9,
+                "begin": 18,
+                "end": 23,
                 "abridged": false
             }
         }
@@ -68,8 +85,8 @@
     "8": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 9,
-                "end": 17,
+                "begin": 23,
+                "end": 28,
                 "abridged": false
             }
         }
@@ -77,8 +94,8 @@
     "9": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 17,
-                "end": 22,
+                "begin": 28,
+                "end": 36,
                 "abridged": false
             }
         }
@@ -86,8 +103,8 @@
     "10": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 22,
-                "end": 29,
+                "begin": 36,
+                "end": 48,
                 "abridged": false
             }
         }
@@ -95,8 +112,8 @@
     "11": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 29,
-                "end": 41,
+                "begin": 48,
+                "end": 57,
                 "abridged": false
             }
         }
@@ -104,8 +121,8 @@
     "12": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 41,
-                "end": 54,
+                "begin": 57,
+                "end": 69,
                 "abridged": false
             }
         }
@@ -113,8 +130,8 @@
     "13": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 54,
-                "end": 66,
+                "begin": 69,
+                "end": 72,
                 "abridged": false
             }
         }
@@ -122,8 +139,8 @@
     "14": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 66,
-                "end": 74,
+                "begin": 72,
+                "end": 77,
                 "abridged": false
             }
         }
@@ -131,23 +148,18 @@
     "15": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 74,
-                "end": 81,
+                "begin": 77,
                 "abridged": false
             }
         }
     },
     "16": {
         "benchmarks": {
-            "system_health.memory_mobile": {
-                "begin": 81,
-                "abridged": false
-            },
             "system_health.webview_startup": {
                 "abridged": false
             },
             "v8.browsing_mobile": {
-                "end": 11,
+                "end": 14,
                 "abridged": false
             }
         }
@@ -155,8 +167,8 @@
     "17": {
         "benchmarks": {
             "v8.browsing_mobile": {
-                "begin": 11,
-                "end": 22,
+                "begin": 14,
+                "end": 26,
                 "abridged": false
             }
         }
@@ -164,35 +176,35 @@
     "18": {
         "benchmarks": {
             "v8.browsing_mobile": {
-                "begin": 22,
+                "begin": 26,
                 "abridged": false
             }
         }
     },
     "extra_infos": {
-        "num_stories": 233,
-        "predicted_min_shard_time": 2394.0,
-        "predicted_min_shard_index": 8,
-        "predicted_max_shard_time": 2796.0,
-        "predicted_max_shard_index": 15,
-        "shard #0": 2510.0,
-        "shard #1": 2660.0,
-        "shard #2": 2598.0,
-        "shard #3": 2568.0,
-        "shard #4": 2478.0,
-        "shard #5": 2674.0,
-        "shard #6": 2640.0,
-        "shard #7": 2716.0,
-        "shard #8": 2394.0,
-        "shard #9": 2502.0,
-        "shard #10": 2610.0,
-        "shard #11": 2538.0,
-        "shard #12": 2694.0,
-        "shard #13": 2526.0,
-        "shard #14": 2448.0,
-        "shard #15": 2796.0,
-        "shard #16": 2566.0,
-        "shard #17": 2500.0,
-        "shard #18": 2624.0
+        "num_stories": 204,
+        "predicted_min_shard_time": 1872.0,
+        "predicted_min_shard_index": 14,
+        "predicted_max_shard_time": 2514.0,
+        "predicted_max_shard_index": 5,
+        "shard #0": 2006.0,
+        "shard #1": 2326.0,
+        "shard #2": 2170.0,
+        "shard #3": 2162.0,
+        "shard #4": 2276.0,
+        "shard #5": 2514.0,
+        "shard #6": 2076.0,
+        "shard #7": 1884.0,
+        "shard #8": 2124.0,
+        "shard #9": 2184.0,
+        "shard #10": 2268.0,
+        "shard #11": 2088.0,
+        "shard #12": 2082.0,
+        "shard #13": 2490.0,
+        "shard #14": 1872.0,
+        "shard #15": 2316.0,
+        "shard #16": 2274.0,
+        "shard #17": 2140.0,
+        "shard #18": 2088.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-go_webview-perf_map.json b/tools/perf/core/shard_maps/android-go_webview-perf_map.json
index 1b547f0..181f099 100644
--- a/tools/perf/core/shard_maps/android-go_webview-perf_map.json
+++ b/tools/perf/core/shard_maps/android-go_webview-perf_map.json
@@ -11,7 +11,7 @@
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 14,
+                "end": 16,
                 "abridged": false
             }
         }
@@ -19,8 +19,8 @@
     "1": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 14,
-                "end": 25,
+                "begin": 16,
+                "end": 33,
                 "abridged": false
             }
         }
@@ -28,8 +28,8 @@
     "2": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 25,
-                "end": 53,
+                "begin": 33,
+                "end": 73,
                 "abridged": false
             }
         }
@@ -37,11 +37,11 @@
     "3": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 53,
+                "begin": 73,
                 "abridged": false
             },
             "system_health.memory_mobile": {
-                "end": 5,
+                "end": 7,
                 "abridged": false
             }
         }
@@ -49,8 +49,8 @@
     "4": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 5,
-                "end": 12,
+                "begin": 7,
+                "end": 15,
                 "abridged": false
             }
         }
@@ -58,8 +58,8 @@
     "5": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 12,
-                "end": 19,
+                "begin": 15,
+                "end": 21,
                 "abridged": false
             }
         }
@@ -67,8 +67,8 @@
     "6": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 19,
-                "end": 24,
+                "begin": 21,
+                "end": 28,
                 "abridged": false
             }
         }
@@ -76,8 +76,8 @@
     "7": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 24,
-                "end": 28,
+                "begin": 28,
+                "end": 37,
                 "abridged": false
             }
         }
@@ -85,8 +85,8 @@
     "8": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 28,
-                "end": 39,
+                "begin": 37,
+                "end": 51,
                 "abridged": false
             }
         }
@@ -94,8 +94,8 @@
     "9": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 39,
-                "end": 49,
+                "begin": 51,
+                "end": 63,
                 "abridged": false
             }
         }
@@ -103,8 +103,8 @@
     "10": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 49,
-                "end": 61,
+                "begin": 63,
+                "end": 73,
                 "abridged": false
             }
         }
@@ -112,8 +112,8 @@
     "11": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 61,
-                "end": 67,
+                "begin": 73,
+                "end": 79,
                 "abridged": false
             }
         }
@@ -121,7 +121,7 @@
     "12": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 67,
+                "begin": 79,
                 "abridged": false
             },
             "system_health.webview_startup": {
@@ -133,23 +133,23 @@
         }
     },
     "extra_infos": {
-        "num_stories": 173,
-        "predicted_min_shard_time": 1242.0,
-        "predicted_min_shard_index": 4,
-        "predicted_max_shard_time": 2412.0,
-        "predicted_max_shard_index": 5,
-        "shard #0": 1818.0,
-        "shard #1": 1550.0,
-        "shard #2": 1722.0,
-        "shard #3": 1648.0,
-        "shard #4": 1242.0,
-        "shard #5": 2412.0,
-        "shard #6": 1566.0,
-        "shard #7": 1542.0,
-        "shard #8": 1704.0,
-        "shard #9": 1668.0,
-        "shard #10": 2016.0,
-        "shard #11": 1542.0,
-        "shard #12": 1584.0
+        "num_stories": 204,
+        "predicted_min_shard_time": 1914.0,
+        "predicted_min_shard_index": 5,
+        "predicted_max_shard_time": 2388.0,
+        "predicted_max_shard_index": 6,
+        "shard #0": 2094.0,
+        "shard #1": 2156.0,
+        "shard #2": 2130.0,
+        "shard #3": 2320.0,
+        "shard #4": 2100.0,
+        "shard #5": 1914.0,
+        "shard #6": 2388.0,
+        "shard #7": 1962.0,
+        "shard #8": 2160.0,
+        "shard #9": 2100.0,
+        "shard #10": 2094.0,
+        "shard #11": 1980.0,
+        "shard #12": 2308.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json b/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json
index 1a37b40..17dd5b1e 100644
--- a/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json
+++ b/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json
@@ -2,29 +2,19 @@
     "0": {
         "benchmarks": {
             "heap_profiling.mobile.disabled": {
-                "end": 1,
                 "abridged": false
             }
         }
     },
     "1": {
         "benchmarks": {
-            "heap_profiling.mobile.disabled": {
-                "begin": 1,
-                "end": 2,
+            "heap_profiling.mobile.native": {
                 "abridged": false
             }
         }
     },
     "2": {
         "benchmarks": {
-            "heap_profiling.mobile.disabled": {
-                "begin": 2,
-                "abridged": false
-            },
-            "heap_profiling.mobile.native": {
-                "abridged": false
-            },
             "heap_profiling.mobile.pseudo": {
                 "abridged": false
             }
@@ -32,12 +22,12 @@
     },
     "extra_infos": {
         "num_stories": 9,
-        "predicted_min_shard_time": 74.0,
-        "predicted_min_shard_index": 1,
-        "predicted_max_shard_time": 108.0,
-        "predicted_max_shard_index": 2,
-        "shard #0": 76.0,
-        "shard #1": 74.0,
-        "shard #2": 108.0
+        "predicted_min_shard_time": 170.0,
+        "predicted_min_shard_index": 2,
+        "predicted_max_shard_time": 180.0,
+        "predicted_max_shard_index": 0,
+        "shard #0": 180.0,
+        "shard #1": 172.0,
+        "shard #2": 170.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-pixel2-perf-fyi_map.json b/tools/perf/core/shard_maps/android-pixel2-perf-fyi_map.json
index a186d4d..0aad2f1 100644
--- a/tools/perf/core/shard_maps/android-pixel2-perf-fyi_map.json
+++ b/tools/perf/core/shard_maps/android-pixel2-perf-fyi_map.json
@@ -14,19 +14,19 @@
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 55,
+                "abridged": false
+            },
+            "system_health.memory_mobile": {
+                "end": 3,
                 "abridged": false
             }
         }
     },
     "1": {
         "benchmarks": {
-            "system_health.common_mobile": {
-                "begin": 55,
-                "abridged": false
-            },
             "system_health.memory_mobile": {
-                "end": 33,
+                "begin": 3,
+                "end": 28,
                 "abridged": false
             }
         }
@@ -34,8 +34,8 @@
     "2": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 33,
-                "end": 63,
+                "begin": 28,
+                "end": 72,
                 "abridged": false
             }
         }
@@ -43,7 +43,7 @@
     "3": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 63,
+                "begin": 72,
                 "abridged": false
             },
             "v8.browsing_mobile": {
@@ -52,14 +52,14 @@
         }
     },
     "extra_infos": {
-        "num_stories": 173,
-        "predicted_min_shard_time": 5100.0,
-        "predicted_min_shard_index": 2,
-        "predicted_max_shard_time": 5246.0,
-        "predicted_max_shard_index": 1,
-        "shard #0": 5218.0,
-        "shard #1": 5246.0,
-        "shard #2": 5100.0,
-        "shard #3": 5226.0
+        "num_stories": 204,
+        "predicted_min_shard_time": 6598.0,
+        "predicted_min_shard_index": 3,
+        "predicted_max_shard_time": 6924.0,
+        "predicted_max_shard_index": 2,
+        "shard #0": 6638.0,
+        "shard #1": 6630.0,
+        "shard #2": 6924.0,
+        "shard #3": 6598.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-pixel2-perf_map.json b/tools/perf/core/shard_maps/android-pixel2-perf_map.json
index c6078b9..11419d5 100644
--- a/tools/perf/core/shard_maps/android-pixel2-perf_map.json
+++ b/tools/perf/core/shard_maps/android-pixel2-perf_map.json
@@ -5,7 +5,7 @@
                 "abridged": false
             },
             "blink_perf.bindings": {
-                "end": 47,
+                "end": 48,
                 "abridged": false
             }
         }
@@ -13,44 +13,44 @@
     "1": {
         "benchmarks": {
             "blink_perf.bindings": {
-                "begin": 47,
+                "begin": 48,
                 "abridged": false
             },
             "blink_perf.canvas": {
-                "abridged": false
-            },
-            "blink_perf.css": {
-                "end": 12,
+                "end": 39,
                 "abridged": false
             }
         }
     },
     "2": {
         "benchmarks": {
+            "blink_perf.canvas": {
+                "begin": 39,
+                "abridged": false
+            },
             "blink_perf.css": {
-                "begin": 12,
                 "abridged": false
             },
             "blink_perf.dom": {
                 "abridged": false
             },
             "blink_perf.events": {
-                "abridged": false
-            },
-            "blink_perf.image_decoder": {
-                "abridged": false
-            },
-            "blink_perf.layout": {
-                "end": 6,
+                "end": 7,
                 "abridged": false
             }
         }
     },
     "3": {
         "benchmarks": {
+            "blink_perf.events": {
+                "begin": 7,
+                "abridged": false
+            },
+            "blink_perf.image_decoder": {
+                "abridged": false
+            },
             "blink_perf.layout": {
-                "begin": 6,
-                "end": 63,
+                "end": 35,
                 "abridged": false
             }
         }
@@ -58,43 +58,52 @@
     "4": {
         "benchmarks": {
             "blink_perf.layout": {
-                "begin": 63,
+                "begin": 35,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
                 "abridged": false
             },
             "blink_perf.paint": {
-                "abridged": false
-            },
-            "blink_perf.parser": {
-                "end": 4,
+                "end": 2,
                 "abridged": false
             }
         }
     },
     "5": {
         "benchmarks": {
+            "blink_perf.paint": {
+                "begin": 2,
+                "abridged": false
+            },
             "blink_perf.parser": {
-                "begin": 4,
                 "abridged": false
             },
             "blink_perf.shadow_dom": {
-                "abridged": false
-            },
-            "blink_perf.svg": {
-                "end": 6,
+                "end": 4,
                 "abridged": false
             }
         }
     },
     "6": {
         "benchmarks": {
+            "blink_perf.shadow_dom": {
+                "begin": 4,
+                "abridged": false
+            },
             "blink_perf.svg": {
-                "begin": 6,
                 "abridged": false
             },
             "dromaeo": {
+                "end": 1,
+                "abridged": false
+            }
+        }
+    },
+    "7": {
+        "benchmarks": {
+            "dromaeo": {
+                "begin": 1,
                 "abridged": false
             },
             "dummy_benchmark.noisy_benchmark_1": {
@@ -113,16 +122,7 @@
                 "abridged": false
             },
             "loading.mobile": {
-                "end": 6,
-                "abridged": false
-            }
-        }
-    },
-    "7": {
-        "benchmarks": {
-            "loading.mobile": {
-                "begin": 6,
-                "end": 40,
+                "end": 8,
                 "abridged": false
             }
         }
@@ -130,8 +130,8 @@
     "8": {
         "benchmarks": {
             "loading.mobile": {
-                "begin": 40,
-                "end": 74,
+                "begin": 8,
+                "end": 45,
                 "abridged": false
             }
         }
@@ -139,19 +139,19 @@
     "9": {
         "benchmarks": {
             "loading.mobile": {
-                "begin": 74,
-                "abridged": false
-            },
-            "media.mobile": {
-                "end": 11,
+                "begin": 45,
+                "end": 78,
                 "abridged": false
             }
         }
     },
     "10": {
         "benchmarks": {
+            "loading.mobile": {
+                "begin": 78,
+                "abridged": false
+            },
             "media.mobile": {
-                "begin": 11,
                 "abridged": false
             },
             "octane": {
@@ -159,21 +159,16 @@
             },
             "rasterize_and_record_micro.partial_invalidation": {
                 "abridged": false
-            },
-            "rasterize_and_record_micro.top_25": {
-                "abridged": false
-            },
-            "rendering.mobile": {
-                "end": 4,
-                "abridged": false
             }
         }
     },
     "11": {
         "benchmarks": {
+            "rasterize_and_record_micro.top_25": {
+                "abridged": false
+            },
             "rendering.mobile": {
-                "begin": 4,
-                "end": 45,
+                "end": 10,
                 "abridged": false
             }
         }
@@ -181,8 +176,8 @@
     "12": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 45,
-                "end": 84,
+                "begin": 10,
+                "end": 55,
                 "abridged": false
             }
         }
@@ -190,8 +185,8 @@
     "13": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 84,
-                "end": 125,
+                "begin": 55,
+                "end": 95,
                 "abridged": false
             }
         }
@@ -199,8 +194,8 @@
     "14": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 125,
-                "end": 161,
+                "begin": 95,
+                "end": 139,
                 "abridged": false
             }
         }
@@ -208,8 +203,8 @@
     "15": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 161,
-                "end": 204,
+                "begin": 139,
+                "end": 180,
                 "abridged": false
             }
         }
@@ -217,8 +212,8 @@
     "16": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 204,
-                "end": 257,
+                "begin": 180,
+                "end": 222,
                 "abridged": false
             }
         }
@@ -226,8 +221,8 @@
     "17": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 257,
-                "end": 301,
+                "begin": 222,
+                "end": 277,
                 "abridged": false
             }
         }
@@ -235,8 +230,8 @@
     "18": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 301,
-                "end": 336,
+                "begin": 277,
+                "end": 318,
                 "abridged": false
             }
         }
@@ -244,7 +239,16 @@
     "19": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 336,
+                "begin": 318,
+                "end": 361,
+                "abridged": false
+            }
+        }
+    },
+    "20": {
+        "benchmarks": {
+            "rendering.mobile": {
+                "begin": 361,
                 "abridged": false
             },
             "speedometer": {
@@ -260,19 +264,10 @@
                 "abridged": false
             },
             "startup.mobile": {
-                "end": 1,
-                "abridged": false
-            }
-        }
-    },
-    "20": {
-        "benchmarks": {
-            "startup.mobile": {
-                "begin": 1,
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 18,
+                "end": 13,
                 "abridged": false
             }
         }
@@ -280,8 +275,8 @@
     "21": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 18,
-                "end": 46,
+                "begin": 13,
+                "end": 29,
                 "abridged": false
             }
         }
@@ -289,20 +284,20 @@
     "22": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 46,
-                "abridged": false
-            },
-            "system_health.memory_mobile": {
-                "end": 3,
+                "begin": 29,
+                "end": 72,
                 "abridged": false
             }
         }
     },
     "23": {
         "benchmarks": {
+            "system_health.common_mobile": {
+                "begin": 72,
+                "abridged": false
+            },
             "system_health.memory_mobile": {
-                "begin": 3,
-                "end": 14,
+                "end": 7,
                 "abridged": false
             }
         }
@@ -310,8 +305,8 @@
     "24": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 14,
-                "end": 18,
+                "begin": 7,
+                "end": 15,
                 "abridged": false
             }
         }
@@ -319,8 +314,8 @@
     "25": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 18,
-                "end": 24,
+                "begin": 15,
+                "end": 20,
                 "abridged": false
             }
         }
@@ -328,8 +323,8 @@
     "26": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 24,
-                "end": 32,
+                "begin": 20,
+                "end": 27,
                 "abridged": false
             }
         }
@@ -337,8 +332,8 @@
     "27": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 32,
-                "end": 44,
+                "begin": 27,
+                "end": 34,
                 "abridged": false
             }
         }
@@ -346,8 +341,8 @@
     "28": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 44,
-                "end": 56,
+                "begin": 34,
+                "end": 48,
                 "abridged": false
             }
         }
@@ -355,8 +350,8 @@
     "29": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 56,
-                "end": 64,
+                "begin": 48,
+                "end": 61,
                 "abridged": false
             }
         }
@@ -364,55 +359,55 @@
     "30": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 64,
-                "abridged": false
-            },
-            "system_health.webview_startup": {
-                "abridged": false
-            },
-            "tracing.tracing_with_background_memory_infra": {
-                "end": 7,
+                "begin": 61,
+                "end": 72,
                 "abridged": false
             }
         }
     },
     "31": {
         "benchmarks": {
-            "tracing.tracing_with_background_memory_infra": {
-                "begin": 7,
-                "abridged": false
-            },
-            "v8.browsing_mobile": {
-                "end": 18,
+            "system_health.memory_mobile": {
+                "begin": 72,
+                "end": 79,
                 "abridged": false
             }
         }
     },
     "32": {
         "benchmarks": {
-            "v8.browsing_mobile": {
-                "begin": 18,
+            "system_health.memory_mobile": {
+                "begin": 79,
                 "abridged": false
             },
-            "v8.browsing_mobile-future": {
-                "end": 5,
+            "system_health.webview_startup": {
+                "abridged": false
+            },
+            "tracing.tracing_with_background_memory_infra": {
+                "abridged": false
+            },
+            "v8.browsing_mobile": {
+                "end": 9,
                 "abridged": false
             }
         }
     },
     "33": {
         "benchmarks": {
-            "v8.browsing_mobile-future": {
-                "begin": 5,
-                "end": 20,
+            "v8.browsing_mobile": {
+                "begin": 9,
+                "end": 24,
                 "abridged": false
             }
         }
     },
     "34": {
         "benchmarks": {
+            "v8.browsing_mobile": {
+                "begin": 24,
+                "abridged": false
+            },
             "v8.browsing_mobile-future": {
-                "begin": 20,
                 "abridged": false
             },
             "webrtc": {
@@ -421,45 +416,45 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1089,
-        "predicted_min_shard_time": 1596.0,
+        "num_stories": 1133,
+        "predicted_min_shard_time": 1578.0,
         "predicted_min_shard_index": 24,
-        "predicted_max_shard_time": 1944.0,
-        "predicted_max_shard_index": 26,
-        "shard #0": 1764.0,
-        "shard #1": 1848.0,
-        "shard #2": 1784.0,
-        "shard #3": 1824.0,
-        "shard #4": 1872.0,
-        "shard #5": 1724.0,
-        "shard #6": 1796.0,
-        "shard #7": 1788.0,
-        "shard #8": 1836.0,
-        "shard #9": 1786.0,
-        "shard #10": 1822.0,
-        "shard #11": 1806.0,
-        "shard #12": 1790.0,
-        "shard #13": 1790.0,
-        "shard #14": 1800.0,
-        "shard #15": 1800.0,
-        "shard #16": 1778.0,
-        "shard #17": 1830.0,
-        "shard #18": 1792.0,
-        "shard #19": 1860.0,
-        "shard #20": 1818.0,
-        "shard #21": 1766.0,
-        "shard #22": 1868.0,
-        "shard #23": 1854.0,
-        "shard #24": 1596.0,
-        "shard #25": 1788.0,
-        "shard #26": 1944.0,
-        "shard #27": 1680.0,
-        "shard #28": 1854.0,
-        "shard #29": 1878.0,
-        "shard #30": 1736.0,
-        "shard #31": 1790.0,
-        "shard #32": 1850.0,
-        "shard #33": 1760.0,
-        "shard #34": 1822.0
+        "predicted_max_shard_time": 2136.0,
+        "predicted_max_shard_index": 25,
+        "shard #0": 1924.0,
+        "shard #1": 1608.0,
+        "shard #2": 2036.0,
+        "shard #3": 1858.0,
+        "shard #4": 1826.0,
+        "shard #5": 1862.0,
+        "shard #6": 1894.0,
+        "shard #7": 1800.0,
+        "shard #8": 1876.0,
+        "shard #9": 1872.0,
+        "shard #10": 1840.0,
+        "shard #11": 1820.0,
+        "shard #12": 1874.0,
+        "shard #13": 1854.0,
+        "shard #14": 1868.0,
+        "shard #15": 1824.0,
+        "shard #16": 1864.0,
+        "shard #17": 1836.0,
+        "shard #18": 1870.0,
+        "shard #19": 1844.0,
+        "shard #20": 1882.0,
+        "shard #21": 1844.0,
+        "shard #22": 1830.0,
+        "shard #23": 1948.0,
+        "shard #24": 1578.0,
+        "shard #25": 2136.0,
+        "shard #26": 1848.0,
+        "shard #27": 1710.0,
+        "shard #28": 1968.0,
+        "shard #29": 1854.0,
+        "shard #30": 1668.0,
+        "shard #31": 2070.0,
+        "shard #32": 1686.0,
+        "shard #33": 1872.0,
+        "shard #34": 1898.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json b/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json
index 0f902e3..23374156 100644
--- a/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json
+++ b/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json
@@ -8,7 +8,7 @@
                 "abridged": false
             },
             "blink_perf.canvas": {
-                "end": 19,
+                "end": 2,
                 "abridged": false
             }
         }
@@ -16,7 +16,7 @@
     "1": {
         "benchmarks": {
             "blink_perf.canvas": {
-                "begin": 19,
+                "begin": 2,
                 "abridged": false
             },
             "blink_perf.css": {
@@ -29,7 +29,7 @@
                 "abridged": false
             },
             "blink_perf.image_decoder": {
-                "end": 6,
+                "end": 2,
                 "abridged": false
             }
         }
@@ -37,11 +37,11 @@
     "2": {
         "benchmarks": {
             "blink_perf.image_decoder": {
-                "begin": 6,
+                "begin": 2,
                 "abridged": false
             },
             "blink_perf.layout": {
-                "end": 65,
+                "end": 58,
                 "abridged": false
             }
         }
@@ -49,7 +49,7 @@
     "3": {
         "benchmarks": {
             "blink_perf.layout": {
-                "begin": 65,
+                "begin": 58,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
@@ -59,7 +59,7 @@
                 "abridged": false
             },
             "blink_perf.parser": {
-                "end": 27,
+                "end": 3,
                 "abridged": false
             }
         }
@@ -67,13 +67,22 @@
     "4": {
         "benchmarks": {
             "blink_perf.parser": {
-                "begin": 27,
+                "begin": 3,
                 "abridged": false
             },
             "blink_perf.shadow_dom": {
                 "abridged": false
             },
             "blink_perf.svg": {
+                "end": 17,
+                "abridged": false
+            }
+        }
+    },
+    "5": {
+        "benchmarks": {
+            "blink_perf.svg": {
+                "begin": 17,
                 "abridged": false
             },
             "dromaeo": {
@@ -87,11 +96,7 @@
             },
             "jetstream": {
                 "abridged": false
-            }
-        }
-    },
-    "5": {
-        "benchmarks": {
+            },
             "kraken": {
                 "abridged": false
             },
@@ -105,7 +110,7 @@
         "benchmarks": {
             "loading.mobile": {
                 "begin": 28,
-                "end": 63,
+                "end": 78,
                 "abridged": false
             }
         }
@@ -113,49 +118,59 @@
     "7": {
         "benchmarks": {
             "loading.mobile": {
-                "begin": 63,
-                "end": 92,
+                "begin": 78,
+                "abridged": false
+            },
+            "media.mobile": {
+                "abridged": false
+            },
+            "octane": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.partial_invalidation": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.top_25": {
+                "end": 21,
                 "abridged": false
             }
         }
     },
     "8": {
         "benchmarks": {
-            "loading.mobile": {
-                "begin": 92,
+            "rasterize_and_record_micro.top_25": {
+                "begin": 21,
                 "abridged": false
             },
-            "media.mobile": {
+            "rendering.mobile": {
+                "end": 44,
                 "abridged": false
             }
         }
     },
     "9": {
         "benchmarks": {
-            "octane": {
+            "rendering.mobile": {
+                "begin": 44,
+                "end": 94,
                 "abridged": false
             }
         }
     },
     "10": {
         "benchmarks": {
-            "rasterize_and_record_micro.partial_invalidation": {
-                "abridged": false
-            },
-            "rasterize_and_record_micro.top_25": {
-                "end": 17,
+            "rendering.mobile": {
+                "begin": 94,
+                "end": 147,
                 "abridged": false
             }
         }
     },
     "11": {
         "benchmarks": {
-            "rasterize_and_record_micro.top_25": {
-                "begin": 17,
-                "abridged": false
-            },
             "rendering.mobile": {
-                "end": 46,
+                "begin": 147,
+                "end": 202,
                 "abridged": false
             }
         }
@@ -163,8 +178,8 @@
     "12": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 46,
-                "end": 103,
+                "begin": 202,
+                "end": 266,
                 "abridged": false
             }
         }
@@ -172,8 +187,8 @@
     "13": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 103,
-                "end": 161,
+                "begin": 266,
+                "end": 326,
                 "abridged": false
             }
         }
@@ -181,25 +196,7 @@
     "14": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 161,
-                "end": 225,
-                "abridged": false
-            }
-        }
-    },
-    "15": {
-        "benchmarks": {
-            "rendering.mobile": {
-                "begin": 225,
-                "end": 304,
-                "abridged": false
-            }
-        }
-    },
-    "16": {
-        "benchmarks": {
-            "rendering.mobile": {
-                "begin": 304,
+                "begin": 326,
                 "abridged": false
             },
             "speedometer": {
@@ -210,11 +207,7 @@
             },
             "speedometer2": {
                 "abridged": false
-            }
-        }
-    },
-    "17": {
-        "benchmarks": {
+            },
             "speedometer2-future": {
                 "abridged": false
             },
@@ -222,15 +215,46 @@
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 26,
+                "end": 7,
+                "abridged": false
+            }
+        }
+    },
+    "15": {
+        "benchmarks": {
+            "system_health.common_mobile": {
+                "begin": 7,
+                "end": 27,
+                "abridged": false
+            }
+        }
+    },
+    "16": {
+        "benchmarks": {
+            "system_health.common_mobile": {
+                "begin": 27,
+                "end": 72,
+                "abridged": false
+            }
+        }
+    },
+    "17": {
+        "benchmarks": {
+            "system_health.common_mobile": {
+                "begin": 72,
+                "abridged": false
+            },
+            "system_health.memory_mobile": {
+                "end": 8,
                 "abridged": false
             }
         }
     },
     "18": {
         "benchmarks": {
-            "system_health.common_mobile": {
-                "begin": 26,
+            "system_health.memory_mobile": {
+                "begin": 8,
+                "end": 17,
                 "abridged": false
             }
         }
@@ -238,7 +262,8 @@
     "19": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "end": 14,
+                "begin": 17,
+                "end": 24,
                 "abridged": false
             }
         }
@@ -246,8 +271,8 @@
     "20": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 14,
-                "end": 23,
+                "begin": 24,
+                "end": 30,
                 "abridged": false
             }
         }
@@ -255,8 +280,8 @@
     "21": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 23,
-                "end": 34,
+                "begin": 30,
+                "end": 45,
                 "abridged": false
             }
         }
@@ -264,8 +289,8 @@
     "22": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 34,
-                "end": 51,
+                "begin": 45,
+                "end": 60,
                 "abridged": false
             }
         }
@@ -273,8 +298,8 @@
     "23": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 51,
-                "end": 65,
+                "begin": 60,
+                "end": 73,
                 "abridged": false
             }
         }
@@ -282,26 +307,26 @@
     "24": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 65,
-                "abridged": false
-            },
-            "system_health.webview_startup": {
-                "abridged": false
-            },
-            "tracing.tracing_with_background_memory_infra": {
-                "end": 6,
+                "begin": 73,
+                "end": 79,
                 "abridged": false
             }
         }
     },
     "25": {
         "benchmarks": {
+            "system_health.memory_mobile": {
+                "begin": 79,
+                "abridged": false
+            },
+            "system_health.webview_startup": {
+                "abridged": false
+            },
             "tracing.tracing_with_background_memory_infra": {
-                "begin": 6,
                 "abridged": false
             },
             "v8.browsing_mobile": {
-                "end": 21,
+                "end": 2,
                 "abridged": false
             }
         }
@@ -309,19 +334,19 @@
     "26": {
         "benchmarks": {
             "v8.browsing_mobile": {
-                "begin": 21,
-                "abridged": false
-            },
-            "v8.browsing_mobile-future": {
-                "end": 14,
+                "begin": 2,
+                "end": 21,
                 "abridged": false
             }
         }
     },
     "27": {
         "benchmarks": {
+            "v8.browsing_mobile": {
+                "begin": 21,
+                "abridged": false
+            },
             "v8.browsing_mobile-future": {
-                "begin": 14,
                 "abridged": false
             },
             "webrtc": {
@@ -330,38 +355,38 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1120,
-        "predicted_min_shard_time": 1874.0,
-        "predicted_min_shard_index": 24,
-        "predicted_max_shard_time": 2268.0,
-        "predicted_max_shard_index": 23,
-        "shard #0": 2042.0,
-        "shard #1": 2094.0,
-        "shard #2": 2008.0,
-        "shard #3": 2058.0,
-        "shard #4": 2002.0,
-        "shard #5": 2208.0,
-        "shard #6": 1900.0,
-        "shard #7": 2096.0,
-        "shard #8": 1936.0,
-        "shard #9": 2168.0,
-        "shard #10": 2040.0,
-        "shard #11": 2042.0,
-        "shard #12": 2034.0,
-        "shard #13": 2064.0,
-        "shard #14": 2040.0,
-        "shard #15": 2036.0,
-        "shard #16": 2032.0,
-        "shard #17": 2078.0,
-        "shard #18": 1992.0,
-        "shard #19": 2088.0,
-        "shard #20": 2052.0,
-        "shard #21": 2100.0,
-        "shard #22": 1968.0,
-        "shard #23": 2268.0,
-        "shard #24": 1874.0,
-        "shard #25": 2040.0,
-        "shard #26": 2124.0,
-        "shard #27": 1980.0
+        "num_stories": 1132,
+        "predicted_min_shard_time": 1608.0,
+        "predicted_min_shard_index": 4,
+        "predicted_max_shard_time": 2036.0,
+        "predicted_max_shard_index": 5,
+        "shard #0": 1764.0,
+        "shard #1": 1778.0,
+        "shard #2": 1790.0,
+        "shard #3": 1678.0,
+        "shard #4": 1608.0,
+        "shard #5": 2036.0,
+        "shard #6": 1788.0,
+        "shard #7": 1740.0,
+        "shard #8": 1832.0,
+        "shard #9": 1754.0,
+        "shard #10": 1790.0,
+        "shard #11": 1788.0,
+        "shard #12": 1762.0,
+        "shard #13": 1780.0,
+        "shard #14": 1814.0,
+        "shard #15": 1710.0,
+        "shard #16": 1792.0,
+        "shard #17": 1756.0,
+        "shard #18": 1848.0,
+        "shard #19": 1662.0,
+        "shard #20": 1914.0,
+        "shard #21": 1740.0,
+        "shard #22": 1734.0,
+        "shard #23": 1914.0,
+        "shard #24": 1680.0,
+        "shard #25": 1776.0,
+        "shard #26": 1714.0,
+        "shard #27": 1854.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android_nexus5_perf_map.json b/tools/perf/core/shard_maps/android_nexus5_perf_map.json
index c4080d86..6819bd18 100644
--- a/tools/perf/core/shard_maps/android_nexus5_perf_map.json
+++ b/tools/perf/core/shard_maps/android_nexus5_perf_map.json
@@ -11,18 +11,18 @@
                 "abridged": false
             },
             "blink_perf.css": {
-                "abridged": false
-            },
-            "blink_perf.dom": {
-                "end": 2,
+                "end": 15,
                 "abridged": false
             }
         }
     },
     "1": {
         "benchmarks": {
+            "blink_perf.css": {
+                "begin": 15,
+                "abridged": false
+            },
             "blink_perf.dom": {
-                "begin": 2,
                 "abridged": false
             },
             "blink_perf.events": {
@@ -32,6 +32,15 @@
                 "abridged": false
             },
             "blink_perf.layout": {
+                "end": 50,
+                "abridged": false
+            }
+        }
+    },
+    "2": {
+        "benchmarks": {
+            "blink_perf.layout": {
+                "begin": 50,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
@@ -41,18 +50,18 @@
                 "abridged": false
             },
             "blink_perf.parser": {
-                "end": 4,
+                "abridged": false
+            },
+            "blink_perf.shadow_dom": {
+                "end": 18,
                 "abridged": false
             }
         }
     },
-    "2": {
+    "3": {
         "benchmarks": {
-            "blink_perf.parser": {
-                "begin": 4,
-                "abridged": false
-            },
             "blink_perf.shadow_dom": {
+                "begin": 18,
                 "abridged": false
             },
             "blink_perf.svg": {
@@ -74,16 +83,7 @@
                 "abridged": false
             },
             "loading.mobile": {
-                "end": 6,
-                "abridged": false
-            }
-        }
-    },
-    "3": {
-        "benchmarks": {
-            "loading.mobile": {
-                "begin": 6,
-                "end": 69,
+                "end": 44,
                 "abridged": false
             }
         }
@@ -91,16 +91,12 @@
     "4": {
         "benchmarks": {
             "loading.mobile": {
-                "begin": 69,
+                "begin": 44,
                 "abridged": false
             },
             "media.mobile": {
                 "abridged": false
-            }
-        }
-    },
-    "5": {
-        "benchmarks": {
+            },
             "octane": {
                 "abridged": false
             },
@@ -108,10 +104,19 @@
                 "abridged": false
             },
             "rasterize_and_record_micro.top_25": {
+                "end": 7,
+                "abridged": false
+            }
+        }
+    },
+    "5": {
+        "benchmarks": {
+            "rasterize_and_record_micro.top_25": {
+                "begin": 7,
                 "abridged": false
             },
             "rendering.mobile": {
-                "end": 5,
+                "end": 59,
                 "abridged": false
             }
         }
@@ -119,8 +124,8 @@
     "6": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 5,
-                "end": 109,
+                "begin": 59,
+                "end": 146,
                 "abridged": false
             }
         }
@@ -128,8 +133,8 @@
     "7": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 109,
-                "end": 215,
+                "begin": 146,
+                "end": 252,
                 "abridged": false
             }
         }
@@ -137,8 +142,8 @@
     "8": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 215,
-                "end": 333,
+                "begin": 252,
+                "end": 347,
                 "abridged": false
             }
         }
@@ -146,7 +151,7 @@
     "9": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 333,
+                "begin": 347,
                 "abridged": false
             },
             "speedometer": {
@@ -165,7 +170,7 @@
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 18,
+                "end": 19,
                 "abridged": false
             }
         }
@@ -173,11 +178,11 @@
     "10": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 18,
+                "begin": 19,
                 "abridged": false
             },
             "system_health.memory_mobile": {
-                "end": 6,
+                "end": 3,
                 "abridged": false
             }
         }
@@ -185,8 +190,8 @@
     "11": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 6,
-                "end": 24,
+                "begin": 3,
+                "end": 20,
                 "abridged": false
             }
         }
@@ -194,8 +199,8 @@
     "12": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 24,
-                "end": 55,
+                "begin": 20,
+                "end": 40,
                 "abridged": false
             }
         }
@@ -203,7 +208,16 @@
     "13": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 55,
+                "begin": 40,
+                "end": 72,
+                "abridged": false
+            }
+        }
+    },
+    "14": {
+        "benchmarks": {
+            "system_health.memory_mobile": {
+                "begin": 72,
                 "abridged": false
             },
             "system_health.webview_startup": {
@@ -213,27 +227,18 @@
                 "abridged": false
             },
             "v8.browsing_mobile": {
-                "end": 1,
-                "abridged": false
-            }
-        }
-    },
-    "14": {
-        "benchmarks": {
-            "v8.browsing_mobile": {
-                "begin": 1,
-                "abridged": false
-            },
-            "v8.browsing_mobile-future": {
-                "end": 6,
+                "end": 9,
                 "abridged": false
             }
         }
     },
     "15": {
         "benchmarks": {
+            "v8.browsing_mobile": {
+                "begin": 9,
+                "abridged": false
+            },
             "v8.browsing_mobile-future": {
-                "begin": 6,
                 "abridged": false
             },
             "webrtc": {
@@ -242,26 +247,26 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1151,
-        "predicted_min_shard_time": 6990.0,
-        "predicted_min_shard_index": 2,
-        "predicted_max_shard_time": 7358.0,
-        "predicted_max_shard_index": 1,
-        "shard #0": 7192.0,
-        "shard #1": 7358.0,
-        "shard #2": 6990.0,
-        "shard #3": 7128.0,
-        "shard #4": 7282.0,
-        "shard #5": 7100.0,
-        "shard #6": 7198.0,
-        "shard #7": 7208.0,
-        "shard #8": 7154.0,
-        "shard #9": 7138.0,
-        "shard #10": 7140.0,
-        "shard #11": 7290.0,
-        "shard #12": 7134.0,
-        "shard #13": 7274.0,
-        "shard #14": 7100.0,
-        "shard #15": 7216.0
+        "num_stories": 1132,
+        "predicted_min_shard_time": 5820.0,
+        "predicted_min_shard_index": 12,
+        "predicted_max_shard_time": 6192.0,
+        "predicted_max_shard_index": 11,
+        "shard #0": 6014.0,
+        "shard #1": 6018.0,
+        "shard #2": 5958.0,
+        "shard #3": 6022.0,
+        "shard #4": 5940.0,
+        "shard #5": 6096.0,
+        "shard #6": 5960.0,
+        "shard #7": 6012.0,
+        "shard #8": 6010.0,
+        "shard #9": 6086.0,
+        "shard #10": 5894.0,
+        "shard #11": 6192.0,
+        "shard #12": 5820.0,
+        "shard #13": 5958.0,
+        "shard #14": 6002.0,
+        "shard #15": 6106.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json b/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json
index 419ce5e..00e3cd2d 100644
--- a/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json
+++ b/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json
@@ -14,7 +14,7 @@
                 "abridged": false
             },
             "blink_perf.dom": {
-                "end": 3,
+                "end": 4,
                 "abridged": false
             }
         }
@@ -22,7 +22,7 @@
     "1": {
         "benchmarks": {
             "blink_perf.dom": {
-                "begin": 3,
+                "begin": 4,
                 "abridged": false
             },
             "blink_perf.events": {
@@ -32,6 +32,15 @@
                 "abridged": false
             },
             "blink_perf.layout": {
+                "end": 48,
+                "abridged": false
+            }
+        }
+    },
+    "2": {
+        "benchmarks": {
+            "blink_perf.layout": {
+                "begin": 48,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
@@ -41,15 +50,15 @@
                 "abridged": false
             },
             "blink_perf.parser": {
-                "end": 4,
+                "end": 12,
                 "abridged": false
             }
         }
     },
-    "2": {
+    "3": {
         "benchmarks": {
             "blink_perf.parser": {
-                "begin": 4,
+                "begin": 12,
                 "abridged": false
             },
             "blink_perf.shadow_dom": {
@@ -74,24 +83,20 @@
                 "abridged": false
             },
             "loading.mobile": {
-                "end": 43,
-                "abridged": false
-            }
-        }
-    },
-    "3": {
-        "benchmarks": {
-            "loading.mobile": {
-                "begin": 43,
-                "abridged": false
-            },
-            "media.mobile": {
+                "end": 44,
                 "abridged": false
             }
         }
     },
     "4": {
         "benchmarks": {
+            "loading.mobile": {
+                "begin": 44,
+                "abridged": false
+            },
+            "media.mobile": {
+                "abridged": false
+            },
             "octane": {
                 "abridged": false
             }
@@ -106,7 +111,7 @@
                 "abridged": false
             },
             "rendering.mobile": {
-                "end": 54,
+                "end": 20,
                 "abridged": false
             }
         }
@@ -114,8 +119,8 @@
     "6": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 54,
-                "end": 134,
+                "begin": 20,
+                "end": 78,
                 "abridged": false
             }
         }
@@ -123,8 +128,8 @@
     "7": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 134,
-                "end": 232,
+                "begin": 78,
+                "end": 124,
                 "abridged": false
             }
         }
@@ -132,8 +137,8 @@
     "8": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 232,
-                "end": 355,
+                "begin": 124,
+                "end": 181,
                 "abridged": false
             }
         }
@@ -141,7 +146,25 @@
     "9": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 355,
+                "begin": 181,
+                "end": 250,
+                "abridged": false
+            }
+        }
+    },
+    "10": {
+        "benchmarks": {
+            "rendering.mobile": {
+                "begin": 250,
+                "end": 331,
+                "abridged": false
+            }
+        }
+    },
+    "11": {
+        "benchmarks": {
+            "rendering.mobile": {
+                "begin": 331,
                 "abridged": false
             },
             "speedometer": {
@@ -160,70 +183,57 @@
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 32,
-                "abridged": false
-            }
-        }
-    },
-    "10": {
-        "benchmarks": {
-            "system_health.common_mobile": {
-                "begin": 32,
-                "abridged": false
-            },
-            "system_health.memory_mobile": {
-                "end": 12,
-                "abridged": false
-            }
-        }
-    },
-    "11": {
-        "benchmarks": {
-            "system_health.memory_mobile": {
-                "begin": 12,
-                "end": 26,
+                "end": 15,
                 "abridged": false
             }
         }
     },
     "12": {
         "benchmarks": {
-            "system_health.memory_mobile": {
-                "begin": 26,
-                "end": 55,
+            "system_health.common_mobile": {
+                "begin": 15,
+                "end": 45,
                 "abridged": false
             }
         }
     },
     "13": {
         "benchmarks": {
-            "system_health.memory_mobile": {
-                "begin": 55,
+            "system_health.common_mobile": {
+                "begin": 45,
                 "abridged": false
             },
-            "system_health.webview_startup": {
+            "system_health.memory_mobile": {
+                "end": 30,
                 "abridged": false
             }
         }
     },
     "14": {
         "benchmarks": {
+            "system_health.memory_mobile": {
+                "begin": 30,
+                "abridged": false
+            },
+            "system_health.webview_startup": {
+                "abridged": false
+            },
             "tracing.tracing_with_background_memory_infra": {
                 "abridged": false
             },
             "v8.browsing_mobile": {
-                "abridged": false
-            },
-            "v8.browsing_mobile-future": {
-                "end": 5,
+                "end": 14,
                 "abridged": false
             }
         }
     },
     "15": {
         "benchmarks": {
+            "v8.browsing_mobile": {
+                "begin": 14,
+                "abridged": false
+            },
             "v8.browsing_mobile-future": {
-                "begin": 5,
                 "abridged": false
             },
             "webrtc": {
@@ -232,26 +242,26 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1151,
-        "predicted_min_shard_time": 4362.0,
-        "predicted_min_shard_index": 2,
-        "predicted_max_shard_time": 5004.0,
+        "num_stories": 1132,
+        "predicted_min_shard_time": 2788.0,
+        "predicted_min_shard_index": 5,
+        "predicted_max_shard_time": 2932.0,
         "predicted_max_shard_index": 3,
-        "shard #0": 4730.0,
-        "shard #1": 4874.0,
-        "shard #2": 4362.0,
-        "shard #3": 5004.0,
-        "shard #4": 4708.0,
-        "shard #5": 4678.0,
-        "shard #6": 4758.0,
-        "shard #7": 4704.0,
-        "shard #8": 4736.0,
-        "shard #9": 4758.0,
-        "shard #10": 4712.0,
-        "shard #11": 4902.0,
-        "shard #12": 4464.0,
-        "shard #13": 4940.0,
-        "shard #14": 4554.0,
-        "shard #15": 4758.0
+        "shard #0": 2870.0,
+        "shard #1": 2858.0,
+        "shard #2": 2892.0,
+        "shard #3": 2932.0,
+        "shard #4": 2884.0,
+        "shard #5": 2788.0,
+        "shard #6": 2914.0,
+        "shard #7": 2902.0,
+        "shard #8": 2840.0,
+        "shard #9": 2894.0,
+        "shard #10": 2874.0,
+        "shard #11": 2878.0,
+        "shard #12": 2896.0,
+        "shard #13": 2850.0,
+        "shard #14": 2898.0,
+        "shard #15": 2854.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json b/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json
index b98069a..316f552c 100644
--- a/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json
+++ b/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json
@@ -8,6 +8,15 @@
                 "abridged": false
             },
             "blink_perf.canvas": {
+                "end": 39,
+                "abridged": false
+            }
+        }
+    },
+    "1": {
+        "benchmarks": {
+            "blink_perf.canvas": {
+                "begin": 39,
                 "abridged": false
             },
             "blink_perf.css": {
@@ -23,15 +32,15 @@
                 "abridged": false
             },
             "blink_perf.layout": {
-                "end": 11,
+                "end": 67,
                 "abridged": false
             }
         }
     },
-    "1": {
+    "2": {
         "benchmarks": {
             "blink_perf.layout": {
-                "begin": 11,
+                "begin": 67,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
@@ -47,15 +56,15 @@
                 "abridged": false
             },
             "blink_perf.svg": {
-                "end": 7,
+                "end": 20,
                 "abridged": false
             }
         }
     },
-    "2": {
+    "3": {
         "benchmarks": {
             "blink_perf.svg": {
-                "begin": 7,
+                "begin": 20,
                 "abridged": false
             },
             "dromaeo": {
@@ -74,15 +83,6 @@
                 "abridged": false
             },
             "loading.mobile": {
-                "end": 70,
-                "abridged": false
-            }
-        }
-    },
-    "3": {
-        "benchmarks": {
-            "loading.mobile": {
-                "begin": 70,
                 "abridged": false
             },
             "media.mobile": {
@@ -90,19 +90,24 @@
             },
             "octane": {
                 "abridged": false
+            },
+            "rasterize_and_record_micro.partial_invalidation": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.top_25": {
+                "end": 10,
+                "abridged": false
             }
         }
     },
     "4": {
         "benchmarks": {
-            "rasterize_and_record_micro.partial_invalidation": {
-                "abridged": false
-            },
             "rasterize_and_record_micro.top_25": {
+                "begin": 10,
                 "abridged": false
             },
             "rendering.mobile": {
-                "end": 74,
+                "end": 106,
                 "abridged": false
             }
         }
@@ -110,8 +115,8 @@
     "5": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 74,
-                "end": 222,
+                "begin": 106,
+                "end": 258,
                 "abridged": false
             }
         }
@@ -119,7 +124,7 @@
     "6": {
         "benchmarks": {
             "rendering.mobile": {
-                "begin": 222,
+                "begin": 258,
                 "abridged": false
             },
             "speedometer": {
@@ -138,7 +143,7 @@
                 "abridged": false
             },
             "system_health.common_mobile": {
-                "end": 8,
+                "end": 12,
                 "abridged": false
             }
         }
@@ -146,11 +151,11 @@
     "7": {
         "benchmarks": {
             "system_health.common_mobile": {
-                "begin": 8,
+                "begin": 12,
                 "abridged": false
             },
             "system_health.memory_mobile": {
-                "end": 6,
+                "end": 4,
                 "abridged": false
             }
         }
@@ -158,8 +163,8 @@
     "8": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 6,
-                "end": 27,
+                "begin": 4,
+                "end": 26,
                 "abridged": false
             }
         }
@@ -167,8 +172,8 @@
     "9": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 27,
-                "end": 74,
+                "begin": 26,
+                "end": 59,
                 "abridged": false
             }
         }
@@ -176,9 +181,13 @@
     "10": {
         "benchmarks": {
             "system_health.memory_mobile": {
-                "begin": 74,
+                "begin": 59,
                 "abridged": false
-            },
+            }
+        }
+    },
+    "11": {
+        "benchmarks": {
             "system_health.webview_startup": {
                 "abridged": false
             },
@@ -186,15 +195,6 @@
                 "abridged": false
             },
             "v8.browsing_mobile": {
-                "end": 20,
-                "abridged": false
-            }
-        }
-    },
-    "11": {
-        "benchmarks": {
-            "v8.browsing_mobile": {
-                "begin": 20,
                 "abridged": false
             },
             "v8.browsing_mobile-future": {
@@ -206,22 +206,22 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1151,
-        "predicted_min_shard_time": 6124.0,
-        "predicted_min_shard_index": 10,
-        "predicted_max_shard_time": 6450.0,
-        "predicted_max_shard_index": 9,
-        "shard #0": 6268.0,
-        "shard #1": 6278.0,
-        "shard #2": 6288.0,
-        "shard #3": 6218.0,
-        "shard #4": 6326.0,
-        "shard #5": 6272.0,
-        "shard #6": 6254.0,
-        "shard #7": 6296.0,
-        "shard #8": 6186.0,
-        "shard #9": 6450.0,
-        "shard #10": 6124.0,
-        "shard #11": 6312.0
+        "num_stories": 1132,
+        "predicted_min_shard_time": 4936.0,
+        "predicted_min_shard_index": 0,
+        "predicted_max_shard_time": 6086.0,
+        "predicted_max_shard_index": 1,
+        "shard #0": 4936.0,
+        "shard #1": 6086.0,
+        "shard #2": 5488.0,
+        "shard #3": 5452.0,
+        "shard #4": 5544.0,
+        "shard #5": 5492.0,
+        "shard #6": 5448.0,
+        "shard #7": 5634.0,
+        "shard #8": 5532.0,
+        "shard #9": 5442.0,
+        "shard #10": 5346.0,
+        "shard #11": 5624.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/chromeos-kevin-perf-fyi_map.json b/tools/perf/core/shard_maps/chromeos-kevin-perf-fyi_map.json
index dd53e6d4..909f661 100644
--- a/tools/perf/core/shard_maps/chromeos-kevin-perf-fyi_map.json
+++ b/tools/perf/core/shard_maps/chromeos-kevin-perf-fyi_map.json
@@ -2,7 +2,7 @@
     "0": {
         "benchmarks": {
             "rendering.desktop": {
-                "end": 60,
+                "end": 55,
                 "abridged": false
             }
         }
@@ -10,8 +10,8 @@
     "1": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 60,
-                "end": 120,
+                "begin": 55,
+                "end": 108,
                 "abridged": false
             }
         }
@@ -19,8 +19,8 @@
     "2": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 120,
-                "end": 180,
+                "begin": 108,
+                "end": 176,
                 "abridged": false
             }
         }
@@ -28,20 +28,20 @@
     "3": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 180,
+                "begin": 176,
                 "abridged": false
             }
         }
     },
     "extra_infos": {
-        "num_stories": 243,
-        "predicted_min_shard_time": 120,
+        "num_stories": 246,
+        "predicted_min_shard_time": 1326.0,
         "predicted_min_shard_index": 0,
-        "predicted_max_shard_time": 126,
-        "predicted_max_shard_index": 3,
-        "shard #0": 120,
-        "shard #1": 120,
-        "shard #2": 120,
-        "shard #3": 126
+        "predicted_max_shard_time": 1334.0,
+        "predicted_max_shard_index": 2,
+        "shard #0": 1326.0,
+        "shard #1": 1330.0,
+        "shard #2": 1334.0,
+        "shard #3": 1326.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/linux-perf_map.json b/tools/perf/core/shard_maps/linux-perf_map.json
index 2ef37b4..ffe475a 100644
--- a/tools/perf/core/shard_maps/linux-perf_map.json
+++ b/tools/perf/core/shard_maps/linux-perf_map.json
@@ -11,18 +11,18 @@
                 "abridged": false
             },
             "blink_perf.css": {
-                "end": 4,
+                "abridged": false
+            },
+            "blink_perf.dom": {
+                "end": 2,
                 "abridged": false
             }
         }
     },
     "1": {
         "benchmarks": {
-            "blink_perf.css": {
-                "begin": 4,
-                "abridged": false
-            },
             "blink_perf.dom": {
+                "begin": 2,
                 "abridged": false
             },
             "blink_perf.events": {
@@ -38,18 +38,18 @@
                 "abridged": false
             },
             "blink_perf.paint": {
-                "end": 5,
+                "abridged": false
+            },
+            "blink_perf.parser": {
+                "end": 1,
                 "abridged": false
             }
         }
     },
     "2": {
         "benchmarks": {
-            "blink_perf.paint": {
-                "begin": 5,
-                "abridged": false
-            },
             "blink_perf.parser": {
+                "begin": 1,
                 "abridged": false
             },
             "blink_perf.shadow_dom": {
@@ -72,21 +72,16 @@
             },
             "jetstream2": {
                 "abridged": false
-            },
-            "kraken": {
-                "abridged": false
-            },
-            "loading.desktop": {
-                "end": 4,
-                "abridged": false
             }
         }
     },
     "3": {
         "benchmarks": {
+            "kraken": {
+                "abridged": false
+            },
             "loading.desktop": {
-                "begin": 4,
-                "end": 56,
+                "end": 49,
                 "abridged": false
             }
         }
@@ -94,23 +89,23 @@
     "4": {
         "benchmarks": {
             "loading.desktop": {
-                "begin": 56,
-                "abridged": false
-            },
-            "media.desktop": {
-                "end": 4,
+                "begin": 49,
+                "end": 97,
                 "abridged": false
             }
         }
     },
     "5": {
         "benchmarks": {
+            "loading.desktop": {
+                "begin": 97,
+                "abridged": false
+            },
             "media.desktop": {
-                "begin": 4,
                 "abridged": false
             },
             "memory.desktop": {
-                "end": 8,
+                "end": 6,
                 "abridged": false
             }
         }
@@ -118,7 +113,7 @@
     "6": {
         "benchmarks": {
             "memory.desktop": {
-                "begin": 8,
+                "begin": 6,
                 "abridged": false
             },
             "octane": {
@@ -131,7 +126,7 @@
                 "abridged": false
             },
             "rasterize_and_record_micro.top_25": {
-                "end": 17,
+                "end": 1,
                 "abridged": false
             }
         }
@@ -139,11 +134,11 @@
     "7": {
         "benchmarks": {
             "rasterize_and_record_micro.top_25": {
-                "begin": 17,
+                "begin": 1,
                 "abridged": false
             },
             "rendering.desktop": {
-                "end": 54,
+                "end": 43,
                 "abridged": false
             }
         }
@@ -151,8 +146,8 @@
     "8": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 54,
-                "end": 129,
+                "begin": 43,
+                "end": 115,
                 "abridged": false
             }
         }
@@ -160,8 +155,8 @@
     "9": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 129,
-                "end": 222,
+                "begin": 115,
+                "end": 211,
                 "abridged": false
             }
         }
@@ -169,7 +164,7 @@
     "10": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 222,
+                "begin": 211,
                 "abridged": false
             },
             "speedometer": {
@@ -185,7 +180,7 @@
                 "abridged": false
             },
             "system_health.common_desktop": {
-                "end": 11,
+                "end": 9,
                 "abridged": false
             }
         }
@@ -193,8 +188,8 @@
     "11": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 11,
-                "end": 51,
+                "begin": 9,
+                "end": 43,
                 "abridged": false
             }
         }
@@ -202,8 +197,8 @@
     "12": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 51,
-                "end": 70,
+                "begin": 43,
+                "end": 72,
                 "abridged": false
             }
         }
@@ -211,7 +206,7 @@
     "13": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 70,
+                "begin": 72,
                 "abridged": false
             },
             "system_health.memory_desktop": {
@@ -224,7 +219,7 @@
         "benchmarks": {
             "system_health.memory_desktop": {
                 "begin": 9,
-                "end": 18,
+                "end": 17,
                 "abridged": false
             }
         }
@@ -232,8 +227,8 @@
     "15": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 18,
-                "end": 35,
+                "begin": 17,
+                "end": 33,
                 "abridged": false
             }
         }
@@ -241,8 +236,8 @@
     "16": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 35,
-                "end": 57,
+                "begin": 33,
+                "end": 55,
                 "abridged": false
             }
         }
@@ -250,8 +245,8 @@
     "17": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 57,
-                "end": 68,
+                "begin": 55,
+                "end": 71,
                 "abridged": false
             }
         }
@@ -259,21 +254,26 @@
     "18": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 68,
+                "begin": 71,
                 "abridged": false
             },
             "tab_switching.typical_25": {
                 "abridged": false
+            },
+            "tracing.tracing_with_background_memory_infra": {
+                "end": 1,
+                "abridged": false
             }
         }
     },
     "19": {
         "benchmarks": {
             "tracing.tracing_with_background_memory_infra": {
+                "begin": 1,
                 "abridged": false
             },
             "v8.browsing_desktop": {
-                "end": 20,
+                "end": 21,
                 "abridged": false
             }
         }
@@ -281,11 +281,11 @@
     "20": {
         "benchmarks": {
             "v8.browsing_desktop": {
-                "begin": 20,
+                "begin": 21,
                 "abridged": false
             },
             "v8.browsing_desktop-future": {
-                "end": 15,
+                "end": 17,
                 "abridged": false
             }
         }
@@ -293,11 +293,11 @@
     "21": {
         "benchmarks": {
             "v8.browsing_desktop-future": {
-                "begin": 15,
+                "begin": 17,
                 "abridged": false
             },
             "v8.runtime_stats.top_25": {
-                "end": 19,
+                "end": 18,
                 "abridged": false
             }
         }
@@ -305,8 +305,8 @@
     "22": {
         "benchmarks": {
             "v8.runtime_stats.top_25": {
-                "begin": 19,
-                "end": 48,
+                "begin": 18,
+                "end": 47,
                 "abridged": false
             }
         }
@@ -314,7 +314,7 @@
     "23": {
         "benchmarks": {
             "v8.runtime_stats.top_25": {
-                "begin": 48,
+                "begin": 47,
                 "end": 77,
                 "abridged": false
             }
@@ -341,36 +341,36 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1131,
-        "predicted_min_shard_time": 1390.0,
-        "predicted_min_shard_index": 5,
-        "predicted_max_shard_time": 1578.0,
-        "predicted_max_shard_index": 18,
-        "shard #0": 1490.0,
-        "shard #1": 1476.0,
-        "shard #2": 1482.0,
-        "shard #3": 1484.0,
-        "shard #4": 1504.0,
-        "shard #5": 1390.0,
-        "shard #6": 1562.0,
-        "shard #7": 1492.0,
-        "shard #8": 1490.0,
-        "shard #9": 1484.0,
-        "shard #10": 1518.0,
-        "shard #11": 1462.0,
+        "num_stories": 1149,
+        "predicted_min_shard_time": 1416.0,
+        "predicted_min_shard_index": 21,
+        "predicted_max_shard_time": 1572.0,
+        "predicted_max_shard_index": 2,
+        "shard #0": 1496.0,
+        "shard #1": 1500.0,
+        "shard #2": 1572.0,
+        "shard #3": 1418.0,
+        "shard #4": 1488.0,
+        "shard #5": 1450.0,
+        "shard #6": 1556.0,
+        "shard #7": 1486.0,
+        "shard #8": 1500.0,
+        "shard #9": 1500.0,
+        "shard #10": 1544.0,
+        "shard #11": 1438.0,
         "shard #12": 1468.0,
-        "shard #13": 1474.0,
-        "shard #14": 1566.0,
-        "shard #15": 1410.0,
-        "shard #16": 1488.0,
-        "shard #17": 1428.0,
-        "shard #18": 1578.0,
-        "shard #19": 1474.0,
-        "shard #20": 1490.0,
-        "shard #21": 1458.0,
-        "shard #22": 1510.0,
-        "shard #23": 1448.0,
-        "shard #24": 1500.0,
-        "shard #25": 1492.0
+        "shard #13": 1564.0,
+        "shard #14": 1452.0,
+        "shard #15": 1488.0,
+        "shard #16": 1500.0,
+        "shard #17": 1524.0,
+        "shard #18": 1492.0,
+        "shard #19": 1518.0,
+        "shard #20": 1542.0,
+        "shard #21": 1416.0,
+        "shard #22": 1492.0,
+        "shard #23": 1506.0,
+        "shard #24": 1512.0,
+        "shard #25": 1486.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json b/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json
index 834fe6b..78ecb72 100644
--- a/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json
+++ b/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json
@@ -8,6 +8,15 @@
                 "abridged": false
             },
             "blink_perf.canvas": {
+                "end": 38,
+                "abridged": false
+            }
+        }
+    },
+    "1": {
+        "benchmarks": {
+            "blink_perf.canvas": {
+                "begin": 38,
                 "abridged": false
             },
             "blink_perf.css": {
@@ -15,11 +24,7 @@
             },
             "blink_perf.display_locking": {
                 "abridged": false
-            }
-        }
-    },
-    "1": {
-        "benchmarks": {
+            },
             "blink_perf.dom": {
                 "abridged": false
             },
@@ -30,24 +35,33 @@
                 "abridged": false
             },
             "blink_perf.layout": {
-                "abridged": false
-            },
-            "blink_perf.owp_storage": {
-                "abridged": false
-            },
-            "blink_perf.paint": {
-                "end": 15,
+                "end": 20,
                 "abridged": false
             }
         }
     },
     "2": {
         "benchmarks": {
+            "blink_perf.layout": {
+                "begin": 20,
+                "abridged": false
+            },
+            "blink_perf.owp_storage": {
+                "abridged": false
+            },
             "blink_perf.paint": {
-                "begin": 15,
                 "abridged": false
             },
             "blink_perf.parser": {
+                "end": 5,
+                "abridged": false
+            }
+        }
+    },
+    "3": {
+        "benchmarks": {
+            "blink_perf.parser": {
+                "begin": 5,
                 "abridged": false
             },
             "blink_perf.shadow_dom": {
@@ -70,83 +84,100 @@
             },
             "kraken": {
                 "abridged": false
-            },
-            "loading.desktop": {
-                "end": 14,
-                "abridged": false
-            }
-        }
-    },
-    "3": {
-        "benchmarks": {
-            "loading.desktop": {
-                "begin": 14,
-                "end": 68,
-                "abridged": false
             }
         }
     },
     "4": {
         "benchmarks": {
             "loading.desktop": {
-                "begin": 68,
-                "abridged": false
-            },
-            "media.desktop": {
-                "end": 25,
+                "end": 41,
                 "abridged": false
             }
         }
     },
     "5": {
         "benchmarks": {
-            "media.desktop": {
-                "begin": 25,
-                "abridged": false
-            },
-            "memory.desktop": {
-                "abridged": false
-            },
-            "octane": {
-                "abridged": false
-            },
-            "power.desktop": {
-                "end": 11,
+            "loading.desktop": {
+                "begin": 41,
+                "end": 76,
                 "abridged": false
             }
         }
     },
     "6": {
         "benchmarks": {
-            "power.desktop": {
-                "begin": 11,
+            "loading.desktop": {
+                "begin": 76,
                 "abridged": false
             },
-            "rasterize_and_record_micro.partial_invalidation": {
-                "abridged": false
-            },
-            "rasterize_and_record_micro.top_25": {
-                "abridged": false
-            },
-            "rendering.desktop": {
-                "end": 51,
+            "media.desktop": {
+                "end": 8,
                 "abridged": false
             }
         }
     },
     "7": {
         "benchmarks": {
-            "rendering.desktop": {
-                "begin": 51,
-                "end": 147,
+            "media.desktop": {
+                "begin": 8,
+                "abridged": false
+            },
+            "memory.desktop": {
                 "abridged": false
             }
         }
     },
     "8": {
         "benchmarks": {
+            "octane": {
+                "abridged": false
+            },
+            "power.desktop": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.partial_invalidation": {
+                "abridged": false
+            },
+            "rasterize_and_record_micro.top_25": {
+                "end": 13,
+                "abridged": false
+            }
+        }
+    },
+    "9": {
+        "benchmarks": {
+            "rasterize_and_record_micro.top_25": {
+                "begin": 13,
+                "abridged": false
+            },
             "rendering.desktop": {
-                "begin": 147,
+                "end": 43,
+                "abridged": false
+            }
+        }
+    },
+    "10": {
+        "benchmarks": {
+            "rendering.desktop": {
+                "begin": 43,
+                "end": 104,
+                "abridged": false
+            }
+        }
+    },
+    "11": {
+        "benchmarks": {
+            "rendering.desktop": {
+                "begin": 104,
+                "end": 181,
+                "abridged": false
+            }
+        }
+    },
+    "12": {
+        "benchmarks": {
+            "rendering.desktop": {
+                "begin": 181,
                 "abridged": false
             },
             "speedometer": {
@@ -154,76 +185,40 @@
             },
             "speedometer-future": {
                 "abridged": false
-            },
-            "speedometer2": {
-                "abridged": false
-            }
-        }
-    },
-    "9": {
-        "benchmarks": {
-            "speedometer2-future": {
-                "abridged": false
-            },
-            "system_health.common_desktop": {
-                "end": 28,
-                "abridged": false
-            }
-        }
-    },
-    "10": {
-        "benchmarks": {
-            "system_health.common_desktop": {
-                "begin": 28,
-                "end": 93,
-                "abridged": false
-            }
-        }
-    },
-    "11": {
-        "benchmarks": {
-            "system_health.common_desktop": {
-                "begin": 93,
-                "end": 111,
-                "abridged": false
-            }
-        }
-    },
-    "12": {
-        "benchmarks": {
-            "system_health.common_desktop": {
-                "begin": 111,
-                "abridged": false
-            },
-            "system_health.memory_desktop": {
-                "end": 13,
-                "abridged": false
             }
         }
     },
     "13": {
         "benchmarks": {
-            "system_health.memory_desktop": {
-                "begin": 13,
-                "end": 22,
+            "speedometer2": {
+                "abridged": false
+            },
+            "speedometer2-future": {
+                "abridged": false
+            },
+            "system_health.common_desktop": {
+                "end": 18,
                 "abridged": false
             }
         }
     },
     "14": {
         "benchmarks": {
-            "system_health.memory_desktop": {
-                "begin": 22,
-                "end": 46,
+            "system_health.common_desktop": {
+                "begin": 18,
+                "end": 62,
                 "abridged": false
             }
         }
     },
     "15": {
         "benchmarks": {
+            "system_health.common_desktop": {
+                "begin": 62,
+                "abridged": false
+            },
             "system_health.memory_desktop": {
-                "begin": 46,
-                "end": 75,
+                "end": 2,
                 "abridged": false
             }
         }
@@ -231,8 +226,8 @@
     "16": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 75,
-                "end": 91,
+                "begin": 2,
+                "end": 9,
                 "abridged": false
             }
         }
@@ -240,8 +235,8 @@
     "17": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 91,
-                "end": 99,
+                "begin": 9,
+                "end": 18,
                 "abridged": false
             }
         }
@@ -249,8 +244,8 @@
     "18": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 99,
-                "end": 106,
+                "begin": 18,
+                "end": 31,
                 "abridged": false
             }
         }
@@ -258,7 +253,34 @@
     "19": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 106,
+                "begin": 31,
+                "end": 50,
+                "abridged": false
+            }
+        }
+    },
+    "20": {
+        "benchmarks": {
+            "system_health.memory_desktop": {
+                "begin": 50,
+                "end": 67,
+                "abridged": false
+            }
+        }
+    },
+    "21": {
+        "benchmarks": {
+            "system_health.memory_desktop": {
+                "begin": 67,
+                "end": 72,
+                "abridged": false
+            }
+        }
+    },
+    "22": {
+        "benchmarks": {
+            "system_health.memory_desktop": {
+                "begin": 72,
                 "abridged": false
             },
             "tab_switching.typical_25": {
@@ -268,66 +290,39 @@
                 "abridged": false
             },
             "v8.browsing_desktop": {
-                "end": 5,
-                "abridged": false
-            }
-        }
-    },
-    "20": {
-        "benchmarks": {
-            "v8.browsing_desktop": {
-                "begin": 5,
-                "end": 27,
-                "abridged": false
-            }
-        }
-    },
-    "21": {
-        "benchmarks": {
-            "v8.browsing_desktop": {
-                "begin": 27,
-                "abridged": false
-            },
-            "v8.browsing_desktop-future": {
-                "end": 19,
-                "abridged": false
-            }
-        }
-    },
-    "22": {
-        "benchmarks": {
-            "v8.browsing_desktop-future": {
-                "begin": 19,
-                "abridged": false
-            },
-            "v8.runtime_stats.top_25": {
-                "end": 16,
+                "end": 1,
                 "abridged": false
             }
         }
     },
     "23": {
         "benchmarks": {
-            "v8.runtime_stats.top_25": {
-                "begin": 16,
-                "end": 57,
+            "v8.browsing_desktop": {
+                "begin": 1,
+                "end": 19,
                 "abridged": false
             }
         }
     },
     "24": {
         "benchmarks": {
-            "v8.runtime_stats.top_25": {
-                "begin": 57,
-                "end": 99,
+            "v8.browsing_desktop": {
+                "begin": 19,
+                "abridged": false
+            },
+            "v8.browsing_desktop-future": {
+                "end": 13,
                 "abridged": false
             }
         }
     },
     "25": {
         "benchmarks": {
+            "v8.browsing_desktop-future": {
+                "begin": 13,
+                "abridged": false
+            },
             "v8.runtime_stats.top_25": {
-                "begin": 99,
                 "abridged": false
             },
             "webrtc": {
@@ -336,36 +331,36 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1240,
-        "predicted_min_shard_time": 1992.0,
-        "predicted_min_shard_index": 16,
-        "predicted_max_shard_time": 2712.0,
-        "predicted_max_shard_index": 17,
-        "shard #0": 2306.0,
-        "shard #1": 2334.0,
-        "shard #2": 2364.0,
-        "shard #3": 2312.0,
-        "shard #4": 2312.0,
-        "shard #5": 2330.0,
-        "shard #6": 2334.0,
-        "shard #7": 2320.0,
-        "shard #8": 2248.0,
-        "shard #9": 2422.0,
-        "shard #10": 2350.0,
-        "shard #11": 2338.0,
-        "shard #12": 2230.0,
-        "shard #13": 2388.0,
-        "shard #14": 2292.0,
-        "shard #15": 2316.0,
-        "shard #16": 1992.0,
-        "shard #17": 2712.0,
-        "shard #18": 2298.0,
-        "shard #19": 2382.0,
-        "shard #20": 2340.0,
-        "shard #21": 2342.0,
-        "shard #22": 2246.0,
-        "shard #23": 2338.0,
-        "shard #24": 2318.0,
-        "shard #25": 2330.0
+        "num_stories": 1156,
+        "predicted_min_shard_time": 1330.0,
+        "predicted_min_shard_index": 8,
+        "predicted_max_shard_time": 1664.0,
+        "predicted_max_shard_index": 7,
+        "shard #0": 1502.0,
+        "shard #1": 1508.0,
+        "shard #2": 1504.0,
+        "shard #3": 1480.0,
+        "shard #4": 1532.0,
+        "shard #5": 1532.0,
+        "shard #6": 1496.0,
+        "shard #7": 1664.0,
+        "shard #8": 1330.0,
+        "shard #9": 1506.0,
+        "shard #10": 1492.0,
+        "shard #11": 1520.0,
+        "shard #12": 1420.0,
+        "shard #13": 1592.0,
+        "shard #14": 1428.0,
+        "shard #15": 1620.0,
+        "shard #16": 1542.0,
+        "shard #17": 1452.0,
+        "shard #18": 1452.0,
+        "shard #19": 1530.0,
+        "shard #20": 1374.0,
+        "shard #21": 1638.0,
+        "shard #22": 1510.0,
+        "shard #23": 1542.0,
+        "shard #24": 1476.0,
+        "shard #25": 1482.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json b/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json
index 36d4569d..f16a24a3 100644
--- a/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json
+++ b/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json
@@ -8,7 +8,7 @@
                 "abridged": false
             },
             "blink_perf.canvas": {
-                "end": 32,
+                "end": 36,
                 "abridged": false
             }
         }
@@ -16,7 +16,7 @@
     "1": {
         "benchmarks": {
             "blink_perf.canvas": {
-                "begin": 32,
+                "begin": 36,
                 "abridged": false
             },
             "blink_perf.css": {
@@ -32,7 +32,7 @@
                 "abridged": false
             },
             "blink_perf.layout": {
-                "end": 13,
+                "end": 27,
                 "abridged": false
             }
         }
@@ -40,7 +40,7 @@
     "2": {
         "benchmarks": {
             "blink_perf.layout": {
-                "begin": 13,
+                "begin": 27,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
@@ -50,7 +50,7 @@
                 "abridged": false
             },
             "blink_perf.parser": {
-                "end": 13,
+                "end": 19,
                 "abridged": false
             }
         }
@@ -58,7 +58,7 @@
     "3": {
         "benchmarks": {
             "blink_perf.parser": {
-                "begin": 13,
+                "begin": 19,
                 "abridged": false
             },
             "blink_perf.shadow_dom": {
@@ -81,21 +81,16 @@
             },
             "jetstream2": {
                 "abridged": false
-            },
-            "kraken": {
-                "abridged": false
-            },
-            "loading.desktop": {
-                "end": 4,
-                "abridged": false
             }
         }
     },
     "4": {
         "benchmarks": {
+            "kraken": {
+                "abridged": false
+            },
             "loading.desktop": {
-                "begin": 4,
-                "end": 46,
+                "end": 40,
                 "abridged": false
             }
         }
@@ -103,8 +98,8 @@
     "5": {
         "benchmarks": {
             "loading.desktop": {
-                "begin": 46,
-                "end": 83,
+                "begin": 40,
+                "end": 77,
                 "abridged": false
             }
         }
@@ -112,44 +107,39 @@
     "6": {
         "benchmarks": {
             "loading.desktop": {
-                "begin": 83,
+                "begin": 77,
                 "abridged": false
             },
             "media.desktop": {
-                "abridged": false
-            },
-            "memory.desktop": {
-                "end": 2,
+                "end": 16,
                 "abridged": false
             }
         }
     },
     "7": {
         "benchmarks": {
+            "media.desktop": {
+                "begin": 16,
+                "abridged": false
+            },
             "memory.desktop": {
-                "begin": 2,
                 "abridged": false
             },
             "octane": {
                 "abridged": false
-            },
-            "power.desktop": {
-                "end": 3,
-                "abridged": false
             }
         }
     },
     "8": {
         "benchmarks": {
             "power.desktop": {
-                "begin": 3,
                 "abridged": false
             },
             "rasterize_and_record_micro.partial_invalidation": {
                 "abridged": false
             },
             "rasterize_and_record_micro.top_25": {
-                "end": 24,
+                "end": 22,
                 "abridged": false
             }
         }
@@ -157,11 +147,11 @@
     "9": {
         "benchmarks": {
             "rasterize_and_record_micro.top_25": {
-                "begin": 24,
+                "begin": 22,
                 "abridged": false
             },
             "rendering.desktop": {
-                "end": 59,
+                "end": 49,
                 "abridged": false
             }
         }
@@ -169,8 +159,8 @@
     "10": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 59,
-                "end": 120,
+                "begin": 49,
+                "end": 111,
                 "abridged": false
             }
         }
@@ -178,8 +168,8 @@
     "11": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 120,
-                "end": 205,
+                "begin": 111,
+                "end": 186,
                 "abridged": false
             }
         }
@@ -187,7 +177,7 @@
     "12": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 205,
+                "begin": 186,
                 "abridged": false
             },
             "speedometer": {
@@ -198,21 +188,16 @@
             },
             "speedometer2": {
                 "abridged": false
-            },
-            "speedometer2-future": {
-                "abridged": false
-            },
-            "system_health.common_desktop": {
-                "end": 3,
-                "abridged": false
             }
         }
     },
     "13": {
         "benchmarks": {
+            "speedometer2-future": {
+                "abridged": false
+            },
             "system_health.common_desktop": {
-                "begin": 3,
-                "end": 23,
+                "end": 20,
                 "abridged": false
             }
         }
@@ -220,8 +205,8 @@
     "14": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 23,
-                "end": 62,
+                "begin": 20,
+                "end": 63,
                 "abridged": false
             }
         }
@@ -229,7 +214,7 @@
     "15": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 62,
+                "begin": 63,
                 "abridged": false
             },
             "system_health.memory_desktop": {
@@ -251,7 +236,7 @@
         "benchmarks": {
             "system_health.memory_desktop": {
                 "begin": 9,
-                "end": 17,
+                "end": 18,
                 "abridged": false
             }
         }
@@ -259,8 +244,8 @@
     "18": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 17,
-                "end": 28,
+                "begin": 18,
+                "end": 31,
                 "abridged": false
             }
         }
@@ -268,8 +253,8 @@
     "19": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 28,
-                "end": 47,
+                "begin": 31,
+                "end": 50,
                 "abridged": false
             }
         }
@@ -277,8 +262,8 @@
     "20": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 47,
-                "end": 64,
+                "begin": 50,
+                "end": 67,
                 "abridged": false
             }
         }
@@ -286,8 +271,8 @@
     "21": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 64,
-                "end": 69,
+                "begin": 67,
+                "end": 72,
                 "abridged": false
             }
         }
@@ -295,7 +280,7 @@
     "22": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 69,
+                "begin": 72,
                 "abridged": false
             },
             "tab_switching.typical_25": {
@@ -303,13 +288,18 @@
             },
             "tracing.tracing_with_background_memory_infra": {
                 "abridged": false
+            },
+            "v8.browsing_desktop": {
+                "end": 1,
+                "abridged": false
             }
         }
     },
     "23": {
         "benchmarks": {
             "v8.browsing_desktop": {
-                "end": 16,
+                "begin": 1,
+                "end": 19,
                 "abridged": false
             }
         }
@@ -317,7 +307,7 @@
     "24": {
         "benchmarks": {
             "v8.browsing_desktop": {
-                "begin": 16,
+                "begin": 19,
                 "abridged": false
             },
             "v8.browsing_desktop-future": {
@@ -341,36 +331,36 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1131,
-        "predicted_min_shard_time": 1242.0,
+        "num_stories": 1149,
+        "predicted_min_shard_time": 1236.0,
         "predicted_min_shard_index": 20,
-        "predicted_max_shard_time": 1560.0,
+        "predicted_max_shard_time": 1572.0,
         "predicted_max_shard_index": 21,
-        "shard #0": 1440.0,
-        "shard #1": 1368.0,
-        "shard #2": 1406.0,
-        "shard #3": 1400.0,
-        "shard #4": 1424.0,
-        "shard #5": 1404.0,
-        "shard #6": 1424.0,
-        "shard #7": 1328.0,
-        "shard #8": 1472.0,
-        "shard #9": 1360.0,
-        "shard #10": 1396.0,
-        "shard #11": 1412.0,
-        "shard #12": 1410.0,
-        "shard #13": 1386.0,
-        "shard #14": 1398.0,
-        "shard #15": 1468.0,
-        "shard #16": 1464.0,
-        "shard #17": 1380.0,
-        "shard #18": 1332.0,
-        "shard #19": 1410.0,
-        "shard #20": 1242.0,
-        "shard #21": 1560.0,
-        "shard #22": 1370.0,
-        "shard #23": 1426.0,
-        "shard #24": 1390.0,
-        "shard #25": 1398.0
+        "shard #0": 1400.0,
+        "shard #1": 1394.0,
+        "shard #2": 1402.0,
+        "shard #3": 1432.0,
+        "shard #4": 1358.0,
+        "shard #5": 1372.0,
+        "shard #6": 1416.0,
+        "shard #7": 1434.0,
+        "shard #8": 1342.0,
+        "shard #9": 1408.0,
+        "shard #10": 1412.0,
+        "shard #11": 1394.0,
+        "shard #12": 1428.0,
+        "shard #13": 1346.0,
+        "shard #14": 1496.0,
+        "shard #15": 1310.0,
+        "shard #16": 1452.0,
+        "shard #17": 1398.0,
+        "shard #18": 1314.0,
+        "shard #19": 1398.0,
+        "shard #20": 1236.0,
+        "shard #21": 1572.0,
+        "shard #22": 1444.0,
+        "shard #23": 1410.0,
+        "shard #24": 1358.0,
+        "shard #25": 1390.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json
index 9add4ec..3c9fce9 100644
--- a/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json
@@ -1,290 +1,178 @@
 [
     {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "31.0",
-        "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "30.0",
-        "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "28.0",
-        "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "54.0",
-        "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "28.0",
-        "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "31.0",
-        "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "76.0",
-        "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom"
-    },
-    {
-        "duration": "96.0",
-        "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180"
-    },
-    {
-        "duration": "74.0",
-        "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404"
-    },
-    {
-        "duration": "85.0",
-        "name": "power.typical_10_mobile/http://m.facebook.com/barackobama"
-    },
-    {
-        "duration": "80.0",
-        "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486"
-    },
-    {
-        "duration": "79.0",
-        "name": "power.typical_10_mobile/http://m.ynet.co.il"
-    },
-    {
-        "duration": "88.0",
-        "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/"
-    },
-    {
-        "duration": "83.0",
-        "name": "power.typical_10_mobile/http://wapbaike.baidu.com/"
-    },
-    {
-        "duration": "74.0",
-        "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html"
-    },
-    {
-        "duration": "85.0",
-        "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html"
-    },
-    {
-        "duration": "79.0",
-        "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif"
-    },
-    {
-        "duration": "140.0",
+        "duration": "144.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "260.0",
+        "duration": "275.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "240.0",
+        "duration": "204.0",
         "name": "startup.mobile/cct:coldish:bbc"
     },
     {
-        "duration": "253.0",
+        "duration": "202.0",
         "name": "startup.mobile/intent:coldish:bbc"
     },
     {
-        "duration": "218.0",
+        "duration": "178.0",
         "name": "startup.mobile/intent:warm:bbc"
     },
     {
-        "duration": "263.0",
+        "duration": "182.0",
         "name": "startup.mobile/maps_pwa:with_http_cache"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "63.0",
+        "duration": "56.0",
         "name": "system_health.common_mobile/background:news:nytimes"
     },
     {
-        "duration": "34.0",
+        "duration": "35.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
-        "duration": "32.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "52.0",
+        "duration": "59.0",
         "name": "system_health.common_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "124.0",
+        "duration": "112.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "73.0",
+        "duration": "67.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "67.0",
+        "duration": "57.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "100.0",
+        "duration": "90.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "156.0",
+        "duration": "122.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "268.0",
-        "name": "system_health.common_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "235.0",
+        "duration": "200.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "86.0",
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "125.0",
+        "duration": "70.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
-        "duration": "83.0",
+        "duration": "79.0",
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "75.0",
+        "duration": "116.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "68.0",
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "33.0",
+        "duration": "148.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "31.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "118.0",
+        "duration": "34.0",
+        "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "97.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "52.0",
+        "duration": "49.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "98.0",
+        "duration": "88.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "145.0",
+        "duration": "109.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "133.0",
+        "duration": "107.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "122.0",
+        "duration": "110.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "129.0",
+        "duration": "114.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "105.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "151.0",
-        "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "175.0",
-        "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "76.0",
+        "duration": "69.0",
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "99.0",
+        "duration": "106.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "81.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "128.0",
+        "duration": "104.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "66.0",
+        "duration": "60.0",
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "34.0",
+        "duration": "66.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "24.0",
         "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
-        "duration": "36.0",
+        "duration": "31.0",
         "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.common_mobile/load:games:lazors"
     },
     {
-        "duration": "48.0",
-        "name": "system_health.common_mobile/load:games:spychase"
-    },
-    {
-        "duration": "48.0",
+        "duration": "40.0",
         "name": "system_health.common_mobile/load:games:spychase:2018"
     },
     {
@@ -292,155 +180,135 @@
         "name": "system_health.common_mobile/load:media:dailymotion"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "39.0",
+        "duration": "26.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
+        "duration": "37.0",
         "name": "system_health.common_mobile/load:media:flickr:2018"
     },
     {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/load:media:google_images"
-    },
-    {
-        "duration": "33.0",
+        "duration": "30.0",
         "name": "system_health.common_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.common_mobile/load:media:imgur"
-    },
-    {
-        "duration": "47.0",
+        "duration": "40.0",
         "name": "system_health.common_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:media:soundcloud"
-    },
-    {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:media:soundcloud:2018"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:media:youtube"
-    },
-    {
-        "duration": "39.0",
+        "duration": "32.0",
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "72.0",
-        "name": "system_health.common_mobile/load:news:cnn"
-    },
-    {
-        "duration": "57.0",
+        "duration": "50.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "38.0",
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "39.0",
+        "duration": "35.0",
         "name": "system_health.common_mobile/load:news:nytimes"
     },
     {
-        "duration": "42.0",
+        "duration": "70.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "28.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
-        "duration": "32.0",
+        "duration": "34.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "30.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
         "duration": "34.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "32.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.common_mobile/load:news:wikipedia"
+        "duration": "32.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "60.0",
-        "name": "system_health.common_mobile/load:search:baidu"
-    },
-    {
-        "duration": "54.0",
+        "duration": "38.0",
         "name": "system_health.common_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "41.0",
-        "name": "system_health.common_mobile/load:search:ebay"
-    },
-    {
-        "duration": "36.0",
+        "duration": "31.0",
         "name": "system_health.common_mobile/load:search:ebay:2018"
     },
     {
         "duration": "27.0",
-        "name": "system_health.common_mobile/load:search:google"
-    },
-    {
-        "duration": "30.0",
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
-        "duration": "26.0",
-        "name": "system_health.common_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:search:yandex"
+        "duration": "29.0",
+        "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.common_mobile/load:search:yandex:2018"
+        "duration": "29.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
     },
     {
         "duration": "28.0",
         "name": "system_health.common_mobile/load:social:twitter"
     },
     {
+        "duration": "30.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
         "duration": "27.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "system_health.common_mobile/load:tools:drive"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.common_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "32.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "43.0",
+        "duration": "39.0",
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
@@ -448,63 +316,75 @@
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "173.0",
+        "duration": "255.0",
         "name": "system_health.memory_mobile/browse:chrome:newtab"
     },
     {
-        "duration": "52.0",
+        "duration": "66.0",
         "name": "system_health.memory_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "102.0",
+        "duration": "104.0",
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "57.0",
+        "duration": "63.0",
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "system_health.memory_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "81.0",
+        "duration": "84.0",
         "name": "system_health.memory_mobile/browse:media:imgur"
     },
     {
-        "duration": "100.0",
+        "duration": "99.0",
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
-        "duration": "69.0",
+        "duration": "66.0",
         "name": "system_health.memory_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "100.0",
+        "duration": "66.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
     {
-        "duration": "72.0",
+        "duration": "75.0",
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
-        "duration": "187.0",
+        "duration": "105.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "190.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "61.0",
+        "duration": "63.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "39.0",
+        "duration": "122.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "33.0",
         "name": "system_health.memory_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "88.0",
+        "duration": "38.0",
+        "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "81.0",
         "name": "system_health.memory_mobile/browse:shopping:amazon"
     },
     {
@@ -512,7 +392,7 @@
         "name": "system_health.memory_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "78.0",
+        "duration": "79.0",
         "name": "system_health.memory_mobile/browse:social:facebook"
     },
     {
@@ -524,35 +404,43 @@
         "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "91.0",
+        "duration": "95.0",
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
-        "duration": "95.0",
+        "duration": "105.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "94.0",
         "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "116.0",
-        "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "64.0",
+        "duration": "65.0",
         "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
-        "duration": "73.0",
+        "duration": "102.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "74.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "87.0",
+        "duration": "88.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "58.0",
+        "duration": "59.0",
         "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
-        "duration": "31.0",
+        "duration": "60.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "30.0",
         "name": "system_health.memory_mobile/load:chrome:blank"
     },
     {
@@ -560,15 +448,15 @@
         "name": "system_health.memory_mobile/load:games:bubbles"
     },
     {
-        "duration": "30.0",
+        "duration": "32.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "31.0",
         "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
-        "duration": "39.0",
-        "name": "system_health.memory_mobile/load:games:spychase"
-    },
-    {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "system_health.memory_mobile/load:games:spychase:2018"
     },
     {
@@ -580,51 +468,35 @@
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "38.0",
-        "name": "system_health.memory_mobile/load:media:flickr:2018"
+        "duration": "32.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/load:media:google_images"
+        "duration": "41.0",
+        "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
     {
         "duration": "35.0",
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/load:media:imgur"
-    },
-    {
         "duration": "40.0",
         "name": "system_health.memory_mobile/load:media:imgur:2018"
     },
     {
         "duration": "32.0",
-        "name": "system_health.memory_mobile/load:media:soundcloud"
-    },
-    {
-        "duration": "31.0",
         "name": "system_health.memory_mobile/load:media:soundcloud:2018"
     },
     {
-        "duration": "37.0",
-        "name": "system_health.memory_mobile/load:media:youtube"
-    },
-    {
         "duration": "35.0",
         "name": "system_health.memory_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "64.0",
-        "name": "system_health.memory_mobile/load:news:cnn"
-    },
-    {
-        "duration": "53.0",
+        "duration": "52.0",
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
@@ -632,75 +504,75 @@
         "name": "system_health.memory_mobile/load:news:nytimes"
     },
     {
-        "duration": "44.0",
+        "duration": "62.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "32.0",
         "name": "system_health.memory_mobile/load:news:qq"
     },
     {
+        "duration": "38.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "34.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
-        "duration": "34.0",
+        "duration": "37.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "35.0",
         "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
         "duration": "35.0",
-        "name": "system_health.memory_mobile/load:news:wikipedia"
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
     },
     {
         "duration": "34.0",
         "name": "system_health.memory_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "55.0",
-        "name": "system_health.memory_mobile/load:search:baidu"
-    },
-    {
-        "duration": "54.0",
+        "duration": "41.0",
         "name": "system_health.memory_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "36.0",
-        "name": "system_health.memory_mobile/load:search:ebay"
-    },
-    {
         "duration": "34.0",
         "name": "system_health.memory_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/load:search:google"
-    },
-    {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "system_health.memory_mobile/load:search:google:2018"
     },
     {
-        "duration": "40.0",
+        "duration": "36.0",
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
         "duration": "30.0",
-        "name": "system_health.memory_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "30.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/load:search:yandex"
+        "duration": "34.0",
+        "name": "system_health.memory_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "35.0",
-        "name": "system_health.memory_mobile/load:search:yandex:2018"
+        "duration": "34.0",
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
     },
     {
         "duration": "31.0",
         "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
-        "duration": "31.0",
+        "duration": "34.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "30.0",
         "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
@@ -712,11 +584,7 @@
         "name": "system_health.memory_mobile/load:tools:dropbox"
     },
     {
-        "duration": "33.0",
-        "name": "system_health.memory_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
     {
@@ -724,71 +592,79 @@
         "name": "system_health.memory_mobile/load:tools:weather"
     },
     {
-        "duration": "61.0",
+        "duration": "68.0",
         "name": "v8.browsing_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "155.0",
+        "duration": "143.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "93.0",
+        "duration": "88.0",
         "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "85.0",
+        "duration": "76.0",
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "129.0",
+        "duration": "112.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
-        "duration": "193.0",
+        "duration": "160.0",
         "name": "v8.browsing_mobile/browse:media:youtube"
     },
     {
-        "duration": "314.0",
-        "name": "v8.browsing_mobile/browse:news:cnn:2018"
-    },
-    {
-        "duration": "106.0",
+        "duration": "96.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "144.0",
+        "duration": "88.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
     {
-        "duration": "110.0",
+        "duration": "103.0",
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "92.0",
+        "duration": "176.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "86.0",
         "name": "v8.browsing_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "36.0",
+        "duration": "228.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "33.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "169.0",
+        "duration": "40.0",
+        "name": "v8.browsing_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "134.0",
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "71.0",
+        "duration": "62.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "135.0",
+        "duration": "122.0",
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "180.0",
+        "duration": "147.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "187.0",
+        "duration": "158.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -796,31 +672,35 @@
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "168.0",
+        "duration": "159.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "147.0",
         "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "208.0",
-        "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "248.0",
-        "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "88.0",
+        "duration": "84.0",
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
-        "duration": "126.0",
+        "duration": "138.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "108.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "172.0",
+        "duration": "142.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "85.0",
+        "duration": "76.0",
         "name": "v8.browsing_mobile/browse:tools:maps"
+    },
+    {
+        "duration": "86.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json
index 46ef0179..ca1e2fb 100644
--- a/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json
@@ -1,10 +1,10 @@
 [
     {
-        "duration": "135.0",
+        "duration": "138.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "260.0",
+        "duration": "266.0",
         "name": "speedometer2/Speedometer2"
     },
     {
@@ -12,11 +12,11 @@
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "50.0",
+        "duration": "0.0",
         "name": "system_health.common_mobile/background:news:nytimes"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
@@ -24,15 +24,7 @@
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/background:tools:gmail"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "system_health.common_mobile/browse:chrome:omnibox"
     },
     {
@@ -40,35 +32,31 @@
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "59.0",
+        "duration": "57.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "51.0",
+        "duration": "52.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "82.0",
+        "duration": "81.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "118.0",
+        "duration": "115.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "171.0",
+        "duration": "176.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "71.0",
+        "duration": "66.0",
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:news:globo"
-    },
-    {
-        "duration": "62.0",
+        "duration": "60.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
@@ -76,19 +64,23 @@
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:news:toi"
+        "duration": "112.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
     },
     {
-        "duration": "58.0",
+        "duration": "59.0",
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "24.0",
+        "duration": "140.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
     },
     {
@@ -96,23 +88,15 @@
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:shopping:flipkart"
-    },
-    {
-        "duration": "42.0",
+        "duration": "43.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "80.0",
+        "duration": "79.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "103.0",
+        "duration": "101.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
@@ -120,43 +104,55 @@
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "105.0",
+        "duration": "103.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "98.0",
+        "duration": "103.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "97.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
+        "duration": "62.0",
+        "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "61.0",
-        "name": "system_health.common_mobile/browse:social:twitter"
+        "duration": "101.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
     },
     {
         "duration": "75.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "98.0",
+        "duration": "97.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "51.0",
+        "duration": "52.0",
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
+        "duration": "60.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
+    },
+    {
         "duration": "21.0",
         "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
-        "duration": "29.0",
+        "duration": "26.0",
         "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "20.0",
+        "duration": "24.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:games:lazors"
     },
     {
@@ -164,7 +160,7 @@
         "name": "system_health.common_mobile/load:games:spychase:2018"
     },
     {
-        "duration": "27.0",
+        "duration": "30.0",
         "name": "system_health.common_mobile/load:media:dailymotion"
     },
     {
@@ -172,6 +168,10 @@
         "name": "system_health.common_mobile/load:media:facebook_photos"
     },
     {
+        "duration": "22.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
         "duration": "34.0",
         "name": "system_health.common_mobile/load:media:flickr:2018"
     },
@@ -180,19 +180,11 @@
         "name": "system_health.common_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "35.0",
-        "name": "system_health.common_mobile/load:media:imgur:2018"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/load:media:soundcloud:2018"
-    },
-    {
         "duration": "28.0",
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "49.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
@@ -200,23 +192,35 @@
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.common_mobile/load:news:nytimes"
+        "duration": "64.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
     },
     {
         "duration": "23.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
+        "duration": "31.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "25.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
-        "duration": "26.0",
+        "duration": "29.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
-        "duration": "24.0",
+        "duration": "27.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "23.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
@@ -228,7 +232,7 @@
         "name": "system_health.common_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
@@ -244,15 +248,23 @@
         "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
+        "duration": "25.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
+    },
+    {
         "duration": "23.0",
         "name": "system_health.common_mobile/load:social:twitter"
     },
     {
-        "duration": "21.0",
+        "duration": "26.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "system_health.common_mobile/load:tools:drive"
     },
     {
@@ -260,35 +272,19 @@
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/load:tools:gmail"
-    },
-    {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "32.0",
+        "duration": "34.0",
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/background:news:nytimes"
-    },
-    {
-        "duration": "31.0",
+        "duration": "33.0",
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
@@ -296,10 +292,6 @@
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/background:tools:gmail"
-    },
-    {
         "duration": "12.0",
         "name": "system_health.memory_mobile/browse:chrome:newtab"
     },
@@ -308,39 +300,31 @@
         "name": "system_health.memory_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "94.0",
+        "duration": "95.0",
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "57.0",
+        "duration": "58.0",
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "51.0",
+        "duration": "52.0",
         "name": "system_health.memory_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "78.0",
+        "duration": "80.0",
         "name": "system_health.memory_mobile/browse:media:imgur"
     },
     {
-        "duration": "94.0",
+        "duration": "93.0",
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:news:cnn:2018"
-    },
-    {
-        "duration": "65.0",
+        "duration": "60.0",
         "name": "system_health.memory_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:news:globo"
-    },
-    {
-        "duration": "59.0",
+        "duration": "60.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
     {
@@ -348,19 +332,27 @@
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
-        "duration": "166.0",
+        "duration": "102.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "175.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/browse:search:amp:2018"
+        "duration": "120.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
     },
     {
         "duration": "32.0",
+        "name": "system_health.memory_mobile/browse:search:amp:2018"
+    },
+    {
+        "duration": "33.0",
         "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
     },
     {
@@ -368,15 +360,7 @@
         "name": "system_health.memory_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:shopping:flipkart"
-    },
-    {
-        "duration": "42.0",
+        "duration": "43.0",
         "name": "system_health.memory_mobile/browse:shopping:lazada"
     },
     {
@@ -384,40 +368,40 @@
         "name": "system_health.memory_mobile/browse:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "89.0",
+        "duration": "90.0",
         "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "89.0",
+        "duration": "90.0",
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
-        "duration": "88.0",
+        "duration": "98.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "89.0",
         "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018"
+        "duration": "60.0",
+        "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.memory_mobile/browse:social:twitter"
+        "duration": "100.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
     },
     {
         "duration": "68.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018"
+        "duration": "54.0",
+        "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
-        "duration": "52.0",
-        "name": "system_health.memory_mobile/browse:tools:maps"
+        "duration": "57.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
     },
     {
         "duration": "25.0",
@@ -429,6 +413,10 @@
     },
     {
         "duration": "27.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "27.0",
         "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
@@ -440,63 +428,71 @@
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "37.0",
+        "duration": "27.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
+    },
+    {
+        "duration": "38.0",
         "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "36.0",
-        "name": "system_health.memory_mobile/load:media:imgur:2018"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/load:media:soundcloud:2018"
-    },
-    {
         "duration": "30.0",
         "name": "system_health.memory_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "50.0",
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "32.0",
+        "duration": "33.0",
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
-        "duration": "34.0",
-        "name": "system_health.memory_mobile/load:news:nytimes"
+        "duration": "60.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
     },
     {
         "duration": "27.0",
         "name": "system_health.memory_mobile/load:news:qq"
     },
     {
+        "duration": "34.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "30.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
-        "duration": "29.0",
-        "name": "system_health.memory_mobile/load:news:washingtonpost"
-    },
-    {
-        "duration": "28.0",
-        "name": "system_health.memory_mobile/load:news:wikipedia:2018"
-    },
-    {
-        "duration": "39.0",
-        "name": "system_health.memory_mobile/load:search:baidu:2018"
+        "duration": "33.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
     },
     {
         "duration": "30.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost"
+    },
+    {
+        "duration": "30.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "29.0",
+        "name": "system_health.memory_mobile/load:news:wikipedia:2018"
+    },
+    {
+        "duration": "37.0",
+        "name": "system_health.memory_mobile/load:search:baidu:2018"
+    },
+    {
+        "duration": "29.0",
         "name": "system_health.memory_mobile/load:search:ebay:2018"
     },
     {
@@ -508,50 +504,42 @@
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "system_health.memory_mobile/load:search:yandex:2018"
     },
     {
+        "duration": "29.0",
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
+    },
+    {
         "duration": "27.0",
         "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
-        "duration": "26.0",
-        "name": "system_health.memory_mobile/load:tools:docs"
+        "duration": "29.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/load:tools:drive"
+        "duration": "26.0",
+        "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
         "duration": "26.0",
         "name": "system_health.memory_mobile/load:tools:dropbox"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/load:tools:gmail"
-    },
-    {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "36.0",
+        "duration": "39.0",
         "name": "system_health.memory_mobile/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/long_running:tools:gmail-foreground"
-    },
-    {
         "duration": "24.0",
         "name": "system_health.webview_startup/load:chrome:blank"
     }
diff --git a/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json b/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json
index 125136a..c23028e 100644
--- a/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json
@@ -1,14 +1,38 @@
 [
     {
-        "duration": "48.0",
+        "duration": "37.0",
         "name": "heap_profiling.mobile.disabled/load:news:cnn:2018"
     },
     {
-        "duration": "38.0",
+        "duration": "27.0",
         "name": "heap_profiling.mobile.disabled/load:search:google:2018"
     },
     {
-        "duration": "37.0",
+        "duration": "26.0",
         "name": "heap_profiling.mobile.disabled/load:social:twitter"
+    },
+    {
+        "duration": "35.0",
+        "name": "heap_profiling.mobile.native/load:news:cnn:2018"
+    },
+    {
+        "duration": "25.0",
+        "name": "heap_profiling.mobile.native/load:search:google:2018"
+    },
+    {
+        "duration": "26.0",
+        "name": "heap_profiling.mobile.native/load:social:twitter"
+    },
+    {
+        "duration": "35.0",
+        "name": "heap_profiling.mobile.pseudo/load:news:cnn:2018"
+    },
+    {
+        "duration": "25.0",
+        "name": "heap_profiling.mobile.pseudo/load:search:google:2018"
+    },
+    {
+        "duration": "25.0",
+        "name": "heap_profiling.mobile.pseudo/load:social:twitter"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json
index 87dd6f8..2b6e3dc3 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf-fyi_timing.json
@@ -1,42 +1,34 @@
 [
     {
-        "duration": "273.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "58.0",
+        "name": "octane/Octane"
     },
     {
-        "duration": "59.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
-    },
-    {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "119.0",
+        "duration": "113.0",
         "name": "startup.mobile/cct:coldish:bbc"
     },
     {
-        "duration": "126.0",
+        "duration": "116.0",
         "name": "startup.mobile/intent:coldish:bbc"
     },
     {
-        "duration": "99.0",
+        "duration": "90.0",
         "name": "startup.mobile/intent:warm:bbc"
     },
     {
-        "duration": "90.0",
+        "duration": "87.0",
         "name": "startup.mobile/maps_pwa:with_http_cache"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/background:news:nytimes"
-    },
-    {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
@@ -44,215 +36,235 @@
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/background:tools:gmail"
-    },
-    {
-        "duration": "80.0",
-        "name": "system_health.common_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "77.0",
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "46.0",
+        "duration": "44.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "45.0",
+        "duration": "42.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "72.0",
+        "duration": "70.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "90.0",
+        "duration": "85.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "57.0",
+        "duration": "53.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "48.0",
+        "duration": "46.0",
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:news:globo"
-    },
-    {
-        "duration": "52.0",
+        "duration": "49.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
-        "duration": "50.0",
+        "duration": "48.0",
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "92.0",
+        "duration": "52.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "81.0",
         "name": "system_health.common_mobile/browse:news:toi"
     },
     {
-        "duration": "50.0",
+        "duration": "48.0",
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "27.0",
+        "duration": "60.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "58.0",
+        "duration": "55.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:shopping:flipkart"
-    },
-    {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "66.0",
+        "duration": "62.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "90.0",
+        "duration": "82.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "77.0",
+        "duration": "73.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "78.0",
+        "duration": "74.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "76.0",
+        "duration": "79.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "72.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "74.0",
+        "duration": "71.0",
         "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "50.0",
+        "duration": "49.0",
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "58.0",
+        "duration": "65.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "55.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "75.0",
+        "duration": "71.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "43.0",
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:chrome:blank"
-    },
-    {
-        "duration": "24.0",
-        "name": "system_health.common_mobile/load:games:bubbles"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:games:lazors"
-    },
-    {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:games:spychase:2018"
-    },
-    {
-        "duration": "24.0",
-        "name": "system_health.common_mobile/load:media:dailymotion"
+        "duration": "42.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
     },
     {
         "duration": "21.0",
-        "name": "system_health.common_mobile/load:media:facebook_photos"
+        "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
-        "duration": "24.0",
-        "name": "system_health.common_mobile/load:media:flickr:2018"
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:media:google_images:2018"
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
     },
     {
-        "duration": "25.0",
-        "name": "system_health.common_mobile/load:media:imgur:2018"
+        "duration": "20.0",
+        "name": "system_health.common_mobile/load:games:lazors"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:media:soundcloud:2018"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:media:youtube:2018"
-    },
-    {
-        "duration": "27.0",
-        "name": "system_health.common_mobile/load:news:cnn:2018"
+        "duration": "26.0",
+        "name": "system_health.common_mobile/load:games:spychase:2018"
     },
     {
         "duration": "23.0",
-        "name": "system_health.common_mobile/load:news:irctc"
+        "name": "system_health.common_mobile/load:media:dailymotion"
+    },
+    {
+        "duration": "20.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
+        "duration": "23.0",
+        "name": "system_health.common_mobile/load:media:flickr:2018"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:media:google_images:2018"
+    },
+    {
+        "duration": "24.0",
+        "name": "system_health.common_mobile/load:media:imgur:2018"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:media:soundcloud:2018"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
         "duration": "25.0",
-        "name": "system_health.common_mobile/load:news:nytimes"
+        "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
         "duration": "22.0",
+        "name": "system_health.common_mobile/load:news:irctc"
+    },
+    {
+        "duration": "23.0",
+        "name": "system_health.common_mobile/load:news:nytimes"
+    },
+    {
+        "duration": "28.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
         "duration": "22.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
         "duration": "22.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
         "duration": "22.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
@@ -260,51 +272,47 @@
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:social:twitter"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:tools:docs"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.common_mobile/load:tools:drive"
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
     },
     {
         "duration": "21.0",
+        "name": "system_health.common_mobile/load:social:twitter"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:tools:docs"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:tools:drive"
+    },
+    {
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/load:tools:gmail"
-    },
-    {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/long_running:tools:gmail-foreground"
-    },
-    {
         "duration": "26.0",
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
@@ -312,19 +320,11 @@
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/background:tools:gmail"
+        "duration": "76.0",
+        "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "79.0",
-        "name": "system_health.memory_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.memory_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "49.0",
+        "duration": "47.0",
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
@@ -336,10 +336,18 @@
         "name": "system_health.memory_mobile/browse:media:imgur"
     },
     {
-        "duration": "84.0",
+        "duration": "83.0",
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
+        "duration": "51.0",
+        "name": "system_health.memory_mobile/browse:news:cnn:2018"
+    },
+    {
+        "duration": "47.0",
+        "name": "system_health.memory_mobile/browse:news:cricbuzz"
+    },
+    {
         "duration": "52.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
@@ -348,11 +356,23 @@
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
-        "duration": "51.0",
+        "duration": "53.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "73.0",
+        "name": "system_health.memory_mobile/browse:news:toi"
+    },
+    {
+        "duration": "50.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "28.0",
+        "duration": "58.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "27.0",
         "name": "system_health.memory_mobile/browse:search:amp:2018"
     },
     {
@@ -360,19 +380,39 @@
         "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "73.0",
+        "duration": "54.0",
+        "name": "system_health.memory_mobile/browse:shopping:amazon"
+    },
+    {
+        "duration": "32.0",
+        "name": "system_health.memory_mobile/browse:shopping:lazada"
+    },
+    {
+        "duration": "63.0",
+        "name": "system_health.memory_mobile/browse:social:facebook"
+    },
+    {
+        "duration": "71.0",
+        "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll"
+    },
+    {
+        "duration": "72.0",
         "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "76.0",
+        "duration": "75.0",
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
+        "duration": "80.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
+    },
+    {
         "duration": "72.0",
         "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "69.0",
+        "duration": "68.0",
         "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -380,15 +420,39 @@
         "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
-        "duration": "47.0",
+        "duration": "67.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "56.0",
+        "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
+    },
+    {
+        "duration": "70.0",
+        "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018"
+    },
+    {
+        "duration": "46.0",
         "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
+        "duration": "44.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:chrome:blank"
+    },
+    {
         "duration": "24.0",
         "name": "system_health.memory_mobile/load:games:bubbles"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
@@ -396,14 +460,18 @@
         "name": "system_health.memory_mobile/load:games:spychase:2018"
     },
     {
-        "duration": "29.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
+    },
+    {
         "duration": "27.0",
         "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
@@ -412,7 +480,7 @@
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:media:imgur:2018"
     },
     {
@@ -428,27 +496,43 @@
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:nytimes"
     },
     {
-        "duration": "26.0",
+        "duration": "30.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:qq"
     },
     {
         "duration": "26.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
         "duration": "26.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
         "duration": "25.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:wikipedia:2018"
     },
     {
@@ -468,7 +552,7 @@
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
@@ -477,98 +561,86 @@
     },
     {
         "duration": "25.0",
-        "name": "system_health.memory_mobile/load:social:twitter"
-    },
-    {
-        "duration": "26.0",
-        "name": "system_health.memory_mobile/load:tools:docs"
-    },
-    {
-        "duration": "26.0",
-        "name": "system_health.memory_mobile/load:tools:drive"
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
     },
     {
         "duration": "25.0",
-        "name": "system_health.memory_mobile/load:tools:dropbox"
+        "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/load:tools:gmail"
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:tools:docs"
+    },
+    {
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:tools:drive"
+    },
+    {
+        "duration": "24.0",
+        "name": "system_health.memory_mobile/load:tools:dropbox"
     },
     {
         "duration": "25.0",
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "94.0",
-        "name": "v8.browsing_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "31.0",
-        "name": "v8.browsing_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "83.0",
+        "duration": "81.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "52.0",
+        "duration": "49.0",
         "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "50.0",
+        "duration": "47.0",
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "78.0",
+        "duration": "76.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
-        "duration": "97.0",
+        "duration": "93.0",
         "name": "v8.browsing_mobile/browse:media:youtube"
     },
     {
-        "duration": "71.0",
+        "duration": "62.0",
         "name": "v8.browsing_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "52.0",
+        "duration": "49.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:news:globo"
-    },
-    {
-        "duration": "59.0",
+        "duration": "57.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
     {
-        "duration": "55.0",
+        "duration": "52.0",
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:news:toi"
+        "duration": "58.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
     },
     {
-        "duration": "56.0",
+        "duration": "53.0",
         "name": "v8.browsing_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "30.0",
+        "duration": "71.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "28.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
     {
@@ -576,59 +648,63 @@
         "name": "v8.browsing_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "65.0",
+        "duration": "60.0",
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:shopping:flipkart"
-    },
-    {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "75.0",
+        "duration": "71.0",
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "114.0",
+        "duration": "96.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "96.0",
+        "duration": "86.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "89.0",
+        "duration": "85.0",
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "87.0",
-        "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
+        "duration": "89.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
     },
     {
         "duration": "83.0",
+        "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
+    },
+    {
+        "duration": "78.0",
         "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "55.0",
+        "duration": "53.0",
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
         "duration": "72.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "63.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "94.0",
+        "duration": "82.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "50.0",
+        "duration": "48.0",
         "name": "v8.browsing_mobile/browse:tools:maps"
+    },
+    {
+        "duration": "46.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
index d5f36cf..66c4d70 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
@@ -1,6 +1,6 @@
 [
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
@@ -8,7 +8,7 @@
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
@@ -16,7 +16,7 @@
         "name": "blink_perf.bindings/create-element.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/document-implementation.html"
     },
     {
@@ -32,7 +32,7 @@
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
@@ -40,19 +40,19 @@
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/get-element-by-id.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
@@ -60,7 +60,7 @@
         "name": "blink_perf.bindings/id-getter.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/id-setter.html"
     },
     {
@@ -76,7 +76,7 @@
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
@@ -88,7 +88,7 @@
         "name": "blink_perf.bindings/post-message.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
@@ -104,7 +104,7 @@
         "name": "blink_perf.bindings/serialize-long-string.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
@@ -116,7 +116,7 @@
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
@@ -128,14 +128,6 @@
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.bindings/structured-clone-long-string-serialize.html"
-    },
-    {
         "duration": "15.0",
         "name": "blink_perf.bindings/typed-array-construct-from-array.html"
     },
@@ -144,15 +136,15 @@
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/undefined-first-child.html"
     },
     {
@@ -168,11 +160,11 @@
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
@@ -188,23 +180,23 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "68.0",
+        "duration": "73.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "68.0",
+        "duration": "73.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "68.0",
+        "duration": "76.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.bindings/worker-transferable-from-worker.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/worker-transferable-roundtrip.html"
     },
     {
@@ -212,7 +204,7 @@
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
@@ -240,11 +232,11 @@
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
@@ -252,19 +244,15 @@
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
-    },
-    {
         "duration": "10.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
     },
     {
@@ -272,7 +260,7 @@
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "14.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -280,19 +268,15 @@
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
-    },
-    {
         "duration": "11.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
@@ -300,19 +284,19 @@
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "15.0",
+        "duration": "18.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/getImageData.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/getImageDataColorManaged.html"
     },
     {
@@ -320,11 +304,11 @@
         "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/getImageData_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/gpu-bound-shader.html"
     },
     {
@@ -332,11 +316,11 @@
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "250.0",
         "name": "blink_perf.canvas/putImageData.html"
     },
     {
-        "duration": "15.0",
+        "duration": "246.0",
         "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
     },
     {
@@ -352,7 +336,7 @@
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
@@ -360,15 +344,15 @@
         "name": "blink_perf.canvas/toBlob_duration_jpeg.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "23.0",
         "name": "blink_perf.canvas/transferFromImageBitmap.html"
     },
     {
-        "duration": "25.0",
+        "duration": "29.0",
         "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
     },
     {
@@ -380,7 +364,7 @@
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.canvas/upload-video-to-sub-texture.html"
     },
     {
@@ -388,11 +372,11 @@
         "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/upload-video-to-texture.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
     },
     {
@@ -400,11 +384,11 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
@@ -420,11 +404,11 @@
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
@@ -444,19 +428,19 @@
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
@@ -464,7 +448,7 @@
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
@@ -472,11 +456,11 @@
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
@@ -484,7 +468,7 @@
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
@@ -492,35 +476,7 @@
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
@@ -528,27 +484,19 @@
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "41.0",
+        "duration": "43.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "32.0",
+        "duration": "34.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "26.0",
+        "duration": "21.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
@@ -556,19 +504,19 @@
         "name": "blink_perf.dom/modify-element-classname.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.dom/modify-element-id.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.dom/modify-element-title.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.dom/select-multiple-add.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
@@ -576,7 +524,7 @@
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
@@ -588,11 +536,11 @@
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
@@ -600,19 +548,19 @@
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
-        "duration": "16.0",
+        "duration": "21.0",
         "name": "blink_perf.events/is-input-pending-all-events.html"
     },
     {
-        "duration": "16.0",
+        "duration": "20.0",
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "48.0",
+        "duration": "53.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
@@ -636,31 +584,31 @@
         "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "59.0",
+        "duration": "58.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/Shapes/MultipleShapes.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
@@ -668,11 +616,11 @@
         "name": "blink_perf.layout/animate-abspos-deep.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/attach-inlines-2.html"
     },
     {
-        "duration": "13.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/attach-inlines.html"
     },
     {
@@ -692,7 +640,7 @@
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
-        "duration": "17.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
@@ -700,7 +648,7 @@
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
@@ -712,7 +660,27 @@
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
-        "duration": "19.0",
+        "duration": "14.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "14.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "14.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "14.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "20.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
@@ -720,7 +688,7 @@
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
@@ -740,15 +708,15 @@
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/flexbox-lots-of-data.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/flexbox-row-nowrap.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html"
     },
     {
@@ -760,11 +728,11 @@
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "49.0",
+        "duration": "52.0",
         "name": "blink_perf.layout/flexbox_with_list_item.html"
     },
     {
-        "duration": "22.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
@@ -772,7 +740,7 @@
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
@@ -792,19 +760,19 @@
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
@@ -828,7 +796,7 @@
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
@@ -844,19 +812,11 @@
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.layout/line-layout-fit-content.html"
-    },
-    {
         "duration": "21.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
-        "duration": "17.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/line-layout-repeat-append-select.html"
     },
     {
@@ -876,11 +836,11 @@
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/many-block-children-auto-inline-size.html"
     },
     {
@@ -888,6 +848,10 @@
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
+        "duration": "14.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
         "duration": "15.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
@@ -896,15 +860,23 @@
         "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html"
     },
     {
+        "duration": "15.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
         "duration": "14.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
@@ -916,7 +888,7 @@
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
@@ -932,7 +904,7 @@
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "85.0",
+        "duration": "86.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
@@ -956,11 +928,11 @@
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
@@ -976,23 +948,19 @@
         "name": "blink_perf.paint/appending-text.html"
     },
     {
-        "duration": "25.0",
-        "name": "blink_perf.paint/color-changes.html"
-    },
-    {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "51.0",
+        "duration": "54.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "blink_perf.paint/containment-resize.html"
     },
     {
@@ -1000,15 +968,15 @@
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
@@ -1020,15 +988,15 @@
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
@@ -1036,31 +1004,27 @@
         "name": "blink_perf.paint/paint-offset-changes.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.paint/select-all-words.html"
-    },
-    {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "26.0",
+        "duration": "46.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "100.0",
+        "duration": "122.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
@@ -1076,19 +1040,15 @@
         "name": "blink_perf.parser/query-selector-all-attribute-complex.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-all-attribute.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.parser/query-selector-all-class-deep.html"
-    },
-    {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/query-selector-all-class-last.html"
     },
     {
@@ -1096,18 +1056,10 @@
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.parser/query-selector-all-deep.html"
-    },
-    {
         "duration": "15.0",
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.parser/query-selector-all-id-deep.html"
-    },
-    {
         "duration": "15.0",
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
@@ -1124,15 +1076,15 @@
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
@@ -1140,7 +1092,7 @@
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/simple-url.html"
     },
     {
@@ -1148,7 +1100,7 @@
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
@@ -1156,7 +1108,7 @@
         "name": "blink_perf.parser/url-parser.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
@@ -1176,19 +1128,19 @@
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html"
     },
     {
@@ -1196,11 +1148,11 @@
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
@@ -1208,15 +1160,15 @@
         "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/shadow-style-share.html"
     },
     {
@@ -1224,7 +1176,7 @@
         "name": "blink_perf.shadow_dom/style-sheet-insert.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
@@ -1252,11 +1204,11 @@
         "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html"
     },
     {
@@ -1272,11 +1224,11 @@
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "27.0",
+        "duration": "22.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
@@ -1292,7 +1244,7 @@
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
     },
     {
@@ -1304,11 +1256,11 @@
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
@@ -1352,19 +1304,15 @@
         "name": "blink_perf.svg/Cactus.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.svg/Cowboy_transform.html"
-    },
-    {
         "duration": "9.0",
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
     {
-        "duration": "9.0",
+        "duration": "13.0",
         "name": "blink_perf.svg/Debian.html"
     },
     {
@@ -1384,7 +1332,7 @@
         "name": "blink_perf.svg/France.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html"
     },
     {
@@ -1392,15 +1340,15 @@
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
@@ -1408,15 +1356,15 @@
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "64.0",
+        "duration": "269.0",
         "name": "blink_perf.svg/SierpinskiCarpet.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
@@ -1432,7 +1380,7 @@
         "name": "blink_perf.svg/WorldIso.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
@@ -1460,11 +1408,11 @@
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "284.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "502.0",
+        "name": "jetstream2/JetStream2"
     },
     {
-        "duration": "59.0",
+        "duration": "58.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
@@ -1472,11 +1420,11 @@
         "name": "loading.mobile/58Pic"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.mobile/58Pic_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.mobile/Amazon"
     },
     {
@@ -1484,7 +1432,7 @@
         "name": "loading.mobile/Amazon_3g"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "loading.mobile/BOLNoticias"
     },
     {
@@ -1504,26 +1452,14 @@
         "name": "loading.mobile/Bradesco"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Bradesco_3g"
-    },
-    {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.mobile/Dailymotion"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Dailymotion_3g"
-    },
-    {
         "duration": "16.0",
         "name": "loading.mobile/Dawn"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Dawn_3g"
-    },
-    {
         "duration": "14.0",
         "name": "loading.mobile/DevOpera_cold"
     },
@@ -1532,7 +1468,7 @@
         "name": "loading.mobile/DevOpera_cold_3g"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "loading.mobile/DevOpera_hot"
     },
     {
@@ -1544,11 +1480,11 @@
         "name": "loading.mobile/DevOpera_warm"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "loading.mobile/DevOpera_warm_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.mobile/Dramaq"
     },
     {
@@ -1556,7 +1492,7 @@
         "name": "loading.mobile/Dramaq_3g"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.mobile/EnquiryIndianRail"
     },
     {
@@ -1564,14 +1500,10 @@
         "name": "loading.mobile/EnquiryIndianRail_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.mobile/Facebook"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Facebook_3g"
-    },
-    {
         "duration": "15.0",
         "name": "loading.mobile/FlipBoard_cold"
     },
@@ -1580,7 +1512,7 @@
         "name": "loading.mobile/FlipBoard_cold_3g"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "loading.mobile/FlipBoard_hot"
     },
     {
@@ -1596,14 +1528,10 @@
         "name": "loading.mobile/FlipBoard_warm_3g"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "loading.mobile/FlipKart_cold"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/FlipKart_cold_3g"
-    },
-    {
         "duration": "19.0",
         "name": "loading.mobile/FlipKart_hot"
     },
@@ -1612,14 +1540,10 @@
         "name": "loading.mobile/FlipKart_hot_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.mobile/FlipKart_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/FlipKart_warm_3g"
-    },
-    {
         "duration": "14.0",
         "name": "loading.mobile/FranceTVInfo"
     },
@@ -1628,23 +1552,11 @@
         "name": "loading.mobile/FranceTVInfo_3g"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/G1"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.mobile/G1_3g"
-    },
-    {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "loading.mobile/GSShop"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/GSShop_3g"
-    },
-    {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "loading.mobile/GoogleBrazil"
     },
     {
@@ -1652,14 +1564,10 @@
         "name": "loading.mobile/GoogleBrazil_3g"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.mobile/GoogleIndia"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/GoogleIndia_3g"
-    },
-    {
         "duration": "14.0",
         "name": "loading.mobile/GoogleIndonesia"
     },
@@ -1668,11 +1576,11 @@
         "name": "loading.mobile/GoogleIndonesia_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.mobile/GoogleRedirectToGoogleJapan"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "loading.mobile/GoogleRedirectToGoogleJapan_3g"
     },
     {
@@ -1680,7 +1588,7 @@
         "name": "loading.mobile/Hongkiat"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "loading.mobile/Hongkiat_3g"
     },
     {
@@ -1688,26 +1596,14 @@
         "name": "loading.mobile/KapanLagi"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/KapanLagi_3g"
-    },
-    {
         "duration": "18.0",
         "name": "loading.mobile/Kaskus"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Kaskus_3g"
-    },
-    {
         "duration": "16.0",
         "name": "loading.mobile/LocalMoxie"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/LocalMoxie_3g"
-    },
-    {
         "duration": "14.0",
         "name": "loading.mobile/Locanto"
     },
@@ -1720,7 +1616,7 @@
         "name": "loading.mobile/OLX"
     },
     {
-        "duration": "28.0",
+        "duration": "24.0",
         "name": "loading.mobile/OLX_3g"
     },
     {
@@ -1732,7 +1628,7 @@
         "name": "loading.mobile/QQNews_3g"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.mobile/SlideShare"
     },
     {
@@ -1760,39 +1656,27 @@
         "name": "loading.mobile/Suumo_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "loading.mobile/Suumo_warm_3g"
     },
     {
-        "duration": "14.0",
+        "duration": "17.0",
         "name": "loading.mobile/Thairath"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Thairath_3g"
-    },
-    {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.mobile/TheStar"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/TheStar_3g"
-    },
-    {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "loading.mobile/TribunNews"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/TribunNews_3g"
-    },
-    {
         "duration": "13.0",
         "name": "loading.mobile/Twitter"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "loading.mobile/Twitter_3g"
     },
     {
@@ -1804,47 +1688,23 @@
         "name": "loading.mobile/VoiceMemos_cold_3g"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/VoiceMemos_hot"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.mobile/VoiceMemos_hot_3g"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.mobile/VoiceMemos_warm"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.mobile/VoiceMemos_warm_3g"
-    },
-    {
         "duration": "13.0",
         "name": "loading.mobile/Wikipedia"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "loading.mobile/Wikipedia_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.mobile/YahooNews"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/YahooNews_3g"
-    },
-    {
         "duration": "14.0",
         "name": "loading.mobile/Youtube"
     },
     {
-        "duration": "0.0",
-        "name": "loading.mobile/Youtube_3g"
-    },
-    {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "media.mobile/mse.html?media=aac_audio.mp4"
     },
     {
@@ -1852,11 +1712,11 @@
         "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "media.mobile/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "16.0",
+        "duration": "19.0",
         "name": "media.mobile/mse.html?media=tulip2.vp9.webm"
     },
     {
@@ -1868,15 +1728,15 @@
         "name": "media.mobile/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "media.mobile/video.html?src=tulip2.mp4"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "media.mobile/video.html?src=tulip2.mp4&busyjs"
     },
     {
@@ -1884,11 +1744,11 @@
         "name": "media.mobile/video.html?src=tulip2.ogg&type=audio"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "media.mobile/video.html?src=tulip2.vp9.webm"
     },
     {
@@ -1896,15 +1756,15 @@
         "name": "media.mobile/video.html?src=tulip2.vp9.webm&background"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
-        "duration": "61.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "duration": "60.0",
+        "name": "octane/Octane"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
@@ -1912,11 +1772,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html"
     },
     {
@@ -1924,11 +1784,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
@@ -1936,7 +1796,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
@@ -1948,11 +1808,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
@@ -1964,42 +1824,34 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "0.0",
-        "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html"
-    },
-    {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "66.0",
+        "duration": "67.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html"
     },
     {
-        "duration": "0.0",
-        "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html"
-    },
-    {
         "duration": "86.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
@@ -2008,11 +1860,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "rendering.mobile/accu_weather_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/accu_weather_mobile_pinch_2018"
     },
     {
@@ -2024,19 +1876,19 @@
         "name": "rendering.mobile/amazon_mobile_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/analog_clock_svg"
     },
     {
-        "duration": "26.0",
+        "duration": "31.0",
         "name": "rendering.mobile/androidpolice_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rendering.mobile/animometer_webgl"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/animometer_webgl_attrib_arrays"
     },
     {
@@ -2044,23 +1896,19 @@
         "name": "rendering.mobile/animometer_webgl_multi_draw"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/aquarium"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/aquarium_20k"
-    },
-    {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/background_color_animation"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/background_color_animation_with_gradient"
     },
     {
-        "duration": "24.0",
+        "duration": "17.0",
         "name": "rendering.mobile/baidu_mobile_2018"
     },
     {
@@ -2068,23 +1916,19 @@
         "name": "rendering.mobile/balls_css_key_frame_animations"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform"
-    },
-    {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/balls_css_transition_2_properties"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/balls_css_transition_40_properties"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/balls_css_transition_all_properties"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/balls_javascript_canvas"
     },
     {
@@ -2092,23 +1936,19 @@
         "name": "rendering.mobile/balls_javascript_css"
     },
     {
-        "duration": "25.0",
-        "name": "rendering.mobile/balls_svg_animations"
-    },
-    {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/basic_stream"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/bing_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "rendering.mobile/blob"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "rendering.mobile/blogspot_2018"
     },
     {
@@ -2116,11 +1956,11 @@
         "name": "rendering.mobile/blogspot_mobile_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/blur_rotating_background"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/boingboing_mobile_2018"
     },
     {
@@ -2140,15 +1980,15 @@
         "name": "rendering.mobile/bouncing_balls_shadow"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/bouncing_clipped_rectangles"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/bouncing_gradient_circles"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/bouncing_png_images"
     },
     {
@@ -2160,11 +2000,11 @@
         "name": "rendering.mobile/camera_to_webgl"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/canvas_05000_pixels_per_second"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/canvas_10000_pixels_per_second"
     },
     {
@@ -2172,11 +2012,11 @@
         "name": "rendering.mobile/canvas_20000_pixels_per_second"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/canvas_40000_pixels_per_second"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/canvas_60000_pixels_per_second"
     },
     {
@@ -2184,7 +2024,7 @@
         "name": "rendering.mobile/canvas_75000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/canvas_90000_pixels_per_second"
     },
     {
@@ -2192,11 +2032,11 @@
         "name": "rendering.mobile/canvas_animation_no_clear"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "rendering.mobile/canvas_arcs"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/canvas_font_cycler"
     },
     {
@@ -2208,7 +2048,7 @@
         "name": "rendering.mobile/canvas_to_blob"
     },
     {
-        "duration": "24.0",
+        "duration": "30.0",
         "name": "rendering.mobile/capitolvolkswagen_mobile_2018"
     },
     {
@@ -2220,7 +2060,7 @@
         "name": "rendering.mobile/card_expansion_animated"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/card_expansion_images_text"
     },
     {
@@ -2228,7 +2068,7 @@
         "name": "rendering.mobile/card_flying"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/cats_unscaled"
     },
     {
@@ -2236,7 +2076,7 @@
         "name": "rendering.mobile/cats_viewport_width"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/cc_poster_circle"
     },
     {
@@ -2244,15 +2084,15 @@
         "name": "rendering.mobile/cc_scroll_text_only"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/chip_tune"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/cnn_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/cnn_article_mobile_2018"
     },
     {
@@ -2260,7 +2100,7 @@
         "name": "rendering.mobile/cnn_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "26.0",
         "name": "rendering.mobile/cnn_mobile_pinch_2018"
     },
     {
@@ -2272,15 +2112,11 @@
         "name": "rendering.mobile/compositor_heavy_animation"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/core_scroll_header_panel"
-    },
-    {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/crafty_mind"
     },
     {
@@ -2296,7 +2132,7 @@
         "name": "rendering.mobile/css_animations_simultaneous_new_element"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_simultaneous_style_element"
     },
     {
@@ -2304,19 +2140,19 @@
         "name": "rendering.mobile/css_animations_simultaneous_updating_class"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_animations_staggered_inline_style"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/css_animations_staggered_new_element"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_animations_staggered_style_element"
     },
     {
@@ -2324,7 +2160,7 @@
         "name": "rendering.mobile/css_animations_staggered_updating_class"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_animations_triggered_inline_style"
     },
     {
@@ -2340,15 +2176,15 @@
         "name": "rendering.mobile/css_animations_triggered_updating_class"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_0"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_75"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_99"
     },
     {
@@ -2368,31 +2204,31 @@
         "name": "rendering.mobile/css_transitions_staggered_new_element"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_transitions_staggered_style_element"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_transitions_staggered_updating_class"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_transitions_style_element"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_transitions_triggered_inline_style"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_transitions_triggered_new_element"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_transitions_triggered_style_element"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "rendering.mobile/css_transitions_triggered_updating_class"
     },
     {
@@ -2416,7 +2252,7 @@
         "name": "rendering.mobile/css_value_type_length_complex"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_value_type_length_simple"
     },
     {
@@ -2428,27 +2264,27 @@
         "name": "rendering.mobile/css_value_type_shadow"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_value_type_transform_complex"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_value_type_transform_simple"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/deviantart_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/digg_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/dynamic_cube_map"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/earth"
     },
     {
@@ -2460,19 +2296,19 @@
         "name": "rendering.mobile/ebay_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "rendering.mobile/ebay_mobile_pinch_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/ebay_scroll_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/effect_games"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/espn_2018"
     },
     {
@@ -2480,11 +2316,11 @@
         "name": "rendering.mobile/espn_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/espn_pathological_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/extra_large_texture_uploads"
     },
     {
@@ -2492,39 +2328,35 @@
         "name": "rendering.mobile/facebook_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/facebook_mobile_2018"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/famo_us_twitter_demo"
-    },
-    {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/fill_shapes"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "rendering.mobile/filter_terrain_svg"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/flickr_scroll_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/font_wipe"
     },
     {
-        "duration": "24.0",
+        "duration": "16.0",
         "name": "rendering.mobile/forecast.io_mobile_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "16.0",
         "name": "rendering.mobile/geo_apis"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "rendering.mobile/gmail_2018"
     },
     {
@@ -2536,23 +2368,23 @@
         "name": "rendering.mobile/google_docs_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/google_image_search_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "rendering.mobile/google_image_search_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/google_news_ios"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "rendering.mobile/google_news_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/google_plus_2018"
     },
     {
@@ -2560,19 +2392,19 @@
         "name": "rendering.mobile/google_plus_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "rendering.mobile/google_search_mobile_pinch_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "22.0",
         "name": "rendering.mobile/google_web_search_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/google_web_search_mobile_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "rendering.mobile/gsp.ro_mobile_2018"
     },
     {
@@ -2588,11 +2420,11 @@
         "name": "rendering.mobile/gws_boogie_expansion"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/gws_google_expansion"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "rendering.mobile/hakim"
     },
     {
@@ -2612,15 +2444,15 @@
         "name": "rendering.mobile/idle_power_css_animation"
     },
     {
-        "duration": "40.0",
+        "duration": "38.0",
         "name": "rendering.mobile/idle_power_request_animation_frame"
     },
     {
-        "duration": "110.0",
+        "duration": "111.0",
         "name": "rendering.mobile/idle_power_set_timeout_long"
     },
     {
-        "duration": "39.0",
+        "duration": "38.0",
         "name": "rendering.mobile/idle_power_set_timetout"
     },
     {
@@ -2644,19 +2476,19 @@
         "name": "rendering.mobile/infinite_scroll_element_n_layers_99"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_0"
     },
     {
@@ -2664,11 +2496,11 @@
         "name": "rendering.mobile/infinite_scroll_root_n_layers_75"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_99"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scrolling"
     },
     {
@@ -2676,7 +2508,7 @@
         "name": "rendering.mobile/jarro_doverson"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization"
     },
     {
@@ -2684,7 +2516,7 @@
         "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/js_full_screen_invalidation"
     },
     {
@@ -2692,11 +2524,11 @@
         "name": "rendering.mobile/js_opacity_plus_n_layers_0"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_75"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_99"
     },
     {
@@ -2712,7 +2544,7 @@
         "name": "rendering.mobile/js_paint_plus_n_layers_99"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/js_poster_circle"
     },
     {
@@ -2728,7 +2560,7 @@
         "name": "rendering.mobile/keyframed_animations"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/large_texture_uploads"
     },
     {
@@ -2736,15 +2568,15 @@
         "name": "rendering.mobile/latimes_pathological_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/linkedin_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "rendering.mobile/linkedin_mobile_2018"
     },
     {
-        "duration": "35.0",
+        "duration": "36.0",
         "name": "rendering.mobile/linkedin_mobile_pinch_2018"
     },
     {
@@ -2764,7 +2596,7 @@
         "name": "rendering.mobile/main_0fps_impl_60fps"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/main_30fps_impl_60fps"
     },
     {
@@ -2776,7 +2608,7 @@
         "name": "rendering.mobile/man_in_blue"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/many_images"
     },
     {
@@ -2784,11 +2616,11 @@
         "name": "rendering.mobile/many_planets_deep"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/maps_perf_test"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/mask_transition_animation"
     },
     {
@@ -2800,27 +2632,23 @@
         "name": "rendering.mobile/medium_texture_uploads"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/megi_dish"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/microsoft_asteroid_belt"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/microsoft_fireflies"
-    },
-    {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/microsoft_fish_ie_tank"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/microsoft_performance"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/microsoft_snow"
     },
     {
@@ -2836,7 +2664,7 @@
         "name": "rendering.mobile/microsoft_video_city"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/microsoft_worker_fountains"
     },
     {
@@ -2844,7 +2672,7 @@
         "name": "rendering.mobile/mix_10k"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/mix_blend_mode_animation_difference"
     },
     {
@@ -2860,15 +2688,15 @@
         "name": "rendering.mobile/mix_blend_mode_animation_screen"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "rendering.mobile/mlb_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/mobile_news_sandbox"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/motion_mark_canvas_fill_shapes"
     },
     {
@@ -2876,7 +2704,7 @@
         "name": "rendering.mobile/motion_mark_canvas_stroke_shapes"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_anim_design_15"
     },
     {
@@ -2904,19 +2732,19 @@
         "name": "rendering.mobile/motionmark_html_composited_transforms_125"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15"
     },
     {
@@ -2932,7 +2760,7 @@
         "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25"
     },
     {
@@ -2944,15 +2772,15 @@
         "name": "rendering.mobile/motionmark_html_leaves_20_50"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_circles_250"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200"
     },
     {
@@ -2968,7 +2796,7 @@
         "name": "rendering.mobile/new_tilings"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "rendering.mobile/no_op_raf"
     },
     {
@@ -2976,11 +2804,11 @@
         "name": "rendering.mobile/no_op_scroll"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/no_op_settimeout"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/no_op_touch_handler"
     },
     {
@@ -2988,7 +2816,7 @@
         "name": "rendering.mobile/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "rendering.mobile/nyc_gov_scroll_2018"
     },
     {
@@ -2996,50 +2824,14 @@
         "name": "rendering.mobile/nytimes_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/nytimes_scroll_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_button"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_calculator"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_calculator_hit_test"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_checkbox"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_fab"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_icon_button"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_shadow"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_tabs"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.mobile/paper_toggle_button"
-    },
-    {
         "duration": "19.0",
         "name": "rendering.mobile/parallax_effect"
     },
@@ -3048,7 +2840,7 @@
         "name": "rendering.mobile/particles"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/pbs_pathological_2018"
     },
     {
@@ -3060,15 +2852,11 @@
         "name": "rendering.mobile/pinterest_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/polymer_topeka"
-    },
-    {
-        "duration": "39.0",
+        "duration": "19.0",
         "name": "rendering.mobile/put_get_image_data"
     },
     {
@@ -3084,15 +2872,15 @@
         "name": "rendering.mobile/raf_canvas"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/raf_touch_animation"
     },
     {
-        "duration": "23.0",
+        "duration": "25.0",
         "name": "rendering.mobile/recode_pathological_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "29.0",
         "name": "rendering.mobile/reddit_mobile_2018"
     },
     {
@@ -3100,7 +2888,7 @@
         "name": "rendering.mobile/runway"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "rendering.mobile/san_angeles"
     },
     {
@@ -3108,7 +2896,7 @@
         "name": "rendering.mobile/second_batch_js_heavy"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.mobile/second_batch_js_light"
     },
     {
@@ -3120,7 +2908,7 @@
         "name": "rendering.mobile/sfgate_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/silk_finance"
     },
     {
@@ -3132,7 +2920,7 @@
         "name": "rendering.mobile/simple_touch_drag"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
@@ -3144,19 +2932,19 @@
         "name": "rendering.mobile/small_texture_uploads"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/smash_cat"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/spielzeugz"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "26.0",
+        "duration": "21.0",
         "name": "rendering.mobile/stress_hidey_bars"
     },
     {
@@ -3164,11 +2952,11 @@
         "name": "rendering.mobile/stroke_shapes"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/swipe_action"
     },
     {
@@ -3180,11 +2968,11 @@
         "name": "rendering.mobile/sync_scroll_offset"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/techcrunch_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/techcrunch_mobile_2018"
     },
     {
@@ -3196,15 +2984,15 @@
         "name": "rendering.mobile/text_10000_pixels_per_second"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/text_20000_pixels_per_second"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/text_40000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/text_60000_pixels_per_second"
     },
     {
@@ -3220,7 +3008,7 @@
         "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -3228,23 +3016,23 @@
         "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/text_hover_05000_pixels_per_second"
     },
     {
@@ -3256,15 +3044,15 @@
         "name": "rendering.mobile/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/text_hover_40000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_hover_60000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_hover_75000_pixels_per_second"
     },
     {
@@ -3276,7 +3064,7 @@
         "name": "rendering.mobile/theverge_article_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/theverge_mobile_2018"
     },
     {
@@ -3288,19 +3076,19 @@
         "name": "rendering.mobile/touch_handler_scrolling"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/transform_transitions"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/transform_transitions_js_block"
     },
     {
-        "duration": "23.0",
+        "duration": "19.0",
         "name": "rendering.mobile/twitch_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "23.0",
         "name": "rendering.mobile/twitch_mobile_pinch_2018"
     },
     {
@@ -3308,7 +3096,7 @@
         "name": "rendering.mobile/twitter_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "15.0",
         "name": "rendering.mobile/twitter_mobile_2018"
     },
     {
@@ -3316,11 +3104,11 @@
         "name": "rendering.mobile/update_history_state"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/usatoday_mobile_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/vertical_expansion"
     },
     {
@@ -3328,7 +3116,7 @@
         "name": "rendering.mobile/web_animation_value_type_color"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/web_animation_value_type_length_3d"
     },
     {
@@ -3336,19 +3124,19 @@
         "name": "rendering.mobile/web_animation_value_type_length_complex"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/web_animation_value_type_length_simple"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "rendering.mobile/web_animation_value_type_path"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/web_animation_value_type_shadow"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/web_animation_value_type_transform_complex"
     },
     {
@@ -3384,15 +3172,15 @@
         "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization"
     },
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "rendering.mobile/wikipedia_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "29.0",
         "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018"
     },
     {
@@ -3400,63 +3188,59 @@
         "name": "rendering.mobile/wikipedia_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/wordpress_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "22.0",
         "name": "rendering.mobile/wordpress_mobile_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "22.0",
         "name": "rendering.mobile/worldjournal_mobile_2018"
     },
     {
-        "duration": "39.0",
+        "duration": "27.0",
         "name": "rendering.mobile/wow_wiki_pathological_2018"
     },
     {
-        "duration": "48.0",
+        "duration": "35.0",
         "name": "rendering.mobile/wowwiki_mobile_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/wsj_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/yahoo_answers_2018"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.mobile/yahoo_answers_mobile_2018"
-    },
-    {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/yahoo_news_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "rendering.mobile/yahoo_news_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/yahoo_sports_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "rendering.mobile/yahoo_sports_pathological_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/youtube_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "rendering.mobile/youtube_mobile_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "rendering.mobile/zdnet_pathological_2018"
     },
     {
@@ -3464,35 +3248,35 @@
         "name": "rendering.mobile/zoom_in_animation"
     },
     {
-        "duration": "35.0",
+        "duration": "33.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "53.0",
+        "duration": "55.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "53.0",
+        "duration": "55.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "113.0",
+        "duration": "115.0",
         "name": "startup.mobile/cct:coldish:bbc"
     },
     {
-        "duration": "113.0",
+        "duration": "115.0",
         "name": "startup.mobile/intent:coldish:bbc"
     },
     {
-        "duration": "89.0",
+        "duration": "90.0",
         "name": "startup.mobile/intent:warm:bbc"
     },
     {
-        "duration": "83.0",
+        "duration": "85.0",
         "name": "startup.mobile/maps_pwa:with_http_cache"
     },
     {
@@ -3500,35 +3284,19 @@
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/background:news:nytimes"
-    },
-    {
         "duration": "23.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/background:tools:gmail"
-    },
-    {
-        "duration": "79.0",
-        "name": "system_health.common_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "76.0",
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "45.0",
+        "duration": "44.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3540,7 +3308,7 @@
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "87.0",
+        "duration": "86.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
@@ -3552,19 +3320,19 @@
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:news:globo"
-    },
-    {
         "duration": "50.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
-        "duration": "49.0",
+        "duration": "48.0",
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "86.0",
+        "duration": "52.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "83.0",
         "name": "system_health.common_mobile/browse:news:toi"
     },
     {
@@ -3572,6 +3340,10 @@
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
+        "duration": "61.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
         "duration": "25.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
@@ -3580,43 +3352,39 @@
         "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "56.0",
+        "duration": "55.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/browse:shopping:flipkart"
-    },
-    {
         "duration": "30.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "62.0",
+        "duration": "63.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "89.0",
+        "duration": "86.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "74.0",
+        "duration": "73.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "76.0",
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "73.0",
-        "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
+        "duration": "79.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
     },
     {
         "duration": "72.0",
+        "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
+    },
+    {
+        "duration": "74.0",
         "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -3624,11 +3392,15 @@
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
+        "duration": "71.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
         "duration": "56.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "72.0",
+        "duration": "70.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
@@ -3636,7 +3408,11 @@
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "20.0",
+        "duration": "42.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
@@ -3644,6 +3420,10 @@
         "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
+    },
+    {
         "duration": "20.0",
         "name": "system_health.common_mobile/load:games:lazors"
     },
@@ -3656,10 +3436,14 @@
         "name": "system_health.common_mobile/load:media:dailymotion"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:media:facebook_photos"
     },
     {
+        "duration": "20.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
         "duration": "23.0",
         "name": "system_health.common_mobile/load:media:flickr:2018"
     },
@@ -3668,11 +3452,11 @@
         "name": "system_health.common_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:media:soundcloud:2018"
     },
     {
@@ -3680,31 +3464,43 @@
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "26.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:news:nytimes"
+        "duration": "27.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
     },
     {
         "duration": "21.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
+        "duration": "22.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "21.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
         "duration": "21.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
@@ -3724,7 +3520,7 @@
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
@@ -3733,10 +3529,18 @@
     },
     {
         "duration": "21.0",
-        "name": "system_health.common_mobile/load:social:twitter"
+        "name": "system_health.common_mobile/load:social:instagram:2019"
     },
     {
         "duration": "20.0",
+        "name": "system_health.common_mobile/load:social:twitter"
+    },
+    {
+        "duration": "22.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
     {
@@ -3748,10 +3552,6 @@
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/load:tools:gmail"
-    },
-    {
         "duration": "21.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
@@ -3760,23 +3560,11 @@
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_mobile/long_running:tools:gmail-foreground"
-    },
-    {
         "duration": "26.0",
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/background:news:nytimes"
-    },
-    {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
@@ -3784,23 +3572,11 @@
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/background:tools:gmail"
-    },
-    {
-        "duration": "80.0",
-        "name": "system_health.memory_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "76.0",
+        "duration": "77.0",
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "49.0",
+        "duration": "46.0",
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3816,7 +3592,7 @@
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
-        "duration": "51.0",
+        "duration": "52.0",
         "name": "system_health.memory_mobile/browse:news:cnn:2018"
     },
     {
@@ -3824,10 +3600,6 @@
         "name": "system_health.memory_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:news:globo"
-    },
-    {
         "duration": "53.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
@@ -3836,35 +3608,35 @@
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
+        "duration": "53.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
         "duration": "73.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "51.0",
+        "duration": "50.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "28.0",
+        "duration": "59.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "29.0",
         "name": "system_health.memory_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "55.0",
+        "duration": "54.0",
         "name": "system_health.memory_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/browse:shopping:flipkart"
-    },
-    {
-        "duration": "32.0",
+        "duration": "33.0",
         "name": "system_health.memory_mobile/browse:shopping:lazada"
     },
     {
@@ -3884,6 +3656,10 @@
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
+        "duration": "79.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
+    },
+    {
         "duration": "72.0",
         "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll"
     },
@@ -3896,7 +3672,11 @@
         "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
-        "duration": "56.0",
+        "duration": "71.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "55.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
@@ -3904,19 +3684,27 @@
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
+        "duration": "43.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
+    },
+    {
         "duration": "25.0",
         "name": "system_health.memory_mobile/load:chrome:blank"
     },
     {
-        "duration": "24.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:games:bubbles"
     },
     {
         "duration": "24.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
@@ -3928,10 +3716,14 @@
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
+    },
+    {
         "duration": "27.0",
         "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
@@ -3940,19 +3732,19 @@
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:media:soundcloud:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
@@ -3960,8 +3752,8 @@
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
-        "duration": "26.0",
-        "name": "system_health.memory_mobile/load:news:nytimes"
+        "duration": "30.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
     },
     {
         "duration": "25.0",
@@ -3969,18 +3761,30 @@
     },
     {
         "duration": "25.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
         "duration": "25.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:search:baidu:2018"
     },
     {
@@ -3992,11 +3796,11 @@
         "name": "system_health.memory_mobile/load:search:google:2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
@@ -4005,10 +3809,18 @@
     },
     {
         "duration": "25.0",
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
+    },
+    {
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
         "duration": "25.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
@@ -4020,10 +3832,6 @@
         "name": "system_health.memory_mobile/load:tools:dropbox"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/load:tools:gmail"
-    },
-    {
         "duration": "25.0",
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
@@ -4032,31 +3840,23 @@
         "name": "system_health.memory_mobile/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_mobile/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
@@ -4076,134 +3876,10 @@
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "86.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:newtab"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:omnibox"
-    },
-    {
-        "duration": "82.0",
-        "name": "v8.browsing_mobile-future/browse:media:facebook_photos"
-    },
-    {
-        "duration": "51.0",
-        "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "48.0",
-        "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019"
-    },
-    {
-        "duration": "77.0",
-        "name": "v8.browsing_mobile-future/browse:media:imgur"
-    },
-    {
-        "duration": "96.0",
-        "name": "v8.browsing_mobile-future/browse:media:youtube"
-    },
-    {
-        "duration": "68.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn:2018"
-    },
-    {
-        "duration": "51.0",
-        "name": "v8.browsing_mobile-future/browse:news:cricbuzz"
-    },
-    {
         "duration": "0.0",
-        "name": "v8.browsing_mobile-future/browse:news:globo"
-    },
-    {
-        "duration": "57.0",
         "name": "v8.browsing_mobile-future/browse:news:qq"
     },
     {
-        "duration": "54.0",
-        "name": "v8.browsing_mobile-future/browse:news:reddit"
-    },
-    {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile-future/browse:news:toi"
-    },
-    {
-        "duration": "55.0",
-        "name": "v8.browsing_mobile-future/browse:news:washingtonpost"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:2018"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019"
-    },
-    {
-        "duration": "62.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:amazon"
-    },
-    {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:flipkart"
-    },
-    {
-        "duration": "33.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:lazada"
-    },
-    {
-        "duration": "74.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook"
-    },
-    {
-        "duration": "104.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "89.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "89.0",
-        "name": "v8.browsing_mobile-future/browse:social:instagram"
-    },
-    {
-        "duration": "86.0",
-        "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll"
-    },
-    {
-        "duration": "84.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "54.0",
-        "name": "v8.browsing_mobile-future/browse:social:twitter"
-    },
-    {
-        "duration": "65.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "86.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018"
-    },
-    {
-        "duration": "47.0",
-        "name": "v8.browsing_mobile-future/browse:tools:maps"
-    },
-    {
-        "duration": "86.0",
-        "name": "v8.browsing_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.browsing_mobile/browse:chrome:omnibox"
-    },
-    {
         "duration": "82.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
@@ -4216,7 +3892,7 @@
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "77.0",
+        "duration": "76.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
@@ -4224,18 +3900,14 @@
         "name": "v8.browsing_mobile/browse:media:youtube"
     },
     {
-        "duration": "69.0",
+        "duration": "68.0",
         "name": "v8.browsing_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "51.0",
+        "duration": "50.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:news:globo"
-    },
-    {
         "duration": "57.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
@@ -4244,14 +3916,18 @@
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:news:toi"
+        "duration": "61.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
     },
     {
-        "duration": "56.0",
+        "duration": "54.0",
         "name": "v8.browsing_mobile/browse:news:washingtonpost"
     },
     {
+        "duration": "79.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
+    },
+    {
         "duration": "28.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
@@ -4264,15 +3940,7 @@
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:shopping:avito"
-    },
-    {
-        "duration": "0.0",
-        "name": "v8.browsing_mobile/browse:shopping:flipkart"
-    },
-    {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
@@ -4280,23 +3948,27 @@
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "105.0",
+        "duration": "100.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "89.0",
+        "duration": "87.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "88.0",
+        "duration": "87.0",
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "85.0",
-        "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
+        "duration": "96.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
     },
     {
         "duration": "84.0",
+        "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
+    },
+    {
+        "duration": "86.0",
         "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -4304,11 +3976,15 @@
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
-        "duration": "66.0",
+        "duration": "74.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "64.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "86.0",
+        "duration": "84.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
@@ -4316,19 +3992,23 @@
         "name": "v8.browsing_mobile/browse:tools:maps"
     },
     {
+        "duration": "48.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
+    },
+    {
         "duration": "20.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "webrtc/canvas_capture_peer_connection"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "webrtc/codec_constraints_h264"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "webrtc/codec_constraints_vp8"
     },
     {
@@ -4340,7 +4020,7 @@
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
index 1c0dea7..d2914f1 100644
--- a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
@@ -1,22 +1,22 @@
 [
     {
-        "duration": "27.0",
+        "duration": "22.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "20.0",
+        "duration": "17.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/create-element.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/document-implementation.html"
     },
     {
@@ -24,27 +24,27 @@
         "name": "blink_perf.bindings/dom-attribute-on-prototoype.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/first-child.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "30.0",
+        "duration": "25.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
@@ -68,7 +68,7 @@
         "name": "blink_perf.bindings/indexed-getter.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
@@ -76,11 +76,11 @@
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/node-type.html"
     },
     {
@@ -88,7 +88,7 @@
         "name": "blink_perf.bindings/post-message.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
@@ -108,11 +108,11 @@
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/serialize-nested-array.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
@@ -120,11 +120,11 @@
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
@@ -136,7 +136,7 @@
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
@@ -144,7 +144,7 @@
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/undefined-first-child.html"
     },
     {
@@ -152,83 +152,83 @@
         "name": "blink_perf.bindings/undefined-get-element-by-id.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/undefined-id-getter.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "31.0",
+        "duration": "33.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "31.0",
+        "duration": "33.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
-        "duration": "31.0",
+        "duration": "33.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "64.0",
+        "duration": "69.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "64.0",
+        "duration": "69.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "64.0",
+        "duration": "69.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/worker-transferable-from-worker.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/worker-transferable-roundtrip.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/docs-paper.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/docs-paper_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "20.0",
         "name": "blink_perf.canvas/docs-resume.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
+        "duration": "15.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
@@ -237,22 +237,10 @@
     },
     {
         "duration": "7.0",
-        "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
-    },
-    {
-        "duration": "6.0",
-        "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
-    },
-    {
-        "duration": "6.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
@@ -264,35 +252,23 @@
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
         "duration": "6.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "10.0",
-        "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
         "duration": "12.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
@@ -316,31 +292,23 @@
         "name": "blink_perf.canvas/gpu-bound-shader.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
-        "name": "blink_perf.canvas/putImageData.html"
-    },
-    {
-        "duration": "11.0",
-        "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
-    },
-    {
-        "duration": "15.0",
+        "duration": "29.0",
         "name": "blink_perf.canvas/sheets-render.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/sheets-render_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
@@ -352,28 +320,12 @@
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/transferFromImageBitmap.html"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
-    },
-    {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
     },
     {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
-    },
-    {
         "duration": "8.0",
-        "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "11.0",
-        "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
+        "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
         "duration": "9.0",
@@ -384,11 +336,11 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.css/CSSPropertySetterGetter.html"
     },
     {
@@ -396,143 +348,107 @@
         "name": "blink_perf.css/CSSPropertySetterGetterMethods.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "14.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "6.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "6.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "6.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "11.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "36.0",
+        "duration": "40.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "26.0",
+        "duration": "33.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.dom/modify-element-classname.html"
     },
     {
@@ -552,31 +468,31 @@
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "21.0",
+        "duration": "16.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
@@ -584,31 +500,31 @@
         "name": "blink_perf.events/is-input-pending-all-events.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "51.0",
+        "duration": "45.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
-        "duration": "20.0",
+        "duration": "16.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
     },
     {
-        "duration": "20.0",
+        "duration": "16.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
     },
     {
-        "duration": "52.0",
+        "duration": "49.0",
         "name": "blink_perf.image_decoder/decode-lossless-webp.html"
     },
     {
@@ -616,19 +532,19 @@
         "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
     },
     {
-        "duration": "20.0",
+        "duration": "17.0",
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
@@ -644,7 +560,7 @@
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/animate-abspos-deep.html"
     },
     {
@@ -656,11 +572,11 @@
         "name": "blink_perf.layout/attach-inlines.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/auto-grid-lots-of-data.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
@@ -668,7 +584,7 @@
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
@@ -692,35 +608,55 @@
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
+        "duration": "12.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
         "duration": "16.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/flexbox-column-nowrap.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/flexbox-lots-of-data.html"
     },
     {
@@ -740,19 +676,23 @@
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
+        "duration": "15.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
@@ -760,7 +700,7 @@
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
@@ -768,11 +708,11 @@
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
@@ -784,23 +724,23 @@
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
@@ -820,11 +760,7 @@
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "157.0",
-        "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
-    },
-    {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
@@ -832,7 +768,7 @@
         "name": "blink_perf.layout/line-layout-repeat-append-select.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/line-layout-repeat-append.html"
     },
     {
@@ -844,7 +780,7 @@
         "name": "blink_perf.layout/long-line-nowrap-collapse.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
@@ -860,19 +796,31 @@
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
-        "duration": "11.0",
+        "duration": "15.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "12.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html"
     },
     {
-        "duration": "10.0",
-        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+        "duration": "12.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
     },
     {
         "duration": "11.0",
+        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+    },
+    {
+        "duration": "12.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
@@ -880,123 +828,123 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
+        "duration": "46.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
         "duration": "11.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/nested-grid.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "78.0",
+        "duration": "83.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "17.0",
+        "duration": "12.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "18.0",
+        "duration": "13.0",
         "name": "blink_perf.paint/appending-text.html"
     },
     {
-        "duration": "25.0",
-        "name": "blink_perf.paint/color-changes.html"
-    },
-    {
-        "duration": "23.0",
+        "duration": "18.0",
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
-        "duration": "22.0",
+        "duration": "18.0",
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "51.0",
+        "duration": "49.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
-        "duration": "28.0",
+        "duration": "25.0",
         "name": "blink_perf.paint/containment-resize.html"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
-        "duration": "24.0",
+        "duration": "19.0",
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "18.0",
+        "duration": "15.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
-        "duration": "18.0",
+        "duration": "15.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "16.0",
+        "duration": "13.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "21.0",
+        "duration": "17.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "29.0",
+        "duration": "20.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
@@ -1004,7 +952,7 @@
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
@@ -1012,15 +960,15 @@
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "21.0",
+        "duration": "43.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "87.0",
+        "duration": "110.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
@@ -1041,10 +989,6 @@
     },
     {
         "duration": "12.0",
-        "name": "blink_perf.parser/query-selector-all-class-deep.html"
-    },
-    {
-        "duration": "12.0",
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
@@ -1052,23 +996,15 @@
         "name": "blink_perf.parser/query-selector-all-class-last.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
         "duration": "12.0",
-        "name": "blink_perf.parser/query-selector-all-deep.html"
-    },
-    {
-        "duration": "11.0",
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
         "duration": "12.0",
-        "name": "blink_perf.parser/query-selector-all-id-deep.html"
-    },
-    {
-        "duration": "12.0",
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
@@ -1076,27 +1012,27 @@
         "name": "blink_perf.parser/query-selector-all-id-last.html"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "blink_perf.parser/query-selector-all-last.html"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
@@ -1104,15 +1040,15 @@
         "name": "blink_perf.parser/simple-url.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "10.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
-        "duration": "16.0",
+        "duration": "21.0",
         "name": "blink_perf.parser/url-parser.html"
     },
     {
@@ -1120,7 +1056,7 @@
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/declarative-api.html"
     },
     {
@@ -1128,7 +1064,7 @@
         "name": "blink_perf.shadow_dom/imperative-api-appendchild.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api-assign.html"
     },
     {
@@ -1136,23 +1072,23 @@
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html"
     },
     {
@@ -1160,11 +1096,11 @@
         "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html"
     },
     {
@@ -1176,7 +1112,7 @@
         "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/shadow-style-share.html"
     },
     {
@@ -1188,11 +1124,11 @@
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
@@ -1204,11 +1140,11 @@
         "name": "blink_perf.shadow_dom/v0-content-reprojection.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html"
     },
     {
@@ -1216,31 +1152,35 @@
         "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-distribution.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "41.0",
+        "duration": "18.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
         "duration": "5.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
+    },
+    {
+        "duration": "5.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
@@ -1248,27 +1188,31 @@
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
+        "duration": "5.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
+    },
+    {
         "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
@@ -1276,7 +1220,7 @@
         "name": "blink_perf.shadow_dom/v1-slot-append.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html"
     },
     {
@@ -1292,15 +1236,15 @@
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/Bamboo.html"
     },
     {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/Cactus.html"
     },
     {
@@ -1312,15 +1256,15 @@
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/Debian.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/DropsOnABlade.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/FlowerFromMyGarden.html"
     },
     {
@@ -1328,11 +1272,11 @@
         "name": "blink_perf.svg/FoodLeifLodahl.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/France.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html"
     },
     {
@@ -1340,31 +1284,31 @@
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "65.0",
+        "duration": "318.0",
         "name": "blink_perf.svg/SierpinskiCarpet.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
@@ -1380,39 +1324,35 @@
         "name": "blink_perf.svg/WorldIso.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
-        "duration": "41.0",
+        "duration": "39.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
-        "duration": "36.0",
+        "duration": "37.0",
         "name": "dromaeo/http://dromaeo.com?dom-modify"
     },
     {
-        "duration": "52.0",
+        "duration": "51.0",
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "279.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
-    },
-    {
-        "duration": "58.0",
+        "duration": "56.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
@@ -1420,7 +1360,7 @@
         "name": "loading.mobile/58Pic"
     },
     {
-        "duration": "53.0",
+        "duration": "19.0",
         "name": "loading.mobile/58Pic_3g"
     },
     {
@@ -1428,7 +1368,7 @@
         "name": "loading.mobile/Amazon"
     },
     {
-        "duration": "110.0",
+        "duration": "27.0",
         "name": "loading.mobile/Amazon_3g"
     },
     {
@@ -1440,7 +1380,7 @@
         "name": "loading.mobile/Baidu"
     },
     {
-        "duration": "85.0",
+        "duration": "19.0",
         "name": "loading.mobile/Baidu_3g"
     },
     {
@@ -1448,7 +1388,7 @@
         "name": "loading.mobile/Bradesco"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.mobile/Dailymotion"
     },
     {
@@ -1460,15 +1400,15 @@
         "name": "loading.mobile/DevOpera_cold"
     },
     {
-        "duration": "60.0",
+        "duration": "15.0",
         "name": "loading.mobile/DevOpera_cold_3g"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.mobile/DevOpera_hot"
     },
     {
-        "duration": "60.0",
+        "duration": "22.0",
         "name": "loading.mobile/DevOpera_hot_3g"
     },
     {
@@ -1476,7 +1416,7 @@
         "name": "loading.mobile/DevOpera_warm"
     },
     {
-        "duration": "57.0",
+        "duration": "16.0",
         "name": "loading.mobile/DevOpera_warm_3g"
     },
     {
@@ -1484,7 +1424,7 @@
         "name": "loading.mobile/Dramaq"
     },
     {
-        "duration": "101.0",
+        "duration": "45.0",
         "name": "loading.mobile/Dramaq_3g"
     },
     {
@@ -1492,11 +1432,11 @@
         "name": "loading.mobile/EnquiryIndianRail"
     },
     {
-        "duration": "50.0",
+        "duration": "12.0",
         "name": "loading.mobile/EnquiryIndianRail_3g"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.mobile/Facebook"
     },
     {
@@ -1508,7 +1448,7 @@
         "name": "loading.mobile/FlipBoard_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "17.0",
         "name": "loading.mobile/FlipBoard_hot_3g"
     },
     {
@@ -1516,7 +1456,7 @@
         "name": "loading.mobile/FlipBoard_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.mobile/FlipKart_cold"
     },
     {
@@ -1524,7 +1464,7 @@
         "name": "loading.mobile/FlipKart_hot"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "loading.mobile/FlipKart_hot_3g"
     },
     {
@@ -1532,15 +1472,15 @@
         "name": "loading.mobile/FlipKart_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "loading.mobile/FranceTVInfo"
     },
     {
-        "duration": "83.0",
+        "duration": "16.0",
         "name": "loading.mobile/FranceTVInfo_3g"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "loading.mobile/GSShop"
     },
     {
@@ -1556,7 +1496,7 @@
         "name": "loading.mobile/GoogleIndonesia"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "loading.mobile/GoogleRedirectToGoogleJapan"
     },
     {
@@ -1564,23 +1504,27 @@
         "name": "loading.mobile/Hongkiat"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.mobile/KapanLagi"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "loading.mobile/Kaskus"
     },
     {
-        "duration": "9.0",
+        "duration": "12.0",
         "name": "loading.mobile/LocalMoxie"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/LocalMoxie_3g"
+    },
+    {
         "duration": "9.0",
         "name": "loading.mobile/Locanto"
     },
     {
-        "duration": "33.0",
+        "duration": "11.0",
         "name": "loading.mobile/Locanto_3g"
     },
     {
@@ -1592,39 +1536,39 @@
         "name": "loading.mobile/QQNews"
     },
     {
-        "duration": "109.0",
+        "duration": "18.0",
         "name": "loading.mobile/QQNews_3g"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.mobile/SlideShare"
     },
     {
-        "duration": "95.0",
+        "duration": "20.0",
         "name": "loading.mobile/SlideShare_3g"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.mobile/Suumo_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "loading.mobile/Suumo_cold_3g"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.mobile/Suumo_hot"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "loading.mobile/Suumo_hot_3g"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.mobile/Suumo_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.mobile/Suumo_warm_3g"
     },
     {
@@ -1632,7 +1576,7 @@
         "name": "loading.mobile/Thairath"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.mobile/TheStar"
     },
     {
@@ -1644,7 +1588,7 @@
         "name": "loading.mobile/Twitter"
     },
     {
-        "duration": "55.0",
+        "duration": "13.0",
         "name": "loading.mobile/Twitter_3g"
     },
     {
@@ -1656,11 +1600,11 @@
         "name": "loading.mobile/Wikipedia"
     },
     {
-        "duration": "84.0",
+        "duration": "13.0",
         "name": "loading.mobile/Wikipedia_3g"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.mobile/YahooNews"
     },
     {
@@ -1668,139 +1612,15 @@
         "name": "loading.mobile/Youtube"
     },
     {
-        "duration": "16.0",
-        "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science"
+        "duration": "57.0",
+        "name": "octane/Octane"
     },
     {
         "duration": "15.0",
-        "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "15.0",
-        "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "15.0",
-        "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "15.0",
-        "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "22.0",
-        "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "15.0",
-        "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "15.0",
-        "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "15.0",
-        "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "16.0",
-        "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "16.0",
-        "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "58.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom"
-    },
-    {
-        "duration": "65.0",
-        "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180"
-    },
-    {
-        "duration": "59.0",
-        "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404"
-    },
-    {
-        "duration": "66.0",
-        "name": "power.typical_10_mobile/http://m.facebook.com/barackobama"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://m.ynet.co.il"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/"
-    },
-    {
-        "duration": "60.0",
-        "name": "power.typical_10_mobile/http://wapbaike.baidu.com/"
-    },
-    {
-        "duration": "60.0",
-        "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html"
-    },
-    {
-        "duration": "63.0",
-        "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif"
-    },
-    {
-        "duration": "17.0",
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
@@ -1816,11 +1636,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
@@ -1828,7 +1648,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
-        "duration": "37.0",
+        "duration": "38.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
@@ -1840,7 +1660,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
@@ -1864,11 +1684,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "15.0",
+        "duration": "19.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
@@ -1880,11 +1700,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "63.0",
+        "duration": "62.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html"
     },
     {
-        "duration": "88.0",
+        "duration": "84.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
@@ -1892,7 +1712,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "21.0",
+        "duration": "24.0",
         "name": "rendering.mobile/accu_weather_2018"
     },
     {
@@ -1900,7 +1720,7 @@
         "name": "rendering.mobile/accu_weather_mobile_pinch_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "rendering.mobile/amazon_2018"
     },
     {
@@ -1916,19 +1736,19 @@
         "name": "rendering.mobile/androidpolice_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/animometer_webgl"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/animometer_webgl_multi_draw"
     },
     {
-        "duration": "28.0",
+        "duration": "19.0",
         "name": "rendering.mobile/aquarium"
     },
     {
@@ -1936,7 +1756,7 @@
         "name": "rendering.mobile/background_color_animation"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/background_color_animation_with_gradient"
     },
     {
@@ -1948,15 +1768,15 @@
         "name": "rendering.mobile/balls_css_key_frame_animations"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/balls_css_transition_2_properties"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/balls_css_transition_40_properties"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/balls_css_transition_all_properties"
     },
     {
@@ -1964,19 +1784,15 @@
         "name": "rendering.mobile/balls_javascript_canvas"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/balls_javascript_css"
     },
     {
-        "duration": "20.0",
-        "name": "rendering.mobile/balls_svg_animations"
-    },
-    {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.mobile/basic_stream"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "rendering.mobile/bing_mobile_2018"
     },
     {
@@ -1984,7 +1800,7 @@
         "name": "rendering.mobile/blob"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/blogspot_2018"
     },
     {
@@ -1992,7 +1808,7 @@
         "name": "rendering.mobile/blogspot_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "12.0",
         "name": "rendering.mobile/blur_rotating_background"
     },
     {
@@ -2016,19 +1832,19 @@
         "name": "rendering.mobile/bouncing_clipped_rectangles"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/bouncing_gradient_circles"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/bouncing_png_images"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "rendering.mobile/bouncing_svg_images"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/camera_to_webgl"
     },
     {
@@ -2040,11 +1856,11 @@
         "name": "rendering.mobile/canvas_animation_no_clear"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/canvas_arcs"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "rendering.mobile/canvas_font_cycler"
     },
     {
@@ -2056,7 +1872,7 @@
         "name": "rendering.mobile/canvas_to_blob"
     },
     {
-        "duration": "22.0",
+        "duration": "25.0",
         "name": "rendering.mobile/capitolvolkswagen_mobile_2018"
     },
     {
@@ -2080,7 +1896,7 @@
         "name": "rendering.mobile/cats_unscaled"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.mobile/cats_viewport_width"
     },
     {
@@ -2088,11 +1904,11 @@
         "name": "rendering.mobile/cc_poster_circle"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "rendering.mobile/cc_scroll_text_only"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/chip_tune"
     },
     {
@@ -2100,15 +1916,15 @@
         "name": "rendering.mobile/cnn_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "15.0",
         "name": "rendering.mobile/cnn_article_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "13.0",
         "name": "rendering.mobile/cnn_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "14.0",
         "name": "rendering.mobile/cnn_pathological_2018"
     },
     {
@@ -2148,7 +1964,7 @@
         "name": "rendering.mobile/css_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/css_animations_staggered_inline_style"
     },
     {
@@ -2160,11 +1976,11 @@
         "name": "rendering.mobile/css_animations_staggered_style_element"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/css_animations_staggered_updating_class"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/css_animations_triggered_inline_style"
     },
     {
@@ -2176,7 +1992,7 @@
         "name": "rendering.mobile/css_animations_triggered_style_element"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/css_animations_triggered_updating_class"
     },
     {
@@ -2224,15 +2040,15 @@
         "name": "rendering.mobile/css_transitions_triggered_inline_style"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/css_transitions_triggered_new_element"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/css_transitions_triggered_style_element"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/css_transitions_triggered_updating_class"
     },
     {
@@ -2260,11 +2076,11 @@
         "name": "rendering.mobile/css_value_type_length_simple"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/css_value_type_path"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/css_value_type_shadow"
     },
     {
@@ -2276,11 +2092,11 @@
         "name": "rendering.mobile/css_value_type_transform_simple"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "rendering.mobile/deviantart_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "13.0",
         "name": "rendering.mobile/digg_mobile_2018"
     },
     {
@@ -2288,19 +2104,19 @@
         "name": "rendering.mobile/dynamic_cube_map"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/earth"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.mobile/ebay_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "17.0",
         "name": "rendering.mobile/ebay_mobile_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "rendering.mobile/ebay_mobile_pinch_2018"
     },
     {
@@ -2308,27 +2124,27 @@
         "name": "rendering.mobile/ebay_scroll_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "20.0",
         "name": "rendering.mobile/espn_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "12.0",
         "name": "rendering.mobile/espn_mobile_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.mobile/espn_pathological_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "rendering.mobile/extra_large_texture_uploads"
     },
     {
-        "duration": "13.0",
+        "duration": "18.0",
         "name": "rendering.mobile/facebook_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "rendering.mobile/facebook_mobile_2018"
     },
     {
@@ -2336,23 +2152,23 @@
         "name": "rendering.mobile/fill_shapes"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/filter_terrain_svg"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "rendering.mobile/flickr_scroll_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "rendering.mobile/font_wipe"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.mobile/forecast.io_mobile_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "rendering.mobile/geo_apis"
     },
     {
@@ -2360,7 +2176,7 @@
         "name": "rendering.mobile/gmail_2018"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "rendering.mobile/google_calendar_2018"
     },
     {
@@ -2380,15 +2196,15 @@
         "name": "rendering.mobile/google_news_ios"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/google_plus_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "17.0",
         "name": "rendering.mobile/google_plus_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/google_search_mobile_pinch_2018"
     },
     {
@@ -2400,11 +2216,11 @@
         "name": "rendering.mobile/google_web_search_mobile_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "17.0",
         "name": "rendering.mobile/gsp.ro_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "rendering.mobile/guardian_pathological_2018"
     },
     {
@@ -2416,11 +2232,11 @@
         "name": "rendering.mobile/gws_boogie_expansion"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/gws_google_expansion"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.mobile/hakim"
     },
     {
@@ -2428,11 +2244,11 @@
         "name": "rendering.mobile/horizontal_vertical_expansion"
     },
     {
-        "duration": "40.0",
+        "duration": "36.0",
         "name": "rendering.mobile/idle_power_animated_gif"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "rendering.mobile/idle_power_blank"
     },
     {
@@ -2444,7 +2260,7 @@
         "name": "rendering.mobile/idle_power_request_animation_frame"
     },
     {
-        "duration": "108.0",
+        "duration": "107.0",
         "name": "rendering.mobile/idle_power_set_timeout_long"
     },
     {
@@ -2452,15 +2268,15 @@
         "name": "rendering.mobile/idle_power_set_timetout"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/ie_chalkboard"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/ie_pirate_mark"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_0"
     },
     {
@@ -2480,7 +2296,7 @@
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99"
     },
     {
@@ -2492,11 +2308,11 @@
         "name": "rendering.mobile/infinite_scroll_root_n_layers_75"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_99"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/infinite_scrolling"
     },
     {
@@ -2512,11 +2328,11 @@
         "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/js_full_screen_invalidation"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_0"
     },
     {
@@ -2544,7 +2360,7 @@
         "name": "rendering.mobile/js_poster_circle"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/js_scroll_text_only"
     },
     {
@@ -2564,27 +2380,39 @@
         "name": "rendering.mobile/linkedin_2018"
     },
     {
-        "duration": "39.0",
+        "duration": "36.0",
         "name": "rendering.mobile/linkedin_mobile_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "29.0",
         "name": "rendering.mobile/linkedin_mobile_pinch_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "rendering.mobile/linkedin_pathological_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.mobile/list_animation_simple"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/list_recycle_transform"
     },
     {
         "duration": "13.0",
+        "name": "rendering.mobile/main_0fps_impl_60fps"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.mobile/main_30fps_impl_60fps"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.mobile/main_60fps_impl_60fps"
+    },
+    {
+        "duration": "16.0",
         "name": "rendering.mobile/man_in_blue"
     },
     {
@@ -2592,7 +2420,7 @@
         "name": "rendering.mobile/many_images"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "rendering.mobile/many_planets_deep"
     },
     {
@@ -2600,7 +2428,7 @@
         "name": "rendering.mobile/mask_transition_animation"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.mobile/masonry"
     },
     {
@@ -2608,7 +2436,7 @@
         "name": "rendering.mobile/medium_texture_uploads"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/megi_dish"
     },
     {
@@ -2616,15 +2444,15 @@
         "name": "rendering.mobile/microsoft_asteroid_belt"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.mobile/microsoft_fish_ie_tank"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/microsoft_performance"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.mobile/microsoft_snow"
     },
     {
@@ -2632,14 +2460,10 @@
         "name": "rendering.mobile/microsoft_speed_reading"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.mobile/microsoft_tweet_map"
     },
     {
-        "duration": "15.0",
-        "name": "rendering.mobile/microsoft_video_city"
-    },
-    {
         "duration": "13.0",
         "name": "rendering.mobile/microsoft_worker_fountains"
     },
@@ -2664,7 +2488,7 @@
         "name": "rendering.mobile/mix_blend_mode_animation_screen"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/mlb_mobile_2018"
     },
     {
@@ -2672,7 +2496,7 @@
         "name": "rendering.mobile/mobile_news_sandbox"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/motion_mark_canvas_fill_shapes"
     },
     {
@@ -2680,7 +2504,7 @@
         "name": "rendering.mobile/motion_mark_canvas_stroke_shapes"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_design_15"
     },
     {
@@ -2692,19 +2516,19 @@
         "name": "rendering.mobile/motionmark_anim_images_50"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_leaves_250"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_multiply_175"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_suits_125"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_composited_transforms_125"
     },
     {
@@ -2712,11 +2536,11 @@
         "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100"
     },
     {
@@ -2724,11 +2548,11 @@
         "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50"
     },
     {
@@ -2760,7 +2584,7 @@
         "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200"
     },
     {
@@ -2776,11 +2600,11 @@
         "name": "rendering.mobile/no_op_raf"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/no_op_scroll"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "rendering.mobile/no_op_settimeout"
     },
     {
@@ -2796,7 +2620,7 @@
         "name": "rendering.mobile/nyc_gov_scroll_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "26.0",
         "name": "rendering.mobile/nytimes_mobile_2018"
     },
     {
@@ -2816,19 +2640,19 @@
         "name": "rendering.mobile/particles"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "rendering.mobile/pbs_pathological_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.mobile/physical_simulation"
     },
     {
-        "duration": "16.0",
+        "duration": "21.0",
         "name": "rendering.mobile/pinterest_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "14.0",
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
@@ -2836,7 +2660,7 @@
         "name": "rendering.mobile/put_get_image_data"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/raf"
     },
     {
@@ -2844,11 +2668,11 @@
         "name": "rendering.mobile/raf_animation"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/raf_canvas"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/raf_touch_animation"
     },
     {
@@ -2860,11 +2684,11 @@
         "name": "rendering.mobile/reddit_mobile_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "rendering.mobile/runway"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/san_angeles"
     },
     {
@@ -2880,23 +2704,23 @@
         "name": "rendering.mobile/second_batch_js_medium"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/sfgate_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "rendering.mobile/silk_finance"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "rendering.mobile/simple_text_page"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.mobile/simple_touch_drag"
     },
     {
-        "duration": "14.0",
+        "duration": "21.0",
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
@@ -2904,19 +2728,19 @@
         "name": "rendering.mobile/slide_drawer"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "rendering.mobile/spielzeugz"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "rendering.mobile/stress_hidey_bars"
     },
     {
@@ -2924,7 +2748,7 @@
         "name": "rendering.mobile/stroke_shapes"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
@@ -2936,11 +2760,11 @@
         "name": "rendering.mobile/swipe_to_dismiss"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.mobile/sync_scroll_offset"
     },
     {
-        "duration": "19.0",
+        "duration": "23.0",
         "name": "rendering.mobile/techcrunch_2018"
     },
     {
@@ -2952,7 +2776,7 @@
         "name": "rendering.mobile/text_05000_pixels_per_second"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_10000_pixels_per_second"
     },
     {
@@ -2976,11 +2800,11 @@
         "name": "rendering.mobile/text_90000_pixels_per_second"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -3000,7 +2824,7 @@
         "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
@@ -3008,7 +2832,7 @@
         "name": "rendering.mobile/text_hover_05000_pixels_per_second"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "rendering.mobile/text_hover_10000_pixels_per_second"
     },
     {
@@ -3028,7 +2852,7 @@
         "name": "rendering.mobile/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.mobile/text_hover_90000_pixels_per_second"
     },
     {
@@ -3044,11 +2868,11 @@
         "name": "rendering.mobile/toggle_drawer"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/transform_transitions"
     },
     {
@@ -3056,11 +2880,11 @@
         "name": "rendering.mobile/transform_transitions_js_block"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.mobile/twitch_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/twitch_mobile_pinch_2018"
     },
     {
@@ -3072,11 +2896,11 @@
         "name": "rendering.mobile/twitter_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/update_history_state"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.mobile/usatoday_mobile_2018"
     },
     {
@@ -3088,11 +2912,11 @@
         "name": "rendering.mobile/web_animation_value_type_color"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/web_animation_value_type_length_3d"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/web_animation_value_type_length_complex"
     },
     {
@@ -3116,7 +2940,7 @@
         "name": "rendering.mobile/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animations_many_keyframes"
     },
     {
@@ -3140,15 +2964,15 @@
         "name": "rendering.mobile/web_animations_staggered_triggering_page"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/wikipedia_2018"
     },
     {
@@ -3172,11 +2996,11 @@
         "name": "rendering.mobile/worldjournal_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/wow_wiki_pathological_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/wowwiki_mobile_2018"
     },
     {
@@ -3184,7 +3008,7 @@
         "name": "rendering.mobile/wsj_mobile_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.mobile/yahoo_answers_2018"
     },
     {
@@ -3192,15 +3016,15 @@
         "name": "rendering.mobile/yahoo_news_2018"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "rendering.mobile/yahoo_news_mobile_2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/yahoo_sports_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.mobile/yahoo_sports_pathological_2018"
     },
     {
@@ -3212,7 +3036,7 @@
         "name": "rendering.mobile/youtube_mobile_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/zdnet_pathological_2018"
     },
     {
@@ -3220,15 +3044,15 @@
         "name": "rendering.mobile/zoom_in_animation"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "52.0",
+        "duration": "51.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
@@ -3240,7 +3064,7 @@
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
@@ -3248,39 +3072,31 @@
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "9.0",
-        "name": "system_health.common_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "8.0",
-        "name": "system_health.common_mobile/browse:chrome:omnibox"
-    },
-    {
         "duration": "71.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "39.0",
+        "duration": "38.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "66.0",
+        "duration": "65.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "83.0",
+        "duration": "80.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "51.0",
+        "duration": "50.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "42.0",
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
@@ -3292,7 +3108,11 @@
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "86.0",
+        "duration": "48.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "81.0",
         "name": "system_health.common_mobile/browse:news:toi"
     },
     {
@@ -3300,6 +3120,10 @@
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
+        "duration": "56.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
         "duration": "21.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
@@ -3308,7 +3132,7 @@
         "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "53.0",
+        "duration": "51.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
@@ -3320,11 +3144,11 @@
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "84.0",
+        "duration": "78.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "72.0",
+        "duration": "69.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3332,11 +3156,15 @@
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "69.0",
+        "duration": "74.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "68.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "69.0",
+        "duration": "65.0",
         "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -3344,11 +3172,15 @@
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "52.0",
+        "duration": "72.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "51.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "70.0",
+        "duration": "66.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
@@ -3356,7 +3188,11 @@
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "22.0",
+        "duration": "40.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
@@ -3364,11 +3200,15 @@
         "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "16.0",
         "name": "system_health.common_mobile/load:games:lazors"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:games:spychase:2018"
     },
     {
@@ -3376,11 +3216,15 @@
         "name": "system_health.common_mobile/load:media:dailymotion"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "20.0",
+        "duration": "17.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:media:flickr:2018"
     },
     {
@@ -3388,7 +3232,7 @@
         "name": "system_health.common_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "system_health.common_mobile/load:media:imgur:2018"
     },
     {
@@ -3396,7 +3240,7 @@
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
@@ -3404,27 +3248,39 @@
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:news:nytimes"
+        "duration": "24.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
     },
     {
         "duration": "17.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
+        "duration": "18.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "17.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
         "duration": "18.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "18.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
         "duration": "17.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:search:baidu:2018"
     },
     {
@@ -3436,11 +3292,11 @@
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
@@ -3448,11 +3304,19 @@
         "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
+    },
+    {
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:social:twitter"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
     {
@@ -3468,15 +3332,15 @@
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
@@ -3484,15 +3348,7 @@
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "12.0",
-        "name": "system_health.memory_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "72.0",
+        "duration": "73.0",
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
@@ -3500,27 +3356,27 @@
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "40.0",
+        "duration": "41.0",
         "name": "system_health.memory_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "68.0",
+        "duration": "67.0",
         "name": "system_health.memory_mobile/browse:media:imgur"
     },
     {
-        "duration": "79.0",
+        "duration": "78.0",
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
-        "duration": "48.0",
+        "duration": "51.0",
         "name": "system_health.memory_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "44.0",
         "name": "system_health.memory_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "47.0",
+        "duration": "49.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
     {
@@ -3528,23 +3384,31 @@
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
-        "duration": "71.0",
+        "duration": "49.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "72.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "45.0",
+        "duration": "46.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
+        "duration": "58.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
+    },
+    {
         "duration": "23.0",
         "name": "system_health.memory_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "52.0",
+        "duration": "51.0",
         "name": "system_health.memory_mobile/browse:shopping:amazon"
     },
     {
@@ -3552,11 +3416,11 @@
         "name": "system_health.memory_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "55.0",
+        "duration": "57.0",
         "name": "system_health.memory_mobile/browse:social:facebook"
     },
     {
-        "duration": "70.0",
+        "duration": "69.0",
         "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3564,7 +3428,11 @@
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
-        "duration": "67.0",
+        "duration": "76.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "68.0",
         "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
@@ -3576,23 +3444,35 @@
         "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
+        "duration": "73.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
+    },
+    {
         "duration": "52.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
-        "duration": "22.0",
+        "duration": "42.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.memory_mobile/load:chrome:blank"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "system_health.memory_mobile/load:games:bubbles"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
@@ -3600,14 +3480,18 @@
         "name": "system_health.memory_mobile/load:games:spychase:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
+        "duration": "21.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
+    },
+    {
         "duration": "23.0",
         "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
@@ -3616,39 +3500,51 @@
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "system_health.memory_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:news:nytimes"
+        "duration": "26.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
     },
     {
         "duration": "21.0",
         "name": "system_health.memory_mobile/load:news:qq"
     },
     {
+        "duration": "22.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "21.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
         "duration": "21.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "22.0",
         "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
         "duration": "21.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
+    },
+    {
+        "duration": "21.0",
         "name": "system_health.memory_mobile/load:news:wikipedia:2018"
     },
     {
@@ -3664,23 +3560,31 @@
         "name": "system_health.memory_mobile/load:search:google:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "system_health.memory_mobile/load:search:yandex:2018"
     },
     {
+        "duration": "22.0",
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
+    },
+    {
         "duration": "21.0",
         "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
         "duration": "21.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "23.0",
         "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
@@ -3692,11 +3596,11 @@
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "system_health.memory_mobile/load:tools:weather"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "system_health.webview_startup/load:chrome:blank"
     },
     {
@@ -3708,19 +3612,19 @@
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
-        "duration": "5.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
@@ -3728,7 +3632,7 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
@@ -3736,143 +3640,31 @@
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "10.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:newtab"
-    },
-    {
-        "duration": "9.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:omnibox"
-    },
-    {
-        "duration": "77.0",
-        "name": "v8.browsing_mobile-future/browse:media:facebook_photos"
-    },
-    {
-        "duration": "46.0",
-        "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "43.0",
-        "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019"
-    },
-    {
-        "duration": "71.0",
-        "name": "v8.browsing_mobile-future/browse:media:imgur"
-    },
-    {
-        "duration": "91.0",
-        "name": "v8.browsing_mobile-future/browse:media:youtube"
-    },
-    {
-        "duration": "64.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn:2018"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_mobile-future/browse:news:cricbuzz"
-    },
-    {
-        "duration": "58.0",
-        "name": "v8.browsing_mobile-future/browse:news:qq"
-    },
-    {
-        "duration": "49.0",
-        "name": "v8.browsing_mobile-future/browse:news:reddit"
-    },
-    {
-        "duration": "49.0",
-        "name": "v8.browsing_mobile-future/browse:news:washingtonpost"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:2018"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019"
-    },
-    {
-        "duration": "59.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:amazon"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:lazada"
-    },
-    {
-        "duration": "60.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook"
-    },
-    {
-        "duration": "100.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "86.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "78.0",
-        "name": "v8.browsing_mobile-future/browse:social:instagram"
-    },
-    {
-        "duration": "80.0",
-        "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll"
-    },
-    {
-        "duration": "82.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "48.0",
-        "name": "v8.browsing_mobile-future/browse:social:twitter"
-    },
-    {
-        "duration": "60.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "83.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018"
-    },
-    {
-        "duration": "41.0",
-        "name": "v8.browsing_mobile-future/browse:tools:maps"
-    },
-    {
-        "duration": "10.0",
-        "name": "v8.browsing_mobile/browse:chrome:newtab"
-    },
-    {
-        "duration": "9.0",
-        "name": "v8.browsing_mobile/browse:chrome:omnibox"
-    },
-    {
-        "duration": "77.0",
+        "duration": "76.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "46.0",
+        "duration": "44.0",
         "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "71.0",
+        "duration": "70.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
-        "duration": "64.0",
+        "duration": "60.0",
         "name": "v8.browsing_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "45.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "53.0",
+        "duration": "52.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
     {
@@ -3880,35 +3672,47 @@
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "49.0",
+        "duration": "56.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "48.0",
         "name": "v8.browsing_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "23.0",
+        "duration": "67.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "22.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "v8.browsing_mobile/browse:search:amp:sxg:2019"
     },
     {
-        "duration": "59.0",
+        "duration": "56.0",
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "29.0",
+        "duration": "0.0",
+        "name": "v8.browsing_mobile/browse:shopping:flipkart"
+    },
+    {
+        "duration": "28.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "59.0",
+        "duration": "61.0",
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "100.0",
+        "duration": "91.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "85.0",
+        "duration": "79.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3916,35 +3720,47 @@
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "79.0",
+        "duration": "85.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "78.0",
         "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "82.0",
+        "duration": "75.0",
         "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "48.0",
+        "duration": "47.0",
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
-        "duration": "60.0",
+        "duration": "73.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "57.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "82.0",
+        "duration": "75.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "v8.browsing_mobile/browse:tools:maps"
     },
     {
+        "duration": "43.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
+    },
+    {
         "duration": "15.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "webrtc/canvas_capture_peer_connection"
     },
     {
@@ -3964,11 +3780,11 @@
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "34.0",
+        "duration": "30.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json
index fa9f207..42bce77 100644
--- a/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json
@@ -1,18 +1,18 @@
 [
     {
-        "duration": "45.0",
+        "duration": "40.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "27.0",
+        "duration": "23.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.bindings/create-element.html"
     },
     {
@@ -28,27 +28,27 @@
         "name": "blink_perf.bindings/first-child.html"
     },
     {
-        "duration": "39.0",
+        "duration": "43.0",
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "52.0",
+        "duration": "66.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "104.0",
+        "duration": "133.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/get-element-by-id.html"
     },
     {
@@ -56,67 +56,67 @@
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.bindings/id-getter.html"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "blink_perf.bindings/id-setter.html"
     },
     {
-        "duration": "23.0",
+        "duration": "25.0",
         "name": "blink_perf.bindings/indexed-getter.html"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "82.0",
+        "duration": "116.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "blink_perf.bindings/node-type.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/post-message.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/serialize-array.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/serialize-long-string.html"
     },
     {
-        "duration": "23.0",
+        "duration": "26.0",
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/serialize-nested-array.html"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
@@ -124,7 +124,7 @@
         "name": "blink_perf.bindings/typed-array-construct-from-array.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
@@ -132,7 +132,7 @@
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "19.0",
+        "duration": "22.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
@@ -140,7 +140,7 @@
         "name": "blink_perf.bindings/undefined-first-child.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/undefined-get-element-by-id.html"
     },
     {
@@ -148,11 +148,11 @@
         "name": "blink_perf.bindings/undefined-id-getter.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html"
     },
     {
@@ -160,39 +160,39 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "142.0",
+        "duration": "148.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "142.0",
+        "duration": "148.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "142.0",
+        "duration": "149.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
-        "duration": "63.0",
+        "duration": "66.0",
         "name": "blink_perf.bindings/worker-transferable-from-worker.html"
     },
     {
-        "duration": "62.0",
+        "duration": "65.0",
         "name": "blink_perf.bindings/worker-transferable-roundtrip.html"
     },
     {
-        "duration": "64.0",
+        "duration": "65.0",
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF"
     },
     {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "blink_perf.canvas/docs-paper.html"
     },
     {
@@ -200,7 +200,7 @@
         "name": "blink_perf.canvas/docs-paper_RAF.html?RAF"
     },
     {
-        "duration": "23.0",
+        "duration": "31.0",
         "name": "blink_perf.canvas/docs-resume.html"
     },
     {
@@ -208,27 +208,19 @@
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "20.0",
+        "duration": "25.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "14.0",
-        "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "55.0",
-        "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
-    },
-    {
-        "duration": "14.0",
+        "duration": "19.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "18.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
@@ -236,19 +228,11 @@
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "14.0",
-        "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
         "duration": "17.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "18.0",
+        "duration": "0.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
     },
     {
@@ -256,39 +240,39 @@
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "22.0",
+        "duration": "25.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "22.0",
+        "duration": "26.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "23.0",
+        "duration": "26.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
-        "duration": "23.0",
+        "duration": "27.0",
         "name": "blink_perf.canvas/getImageData.html"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "blink_perf.canvas/getImageDataColorManaged.html"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF"
     },
     {
-        "duration": "23.0",
+        "duration": "27.0",
         "name": "blink_perf.canvas/getImageData_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/gpu-bound-shader.html"
     },
     {
@@ -296,43 +280,35 @@
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "23.0",
-        "name": "blink_perf.canvas/putImageData.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
-    },
-    {
-        "duration": "41.0",
+        "duration": "43.0",
         "name": "blink_perf.canvas/sheets-render.html"
     },
     {
-        "duration": "13.0",
+        "duration": "20.0",
         "name": "blink_perf.canvas/sheets-render_RAF.html?RAF"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "38.0",
+        "duration": "36.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
-        "duration": "35.0",
+        "duration": "38.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg.html"
     },
     {
-        "duration": "35.0",
+        "duration": "38.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.canvas/transferFromImageBitmap.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
     },
     {
@@ -340,7 +316,7 @@
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
     },
     {
-        "duration": "41.0",
+        "duration": "38.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
@@ -348,11 +324,11 @@
         "name": "blink_perf.canvas/upload-video-to-sub-texture.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "blink_perf.canvas/upload-video-to-texture.html"
     },
     {
@@ -360,95 +336,95 @@
         "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "blink_perf.canvas/upload-webgl-to-texture.html"
     },
     {
-        "duration": "37.0",
+        "duration": "39.0",
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "47.0",
+        "duration": "49.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.css/CSSPropertySetterGetter.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.css/CSSPropertySetterGetterMethods.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "15.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "15.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "15.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
@@ -456,75 +432,39 @@
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "31.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "25.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "27.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
         "duration": "16.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "19.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "23.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "42.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "114.0",
+        "duration": "136.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "78.0",
+        "duration": "109.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "64.0",
+        "duration": "42.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
-        "duration": "27.0",
+        "duration": "30.0",
         "name": "blink_perf.dom/modify-element-classname.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.dom/modify-element-id.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.dom/modify-element-title.html"
     },
     {
@@ -532,19 +472,19 @@
         "name": "blink_perf.dom/select-multiple-add.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "33.0",
+        "duration": "50.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "23.0",
+        "duration": "27.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
@@ -552,15 +492,15 @@
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
-        "duration": "61.0",
+        "duration": "80.0",
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
-        "duration": "59.0",
+        "duration": "73.0",
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "88.0",
+        "duration": "101.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
@@ -572,79 +512,95 @@
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "58.0",
+        "duration": "53.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
         "duration": "25.0",
-        "name": "blink_perf.image_decoder/decode-jpeg.html"
-    },
-    {
-        "duration": "56.0",
-        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
-    },
-    {
-        "duration": "33.0",
-        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
         "duration": "24.0",
-        "name": "blink_perf.image_decoder/decode-png-palette.html"
-    },
-    {
-        "duration": "45.0",
-        "name": "blink_perf.image_decoder/decode-png.html"
-    },
-    {
-        "duration": "37.0",
-        "name": "blink_perf.layout/ArabicLineLayout.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.layout/Shapes/MultipleShapes.html"
-    },
-    {
-        "duration": "18.0",
-        "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
-    },
-    {
-        "duration": "18.0",
-        "name": "blink_perf.layout/add-remove-inline-floats.html"
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
     },
     {
         "duration": "23.0",
-        "name": "blink_perf.layout/attach-inlines-2.html"
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
     },
     {
-        "duration": "19.0",
-        "name": "blink_perf.layout/attach-inlines.html"
+        "duration": "23.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
     },
     {
-        "duration": "21.0",
-        "name": "blink_perf.layout/auto-grid-lots-of-data.html"
+        "duration": "58.0",
+        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+    },
+    {
+        "duration": "17.0",
+        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
         "duration": "32.0",
+        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
+    },
+    {
+        "duration": "22.0",
+        "name": "blink_perf.image_decoder/decode-png-palette.html"
+    },
+    {
+        "duration": "49.0",
+        "name": "blink_perf.image_decoder/decode-png.html"
+    },
+    {
+        "duration": "29.0",
+        "name": "blink_perf.layout/ArabicLineLayout.html"
+    },
+    {
+        "duration": "17.0",
+        "name": "blink_perf.layout/Shapes/MultipleShapes.html"
+    },
+    {
+        "duration": "22.0",
+        "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
+    },
+    {
+        "duration": "20.0",
+        "name": "blink_perf.layout/add-remove-inline-floats.html"
+    },
+    {
+        "duration": "20.0",
+        "name": "blink_perf.layout/animate-abspos-deep.html"
+    },
+    {
+        "duration": "22.0",
+        "name": "blink_perf.layout/attach-inlines-2.html"
+    },
+    {
+        "duration": "20.0",
+        "name": "blink_perf.layout/attach-inlines.html"
+    },
+    {
+        "duration": "25.0",
+        "name": "blink_perf.layout/auto-grid-lots-of-data.html"
+    },
+    {
+        "duration": "124.0",
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "20.0",
+        "duration": "43.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
@@ -652,43 +608,59 @@
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "25.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
-        "duration": "14.0",
-        "name": "blink_perf.layout/character_fallback_aat.html"
-    },
-    {
-        "duration": "66.0",
+        "duration": "40.0",
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
-        "duration": "33.0",
+        "duration": "22.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "21.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "21.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "21.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "21.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "53.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
-        "duration": "21.0",
+        "duration": "31.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "25.0",
+        "duration": "29.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
-        "duration": "24.0",
+        "duration": "29.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/flexbox-column-nowrap.html"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
@@ -700,7 +672,7 @@
         "name": "blink_perf.layout/flexbox-row-nowrap.html"
     },
     {
-        "duration": "33.0",
+        "duration": "38.0",
         "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html"
     },
     {
@@ -712,7 +684,11 @@
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "55.0",
+        "duration": "59.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
+        "duration": "54.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
@@ -724,35 +700,35 @@
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
-        "duration": "36.0",
+        "duration": "28.0",
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
-        "duration": "22.0",
+        "duration": "25.0",
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
-        "duration": "25.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "32.0",
+        "duration": "29.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "35.0",
+        "duration": "29.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
-        "duration": "22.0",
+        "duration": "27.0",
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "20.0",
+        "duration": "35.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
@@ -764,51 +740,43 @@
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "66.0",
+        "duration": "83.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "65.0",
+        "duration": "84.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "82.0",
+        "duration": "83.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "203.0",
+        "duration": "122.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
-        "duration": "39.0",
+        "duration": "33.0",
         "name": "blink_perf.layout/latin-ebook.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.layout/layers_overlap_2d.html"
     },
     {
-        "duration": "23.0",
+        "duration": "25.0",
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "20.0",
-        "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
-    },
-    {
-        "duration": "35.0",
-        "name": "blink_perf.layout/line-layout-fit-content.html"
-    },
-    {
-        "duration": "67.0",
+        "duration": "79.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/line-layout-repeat-append-select.html"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/line-layout-repeat-append.html"
     },
     {
@@ -820,11 +788,11 @@
         "name": "blink_perf.layout/long-line-nowrap-collapse.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "27.0",
+        "duration": "31.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
@@ -832,23 +800,35 @@
         "name": "blink_perf.layout/many-block-children-auto-inline-size.html"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
+        "duration": "18.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
         "duration": "23.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "18.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "20.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
@@ -856,11 +836,15 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
+        "duration": "305.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
         "duration": "21.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
@@ -868,51 +852,51 @@
         "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/nested-grid.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "21.0",
+        "duration": "44.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "24.0",
+        "duration": "77.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
-        "duration": "22.0",
+        "duration": "77.0",
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "23.0",
+        "duration": "76.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "43.0",
+        "duration": "33.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "28.0",
+        "duration": "25.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "38.0",
+        "duration": "32.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
@@ -920,31 +904,31 @@
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "82.0",
+        "duration": "126.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "339.0",
+        "duration": "410.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
-        "duration": "18.0",
+        "duration": "30.0",
         "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.parser/innerHTML-setter-siblings.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.parser/innerHTML-setter.html"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "blink_perf.parser/query-selector-all-attribute-complex.html"
     },
     {
-        "duration": "18.0",
+        "duration": "22.0",
         "name": "blink_perf.parser/query-selector-all-attribute.html"
     },
     {
@@ -952,7 +936,7 @@
         "name": "blink_perf.parser/query-selector-all-class-deep.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
@@ -960,11 +944,11 @@
         "name": "blink_perf.parser/query-selector-all-class-last.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "blink_perf.parser/query-selector-all-deep.html"
     },
     {
@@ -972,7 +956,7 @@
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "blink_perf.parser/query-selector-all-id-deep.html"
     },
     {
@@ -980,7 +964,7 @@
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
-        "duration": "30.0",
+        "duration": "36.0",
         "name": "blink_perf.parser/query-selector-all-id-last.html"
     },
     {
@@ -988,39 +972,39 @@
         "name": "blink_perf.parser/query-selector-all-last.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
-        "duration": "28.0",
+        "duration": "25.0",
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
-        "duration": "34.0",
+        "duration": "40.0",
         "name": "blink_perf.parser/simple-url.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "49.0",
+        "duration": "51.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
-        "duration": "25.0",
+        "duration": "29.0",
         "name": "blink_perf.parser/url-parser.html"
     },
     {
@@ -1028,59 +1012,59 @@
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
-        "duration": "28.0",
+        "duration": "23.0",
         "name": "blink_perf.shadow_dom/declarative-api.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/imperative-api-appendchild.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.shadow_dom/imperative-api-assign.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html"
     },
     {
@@ -1092,47 +1076,47 @@
         "name": "blink_perf.shadow_dom/style-sheet-insert.html"
     },
     {
-        "duration": "15.0",
+        "duration": "18.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
-        "duration": "25.0",
+        "duration": "31.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html"
     },
     {
-        "duration": "43.0",
+        "duration": "56.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "52.0",
+        "duration": "67.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.shadow_dom/v0-content-reprojection.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html"
     },
     {
-        "duration": "46.0",
+        "duration": "65.0",
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-distribution.html"
     },
     {
@@ -1140,15 +1124,19 @@
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
-        "duration": "46.0",
+        "duration": "63.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "207.0",
+        "duration": "86.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
         "duration": "13.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
+    },
+    {
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
@@ -1156,67 +1144,71 @@
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
-        "duration": "16.0",
+        "duration": "13.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
+    },
+    {
+        "duration": "17.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-slot-append.html"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.shadow_dom/v1-small-deep-layout.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
-        "duration": "29.0",
+        "duration": "32.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
-        "duration": "26.0",
+        "duration": "30.0",
         "name": "blink_perf.svg/Bamboo.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.svg/Cactus.html"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
     {
@@ -1224,79 +1216,79 @@
         "name": "blink_perf.svg/Debian.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.svg/DropsOnABlade.html"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "blink_perf.svg/FlowerFromMyGarden.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.svg/FoodLeifLodahl.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.svg/France.html"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html"
     },
     {
-        "duration": "15.0",
+        "duration": "19.0",
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "29.0",
+        "duration": "33.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "blink_perf.svg/SvgNestedUse.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.svg/UnderTheSee.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.svg/WorldIso.html"
     },
     {
-        "duration": "26.0",
+        "duration": "29.0",
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
-        "duration": "61.0",
+        "duration": "55.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
-        "duration": "45.0",
+        "duration": "46.0",
         "name": "dromaeo/http://dromaeo.com?dom-modify"
     },
     {
-        "duration": "59.0",
+        "duration": "60.0",
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
@@ -1304,535 +1296,395 @@
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
-        "duration": "26.0",
+        "duration": "16.0",
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "653.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
-    },
-    {
         "duration": "190.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "loading.mobile/58Pic"
     },
     {
-        "duration": "45.0",
+        "duration": "27.0",
         "name": "loading.mobile/58Pic_3g"
     },
     {
-        "duration": "26.0",
+        "duration": "23.0",
         "name": "loading.mobile/Amazon"
     },
     {
-        "duration": "96.0",
+        "duration": "33.0",
         "name": "loading.mobile/Amazon_3g"
     },
     {
-        "duration": "29.0",
+        "duration": "26.0",
         "name": "loading.mobile/BOLNoticias"
     },
     {
-        "duration": "137.0",
+        "duration": "32.0",
         "name": "loading.mobile/BOLNoticias_3g"
     },
     {
-        "duration": "29.0",
+        "duration": "24.0",
         "name": "loading.mobile/Baidu"
     },
     {
-        "duration": "88.0",
+        "duration": "28.0",
         "name": "loading.mobile/Baidu_3g"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "loading.mobile/Bradesco"
     },
     {
-        "duration": "28.0",
+        "duration": "24.0",
         "name": "loading.mobile/Dailymotion"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "loading.mobile/Dawn"
     },
     {
-        "duration": "23.0",
+        "duration": "20.0",
         "name": "loading.mobile/DevOpera_cold"
     },
     {
-        "duration": "55.0",
+        "duration": "24.0",
         "name": "loading.mobile/DevOpera_cold_3g"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "loading.mobile/DevOpera_hot"
     },
     {
-        "duration": "37.0",
+        "duration": "26.0",
         "name": "loading.mobile/DevOpera_hot_3g"
     },
     {
-        "duration": "26.0",
+        "duration": "23.0",
         "name": "loading.mobile/DevOpera_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "23.0",
         "name": "loading.mobile/DevOpera_warm_3g"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "loading.mobile/Dramaq"
     },
     {
-        "duration": "178.0",
+        "duration": "60.0",
         "name": "loading.mobile/Dramaq_3g"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "loading.mobile/EnquiryIndianRail"
     },
     {
-        "duration": "44.0",
+        "duration": "22.0",
         "name": "loading.mobile/EnquiryIndianRail_3g"
     },
     {
-        "duration": "28.0",
+        "duration": "24.0",
         "name": "loading.mobile/Facebook"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.mobile/FlipBoard_cold"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "loading.mobile/FlipBoard_hot"
     },
     {
-        "duration": "41.0",
+        "duration": "36.0",
         "name": "loading.mobile/FlipBoard_hot_3g"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "loading.mobile/FlipBoard_warm"
     },
     {
-        "duration": "38.0",
+        "duration": "27.0",
         "name": "loading.mobile/FlipBoard_warm_3g"
     },
     {
-        "duration": "29.0",
+        "duration": "26.0",
         "name": "loading.mobile/FlipKart_cold"
     },
     {
-        "duration": "41.0",
+        "duration": "36.0",
         "name": "loading.mobile/FlipKart_hot"
     },
     {
-        "duration": "43.0",
+        "duration": "39.0",
         "name": "loading.mobile/FlipKart_hot_3g"
     },
     {
-        "duration": "35.0",
+        "duration": "32.0",
         "name": "loading.mobile/FlipKart_warm"
     },
     {
-        "duration": "22.0",
+        "duration": "0.0",
+        "name": "loading.mobile/FlipKart_warm_3g"
+    },
+    {
+        "duration": "20.0",
         "name": "loading.mobile/FranceTVInfo"
     },
     {
-        "duration": "65.0",
+        "duration": "26.0",
         "name": "loading.mobile/FranceTVInfo_3g"
     },
     {
-        "duration": "38.0",
+        "duration": "30.0",
         "name": "loading.mobile/GSShop"
     },
     {
-        "duration": "21.0",
+        "duration": "24.0",
         "name": "loading.mobile/GoogleBrazil"
     },
     {
-        "duration": "23.0",
+        "duration": "1.0",
+        "name": "loading.mobile/GoogleBrazil_3g"
+    },
+    {
+        "duration": "22.0",
         "name": "loading.mobile/GoogleIndia"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "loading.mobile/GoogleIndonesia"
     },
     {
-        "duration": "31.0",
+        "duration": "1.0",
+        "name": "loading.mobile/GoogleIndonesia_3g"
+    },
+    {
+        "duration": "24.0",
         "name": "loading.mobile/GoogleRedirectToGoogleJapan"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "loading.mobile/Hongkiat"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "loading.mobile/KapanLagi"
     },
     {
-        "duration": "43.0",
+        "duration": "31.0",
         "name": "loading.mobile/Kaskus"
     },
     {
-        "duration": "31.0",
+        "duration": "26.0",
         "name": "loading.mobile/LocalMoxie"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "loading.mobile/Locanto"
     },
     {
-        "duration": "33.0",
+        "duration": "19.0",
         "name": "loading.mobile/Locanto_3g"
     },
     {
-        "duration": "24.0",
+        "duration": "21.0",
         "name": "loading.mobile/OLX"
     },
     {
-        "duration": "76.0",
+        "duration": "31.0",
         "name": "loading.mobile/OLX_3g"
     },
     {
-        "duration": "27.0",
+        "duration": "20.0",
         "name": "loading.mobile/QQNews"
     },
     {
-        "duration": "78.0",
+        "duration": "28.0",
         "name": "loading.mobile/QQNews_3g"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "loading.mobile/SlideShare"
     },
     {
-        "duration": "76.0",
+        "duration": "27.0",
         "name": "loading.mobile/SlideShare_3g"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "loading.mobile/Suumo_cold"
     },
     {
-        "duration": "25.0",
+        "duration": "19.0",
         "name": "loading.mobile/Suumo_cold_3g"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "loading.mobile/Suumo_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "24.0",
         "name": "loading.mobile/Suumo_hot_3g"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "loading.mobile/Suumo_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "22.0",
         "name": "loading.mobile/Suumo_warm_3g"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "loading.mobile/Thairath"
     },
     {
-        "duration": "35.0",
+        "duration": "31.0",
         "name": "loading.mobile/TheStar"
     },
     {
-        "duration": "42.0",
+        "duration": "29.0",
         "name": "loading.mobile/TribunNews"
     },
     {
-        "duration": "20.0",
+        "duration": "0.0",
+        "name": "loading.mobile/TribunNews_3g"
+    },
+    {
+        "duration": "17.0",
         "name": "loading.mobile/Twitter"
     },
     {
-        "duration": "42.0",
+        "duration": "20.0",
         "name": "loading.mobile/Twitter_3g"
     },
     {
-        "duration": "25.0",
+        "duration": "21.0",
         "name": "loading.mobile/VoiceMemos_cold"
     },
     {
-        "duration": "49.0",
+        "duration": "23.0",
         "name": "loading.mobile/VoiceMemos_cold_3g"
     },
     {
-        "duration": "21.0",
+        "duration": "0.0",
+        "name": "loading.mobile/VoiceMemos_warm"
+    },
+    {
+        "duration": "19.0",
         "name": "loading.mobile/Wikipedia"
     },
     {
-        "duration": "76.0",
+        "duration": "22.0",
         "name": "loading.mobile/Wikipedia_3g"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "loading.mobile/YahooNews"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "loading.mobile/Youtube"
     },
     {
-        "duration": "175.0",
+        "duration": "24.0",
         "name": "loading.mobile/Youtube_3g"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "media.mobile/mse.html?media=aac_audio.mp4"
     },
     {
-        "duration": "40.0",
+        "duration": "38.0",
         "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
-        "duration": "41.0",
-        "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true"
-    },
-    {
-        "duration": "33.0",
+        "duration": "26.0",
         "name": "media.mobile/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "41.0",
-        "name": "media.mobile/video.html?src=crowd.ogg&type=audio"
+        "duration": "27.0",
+        "name": "media.mobile/mse.html?media=tulip2.vp9.webm"
     },
     {
-        "duration": "32.0",
-        "name": "media.mobile/video.html?src=crowd1080_vp9.webm"
-    },
-    {
-        "duration": "24.0",
-        "name": "media.mobile/video.html?src=crowd1080_vp9.webm&seek"
-    },
-    {
-        "duration": "31.0",
-        "name": "media.mobile/video.html?src=crowd720_vp9.webm"
-    },
-    {
-        "duration": "37.0",
+        "duration": "34.0",
         "name": "media.mobile/video.html?src=tulip2.m4a&type=audio"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "media.mobile/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
-        "duration": "43.0",
+        "duration": "39.0",
         "name": "media.mobile/video.html?src=tulip2.mp4"
     },
     {
-        "duration": "43.0",
+        "duration": "39.0",
         "name": "media.mobile/video.html?src=tulip2.mp4&busyjs"
     },
     {
-        "duration": "25.0",
-        "name": "media.mobile/video.html?src=tulip2.mp4&seek"
-    },
-    {
         "duration": "38.0",
         "name": "media.mobile/video.html?src=tulip2.ogg&type=audio"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek"
     },
     {
-        "duration": "45.0",
+        "duration": "39.0",
         "name": "media.mobile/video.html?src=tulip2.vp9.webm"
     },
     {
-        "duration": "35.0",
+        "duration": "33.0",
         "name": "media.mobile/video.html?src=tulip2.vp9.webm&background"
     },
     {
-        "duration": "33.0",
-        "name": "media.mobile/video.html?src=tulip2.vp9.webm&seek"
-    },
-    {
-        "duration": "47.0",
+        "duration": "40.0",
         "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
-        "duration": "37.0",
-        "name": "media.mobile/video.html?src=tulip2.wav&type=audio"
+        "duration": "136.0",
+        "name": "octane/Octane"
     },
     {
-        "duration": "20.0",
-        "name": "media.mobile/video.html?src=tulip2.wav&type=audio&seek"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "32.0",
-        "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "28.0",
-        "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "28.0",
-        "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "33.0",
-        "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "29.0",
-        "name": "memory.top_10_mobile/https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "28.0",
-        "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "32.0",
-        "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "144.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
-    },
-    {
-        "duration": "67.0",
-        "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom"
-    },
-    {
-        "duration": "70.0",
-        "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180"
-    },
-    {
-        "duration": "61.0",
-        "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404"
-    },
-    {
-        "duration": "78.0",
-        "name": "power.typical_10_mobile/http://m.facebook.com/barackobama"
-    },
-    {
-        "duration": "66.0",
-        "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486"
-    },
-    {
-        "duration": "66.0",
-        "name": "power.typical_10_mobile/http://m.ynet.co.il"
-    },
-    {
-        "duration": "68.0",
-        "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/"
-    },
-    {
-        "duration": "63.0",
-        "name": "power.typical_10_mobile/http://wapbaike.baidu.com/"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html"
-    },
-    {
-        "duration": "71.0",
-        "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html"
-    },
-    {
-        "duration": "67.0",
-        "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif"
-    },
-    {
-        "duration": "46.0",
+        "duration": "44.0",
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
-        "duration": "67.0",
+        "duration": "59.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
-        "duration": "69.0",
+        "duration": "68.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html"
     },
     {
-        "duration": "39.0",
+        "duration": "37.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "72.0",
+        "duration": "75.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
@@ -1840,15 +1692,15 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
-        "duration": "95.0",
+        "duration": "96.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
-        "duration": "101.0",
+        "duration": "88.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html"
     },
     {
-        "duration": "70.0",
+        "duration": "71.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
@@ -1856,7 +1708,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "91.0",
+        "duration": "94.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
@@ -1864,111 +1716,115 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "48.0",
+        "duration": "47.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
-        "duration": "89.0",
+        "duration": "91.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "36.0",
+        "duration": "33.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
-        "duration": "58.0",
+        "duration": "59.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "119.0",
+        "duration": "116.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
-        "duration": "85.0",
+        "duration": "87.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "61.0",
+        "duration": "71.0",
         "name": "rendering.mobile/accu_weather_2018"
     },
     {
-        "duration": "66.0",
+        "duration": "82.0",
         "name": "rendering.mobile/accu_weather_mobile_pinch_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "40.0",
         "name": "rendering.mobile/amazon_2018"
     },
     {
-        "duration": "38.0",
+        "duration": "36.0",
         "name": "rendering.mobile/amazon_mobile_2018"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "rendering.mobile/analog_clock_svg"
     },
     {
-        "duration": "56.0",
+        "duration": "73.0",
         "name": "rendering.mobile/androidpolice_mobile_2018"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "rendering.mobile/animometer_webgl"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "rendering.mobile/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/animometer_webgl_multi_draw"
     },
     {
-        "duration": "47.0",
+        "duration": "38.0",
         "name": "rendering.mobile/aquarium"
     },
     {
-        "duration": "45.0",
+        "duration": "42.0",
         "name": "rendering.mobile/background_color_animation"
     },
     {
-        "duration": "35.0",
+        "duration": "31.0",
         "name": "rendering.mobile/background_color_animation_with_gradient"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/baidu_mobile_2018"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "rendering.mobile/balls_css_key_frame_animations"
     },
     {
-        "duration": "33.0",
+        "duration": "1.0",
+        "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform"
+    },
+    {
+        "duration": "31.0",
         "name": "rendering.mobile/balls_css_transition_2_properties"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/balls_css_transition_40_properties"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "rendering.mobile/balls_css_transition_all_properties"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/balls_javascript_canvas"
     },
     {
@@ -1976,47 +1832,43 @@
         "name": "rendering.mobile/balls_javascript_css"
     },
     {
-        "duration": "51.0",
-        "name": "rendering.mobile/balls_svg_animations"
-    },
-    {
-        "duration": "39.0",
+        "duration": "37.0",
         "name": "rendering.mobile/basic_stream"
     },
     {
-        "duration": "35.0",
+        "duration": "99.0",
         "name": "rendering.mobile/bing_mobile_2018"
     },
     {
-        "duration": "32.0",
+        "duration": "28.0",
         "name": "rendering.mobile/blob"
     },
     {
-        "duration": "30.0",
+        "duration": "34.0",
         "name": "rendering.mobile/blogspot_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/blogspot_mobile_2018"
     },
     {
-        "duration": "38.0",
+        "duration": "36.0",
         "name": "rendering.mobile/blur_rotating_background"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/boingboing_mobile_2018"
     },
     {
-        "duration": "38.0",
+        "duration": "34.0",
         "name": "rendering.mobile/booking.com_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "rendering.mobile/booking.com_mobile_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/bouncing_balls_15"
     },
     {
@@ -2024,39 +1876,39 @@
         "name": "rendering.mobile/bouncing_balls_shadow"
     },
     {
-        "duration": "28.0",
+        "duration": "25.0",
         "name": "rendering.mobile/bouncing_clipped_rectangles"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/bouncing_gradient_circles"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "rendering.mobile/bouncing_png_images"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/bouncing_svg_images"
     },
     {
-        "duration": "40.0",
+        "duration": "38.0",
         "name": "rendering.mobile/camera_to_webgl"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/canvas_05000_pixels_per_second"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/canvas_10000_pixels_per_second"
     },
     {
-        "duration": "35.0",
+        "duration": "31.0",
         "name": "rendering.mobile/canvas_20000_pixels_per_second"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/canvas_40000_pixels_per_second"
     },
     {
@@ -2064,51 +1916,51 @@
         "name": "rendering.mobile/canvas_60000_pixels_per_second"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/canvas_75000_pixels_per_second"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "rendering.mobile/canvas_90000_pixels_per_second"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/canvas_animation_no_clear"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "rendering.mobile/canvas_arcs"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/canvas_font_cycler"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/canvas_lines"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/canvas_to_blob"
     },
     {
-        "duration": "46.0",
+        "duration": "51.0",
         "name": "rendering.mobile/capitolvolkswagen_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/card_expansion"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "rendering.mobile/card_expansion_animated"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/card_expansion_images_text"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/card_flying"
     },
     {
@@ -2116,27 +1968,27 @@
         "name": "rendering.mobile/cats_unscaled"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/cats_viewport_width"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "rendering.mobile/cc_poster_circle"
     },
     {
-        "duration": "37.0",
+        "duration": "33.0",
         "name": "rendering.mobile/cc_scroll_text_only"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "rendering.mobile/chip_tune"
     },
     {
-        "duration": "40.0",
+        "duration": "37.0",
         "name": "rendering.mobile/cnn_2018"
     },
     {
-        "duration": "47.0",
+        "duration": "50.0",
         "name": "rendering.mobile/cnn_article_mobile_2018"
     },
     {
@@ -2144,47 +1996,47 @@
         "name": "rendering.mobile/cnn_mobile_2018"
     },
     {
-        "duration": "60.0",
+        "duration": "55.0",
         "name": "rendering.mobile/cnn_mobile_pinch_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "37.0",
         "name": "rendering.mobile/cnn_pathological_2018"
     },
     {
-        "duration": "32.0",
+        "duration": "29.0",
         "name": "rendering.mobile/compositor_heavy_animation"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/crafty_mind"
     },
     {
-        "duration": "37.0",
+        "duration": "39.0",
         "name": "rendering.mobile/css_animations_many_keyframes"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/css_animations_simultaneous_inline_style"
     },
     {
-        "duration": "35.0",
+        "duration": "33.0",
         "name": "rendering.mobile/css_animations_simultaneous_new_element"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/css_animations_simultaneous_style_element"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/css_animations_simultaneous_updating_class"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "rendering.mobile/css_animations_staggered_infinite_iterations"
     },
     {
@@ -2196,19 +2048,19 @@
         "name": "rendering.mobile/css_animations_staggered_new_element"
     },
     {
-        "duration": "39.0",
+        "duration": "36.0",
         "name": "rendering.mobile/css_animations_staggered_style_element"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "rendering.mobile/css_animations_staggered_updating_class"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "rendering.mobile/css_animations_triggered_inline_style"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/css_animations_triggered_new_element"
     },
     {
@@ -2216,11 +2068,11 @@
         "name": "rendering.mobile/css_animations_triggered_style_element"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "rendering.mobile/css_animations_triggered_updating_class"
     },
     {
-        "duration": "36.0",
+        "duration": "37.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_0"
     },
     {
@@ -2232,7 +2084,7 @@
         "name": "rendering.mobile/css_opacity_plus_n_layers_99"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/css_transitions_inline_style"
     },
     {
@@ -2240,11 +2092,11 @@
         "name": "rendering.mobile/css_transitions_new_element"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "rendering.mobile/css_transitions_staggered_inline_style"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "rendering.mobile/css_transitions_staggered_new_element"
     },
     {
@@ -2268,7 +2120,7 @@
         "name": "rendering.mobile/css_transitions_triggered_new_element"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "rendering.mobile/css_transitions_triggered_style_element"
     },
     {
@@ -2276,39 +2128,39 @@
         "name": "rendering.mobile/css_transitions_triggered_updating_class"
     },
     {
-        "duration": "45.0",
+        "duration": "33.0",
         "name": "rendering.mobile/css_transitions_updating_class"
     },
     {
-        "duration": "33.0",
+        "duration": "30.0",
         "name": "rendering.mobile/css_value_type_color"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "rendering.mobile/css_value_type_filter"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/css_value_type_length"
     },
     {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "rendering.mobile/css_value_type_length_complex"
     },
     {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "rendering.mobile/css_value_type_length_simple"
     },
     {
-        "duration": "33.0",
+        "duration": "30.0",
         "name": "rendering.mobile/css_value_type_path"
     },
     {
-        "duration": "32.0",
+        "duration": "29.0",
         "name": "rendering.mobile/css_value_type_shadow"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/css_value_type_transform_complex"
     },
     {
@@ -2316,75 +2168,79 @@
         "name": "rendering.mobile/css_value_type_transform_simple"
     },
     {
-        "duration": "48.0",
+        "duration": "44.0",
         "name": "rendering.mobile/deviantart_mobile_2018"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "rendering.mobile/digg_mobile_2018"
     },
     {
-        "duration": "35.0",
+        "duration": "30.0",
         "name": "rendering.mobile/dynamic_cube_map"
     },
     {
-        "duration": "31.0",
+        "duration": "27.0",
         "name": "rendering.mobile/earth"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/ebay_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/ebay_mobile_2018"
     },
     {
-        "duration": "39.0",
+        "duration": "37.0",
         "name": "rendering.mobile/ebay_mobile_pinch_2018"
     },
     {
-        "duration": "42.0",
+        "duration": "36.0",
         "name": "rendering.mobile/ebay_scroll_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "30.0",
         "name": "rendering.mobile/effect_games"
     },
     {
-        "duration": "46.0",
+        "duration": "42.0",
         "name": "rendering.mobile/espn_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "34.0",
         "name": "rendering.mobile/espn_mobile_2018"
     },
     {
-        "duration": "35.0",
+        "duration": "32.0",
         "name": "rendering.mobile/espn_pathological_2018"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "rendering.mobile/extra_large_texture_uploads"
     },
     {
-        "duration": "32.0",
+        "duration": "41.0",
         "name": "rendering.mobile/facebook_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "rendering.mobile/facebook_mobile_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "0.0",
+        "name": "rendering.mobile/famo_us_twitter_demo"
+    },
+    {
+        "duration": "38.0",
         "name": "rendering.mobile/fill_shapes"
     },
     {
-        "duration": "31.0",
+        "duration": "34.0",
         "name": "rendering.mobile/filter_terrain_svg"
     },
     {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "rendering.mobile/flickr_scroll_2018"
     },
     {
@@ -2392,59 +2248,59 @@
         "name": "rendering.mobile/font_wipe"
     },
     {
-        "duration": "28.0",
+        "duration": "32.0",
         "name": "rendering.mobile/forecast.io_mobile_2018"
     },
     {
-        "duration": "31.0",
+        "duration": "63.0",
         "name": "rendering.mobile/gmail_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "rendering.mobile/google_calendar_2018"
     },
     {
-        "duration": "45.0",
+        "duration": "42.0",
         "name": "rendering.mobile/google_docs_2018"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/google_image_search_2018"
     },
     {
-        "duration": "35.0",
+        "duration": "32.0",
         "name": "rendering.mobile/google_image_search_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/google_news_ios"
     },
     {
-        "duration": "37.0",
+        "duration": "33.0",
         "name": "rendering.mobile/google_news_mobile_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "33.0",
         "name": "rendering.mobile/google_plus_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "34.0",
         "name": "rendering.mobile/google_plus_mobile_2018"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "rendering.mobile/google_search_mobile_pinch_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "26.0",
         "name": "rendering.mobile/google_web_search_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "rendering.mobile/google_web_search_mobile_2018"
     },
     {
-        "duration": "39.0",
+        "duration": "37.0",
         "name": "rendering.mobile/gsp.ro_mobile_2018"
     },
     {
@@ -2452,15 +2308,15 @@
         "name": "rendering.mobile/guardian_pathological_2018"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/guimark_vector_chart"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/gws_boogie_expansion"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "rendering.mobile/gws_google_expansion"
     },
     {
@@ -2468,11 +2324,11 @@
         "name": "rendering.mobile/hakim"
     },
     {
-        "duration": "29.0",
+        "duration": "26.0",
         "name": "rendering.mobile/horizontal_vertical_expansion"
     },
     {
-        "duration": "58.0",
+        "duration": "63.0",
         "name": "rendering.mobile/idle_power_animated_gif"
     },
     {
@@ -2480,27 +2336,27 @@
         "name": "rendering.mobile/idle_power_blank"
     },
     {
-        "duration": "46.0",
+        "duration": "44.0",
         "name": "rendering.mobile/idle_power_css_animation"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "rendering.mobile/idle_power_request_animation_frame"
     },
     {
-        "duration": "118.0",
+        "duration": "116.0",
         "name": "rendering.mobile/idle_power_set_timeout_long"
     },
     {
-        "duration": "47.0",
+        "duration": "45.0",
         "name": "rendering.mobile/idle_power_set_timetout"
     },
     {
-        "duration": "46.0",
+        "duration": "42.0",
         "name": "rendering.mobile/ie_chalkboard"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "rendering.mobile/ie_pirate_mark"
     },
     {
@@ -2508,7 +2364,7 @@
         "name": "rendering.mobile/infinite_scroll_element_n_layers_0"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_75"
     },
     {
@@ -2516,11 +2372,11 @@
         "name": "rendering.mobile/infinite_scroll_element_n_layers_99"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75"
     },
     {
@@ -2528,43 +2384,51 @@
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_0"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_75"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_99"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "rendering.mobile/infinite_scrolling"
     },
     {
-        "duration": "34.0",
+        "duration": "30.0",
         "name": "rendering.mobile/jarro_doverson"
     },
     {
-        "duration": "56.0",
+        "duration": "23.0",
+        "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "22.0",
+        "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "51.0",
         "name": "rendering.mobile/js_full_screen_invalidation"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_0"
     },
     {
-        "duration": "39.0",
+        "duration": "38.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_75"
     },
     {
-        "duration": "38.0",
+        "duration": "40.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_99"
     },
     {
-        "duration": "41.0",
+        "duration": "39.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_0"
     },
     {
@@ -2572,11 +2436,11 @@
         "name": "rendering.mobile/js_paint_plus_n_layers_75"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_99"
     },
     {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "rendering.mobile/js_poster_circle"
     },
     {
@@ -2584,23 +2448,23 @@
         "name": "rendering.mobile/js_scroll_text_only"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/kevs_3d"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/keyframed_animations"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "rendering.mobile/large_texture_uploads"
     },
     {
-        "duration": "48.0",
+        "duration": "46.0",
         "name": "rendering.mobile/latimes_pathological_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "36.0",
         "name": "rendering.mobile/linkedin_2018"
     },
     {
@@ -2608,31 +2472,43 @@
         "name": "rendering.mobile/linkedin_mobile_2018"
     },
     {
-        "duration": "68.0",
+        "duration": "63.0",
         "name": "rendering.mobile/linkedin_mobile_pinch_2018"
     },
     {
-        "duration": "57.0",
+        "duration": "60.0",
         "name": "rendering.mobile/linkedin_pathological_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/list_animation_simple"
     },
     {
-        "duration": "36.0",
+        "duration": "32.0",
         "name": "rendering.mobile/list_recycle_transform"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
+        "name": "rendering.mobile/main_0fps_impl_60fps"
+    },
+    {
+        "duration": "25.0",
+        "name": "rendering.mobile/main_30fps_impl_60fps"
+    },
+    {
+        "duration": "24.0",
+        "name": "rendering.mobile/main_60fps_impl_60fps"
+    },
+    {
+        "duration": "24.0",
         "name": "rendering.mobile/man_in_blue"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/many_images"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/many_planets_deep"
     },
     {
@@ -2640,71 +2516,75 @@
         "name": "rendering.mobile/maps_perf_test"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/mask_transition_animation"
     },
     {
-        "duration": "32.0",
+        "duration": "38.0",
         "name": "rendering.mobile/masonry"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "rendering.mobile/medium_texture_uploads"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "rendering.mobile/megi_dish"
     },
     {
-        "duration": "34.0",
+        "duration": "29.0",
         "name": "rendering.mobile/microsoft_asteroid_belt"
     },
     {
-        "duration": "29.0",
+        "duration": "0.0",
+        "name": "rendering.mobile/microsoft_fireflies"
+    },
+    {
+        "duration": "28.0",
         "name": "rendering.mobile/microsoft_fish_ie_tank"
     },
     {
-        "duration": "37.0",
+        "duration": "32.0",
         "name": "rendering.mobile/microsoft_performance"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/microsoft_snow"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/microsoft_speed_reading"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/microsoft_tweet_map"
     },
     {
-        "duration": "36.0",
+        "duration": "30.0",
         "name": "rendering.mobile/microsoft_video_city"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/microsoft_worker_fountains"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/mix_10k"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/mix_blend_mode_animation_difference"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/mix_blend_mode_animation_hue"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/mix_blend_mode_animation_screen"
     },
     {
@@ -2712,19 +2592,19 @@
         "name": "rendering.mobile/mlb_mobile_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/mobile_news_sandbox"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/motion_mark_canvas_fill_shapes"
     },
     {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "rendering.mobile/motion_mark_canvas_stroke_shapes"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "rendering.mobile/motionmark_anim_design_15"
     },
     {
@@ -2732,103 +2612,103 @@
         "name": "rendering.mobile/motionmark_anim_focus_25"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/motionmark_anim_images_50"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_anim_leaves_250"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_anim_multiply_175"
     },
     {
-        "duration": "32.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_anim_suits_125"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_html_composited_transforms_125"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/motionmark_html_focus_20_15"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/motionmark_html_leaves_20_50"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_circles_250"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50"
     },
     {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "rendering.mobile/new_tilings"
     },
     {
-        "duration": "35.0",
+        "duration": "33.0",
         "name": "rendering.mobile/no_op_raf"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/no_op_scroll"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "rendering.mobile/no_op_settimeout"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/no_op_touch_handler"
     },
     {
@@ -2836,79 +2716,83 @@
         "name": "rendering.mobile/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "44.0",
+        "duration": "41.0",
         "name": "rendering.mobile/nyc_gov_scroll_2018"
     },
     {
-        "duration": "51.0",
+        "duration": "48.0",
         "name": "rendering.mobile/nytimes_mobile_2018"
     },
     {
-        "duration": "51.0",
+        "duration": "47.0",
         "name": "rendering.mobile/nytimes_scroll_2018"
     },
     {
-        "duration": "35.0",
+        "duration": "51.0",
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "33.0",
+        "duration": "0.0",
+        "name": "rendering.mobile/paper_fab"
+    },
+    {
+        "duration": "28.0",
         "name": "rendering.mobile/parallax_effect"
     },
     {
-        "duration": "31.0",
+        "duration": "27.0",
         "name": "rendering.mobile/particles"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/pbs_pathological_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "22.0",
         "name": "rendering.mobile/physical_simulation"
     },
     {
-        "duration": "43.0",
+        "duration": "41.0",
         "name": "rendering.mobile/pinterest_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/put_get_image_data"
     },
     {
-        "duration": "34.0",
+        "duration": "31.0",
         "name": "rendering.mobile/raf"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/raf_animation"
     },
     {
-        "duration": "34.0",
+        "duration": "30.0",
         "name": "rendering.mobile/raf_canvas"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/raf_touch_animation"
     },
     {
-        "duration": "41.0",
+        "duration": "37.0",
         "name": "rendering.mobile/recode_pathological_2018"
     },
     {
-        "duration": "36.0",
+        "duration": "43.0",
         "name": "rendering.mobile/reddit_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/runway"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/san_angeles"
     },
     {
@@ -2920,39 +2804,39 @@
         "name": "rendering.mobile/second_batch_js_light"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/second_batch_js_medium"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "rendering.mobile/sfgate_mobile_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "37.0",
         "name": "rendering.mobile/silk_finance"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "rendering.mobile/simple_text_page"
     },
     {
-        "duration": "24.0",
+        "duration": "21.0",
         "name": "rendering.mobile/simple_touch_drag"
     },
     {
-        "duration": "41.0",
+        "duration": "39.0",
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "25.0",
         "name": "rendering.mobile/slide_drawer"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/smash_cat"
     },
     {
@@ -2960,19 +2844,19 @@
         "name": "rendering.mobile/spielzeugz"
     },
     {
-        "duration": "26.0",
+        "duration": "23.0",
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "42.0",
+        "duration": "34.0",
         "name": "rendering.mobile/stress_hidey_bars"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/stroke_shapes"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
@@ -2980,39 +2864,39 @@
         "name": "rendering.mobile/swipe_action"
     },
     {
-        "duration": "30.0",
+        "duration": "26.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/sync_scroll_offset"
     },
     {
-        "duration": "43.0",
+        "duration": "40.0",
         "name": "rendering.mobile/techcrunch_2018"
     },
     {
-        "duration": "43.0",
+        "duration": "40.0",
         "name": "rendering.mobile/techcrunch_mobile_2018"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "rendering.mobile/text_05000_pixels_per_second"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/text_10000_pixels_per_second"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/text_20000_pixels_per_second"
     },
     {
-        "duration": "33.0",
+        "duration": "30.0",
         "name": "rendering.mobile/text_40000_pixels_per_second"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/text_60000_pixels_per_second"
     },
     {
@@ -3024,11 +2908,11 @@
         "name": "rendering.mobile/text_90000_pixels_per_second"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -3040,19 +2924,19 @@
         "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/text_hover_05000_pixels_per_second"
     },
     {
@@ -3068,23 +2952,23 @@
         "name": "rendering.mobile/text_hover_40000_pixels_per_second"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/text_hover_60000_pixels_per_second"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/text_hover_90000_pixels_per_second"
     },
     {
-        "duration": "42.0",
+        "duration": "37.0",
         "name": "rendering.mobile/theverge_article_mobile_2018"
     },
     {
-        "duration": "43.0",
+        "duration": "40.0",
         "name": "rendering.mobile/theverge_mobile_2018"
     },
     {
@@ -3092,15 +2976,15 @@
         "name": "rendering.mobile/toggle_drawer"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "rendering.mobile/transform_transitions"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/transform_transitions_js_block"
     },
     {
@@ -3108,95 +2992,103 @@
         "name": "rendering.mobile/twitch_2018"
     },
     {
-        "duration": "52.0",
+        "duration": "42.0",
         "name": "rendering.mobile/twitch_mobile_pinch_2018"
     },
     {
-        "duration": "48.0",
+        "duration": "44.0",
         "name": "rendering.mobile/twitter_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "rendering.mobile/twitter_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/update_history_state"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/usatoday_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/vertical_expansion"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/web_animation_value_type_color"
     },
     {
-        "duration": "31.0",
+        "duration": "35.0",
         "name": "rendering.mobile/web_animation_value_type_length_3d"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "rendering.mobile/web_animation_value_type_length_complex"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/web_animation_value_type_length_simple"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/web_animation_value_type_path"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/web_animation_value_type_shadow"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "rendering.mobile/web_animation_value_type_transform_complex"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "rendering.mobile/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "52.0",
+        "duration": "53.0",
         "name": "rendering.mobile/web_animations_many_keyframes"
     },
     {
-        "duration": "31.0",
+        "duration": "33.0",
         "name": "rendering.mobile/web_animations_set_current_time"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/web_animations_simultaneous"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "rendering.mobile/web_animations_staggered_chaining"
     },
     {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "rendering.mobile/web_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "rendering.mobile/web_animations_staggered_triggering_page"
     },
     {
-        "duration": "46.0",
+        "duration": "22.0",
+        "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "22.0",
+        "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "45.0",
         "name": "rendering.mobile/wikipedia_2018"
     },
     {
-        "duration": "42.0",
+        "duration": "44.0",
         "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018"
     },
     {
-        "duration": "41.0",
+        "duration": "37.0",
         "name": "rendering.mobile/wikipedia_mobile_2018"
     },
     {
@@ -3204,207 +3096,103 @@
         "name": "rendering.mobile/wordpress_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "rendering.mobile/wordpress_mobile_2018"
     },
     {
-        "duration": "41.0",
+        "duration": "37.0",
         "name": "rendering.mobile/worldjournal_mobile_2018"
     },
     {
-        "duration": "47.0",
+        "duration": "48.0",
         "name": "rendering.mobile/wow_wiki_pathological_2018"
     },
     {
-        "duration": "66.0",
+        "duration": "64.0",
         "name": "rendering.mobile/wowwiki_mobile_2018"
     },
     {
-        "duration": "46.0",
+        "duration": "47.0",
         "name": "rendering.mobile/wsj_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/yahoo_answers_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/yahoo_answers_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "34.0",
         "name": "rendering.mobile/yahoo_news_mobile_2018"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "rendering.mobile/yahoo_sports_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/yahoo_sports_pathological_2018"
     },
     {
-        "duration": "38.0",
+        "duration": "36.0",
         "name": "rendering.mobile/youtube_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/youtube_mobile_2018"
     },
     {
-        "duration": "60.0",
-        "name": "rendering.mobile/yuv_decoding"
-    },
-    {
-        "duration": "60.0",
-        "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding"
-    },
-    {
-        "duration": "36.0",
+        "duration": "33.0",
         "name": "rendering.mobile/zdnet_pathological_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "rendering.mobile/zoom_in_animation"
     },
     {
-        "duration": "49.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018"
-    },
-    {
-        "duration": "32.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018"
-    },
-    {
-        "duration": "42.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018"
-    },
-    {
-        "duration": "45.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018"
-    },
-    {
-        "duration": "49.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018"
-    },
-    {
-        "duration": "79.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018"
-    },
-    {
-        "duration": "43.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "32.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018"
-    },
-    {
-        "duration": "46.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018"
-    },
-    {
-        "duration": "59.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "52.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "53.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018"
-    },
-    {
-        "duration": "48.0",
-        "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018"
-    },
-    {
-        "duration": "30.0",
-        "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018"
-    },
-    {
-        "duration": "40.0",
-        "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018"
-    },
-    {
-        "duration": "43.0",
-        "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018"
-    },
-    {
-        "duration": "47.0",
-        "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018"
-    },
-    {
-        "duration": "78.0",
-        "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018"
-    },
-    {
-        "duration": "41.0",
-        "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "31.0",
-        "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018"
-    },
-    {
-        "duration": "43.0",
-        "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018"
-    },
-    {
-        "duration": "58.0",
-        "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "51.0",
-        "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "49.0",
-        "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018"
-    },
-    {
-        "duration": "144.0",
+        "duration": "145.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "140.0",
+        "duration": "142.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "227.0",
+        "duration": "235.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "233.0",
+        "duration": "232.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "140.0",
+        "duration": "139.0",
         "name": "startup.mobile/cct:coldish:bbc"
     },
     {
-        "duration": "218.0",
+        "duration": "200.0",
         "name": "startup.mobile/intent:coldish:bbc"
     },
     {
-        "duration": "178.0",
+        "duration": "165.0",
         "name": "startup.mobile/intent:warm:bbc"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "55.0",
+        "duration": "25.0",
         "name": "system_health.common_mobile/background:news:nytimes"
     },
     {
-        "duration": "35.0",
+        "duration": "32.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
@@ -3412,287 +3200,291 @@
         "name": "system_health.common_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "108.0",
+        "duration": "102.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "64.0",
+        "duration": "60.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "63.0",
+        "duration": "54.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "91.0",
+        "duration": "85.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "134.0",
+        "duration": "113.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "207.0",
-        "name": "system_health.common_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "159.0",
+        "duration": "145.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "76.0",
+        "duration": "70.0",
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "74.0",
+        "duration": "0.0",
+        "name": "system_health.common_mobile/browse:news:globo"
+    },
+    {
+        "duration": "62.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
-        "duration": "77.0",
+        "duration": "70.0",
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "240.0",
+        "duration": "102.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "226.0",
         "name": "system_health.common_mobile/browse:news:toi"
     },
     {
-        "duration": "68.0",
+        "duration": "62.0",
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "42.0",
+        "duration": "123.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "33.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "98.0",
+        "duration": "31.0",
+        "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "89.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "48.0",
+        "duration": "0.0",
+        "name": "system_health.common_mobile/browse:shopping:avito"
+    },
+    {
+        "duration": "46.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "90.0",
+        "duration": "83.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "133.0",
+        "duration": "113.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "118.0",
+        "duration": "100.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "110.0",
+        "duration": "98.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "110.0",
+        "duration": "107.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "95.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "125.0",
-        "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "139.0",
+        "duration": "123.0",
         "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "70.0",
+        "duration": "64.0",
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "86.0",
+        "duration": "80.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "107.0",
+        "duration": "94.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "54.0",
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "36.0",
-        "name": "system_health.common_mobile/load:chrome:blank"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.common_mobile/load:games:bubbles"
+        "duration": "60.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
     },
     {
         "duration": "27.0",
-        "name": "system_health.common_mobile/load:games:lazors"
-    },
-    {
-        "duration": "42.0",
-        "name": "system_health.common_mobile/load:games:spychase"
-    },
-    {
-        "duration": "41.0",
-        "name": "system_health.common_mobile/load:games:spychase:2018"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.common_mobile/load:media:dailymotion"
-    },
-    {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/load:media:facebook_photos"
-    },
-    {
-        "duration": "37.0",
-        "name": "system_health.common_mobile/load:media:flickr:2018"
-    },
-    {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/load:media:google_images"
+        "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
         "duration": "31.0",
-        "name": "system_health.common_mobile/load:media:google_images:2018"
+        "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/load:media:imgur"
+        "duration": "26.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
     },
     {
-        "duration": "41.0",
-        "name": "system_health.common_mobile/load:media:imgur:2018"
+        "duration": "24.0",
+        "name": "system_health.common_mobile/load:games:lazors"
     },
     {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/load:media:soundcloud"
+        "duration": "38.0",
+        "name": "system_health.common_mobile/load:games:spychase:2018"
+    },
+    {
+        "duration": "30.0",
+        "name": "system_health.common_mobile/load:media:dailymotion"
+    },
+    {
+        "duration": "27.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos"
+    },
+    {
+        "duration": "25.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
+        "duration": "35.0",
+        "name": "system_health.common_mobile/load:media:flickr:2018"
     },
     {
         "duration": "28.0",
+        "name": "system_health.common_mobile/load:media:google_images:2018"
+    },
+    {
+        "duration": "36.0",
+        "name": "system_health.common_mobile/load:media:imgur:2018"
+    },
+    {
+        "duration": "26.0",
         "name": "system_health.common_mobile/load:media:soundcloud:2018"
     },
     {
         "duration": "29.0",
-        "name": "system_health.common_mobile/load:media:youtube"
-    },
-    {
-        "duration": "32.0",
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "62.0",
-        "name": "system_health.common_mobile/load:news:cnn"
-    },
-    {
-        "duration": "51.0",
+        "duration": "45.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "37.0",
+        "duration": "32.0",
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "36.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/load:news:nytimes"
     },
     {
-        "duration": "31.0",
+        "duration": "59.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "28.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
-        "duration": "33.0",
+        "duration": "30.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "31.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
-        "duration": "33.0",
-        "name": "system_health.common_mobile/load:news:wikipedia"
+        "duration": "30.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "34.0",
-        "name": "system_health.common_mobile/load:search:baidu"
-    },
-    {
-        "duration": "38.0",
+        "duration": "31.0",
         "name": "system_health.common_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.common_mobile/load:search:ebay"
-    },
-    {
-        "duration": "33.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:search:google"
-    },
-    {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "32.0",
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "29.0",
-        "name": "system_health.common_mobile/load:search:yandex"
-    },
-    {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.common_mobile/load:social:twitter"
     },
     {
+        "duration": "30.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
         "duration": "28.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
     {
-        "duration": "31.0",
+        "duration": "29.0",
         "name": "system_health.common_mobile/load:tools:drive"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.common_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "38.0",
+        "duration": "35.0",
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "31.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
-        "duration": "50.0",
+        "duration": "54.0",
         "name": "system_health.memory_mobile/background:news:nytimes"
     },
     {
@@ -3700,38 +3492,34 @@
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
-        "duration": "31.0",
+        "duration": "33.0",
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "44.0",
+        "duration": "48.0",
         "name": "system_health.memory_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "96.0",
+        "duration": "99.0",
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "56.0",
+        "duration": "62.0",
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "58.0",
+        "duration": "56.0",
         "name": "system_health.memory_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "81.0",
+        "duration": "82.0",
         "name": "system_health.memory_mobile/browse:media:imgur"
     },
     {
-        "duration": "96.0",
+        "duration": "97.0",
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
-        "duration": "165.0",
-        "name": "system_health.memory_mobile/browse:news:cnn"
-    },
-    {
         "duration": "121.0",
         "name": "system_health.memory_mobile/browse:news:cnn:2018"
     },
@@ -3740,34 +3528,50 @@
         "name": "system_health.memory_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "66.0",
+        "duration": "61.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
     {
-        "duration": "70.0",
+        "duration": "71.0",
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
-        "duration": "161.0",
+        "duration": "95.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "170.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "59.0",
+        "duration": "60.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "38.0",
+        "duration": "106.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "40.0",
         "name": "system_health.memory_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "76.0",
+        "duration": "36.0",
+        "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "77.0",
         "name": "system_health.memory_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "45.0",
+        "duration": "46.0",
         "name": "system_health.memory_mobile/browse:shopping:lazada"
     },
     {
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/browse:social:facebook"
+    },
+    {
         "duration": "87.0",
         "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll"
     },
@@ -3780,19 +3584,23 @@
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
-        "duration": "97.0",
-        "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll"
+        "duration": "103.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
     },
     {
-        "duration": "106.0",
+        "duration": "110.0",
         "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "64.0",
         "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
-        "duration": "71.0",
+        "duration": "81.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "70.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
@@ -3804,6 +3612,10 @@
         "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
+        "duration": "58.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
+    },
+    {
         "duration": "33.0",
         "name": "system_health.memory_mobile/load:chrome:blank"
     },
@@ -3812,67 +3624,51 @@
         "name": "system_health.memory_mobile/load:games:bubbles"
     },
     {
+        "duration": "32.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
+    },
+    {
         "duration": "30.0",
         "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
-        "duration": "36.0",
-        "name": "system_health.memory_mobile/load:games:spychase"
-    },
-    {
-        "duration": "37.0",
+        "duration": "39.0",
         "name": "system_health.memory_mobile/load:games:spychase:2018"
     },
     {
-        "duration": "36.0",
+        "duration": "38.0",
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "32.0",
+        "duration": "33.0",
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "38.0",
-        "name": "system_health.memory_mobile/load:media:flickr:2018"
+        "duration": "32.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/load:media:google_images"
+        "duration": "42.0",
+        "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
     {
         "duration": "35.0",
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/load:media:imgur"
-    },
-    {
-        "duration": "38.0",
+        "duration": "39.0",
         "name": "system_health.memory_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/load:media:soundcloud"
-    },
-    {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "system_health.memory_mobile/load:media:soundcloud:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/load:media:youtube"
-    },
-    {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "60.0",
-        "name": "system_health.memory_mobile/load:news:cnn"
-    },
-    {
-        "duration": "50.0",
+        "duration": "52.0",
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
@@ -3880,83 +3676,83 @@
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "system_health.memory_mobile/load:news:nytimes"
     },
     {
-        "duration": "33.0",
+        "duration": "58.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "32.0",
         "name": "system_health.memory_mobile/load:news:qq"
     },
     {
-        "duration": "33.0",
+        "duration": "34.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
-        "duration": "33.0",
+        "duration": "36.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "35.0",
         "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
         "duration": "34.0",
-        "name": "system_health.memory_mobile/load:news:wikipedia"
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
     },
     {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "41.0",
-        "name": "system_health.memory_mobile/load:search:baidu"
-    },
-    {
-        "duration": "41.0",
+        "duration": "39.0",
         "name": "system_health.memory_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/load:search:ebay"
-    },
-    {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/load:search:google"
-    },
-    {
         "duration": "34.0",
         "name": "system_health.memory_mobile/load:search:google:2018"
     },
     {
-        "duration": "38.0",
+        "duration": "36.0",
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.memory_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "29.0",
+        "duration": "31.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.memory_mobile/load:search:yandex"
+        "duration": "34.0",
+        "name": "system_health.memory_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/load:search:yandex:2018"
+        "duration": "33.0",
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
     },
     {
         "duration": "31.0",
         "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
-        "duration": "31.0",
+        "duration": "36.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
+    },
+    {
+        "duration": "30.0",
         "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:tools:drive"
     },
     {
@@ -3964,27 +3760,23 @@
         "name": "system_health.memory_mobile/load:tools:dropbox"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "38.0",
+        "duration": "40.0",
         "name": "system_health.memory_mobile/load:tools:weather"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "18.0",
+        "duration": "22.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
@@ -3992,163 +3784,79 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "48.0",
+        "duration": "0.0",
         "name": "v8.browsing_mobile-future/browse:chrome:omnibox"
     },
     {
-        "duration": "130.0",
-        "name": "v8.browsing_mobile-future/browse:media:facebook_photos"
-    },
-    {
-        "duration": "77.0",
-        "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "73.0",
-        "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019"
-    },
-    {
-        "duration": "106.0",
-        "name": "v8.browsing_mobile-future/browse:media:imgur"
-    },
-    {
-        "duration": "161.0",
+        "duration": "0.0",
         "name": "v8.browsing_mobile-future/browse:media:youtube"
     },
     {
-        "duration": "301.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn"
-    },
-    {
-        "duration": "219.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn:2018"
-    },
-    {
-        "duration": "88.0",
-        "name": "v8.browsing_mobile-future/browse:news:cricbuzz"
-    },
-    {
-        "duration": "87.0",
+        "duration": "1.0",
         "name": "v8.browsing_mobile-future/browse:news:qq"
     },
     {
-        "duration": "89.0",
-        "name": "v8.browsing_mobile-future/browse:news:reddit"
-    },
-    {
-        "duration": "278.0",
-        "name": "v8.browsing_mobile-future/browse:news:toi"
-    },
-    {
-        "duration": "81.0",
-        "name": "v8.browsing_mobile-future/browse:news:washingtonpost"
-    },
-    {
-        "duration": "34.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:2018"
-    },
-    {
-        "duration": "139.0",
+        "duration": "3.0",
         "name": "v8.browsing_mobile-future/browse:shopping:amazon"
     },
     {
-        "duration": "58.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:lazada"
+        "duration": "0.0",
+        "name": "v8.browsing_mobile-future/browse:social:instagram:2019"
     },
     {
-        "duration": "110.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook"
-    },
-    {
-        "duration": "150.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "141.0",
-        "name": "v8.browsing_mobile-future/browse:social:instagram"
-    },
-    {
-        "duration": "142.0",
-        "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll"
-    },
-    {
-        "duration": "160.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "183.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "81.0",
-        "name": "v8.browsing_mobile-future/browse:social:twitter"
-    },
-    {
-        "duration": "132.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018"
-    },
-    {
-        "duration": "73.0",
-        "name": "v8.browsing_mobile-future/browse:tools:maps"
-    },
-    {
-        "duration": "47.0",
+        "duration": "52.0",
         "name": "v8.browsing_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "128.0",
+        "duration": "131.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "75.0",
+        "duration": "78.0",
         "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "75.0",
+        "duration": "73.0",
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "104.0",
+        "duration": "106.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
-        "duration": "160.0",
+        "duration": "150.0",
         "name": "v8.browsing_mobile/browse:media:youtube"
     },
     {
-        "duration": "300.0",
-        "name": "v8.browsing_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "219.0",
+        "duration": "221.0",
         "name": "v8.browsing_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "87.0",
+        "duration": "89.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "85.0",
+        "duration": "83.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
     {
@@ -4156,51 +3864,59 @@
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "279.0",
-        "name": "v8.browsing_mobile/browse:news:toi"
+        "duration": "139.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
     },
     {
-        "duration": "80.0",
+        "duration": "82.0",
         "name": "v8.browsing_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "33.0",
+        "duration": "183.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "34.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "138.0",
+        "duration": "39.0",
+        "name": "v8.browsing_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "122.0",
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "110.0",
+        "duration": "107.0",
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "161.0",
+        "duration": "151.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "150.0",
+        "duration": "144.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "141.0",
+        "duration": "148.0",
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "143.0",
+        "duration": "157.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "135.0",
         "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "161.0",
-        "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "184.0",
+        "duration": "171.0",
         "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -4208,59 +3924,43 @@
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
-        "duration": "105.0",
+        "duration": "118.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "99.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "135.0",
+        "duration": "128.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "73.0",
+        "duration": "72.0",
         "name": "v8.browsing_mobile/browse:tools:maps"
     },
     {
-        "duration": "19.0",
-        "name": "wasm/AsmJsZenGarden"
+        "duration": "79.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
     },
     {
-        "duration": "39.0",
-        "name": "wasm/WasmSpaceBuggy"
-    },
-    {
-        "duration": "19.0",
-        "name": "wasm/WasmStylizedRenderer"
-    },
-    {
-        "duration": "19.0",
-        "name": "wasm/WasmSunTemple"
-    },
-    {
-        "duration": "29.0",
-        "name": "wasm/WasmTanks"
-    },
-    {
-        "duration": "19.0",
-        "name": "wasm/WasmZenGarden"
-    },
-    {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "webrtc/canvas_capture_peer_connection"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "webrtc/codec_constraints_h264"
     },
     {
-        "duration": "39.0",
+        "duration": "38.0",
         "name": "webrtc/codec_constraints_vp8"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "webrtc/codec_constraints_vp9"
     },
     {
@@ -4268,11 +3968,11 @@
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "47.0",
+        "duration": "43.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "72.0",
+        "duration": "54.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
index 8093eee7..b1bdbc5 100644
--- a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
@@ -1,14 +1,14 @@
 [
     {
-        "duration": "28.0",
+        "duration": "22.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "21.0",
+        "duration": "17.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "24.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
@@ -16,7 +16,7 @@
         "name": "blink_perf.bindings/create-element.html"
     },
     {
-        "duration": "12.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/document-implementation.html"
     },
     {
@@ -24,7 +24,7 @@
         "name": "blink_perf.bindings/dom-attribute-on-prototoype.html"
     },
     {
-        "duration": "22.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/first-child.html"
     },
     {
@@ -32,19 +32,19 @@
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "26.0",
+        "duration": "29.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "102.0",
+        "duration": "32.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "49.0",
+        "duration": "31.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
@@ -52,7 +52,7 @@
         "name": "blink_perf.bindings/get-element-by-id.html"
     },
     {
-        "duration": "17.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
@@ -60,95 +60,99 @@
         "name": "blink_perf.bindings/id-getter.html"
     },
     {
-        "duration": "12.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/id-setter.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/indexed-getter.html"
     },
     {
-        "duration": "14.0",
+        "duration": "23.0",
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "137.0",
+        "duration": "39.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
-        "duration": "59.0",
+        "duration": "32.0",
         "name": "blink_perf.bindings/node-type.html"
     },
     {
-        "duration": "16.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/post-message.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
-        "duration": "22.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/serialize-array.html"
     },
     {
-        "duration": "6.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/serialize-long-string.html"
     },
     {
-        "duration": "16.0",
+        "duration": "11.0",
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/serialize-nested-array.html"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "13.0",
+        "duration": "0.0",
+        "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
+    },
+    {
+        "duration": "16.0",
         "name": "blink_perf.bindings/typed-array-construct-from-array.html"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
-        "duration": "13.0",
+        "duration": "23.0",
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
-        "duration": "13.0",
+        "duration": "35.0",
         "name": "blink_perf.bindings/undefined-first-child.html"
     },
     {
-        "duration": "17.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/undefined-get-element-by-id.html"
     },
     {
-        "duration": "17.0",
+        "duration": "23.0",
         "name": "blink_perf.bindings/undefined-id-getter.html"
     },
     {
-        "duration": "15.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
@@ -160,203 +164,39 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "25.0",
+        "duration": "37.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "28.0",
+        "duration": "34.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
-        "duration": "39.0",
+        "duration": "46.0",
         "name": "blink_perf.bindings/worker-transferable-from-worker.html"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "blink_perf.bindings/worker-transferable-roundtrip.html"
     },
     {
-        "duration": "25.0",
+        "duration": "40.0",
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
-        "duration": "19.0",
+        "duration": "0.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF"
-    },
-    {
-        "duration": "15.0",
+        "duration": "0.0",
         "name": "blink_perf.canvas/docs-paper.html"
     },
     {
-        "duration": "11.0",
-        "name": "blink_perf.canvas/docs-paper_RAF.html?RAF"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/docs-resume.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.canvas/docs-table.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "26.0",
-        "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "22.0",
-        "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.canvas/drawimage.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
-    },
-    {
-        "duration": "18.0",
-        "name": "blink_perf.canvas/getImageData.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/getImageDataColorManaged.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/getImageData_RAF.html?RAF"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.canvas/gpu-bound-shader.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/putImageData.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
-    },
-    {
-        "duration": "21.0",
-        "name": "blink_perf.canvas/sheets-render.html"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/sheets-render_RAF.html?RAF"
-    },
-    {
-        "duration": "22.0",
-        "name": "blink_perf.canvas/toBlob_duration.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
-    },
-    {
-        "duration": "19.0",
-        "name": "blink_perf.canvas/toBlob_duration_jpeg.html"
-    },
-    {
-        "duration": "10.0",
-        "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
-    },
-    {
-        "duration": "10.0",
-        "name": "blink_perf.canvas/transferFromImageBitmap.html"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
-    },
-    {
-        "duration": "16.0",
-        "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "28.0",
-        "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "26.0",
-        "name": "blink_perf.canvas/upload-webgl-to-texture.html"
-    },
-    {
-        "duration": "37.0",
-        "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
@@ -364,15 +204,15 @@
         "name": "blink_perf.css/CSSPropertySetterGetter.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.css/CSSPropertySetterGetterMethods.html"
     },
     {
-        "duration": "13.0",
+        "duration": "20.0",
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
@@ -384,123 +224,91 @@
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "13.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "24.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
         "duration": "14.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "19.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "11.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "13.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "61.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "54.0",
+        "duration": "107.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "40.0",
+        "duration": "53.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "85.0",
+        "duration": "33.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
-        "duration": "24.0",
+        "duration": "15.0",
         "name": "blink_perf.dom/modify-element-classname.html"
     },
     {
@@ -508,7 +316,7 @@
         "name": "blink_perf.dom/modify-element-id.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.dom/modify-element-title.html"
     },
     {
@@ -520,31 +328,15 @@
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "22.0",
+        "duration": "13.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "38.0",
+        "duration": "19.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "15.0",
-        "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
-    },
-    {
-        "duration": "36.0",
-        "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
-    },
-    {
-        "duration": "35.0",
-        "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
-    },
-    {
-        "duration": "53.0",
+        "duration": "59.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
@@ -556,35 +348,47 @@
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "38.0",
+        "duration": "39.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "18.0",
-        "name": "blink_perf.image_decoder/decode-jpeg.html"
+        "duration": "17.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
-        "duration": "39.0",
+        "duration": "15.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
+    },
+    {
+        "duration": "18.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
+    },
+    {
+        "duration": "40.0",
         "name": "blink_perf.image_decoder/decode-lossless-webp.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
     },
     {
-        "duration": "17.0",
+        "duration": "21.0",
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "42.0",
+        "duration": "44.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "23.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
@@ -600,6 +404,10 @@
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
+        "duration": "9.0",
+        "name": "blink_perf.layout/animate-abspos-deep.html"
+    },
+    {
         "duration": "13.0",
         "name": "blink_perf.layout/attach-inlines-2.html"
     },
@@ -612,71 +420,87 @@
         "name": "blink_perf.layout/auto-grid-lots-of-data.html"
     },
     {
-        "duration": "26.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "21.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
-        "duration": "12.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "29.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
-        "duration": "11.0",
-        "name": "blink_perf.layout/character_fallback_aat.html"
-    },
-    {
-        "duration": "29.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
-        "duration": "17.0",
+        "duration": "12.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "16.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "18.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "30.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
-        "duration": "17.0",
+        "duration": "28.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "15.0",
+        "duration": "33.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
-        "duration": "15.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
-        "duration": "13.0",
+        "duration": "22.0",
         "name": "blink_perf.layout/flexbox-column-nowrap.html"
     },
     {
-        "duration": "22.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
-        "duration": "22.0",
+        "duration": "18.0",
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
-        "duration": "38.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/flexbox-lots-of-data.html"
     },
     {
@@ -684,31 +508,35 @@
         "name": "blink_perf.layout/flexbox-row-nowrap.html"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html"
     },
     {
-        "duration": "13.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/flexbox-row-wrap.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "42.0",
+        "duration": "19.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
+        "duration": "59.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
-        "duration": "42.0",
+        "duration": "49.0",
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
-        "duration": "23.0",
+        "duration": "37.0",
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
-        "duration": "15.0",
+        "duration": "47.0",
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
@@ -716,31 +544,31 @@
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "17.0",
+        "duration": "59.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "27.0",
+        "duration": "33.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
@@ -748,71 +576,63 @@
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "38.0",
+        "duration": "53.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "41.0",
+        "duration": "48.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "32.0",
+        "duration": "56.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "217.0",
+        "duration": "43.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
-        "duration": "30.0",
+        "duration": "32.0",
         "name": "blink_perf.layout/latin-ebook.html"
     },
     {
-        "duration": "18.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/layers_overlap_2d.html"
     },
     {
-        "duration": "10.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "8.0",
-        "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.layout/line-layout-fit-content.html"
-    },
-    {
-        "duration": "25.0",
+        "duration": "51.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/line-layout-repeat-append-select.html"
     },
     {
-        "duration": "22.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/line-layout-repeat-append.html"
     },
     {
-        "duration": "21.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/line-layout.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/long-line-nowrap-collapse.html"
     },
     {
-        "duration": "7.0",
+        "duration": "11.0",
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "13.0",
+        "duration": "37.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
-        "duration": "17.0",
+        "duration": "27.0",
         "name": "blink_perf.layout/many-block-children-auto-inline-size.html"
     },
     {
@@ -820,159 +640,167 @@
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "20.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html"
     },
     {
-        "duration": "12.0",
-        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+        "duration": "18.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
     },
     {
         "duration": "13.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+    },
+    {
+        "duration": "14.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
+        "duration": "95.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
         "duration": "12.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
-        "duration": "14.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html"
     },
     {
-        "duration": "23.0",
+        "duration": "36.0",
         "name": "blink_perf.layout/nested-grid.html"
     },
     {
-        "duration": "95.0",
+        "duration": "24.0",
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "12.0",
+        "duration": "71.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "16.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
-        "duration": "16.0",
+        "duration": "47.0",
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "11.0",
+        "duration": "44.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "20.0",
+        "duration": "13.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "15.0",
+        "duration": "11.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "15.0",
+        "duration": "11.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "22.0",
+        "duration": "13.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "19.0",
-        "name": "blink_perf.parser/css-parser-yui.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.parser/html-parser-threaded.html"
-    },
-    {
-        "duration": "51.0",
-        "name": "blink_perf.parser/html-parser.html"
-    },
-    {
-        "duration": "164.0",
-        "name": "blink_perf.parser/html5-full-render.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.parser/iframe-append-remove.html"
-    },
-    {
-        "duration": "19.0",
-        "name": "blink_perf.parser/innerHTML-setter-siblings.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.parser/innerHTML-setter.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.parser/query-selector-all-attribute-complex.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.parser/query-selector-all-attribute.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.parser/query-selector-all-class-deep.html"
-    },
-    {
-        "duration": "18.0",
-        "name": "blink_perf.parser/query-selector-all-class-first.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.parser/query-selector-all-class-last.html"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.parser/query-selector-all-class.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.parser/query-selector-all-deep.html"
-    },
-    {
-        "duration": "23.0",
-        "name": "blink_perf.parser/query-selector-all-first.html"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.parser/query-selector-all-id-deep.html"
-    },
-    {
-        "duration": "18.0",
-        "name": "blink_perf.parser/query-selector-all-id-first.html"
+        "duration": "0.0",
+        "name": "blink_perf.paint/appending-text.html"
     },
     {
         "duration": "16.0",
-        "name": "blink_perf.parser/query-selector-all-id-last.html"
+        "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
-        "duration": "23.0",
-        "name": "blink_perf.parser/query-selector-all-last.html"
+        "duration": "22.0",
+        "name": "blink_perf.parser/html-parser-threaded.html"
+    },
+    {
+        "duration": "98.0",
+        "name": "blink_perf.parser/html-parser.html"
+    },
+    {
+        "duration": "234.0",
+        "name": "blink_perf.parser/html5-full-render.html"
+    },
+    {
+        "duration": "16.0",
+        "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
         "duration": "14.0",
+        "name": "blink_perf.parser/innerHTML-setter-siblings.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.parser/innerHTML-setter.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.parser/query-selector-all-attribute-complex.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.parser/query-selector-all-attribute.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.parser/query-selector-all-class-first.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.parser/query-selector-all-class-last.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.parser/query-selector-all-class.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.parser/query-selector-all-first.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.parser/query-selector-all-id-first.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.parser/query-selector-all-id-last.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.parser/query-selector-all-last.html"
+    },
+    {
+        "duration": "13.0",
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
@@ -980,7 +808,7 @@
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
@@ -988,7 +816,7 @@
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
-        "duration": "18.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
@@ -1000,7 +828,7 @@
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
@@ -1008,15 +836,15 @@
         "name": "blink_perf.parser/url-parser.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.svg/Bamboo.html"
     },
     {
@@ -1052,7 +880,7 @@
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
@@ -1072,7 +900,7 @@
         "name": "blink_perf.svg/WorldIso.html"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
@@ -1080,31 +908,31 @@
         "name": "dromaeo/http://dromaeo.com?dom-modify"
     },
     {
-        "duration": "53.0",
+        "duration": "54.0",
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
-        "duration": "37.0",
+        "duration": "33.0",
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "89.0",
+        "duration": "80.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
-        "duration": "11.0",
+        "duration": "18.0",
         "name": "loading.mobile/58Pic"
     },
     {
-        "duration": "50.0",
+        "duration": "26.0",
         "name": "loading.mobile/58Pic_3g"
     },
     {
@@ -1112,51 +940,55 @@
         "name": "loading.mobile/Amazon"
     },
     {
-        "duration": "75.0",
+        "duration": "27.0",
         "name": "loading.mobile/Amazon_3g"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.mobile/BOLNoticias"
     },
     {
-        "duration": "94.0",
+        "duration": "22.0",
         "name": "loading.mobile/BOLNoticias_3g"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "loading.mobile/Baidu"
     },
     {
-        "duration": "69.0",
+        "duration": "20.0",
         "name": "loading.mobile/Baidu_3g"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.mobile/Bradesco"
     },
     {
-        "duration": "12.0",
-        "name": "loading.mobile/Dailymotion"
-    },
-    {
-        "duration": "15.0",
-        "name": "loading.mobile/Dawn"
+        "duration": "0.0",
+        "name": "loading.mobile/Bradesco_3g"
     },
     {
         "duration": "13.0",
+        "name": "loading.mobile/Dailymotion"
+    },
+    {
+        "duration": "14.0",
+        "name": "loading.mobile/Dawn"
+    },
+    {
+        "duration": "14.0",
         "name": "loading.mobile/DevOpera_cold"
     },
     {
-        "duration": "66.0",
+        "duration": "16.0",
         "name": "loading.mobile/DevOpera_cold_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.mobile/DevOpera_hot"
     },
     {
-        "duration": "61.0",
+        "duration": "21.0",
         "name": "loading.mobile/DevOpera_hot_3g"
     },
     {
@@ -1164,11 +996,11 @@
         "name": "loading.mobile/DevOpera_warm"
     },
     {
-        "duration": "62.0",
+        "duration": "21.0",
         "name": "loading.mobile/DevOpera_warm_3g"
     },
     {
-        "duration": "82.0",
+        "duration": "49.0",
         "name": "loading.mobile/Dramaq_3g"
     },
     {
@@ -1176,7 +1008,7 @@
         "name": "loading.mobile/EnquiryIndianRail"
     },
     {
-        "duration": "38.0",
+        "duration": "13.0",
         "name": "loading.mobile/EnquiryIndianRail_3g"
     },
     {
@@ -1184,31 +1016,35 @@
         "name": "loading.mobile/Facebook"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.mobile/FlipBoard_cold"
     },
     {
-        "duration": "17.0",
-        "name": "loading.mobile/FlipBoard_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "loading.mobile/FlipBoard_hot_3g"
-    },
-    {
-        "duration": "14.0",
-        "name": "loading.mobile/FlipBoard_warm"
-    },
-    {
-        "duration": "14.0",
-        "name": "loading.mobile/FlipKart_cold"
-    },
-    {
-        "duration": "21.0",
-        "name": "loading.mobile/FlipKart_hot"
+        "duration": "0.0",
+        "name": "loading.mobile/FlipBoard_cold_3g"
     },
     {
         "duration": "24.0",
+        "name": "loading.mobile/FlipBoard_hot"
+    },
+    {
+        "duration": "25.0",
+        "name": "loading.mobile/FlipBoard_hot_3g"
+    },
+    {
+        "duration": "13.0",
+        "name": "loading.mobile/FlipBoard_warm"
+    },
+    {
+        "duration": "13.0",
+        "name": "loading.mobile/FlipKart_cold"
+    },
+    {
+        "duration": "26.0",
+        "name": "loading.mobile/FlipKart_hot"
+    },
+    {
+        "duration": "41.0",
         "name": "loading.mobile/FlipKart_hot_3g"
     },
     {
@@ -1216,15 +1052,15 @@
         "name": "loading.mobile/FlipKart_warm"
     },
     {
-        "duration": "124.0",
+        "duration": "34.0",
         "name": "loading.mobile/FlipKart_warm_3g"
     },
     {
-        "duration": "16.0",
+        "duration": "11.0",
         "name": "loading.mobile/FranceTVInfo"
     },
     {
-        "duration": "62.0",
+        "duration": "19.0",
         "name": "loading.mobile/FranceTVInfo_3g"
     },
     {
@@ -1232,6 +1068,10 @@
         "name": "loading.mobile/GSShop"
     },
     {
+        "duration": "1.0",
+        "name": "loading.mobile/GSShop_3g"
+    },
+    {
         "duration": "9.0",
         "name": "loading.mobile/GoogleBrazil"
     },
@@ -1244,27 +1084,35 @@
         "name": "loading.mobile/GoogleIndonesia"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "loading.mobile/GoogleRedirectToGoogleJapan"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/Hongkiat"
+    },
+    {
         "duration": "13.0",
         "name": "loading.mobile/KapanLagi"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.mobile/Kaskus"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "loading.mobile/LocalMoxie"
     },
     {
-        "duration": "10.0",
+        "duration": "0.0",
+        "name": "loading.mobile/LocalMoxie_3g"
+    },
+    {
+        "duration": "12.0",
         "name": "loading.mobile/Locanto"
     },
     {
-        "duration": "34.0",
+        "duration": "13.0",
         "name": "loading.mobile/Locanto_3g"
     },
     {
@@ -1272,27 +1120,27 @@
         "name": "loading.mobile/OLX"
     },
     {
-        "duration": "14.0",
+        "duration": "10.0",
         "name": "loading.mobile/QQNews"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.mobile/SlideShare"
     },
     {
-        "duration": "82.0",
+        "duration": "25.0",
         "name": "loading.mobile/SlideShare_3g"
     },
     {
-        "duration": "10.0",
+        "duration": "33.0",
         "name": "loading.mobile/Suumo_cold"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.mobile/Suumo_cold_3g"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "loading.mobile/Suumo_hot"
     },
     {
@@ -1300,19 +1148,23 @@
         "name": "loading.mobile/Suumo_hot_3g"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "loading.mobile/Suumo_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "loading.mobile/Suumo_warm_3g"
     },
     {
-        "duration": "12.0",
+        "duration": "19.0",
         "name": "loading.mobile/Thairath"
     },
     {
-        "duration": "16.0",
+        "duration": "1.0",
+        "name": "loading.mobile/Thairath_3g"
+    },
+    {
+        "duration": "25.0",
         "name": "loading.mobile/TheStar"
     },
     {
@@ -1320,11 +1172,11 @@
         "name": "loading.mobile/TribunNews"
     },
     {
-        "duration": "9.0",
+        "duration": "13.0",
         "name": "loading.mobile/Twitter"
     },
     {
-        "duration": "51.0",
+        "duration": "14.0",
         "name": "loading.mobile/Twitter_3g"
     },
     {
@@ -1332,15 +1184,19 @@
         "name": "loading.mobile/VoiceMemos_cold"
     },
     {
-        "duration": "71.0",
+        "duration": "15.0",
         "name": "loading.mobile/VoiceMemos_cold_3g"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/VoiceMemos_warm_3g"
+    },
+    {
         "duration": "9.0",
         "name": "loading.mobile/Wikipedia"
     },
     {
-        "duration": "61.0",
+        "duration": "14.0",
         "name": "loading.mobile/Wikipedia_3g"
     },
     {
@@ -1352,135 +1208,11 @@
         "name": "loading.mobile/Youtube"
     },
     {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google"
+        "duration": "72.0",
+        "name": "octane/Octane"
     },
     {
         "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "21.0",
-        "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "23.0",
-        "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "21.0",
-        "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "21.0",
-        "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "81.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
-    },
-    {
-        "duration": "63.0",
-        "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom"
-    },
-    {
-        "duration": "67.0",
-        "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180"
-    },
-    {
-        "duration": "57.0",
-        "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://m.facebook.com/barackobama"
-    },
-    {
-        "duration": "62.0",
-        "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486"
-    },
-    {
-        "duration": "63.0",
-        "name": "power.typical_10_mobile/http://m.ynet.co.il"
-    },
-    {
-        "duration": "64.0",
-        "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/"
-    },
-    {
-        "duration": "59.0",
-        "name": "power.typical_10_mobile/http://wapbaike.baidu.com/"
-    },
-    {
-        "duration": "59.0",
-        "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html"
-    },
-    {
-        "duration": "62.0",
-        "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html"
-    },
-    {
-        "duration": "63.0",
-        "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif"
-    },
-    {
-        "duration": "19.0",
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
@@ -1488,7 +1220,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
@@ -1504,75 +1236,75 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "37.0",
+        "duration": "38.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
-        "duration": "51.0",
+        "duration": "50.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
-        "duration": "44.0",
+        "duration": "46.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html"
     },
     {
-        "duration": "35.0",
+        "duration": "37.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "58.0",
+        "duration": "43.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
-        "duration": "46.0",
+        "duration": "36.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html"
     },
     {
-        "duration": "33.0",
+        "duration": "28.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "30.0",
+        "duration": "24.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
-        "duration": "51.0",
+        "duration": "46.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "42.0",
+        "duration": "22.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "102.0",
+        "duration": "103.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
-        "duration": "59.0",
+        "duration": "48.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "48.0",
+        "duration": "31.0",
         "name": "rendering.mobile/accu_weather_2018"
     },
     {
@@ -1580,19 +1312,19 @@
         "name": "rendering.mobile/accu_weather_mobile_pinch_2018"
     },
     {
-        "duration": "31.0",
+        "duration": "37.0",
         "name": "rendering.mobile/amazon_2018"
     },
     {
-        "duration": "41.0",
+        "duration": "26.0",
         "name": "rendering.mobile/amazon_mobile_2018"
     },
     {
-        "duration": "52.0",
+        "duration": "28.0",
         "name": "rendering.mobile/analog_clock_svg"
     },
     {
-        "duration": "37.0",
+        "duration": "30.0",
         "name": "rendering.mobile/androidpolice_mobile_2018"
     },
     {
@@ -1600,91 +1332,91 @@
         "name": "rendering.mobile/animometer_webgl"
     },
     {
-        "duration": "47.0",
+        "duration": "39.0",
         "name": "rendering.mobile/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "66.0",
+        "duration": "65.0",
         "name": "rendering.mobile/animometer_webgl_multi_draw"
     },
     {
-        "duration": "45.0",
+        "duration": "31.0",
         "name": "rendering.mobile/aquarium"
     },
     {
-        "duration": "31.0",
+        "duration": "25.0",
         "name": "rendering.mobile/background_color_animation"
     },
     {
-        "duration": "43.0",
+        "duration": "49.0",
         "name": "rendering.mobile/background_color_animation_with_gradient"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "rendering.mobile/baidu_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "29.0",
         "name": "rendering.mobile/balls_css_key_frame_animations"
     },
     {
-        "duration": "21.0",
+        "duration": "27.0",
         "name": "rendering.mobile/balls_css_transition_2_properties"
     },
     {
-        "duration": "21.0",
+        "duration": "27.0",
         "name": "rendering.mobile/balls_css_transition_40_properties"
     },
     {
-        "duration": "21.0",
+        "duration": "30.0",
         "name": "rendering.mobile/balls_css_transition_all_properties"
     },
     {
-        "duration": "35.0",
+        "duration": "40.0",
         "name": "rendering.mobile/balls_javascript_canvas"
     },
     {
-        "duration": "21.0",
+        "duration": "38.0",
         "name": "rendering.mobile/balls_javascript_css"
     },
     {
-        "duration": "26.0",
+        "duration": "0.0",
         "name": "rendering.mobile/balls_svg_animations"
     },
     {
-        "duration": "23.0",
+        "duration": "36.0",
         "name": "rendering.mobile/basic_stream"
     },
     {
-        "duration": "26.0",
+        "duration": "32.0",
         "name": "rendering.mobile/bing_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "32.0",
         "name": "rendering.mobile/blob"
     },
     {
-        "duration": "56.0",
+        "duration": "25.0",
         "name": "rendering.mobile/blogspot_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "30.0",
         "name": "rendering.mobile/blogspot_mobile_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "16.0",
         "name": "rendering.mobile/blur_rotating_background"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "rendering.mobile/boingboing_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "16.0",
         "name": "rendering.mobile/booking.com_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "25.0",
         "name": "rendering.mobile/booking.com_mobile_2018"
     },
     {
@@ -1692,51 +1424,63 @@
         "name": "rendering.mobile/bouncing_balls_15"
     },
     {
-        "duration": "15.0",
+        "duration": "0.0",
+        "name": "rendering.mobile/bouncing_balls_shadow"
+    },
+    {
+        "duration": "17.0",
         "name": "rendering.mobile/bouncing_clipped_rectangles"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/bouncing_gradient_circles"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "rendering.mobile/bouncing_png_images"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "rendering.mobile/bouncing_svg_images"
     },
     {
-        "duration": "23.0",
+        "duration": "31.0",
         "name": "rendering.mobile/camera_to_webgl"
     },
     {
-        "duration": "29.0",
+        "duration": "18.0",
         "name": "rendering.mobile/canvas_05000_pixels_per_second"
     },
     {
-        "duration": "16.0",
-        "name": "rendering.mobile/canvas_animation_no_clear"
+        "duration": "0.0",
+        "name": "rendering.mobile/canvas_10000_pixels_per_second"
     },
     {
-        "duration": "24.0",
-        "name": "rendering.mobile/canvas_arcs"
-    },
-    {
-        "duration": "28.0",
-        "name": "rendering.mobile/canvas_font_cycler"
+        "duration": "0.0",
+        "name": "rendering.mobile/canvas_60000_pixels_per_second"
     },
     {
         "duration": "19.0",
-        "name": "rendering.mobile/canvas_lines"
+        "name": "rendering.mobile/canvas_animation_no_clear"
     },
     {
         "duration": "15.0",
+        "name": "rendering.mobile/canvas_arcs"
+    },
+    {
+        "duration": "27.0",
+        "name": "rendering.mobile/canvas_font_cycler"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.mobile/canvas_lines"
+    },
+    {
+        "duration": "25.0",
         "name": "rendering.mobile/canvas_to_blob"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/capitolvolkswagen_mobile_2018"
     },
     {
@@ -1748,7 +1492,7 @@
         "name": "rendering.mobile/card_expansion_animated"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "rendering.mobile/card_expansion_images_text"
     },
     {
@@ -1760,115 +1504,111 @@
         "name": "rendering.mobile/cats_unscaled"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.mobile/cats_viewport_width"
     },
     {
-        "duration": "25.0",
+        "duration": "27.0",
         "name": "rendering.mobile/cc_poster_circle"
     },
     {
-        "duration": "25.0",
+        "duration": "22.0",
         "name": "rendering.mobile/cc_scroll_text_only"
     },
     {
-        "duration": "33.0",
+        "duration": "24.0",
         "name": "rendering.mobile/chip_tune"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "rendering.mobile/cnn_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "33.0",
         "name": "rendering.mobile/cnn_article_mobile_2018"
     },
     {
-        "duration": "28.0",
-        "name": "rendering.mobile/cnn_mobile_2018"
-    },
-    {
         "duration": "35.0",
-        "name": "rendering.mobile/cnn_mobile_pinch_2018"
+        "name": "rendering.mobile/cnn_mobile_2018"
     },
     {
         "duration": "19.0",
         "name": "rendering.mobile/cnn_pathological_2018"
     },
     {
-        "duration": "36.0",
+        "duration": "23.0",
         "name": "rendering.mobile/compositor_heavy_animation"
     },
     {
-        "duration": "16.0",
+        "duration": "20.0",
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "17.0",
+        "duration": "44.0",
         "name": "rendering.mobile/crafty_mind"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_animations_many_keyframes"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/css_animations_simultaneous_inline_style"
     },
     {
-        "duration": "26.0",
+        "duration": "20.0",
         "name": "rendering.mobile/css_animations_simultaneous_new_element"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_simultaneous_style_element"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/css_animations_simultaneous_updating_class"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "28.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_animations_staggered_inline_style"
     },
     {
-        "duration": "40.0",
+        "duration": "27.0",
         "name": "rendering.mobile/css_animations_staggered_new_element"
     },
     {
-        "duration": "77.0",
+        "duration": "47.0",
         "name": "rendering.mobile/css_animations_staggered_style_element"
     },
     {
-        "duration": "47.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_animations_staggered_updating_class"
     },
     {
-        "duration": "38.0",
+        "duration": "29.0",
         "name": "rendering.mobile/css_animations_triggered_inline_style"
     },
     {
-        "duration": "54.0",
+        "duration": "39.0",
         "name": "rendering.mobile/css_animations_triggered_new_element"
     },
     {
-        "duration": "59.0",
+        "duration": "53.0",
         "name": "rendering.mobile/css_animations_triggered_style_element"
     },
     {
-        "duration": "42.0",
+        "duration": "32.0",
         "name": "rendering.mobile/css_animations_triggered_updating_class"
     },
     {
-        "duration": "24.0",
+        "duration": "29.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_0"
     },
     {
-        "duration": "23.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_75"
     },
     {
@@ -1876,115 +1616,115 @@
         "name": "rendering.mobile/css_opacity_plus_n_layers_99"
     },
     {
-        "duration": "26.0",
+        "duration": "35.0",
         "name": "rendering.mobile/css_transitions_inline_style"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "rendering.mobile/css_transitions_new_element"
     },
     {
-        "duration": "31.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_transitions_staggered_inline_style"
     },
     {
-        "duration": "22.0",
+        "duration": "25.0",
         "name": "rendering.mobile/css_transitions_staggered_new_element"
     },
     {
-        "duration": "41.0",
+        "duration": "53.0",
         "name": "rendering.mobile/css_transitions_staggered_style_element"
     },
     {
-        "duration": "26.0",
+        "duration": "30.0",
         "name": "rendering.mobile/css_transitions_staggered_updating_class"
     },
     {
-        "duration": "30.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_transitions_style_element"
     },
     {
-        "duration": "28.0",
+        "duration": "31.0",
         "name": "rendering.mobile/css_transitions_triggered_inline_style"
     },
     {
-        "duration": "46.0",
+        "duration": "43.0",
         "name": "rendering.mobile/css_transitions_triggered_new_element"
     },
     {
-        "duration": "42.0",
+        "duration": "48.0",
         "name": "rendering.mobile/css_transitions_triggered_style_element"
     },
     {
-        "duration": "60.0",
+        "duration": "40.0",
         "name": "rendering.mobile/css_transitions_triggered_updating_class"
     },
     {
-        "duration": "39.0",
+        "duration": "44.0",
         "name": "rendering.mobile/css_transitions_updating_class"
     },
     {
-        "duration": "27.0",
+        "duration": "30.0",
         "name": "rendering.mobile/css_value_type_color"
     },
     {
-        "duration": "48.0",
+        "duration": "53.0",
         "name": "rendering.mobile/css_value_type_filter"
     },
     {
-        "duration": "39.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_value_type_length"
     },
     {
-        "duration": "60.0",
+        "duration": "72.0",
         "name": "rendering.mobile/css_value_type_length_complex"
     },
     {
-        "duration": "27.0",
+        "duration": "38.0",
         "name": "rendering.mobile/css_value_type_length_simple"
     },
     {
-        "duration": "41.0",
+        "duration": "38.0",
         "name": "rendering.mobile/css_value_type_path"
     },
     {
-        "duration": "59.0",
+        "duration": "40.0",
         "name": "rendering.mobile/css_value_type_shadow"
     },
     {
-        "duration": "29.0",
+        "duration": "34.0",
         "name": "rendering.mobile/css_value_type_transform_complex"
     },
     {
-        "duration": "30.0",
+        "duration": "20.0",
         "name": "rendering.mobile/css_value_type_transform_simple"
     },
     {
-        "duration": "24.0",
+        "duration": "32.0",
         "name": "rendering.mobile/deviantart_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "34.0",
         "name": "rendering.mobile/digg_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "28.0",
         "name": "rendering.mobile/dynamic_cube_map"
     },
     {
-        "duration": "43.0",
+        "duration": "57.0",
         "name": "rendering.mobile/earth"
     },
     {
-        "duration": "24.0",
+        "duration": "30.0",
         "name": "rendering.mobile/ebay_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "23.0",
         "name": "rendering.mobile/ebay_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "34.0",
         "name": "rendering.mobile/ebay_mobile_pinch_2018"
     },
     {
@@ -1992,31 +1732,31 @@
         "name": "rendering.mobile/ebay_scroll_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "rendering.mobile/espn_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "32.0",
         "name": "rendering.mobile/espn_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "rendering.mobile/espn_pathological_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/extra_large_texture_uploads"
     },
     {
-        "duration": "21.0",
+        "duration": "30.0",
         "name": "rendering.mobile/facebook_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "27.0",
         "name": "rendering.mobile/facebook_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "27.0",
         "name": "rendering.mobile/fill_shapes"
     },
     {
@@ -2024,27 +1764,27 @@
         "name": "rendering.mobile/filter_terrain_svg"
     },
     {
-        "duration": "24.0",
+        "duration": "27.0",
         "name": "rendering.mobile/flickr_scroll_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "23.0",
         "name": "rendering.mobile/font_wipe"
     },
     {
-        "duration": "29.0",
+        "duration": "26.0",
         "name": "rendering.mobile/forecast.io_mobile_2018"
     },
     {
-        "duration": "32.0",
+        "duration": "44.0",
         "name": "rendering.mobile/gmail_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/google_calendar_2018"
     },
     {
-        "duration": "34.0",
+        "duration": "35.0",
         "name": "rendering.mobile/google_docs_2018"
     },
     {
@@ -2060,39 +1800,35 @@
         "name": "rendering.mobile/google_news_ios"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/google_news_mobile_2018"
-    },
-    {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "rendering.mobile/google_plus_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "32.0",
         "name": "rendering.mobile/google_plus_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "22.0",
         "name": "rendering.mobile/google_search_mobile_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "rendering.mobile/google_web_search_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "32.0",
         "name": "rendering.mobile/google_web_search_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "29.0",
         "name": "rendering.mobile/gsp.ro_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "32.0",
         "name": "rendering.mobile/guardian_pathological_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "37.0",
         "name": "rendering.mobile/guimark_vector_chart"
     },
     {
@@ -2100,11 +1836,11 @@
         "name": "rendering.mobile/gws_boogie_expansion"
     },
     {
-        "duration": "17.0",
+        "duration": "26.0",
         "name": "rendering.mobile/gws_google_expansion"
     },
     {
-        "duration": "16.0",
+        "duration": "24.0",
         "name": "rendering.mobile/hakim"
     },
     {
@@ -2112,23 +1848,23 @@
         "name": "rendering.mobile/horizontal_vertical_expansion"
     },
     {
-        "duration": "44.0",
+        "duration": "38.0",
         "name": "rendering.mobile/idle_power_animated_gif"
     },
     {
-        "duration": "31.0",
+        "duration": "34.0",
         "name": "rendering.mobile/idle_power_blank"
     },
     {
-        "duration": "96.0",
+        "duration": "36.0",
         "name": "rendering.mobile/idle_power_css_animation"
     },
     {
-        "duration": "42.0",
+        "duration": "36.0",
         "name": "rendering.mobile/idle_power_request_animation_frame"
     },
     {
-        "duration": "111.0",
+        "duration": "109.0",
         "name": "rendering.mobile/idle_power_set_timeout_long"
     },
     {
@@ -2136,23 +1872,23 @@
         "name": "rendering.mobile/idle_power_set_timetout"
     },
     {
-        "duration": "60.0",
+        "duration": "57.0",
         "name": "rendering.mobile/ie_chalkboard"
     },
     {
-        "duration": "44.0",
+        "duration": "26.0",
         "name": "rendering.mobile/ie_pirate_mark"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_0"
     },
     {
-        "duration": "27.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_75"
     },
     {
-        "duration": "22.0",
+        "duration": "28.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_99"
     },
     {
@@ -2160,15 +1896,15 @@
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0"
     },
     {
-        "duration": "22.0",
+        "duration": "36.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99"
     },
     {
-        "duration": "27.0",
+        "duration": "21.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_0"
     },
     {
@@ -2176,59 +1912,71 @@
         "name": "rendering.mobile/infinite_scroll_root_n_layers_75"
     },
     {
-        "duration": "27.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_99"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scrolling"
     },
     {
-        "duration": "20.0",
+        "duration": "23.0",
         "name": "rendering.mobile/jarro_doverson"
     },
     {
-        "duration": "47.0",
+        "duration": "17.0",
+        "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "40.0",
         "name": "rendering.mobile/js_full_screen_invalidation"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_0"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_75"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_99"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_0"
     },
     {
-        "duration": "36.0",
+        "duration": "28.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_75"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_99"
     },
     {
-        "duration": "45.0",
+        "duration": "42.0",
         "name": "rendering.mobile/js_poster_circle"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "rendering.mobile/js_scroll_text_only"
     },
     {
-        "duration": "25.0",
+        "duration": "0.0",
+        "name": "rendering.mobile/kevs_3d"
+    },
+    {
+        "duration": "23.0",
         "name": "rendering.mobile/keyframed_animations"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "rendering.mobile/large_texture_uploads"
     },
     {
@@ -2240,15 +1988,15 @@
         "name": "rendering.mobile/linkedin_2018"
     },
     {
-        "duration": "49.0",
+        "duration": "60.0",
         "name": "rendering.mobile/linkedin_mobile_2018"
     },
     {
-        "duration": "40.0",
+        "duration": "50.0",
         "name": "rendering.mobile/linkedin_mobile_pinch_2018"
     },
     {
-        "duration": "37.0",
+        "duration": "39.0",
         "name": "rendering.mobile/linkedin_pathological_2018"
     },
     {
@@ -2256,91 +2004,103 @@
         "name": "rendering.mobile/list_animation_simple"
     },
     {
-        "duration": "31.0",
+        "duration": "34.0",
         "name": "rendering.mobile/list_recycle_transform"
     },
     {
+        "duration": "14.0",
+        "name": "rendering.mobile/main_0fps_impl_60fps"
+    },
+    {
+        "duration": "21.0",
+        "name": "rendering.mobile/main_30fps_impl_60fps"
+    },
+    {
         "duration": "25.0",
-        "name": "rendering.mobile/man_in_blue"
-    },
-    {
-        "duration": "46.0",
-        "name": "rendering.mobile/many_images"
-    },
-    {
-        "duration": "29.0",
-        "name": "rendering.mobile/many_planets_deep"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/mask_transition_animation"
-    },
-    {
-        "duration": "41.0",
-        "name": "rendering.mobile/masonry"
-    },
-    {
-        "duration": "27.0",
-        "name": "rendering.mobile/medium_texture_uploads"
-    },
-    {
-        "duration": "29.0",
-        "name": "rendering.mobile/megi_dish"
-    },
-    {
-        "duration": "19.0",
-        "name": "rendering.mobile/microsoft_asteroid_belt"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/microsoft_fish_ie_tank"
-    },
-    {
-        "duration": "27.0",
-        "name": "rendering.mobile/microsoft_performance"
-    },
-    {
-        "duration": "32.0",
-        "name": "rendering.mobile/microsoft_snow"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.mobile/microsoft_speed_reading"
-    },
-    {
-        "duration": "27.0",
-        "name": "rendering.mobile/microsoft_tweet_map"
+        "name": "rendering.mobile/main_60fps_impl_60fps"
     },
     {
         "duration": "22.0",
-        "name": "rendering.mobile/microsoft_video_city"
+        "name": "rendering.mobile/man_in_blue"
     },
     {
-        "duration": "26.0",
-        "name": "rendering.mobile/microsoft_worker_fountains"
+        "duration": "22.0",
+        "name": "rendering.mobile/many_images"
     },
     {
-        "duration": "16.0",
-        "name": "rendering.mobile/mix_10k"
+        "duration": "22.0",
+        "name": "rendering.mobile/many_planets_deep"
+    },
+    {
+        "duration": "0.0",
+        "name": "rendering.mobile/maps_perf_test"
+    },
+    {
+        "duration": "20.0",
+        "name": "rendering.mobile/mask_transition_animation"
+    },
+    {
+        "duration": "33.0",
+        "name": "rendering.mobile/masonry"
     },
     {
         "duration": "31.0",
-        "name": "rendering.mobile/mix_blend_mode_animation_difference"
-    },
-    {
-        "duration": "51.0",
-        "name": "rendering.mobile/mix_blend_mode_animation_hue"
+        "name": "rendering.mobile/medium_texture_uploads"
     },
     {
         "duration": "32.0",
-        "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation"
+        "name": "rendering.mobile/megi_dish"
     },
     {
-        "duration": "25.0",
-        "name": "rendering.mobile/mix_blend_mode_animation_screen"
+        "duration": "24.0",
+        "name": "rendering.mobile/microsoft_asteroid_belt"
+    },
+    {
+        "duration": "23.0",
+        "name": "rendering.mobile/microsoft_fish_ie_tank"
+    },
+    {
+        "duration": "24.0",
+        "name": "rendering.mobile/microsoft_performance"
+    },
+    {
+        "duration": "35.0",
+        "name": "rendering.mobile/microsoft_snow"
+    },
+    {
+        "duration": "33.0",
+        "name": "rendering.mobile/microsoft_speed_reading"
+    },
+    {
+        "duration": "23.0",
+        "name": "rendering.mobile/microsoft_tweet_map"
+    },
+    {
+        "duration": "19.0",
+        "name": "rendering.mobile/microsoft_worker_fountains"
+    },
+    {
+        "duration": "22.0",
+        "name": "rendering.mobile/mix_10k"
+    },
+    {
+        "duration": "51.0",
+        "name": "rendering.mobile/mix_blend_mode_animation_difference"
+    },
+    {
+        "duration": "47.0",
+        "name": "rendering.mobile/mix_blend_mode_animation_hue"
     },
     {
         "duration": "26.0",
+        "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation"
+    },
+    {
+        "duration": "39.0",
+        "name": "rendering.mobile/mix_blend_mode_animation_screen"
+    },
+    {
+        "duration": "33.0",
         "name": "rendering.mobile/mlb_mobile_2018"
     },
     {
@@ -2348,19 +2108,19 @@
         "name": "rendering.mobile/mobile_news_sandbox"
     },
     {
-        "duration": "62.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motion_mark_canvas_fill_shapes"
     },
     {
-        "duration": "25.0",
+        "duration": "27.0",
         "name": "rendering.mobile/motion_mark_canvas_stroke_shapes"
     },
     {
-        "duration": "24.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_anim_design_15"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "rendering.mobile/motionmark_anim_focus_25"
     },
     {
@@ -2368,19 +2128,19 @@
         "name": "rendering.mobile/motionmark_anim_images_50"
     },
     {
-        "duration": "19.0",
+        "duration": "29.0",
         "name": "rendering.mobile/motionmark_anim_leaves_250"
     },
     {
-        "duration": "24.0",
+        "duration": "28.0",
         "name": "rendering.mobile/motionmark_anim_multiply_175"
     },
     {
-        "duration": "23.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_suits_125"
     },
     {
-        "duration": "34.0",
+        "duration": "19.0",
         "name": "rendering.mobile/motionmark_html_composited_transforms_125"
     },
     {
@@ -2388,59 +2148,59 @@
         "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25"
     },
     {
-        "duration": "24.0",
+        "duration": "35.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250"
     },
     {
-        "duration": "29.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100"
     },
     {
-        "duration": "19.0",
+        "duration": "25.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15"
     },
     {
-        "duration": "24.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250"
     },
     {
-        "duration": "19.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50"
     },
     {
-        "duration": "19.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225"
     },
     {
-        "duration": "19.0",
+        "duration": "32.0",
         "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25"
     },
     {
-        "duration": "23.0",
+        "duration": "32.0",
         "name": "rendering.mobile/motionmark_html_focus_20_15"
     },
     {
-        "duration": "25.0",
+        "duration": "19.0",
         "name": "rendering.mobile/motionmark_html_leaves_20_50"
     },
     {
-        "duration": "19.0",
+        "duration": "25.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_circles_250"
     },
     {
-        "duration": "18.0",
+        "duration": "22.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100"
     },
     {
-        "duration": "29.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200"
     },
     {
-        "duration": "31.0",
+        "duration": "23.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50"
     },
     {
@@ -2448,15 +2208,15 @@
         "name": "rendering.mobile/new_tilings"
     },
     {
-        "duration": "18.0",
+        "duration": "30.0",
         "name": "rendering.mobile/no_op_raf"
     },
     {
-        "duration": "16.0",
+        "duration": "30.0",
         "name": "rendering.mobile/no_op_scroll"
     },
     {
-        "duration": "16.0",
+        "duration": "25.0",
         "name": "rendering.mobile/no_op_settimeout"
     },
     {
@@ -2464,19 +2224,19 @@
         "name": "rendering.mobile/no_op_touch_handler"
     },
     {
-        "duration": "21.0",
+        "duration": "36.0",
         "name": "rendering.mobile/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "30.0",
+        "duration": "25.0",
         "name": "rendering.mobile/nyc_gov_scroll_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "33.0",
         "name": "rendering.mobile/nytimes_mobile_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "32.0",
         "name": "rendering.mobile/nytimes_scroll_2018"
     },
     {
@@ -2484,87 +2244,91 @@
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "22.0",
-        "name": "rendering.mobile/parallax_effect"
-    },
-    {
-        "duration": "37.0",
-        "name": "rendering.mobile/particles"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/pbs_pathological_2018"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/physical_simulation"
-    },
-    {
-        "duration": "45.0",
-        "name": "rendering.mobile/pinterest_2018"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/pinterest_mobile_2018"
-    },
-    {
-        "duration": "20.0",
-        "name": "rendering.mobile/put_get_image_data"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/raf"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/raf_animation"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/raf_canvas"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.mobile/raf_touch_animation"
-    },
-    {
-        "duration": "20.0",
-        "name": "rendering.mobile/recode_pathological_2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "rendering.mobile/reddit_mobile_2018"
-    },
-    {
-        "duration": "22.0",
-        "name": "rendering.mobile/runway"
-    },
-    {
-        "duration": "22.0",
-        "name": "rendering.mobile/san_angeles"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.mobile/second_batch_js_heavy"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/second_batch_js_light"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.mobile/second_batch_js_medium"
-    },
-    {
-        "duration": "22.0",
-        "name": "rendering.mobile/sfgate_mobile_2018"
-    },
-    {
-        "duration": "24.0",
-        "name": "rendering.mobile/silk_finance"
+        "duration": "1.0",
+        "name": "rendering.mobile/paper_calculator_hit_test"
     },
     {
         "duration": "17.0",
+        "name": "rendering.mobile/parallax_effect"
+    },
+    {
+        "duration": "21.0",
+        "name": "rendering.mobile/particles"
+    },
+    {
+        "duration": "19.0",
+        "name": "rendering.mobile/pbs_pathological_2018"
+    },
+    {
+        "duration": "19.0",
+        "name": "rendering.mobile/physical_simulation"
+    },
+    {
+        "duration": "23.0",
+        "name": "rendering.mobile/pinterest_2018"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.mobile/pinterest_mobile_2018"
+    },
+    {
+        "duration": "32.0",
+        "name": "rendering.mobile/put_get_image_data"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.mobile/raf"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.mobile/raf_animation"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.mobile/raf_canvas"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.mobile/raf_touch_animation"
+    },
+    {
+        "duration": "21.0",
+        "name": "rendering.mobile/recode_pathological_2018"
+    },
+    {
+        "duration": "22.0",
+        "name": "rendering.mobile/reddit_mobile_2018"
+    },
+    {
+        "duration": "33.0",
+        "name": "rendering.mobile/runway"
+    },
+    {
+        "duration": "26.0",
+        "name": "rendering.mobile/san_angeles"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.mobile/second_batch_js_heavy"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.mobile/second_batch_js_light"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.mobile/second_batch_js_medium"
+    },
+    {
+        "duration": "26.0",
+        "name": "rendering.mobile/sfgate_mobile_2018"
+    },
+    {
+        "duration": "33.0",
+        "name": "rendering.mobile/silk_finance"
+    },
+    {
+        "duration": "16.0",
         "name": "rendering.mobile/simple_text_page"
     },
     {
@@ -2572,7 +2336,7 @@
         "name": "rendering.mobile/simple_touch_drag"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.mobile/slashdot_mobile_2018"
     },
     {
@@ -2588,11 +2352,11 @@
         "name": "rendering.mobile/spielzeugz"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "22.0",
+        "duration": "17.0",
         "name": "rendering.mobile/stress_hidey_bars"
     },
     {
@@ -2600,15 +2364,15 @@
         "name": "rendering.mobile/stroke_shapes"
     },
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
-        "duration": "11.0",
+        "duration": "15.0",
         "name": "rendering.mobile/swipe_action"
     },
     {
-        "duration": "15.0",
+        "duration": "18.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
     {
@@ -2616,11 +2380,11 @@
         "name": "rendering.mobile/sync_scroll_offset"
     },
     {
-        "duration": "28.0",
+        "duration": "22.0",
         "name": "rendering.mobile/techcrunch_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "23.0",
         "name": "rendering.mobile/techcrunch_mobile_2018"
     },
     {
@@ -2648,7 +2412,7 @@
         "name": "rendering.mobile/text_75000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.mobile/text_90000_pixels_per_second"
     },
     {
@@ -2660,15 +2424,15 @@
         "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
-        "duration": "19.0",
+        "duration": "14.0",
         "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second"
     },
     {
-        "duration": "22.0",
+        "duration": "12.0",
         "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "17.0",
+        "duration": "12.0",
         "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
@@ -2676,7 +2440,7 @@
         "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "14.0",
         "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
@@ -2692,67 +2456,67 @@
         "name": "rendering.mobile/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.mobile/text_hover_40000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "13.0",
         "name": "rendering.mobile/text_hover_60000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.mobile/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.mobile/text_hover_90000_pixels_per_second"
     },
     {
-        "duration": "28.0",
+        "duration": "23.0",
         "name": "rendering.mobile/theverge_article_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "25.0",
         "name": "rendering.mobile/theverge_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "26.0",
         "name": "rendering.mobile/toggle_drawer"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
     {
-        "duration": "26.0",
+        "duration": "20.0",
         "name": "rendering.mobile/transform_transitions"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/transform_transitions_js_block"
     },
     {
-        "duration": "24.0",
+        "duration": "20.0",
         "name": "rendering.mobile/twitch_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/twitch_mobile_pinch_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "rendering.mobile/twitter_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "17.0",
         "name": "rendering.mobile/twitter_mobile_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "20.0",
         "name": "rendering.mobile/update_history_state"
     },
     {
-        "duration": "14.0",
+        "duration": "22.0",
         "name": "rendering.mobile/usatoday_mobile_2018"
     },
     {
@@ -2764,43 +2528,43 @@
         "name": "rendering.mobile/web_animation_value_type_color"
     },
     {
-        "duration": "20.0",
+        "duration": "30.0",
         "name": "rendering.mobile/web_animation_value_type_length_3d"
     },
     {
-        "duration": "32.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animation_value_type_length_complex"
     },
     {
-        "duration": "43.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animation_value_type_length_simple"
     },
     {
-        "duration": "46.0",
+        "duration": "30.0",
         "name": "rendering.mobile/web_animation_value_type_path"
     },
     {
-        "duration": "67.0",
+        "duration": "36.0",
         "name": "rendering.mobile/web_animation_value_type_shadow"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/web_animation_value_type_transform_complex"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "rendering.mobile/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "20.0",
+        "duration": "23.0",
         "name": "rendering.mobile/web_animations_set_current_time"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animations_simultaneous"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/web_animations_staggered_chaining"
     },
     {
@@ -2808,43 +2572,51 @@
         "name": "rendering.mobile/web_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "44.0",
+        "duration": "36.0",
         "name": "rendering.mobile/web_animations_staggered_triggering_page"
     },
     {
-        "duration": "35.0",
+        "duration": "20.0",
+        "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "33.0",
         "name": "rendering.mobile/wikipedia_2018"
     },
     {
-        "duration": "32.0",
+        "duration": "25.0",
         "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/wikipedia_mobile_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "21.0",
         "name": "rendering.mobile/wordpress_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.mobile/wordpress_mobile_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "rendering.mobile/worldjournal_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "28.0",
         "name": "rendering.mobile/wow_wiki_pathological_2018"
     },
     {
-        "duration": "43.0",
+        "duration": "45.0",
         "name": "rendering.mobile/wowwiki_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "25.0",
         "name": "rendering.mobile/wsj_mobile_2018"
     },
     {
@@ -2852,7 +2624,7 @@
         "name": "rendering.mobile/yahoo_answers_2018"
     },
     {
-        "duration": "31.0",
+        "duration": "25.0",
         "name": "rendering.mobile/yahoo_news_mobile_2018"
     },
     {
@@ -2860,155 +2632,47 @@
         "name": "rendering.mobile/yahoo_sports_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "15.0",
         "name": "rendering.mobile/yahoo_sports_pathological_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "17.0",
         "name": "rendering.mobile/youtube_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.mobile/youtube_mobile_2018"
     },
     {
-        "duration": "56.0",
-        "name": "rendering.mobile/yuv_decoding"
-    },
-    {
-        "duration": "51.0",
-        "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding"
-    },
-    {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/zdnet_pathological_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/zoom_in_animation"
     },
     {
-        "duration": "95.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018"
-    },
-    {
-        "duration": "56.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018"
-    },
-    {
-        "duration": "70.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018"
-    },
-    {
-        "duration": "25.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018"
-    },
-    {
-        "duration": "31.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018"
-    },
-    {
-        "duration": "34.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018"
-    },
-    {
-        "duration": "17.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "21.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018"
-    },
-    {
-        "duration": "49.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "45.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "32.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018"
-    },
-    {
-        "duration": "71.0",
-        "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018"
-    },
-    {
-        "duration": "17.0",
-        "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018"
-    },
-    {
-        "duration": "88.0",
-        "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018"
-    },
-    {
-        "duration": "32.0",
-        "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018"
-    },
-    {
-        "duration": "31.0",
-        "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018"
-    },
-    {
-        "duration": "46.0",
-        "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018"
-    },
-    {
-        "duration": "43.0",
-        "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "53.0",
-        "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018"
-    },
-    {
-        "duration": "35.0",
-        "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018"
-    },
-    {
-        "duration": "37.0",
-        "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "50.0",
-        "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "38.0",
-        "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018"
-    },
-    {
-        "duration": "63.0",
+        "duration": "57.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "72.0",
+        "duration": "65.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "103.0",
+        "duration": "93.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "101.0",
+        "duration": "93.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "41.0",
-        "name": "system_health.common_mobile/background:news:nytimes"
-    },
-    {
-        "duration": "24.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
@@ -3016,47 +2680,39 @@
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "24.0",
+        "duration": "10.0",
         "name": "system_health.common_mobile/browse:chrome:newtab"
     },
     {
-        "duration": "14.0",
+        "duration": "6.0",
         "name": "system_health.common_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "94.0",
+        "duration": "76.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "108.0",
+        "duration": "76.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "44.0",
+        "duration": "43.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "74.0",
+        "duration": "68.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "99.0",
+        "duration": "87.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "112.0",
-        "name": "system_health.common_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "148.0",
+        "duration": "89.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "58.0",
-        "name": "system_health.common_mobile/browse:news:cricbuzz"
-    },
-    {
-        "duration": "82.0",
+        "duration": "50.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
@@ -3064,71 +2720,87 @@
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "156.0",
+        "duration": "59.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "115.0",
         "name": "system_health.common_mobile/browse:news:toi"
     },
     {
-        "duration": "49.0",
-        "name": "system_health.common_mobile/browse:news:washingtonpost"
+        "duration": "70.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
     },
     {
-        "duration": "31.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
     {
         "duration": "62.0",
+        "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "57.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "61.0",
+        "duration": "59.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "121.0",
+        "duration": "81.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "133.0",
+        "duration": "132.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "102.0",
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "118.0",
+        "duration": "90.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "117.0",
-        "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "98.0",
+        "duration": "77.0",
         "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "49.0",
+        "duration": "48.0",
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "76.0",
+        "duration": "67.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "54.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "106.0",
+        "duration": "90.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "79.0",
+        "duration": "39.0",
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "25.0",
+        "duration": "46.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "18.0",
         "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
@@ -3136,15 +2808,15 @@
         "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "16.0",
+        "duration": "46.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "18.0",
         "name": "system_health.common_mobile/load:games:lazors"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.common_mobile/load:games:spychase"
-    },
-    {
-        "duration": "27.0",
+        "duration": "71.0",
         "name": "system_health.common_mobile/load:games:spychase:2018"
     },
     {
@@ -3152,122 +2824,110 @@
         "name": "system_health.common_mobile/load:media:dailymotion"
     },
     {
-        "duration": "22.0",
+        "duration": "31.0",
         "name": "system_health.common_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "41.0",
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
+    },
+    {
+        "duration": "49.0",
         "name": "system_health.common_mobile/load:media:flickr:2018"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:media:google_images"
-    },
-    {
-        "duration": "24.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:media:imgur"
-    },
-    {
-        "duration": "26.0",
+        "duration": "37.0",
         "name": "system_health.common_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_mobile/load:media:youtube"
-    },
-    {
-        "duration": "21.0",
+        "duration": "74.0",
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "35.0",
-        "name": "system_health.common_mobile/load:news:cnn"
-    },
-    {
-        "duration": "63.0",
+        "duration": "48.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "30.0",
+        "duration": "1.0",
         "name": "system_health.common_mobile/load:news:nytimes"
     },
     {
-        "duration": "20.0",
+        "duration": "29.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
+    },
+    {
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
+        "duration": "115.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "19.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
+        "duration": "90.0",
+        "name": "system_health.common_mobile/load:news:reddit:2019"
+    },
+    {
         "duration": "20.0",
         "name": "system_health.common_mobile/load:news:washingtonpost"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.common_mobile/load:news:wikipedia"
+        "duration": "25.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
     },
     {
-        "duration": "18.0",
+        "duration": "21.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.common_mobile/load:search:baidu"
-    },
-    {
-        "duration": "27.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_mobile/load:search:ebay"
-    },
-    {
-        "duration": "20.0",
+        "duration": "44.0",
         "name": "system_health.common_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.common_mobile/load:search:google"
-    },
-    {
-        "duration": "60.0",
+        "duration": "80.0",
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "23.0",
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "27.0",
+        "duration": "30.0",
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_mobile/load:search:yandex"
-    },
-    {
-        "duration": "37.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "28.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
+    },
+    {
+        "duration": "18.0",
         "name": "system_health.common_mobile/load:social:twitter"
     },
     {
+        "duration": "40.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
         "duration": "18.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
@@ -3280,11 +2940,7 @@
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "24.0",
+        "duration": "47.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
     {
@@ -3292,267 +2948,63 @@
         "name": "system_health.common_mobile/load:tools:weather"
     },
     {
-        "duration": "25.0",
-        "name": "system_health.memory_mobile/background:media:imgur"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/background:tools:gmail"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_mobile/background:search:google"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/background:social:facebook"
-    },
-    {
-        "duration": "101.0",
+        "duration": "0.0",
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "52.0",
-        "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "47.0",
-        "name": "system_health.memory_mobile/browse:media:googleplaystore:2019"
-    },
-    {
-        "duration": "71.0",
-        "name": "system_health.memory_mobile/browse:media:imgur"
-    },
-    {
-        "duration": "82.0",
-        "name": "system_health.memory_mobile/browse:media:youtube"
-    },
-    {
-        "duration": "92.0",
-        "name": "system_health.memory_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "120.0",
-        "name": "system_health.memory_mobile/browse:news:cnn:2018"
-    },
-    {
-        "duration": "59.0",
-        "name": "system_health.memory_mobile/browse:news:cricbuzz"
-    },
-    {
-        "duration": "57.0",
-        "name": "system_health.memory_mobile/browse:news:qq"
-    },
-    {
-        "duration": "52.0",
-        "name": "system_health.memory_mobile/browse:news:reddit"
-    },
-    {
-        "duration": "118.0",
+        "duration": "0.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "26.0",
-        "name": "system_health.memory_mobile/browse:search:amp:2018"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/browse:social:facebook"
     },
     {
-        "duration": "57.0",
-        "name": "system_health.memory_mobile/browse:shopping:amazon"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
     },
     {
-        "duration": "37.0",
-        "name": "system_health.memory_mobile/browse:shopping:lazada"
-    },
-    {
-        "duration": "77.0",
-        "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "79.0",
-        "name": "system_health.memory_mobile/browse:social:instagram"
-    },
-    {
-        "duration": "77.0",
-        "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "50.0",
-        "name": "system_health.memory_mobile/browse:social:twitter"
-    },
-    {
-        "duration": "58.0",
-        "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "52.0",
-        "name": "system_health.memory_mobile/browse:tools:maps"
-    },
-    {
-        "duration": "44.0",
-        "name": "system_health.memory_mobile/load:chrome:blank"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:games:bubbles"
-    },
-    {
-        "duration": "21.0",
-        "name": "system_health.memory_mobile/load:games:lazors"
-    },
-    {
-        "duration": "28.0",
-        "name": "system_health.memory_mobile/load:games:spychase"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.memory_mobile/load:games:spychase:2018"
-    },
-    {
-        "duration": "24.0",
+        "duration": "0.0",
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:media:facebook_photos"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
     },
     {
-        "duration": "27.0",
-        "name": "system_health.memory_mobile/load:media:flickr:2018"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:media:google_images"
-    },
-    {
-        "duration": "29.0",
-        "name": "system_health.memory_mobile/load:media:google_images:2018"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:media:imgur"
-    },
-    {
-        "duration": "30.0",
-        "name": "system_health.memory_mobile/load:media:imgur:2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:media:youtube"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:media:youtube:2018"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.memory_mobile/load:news:cnn"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.memory_mobile/load:news:cnn:2018"
-    },
-    {
-        "duration": "39.0",
-        "name": "system_health.memory_mobile/load:news:irctc"
-    },
-    {
-        "duration": "27.0",
-        "name": "system_health.memory_mobile/load:news:nytimes"
-    },
-    {
-        "duration": "27.0",
-        "name": "system_health.memory_mobile/load:news:qq"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:news:reddit"
-    },
-    {
-        "duration": "27.0",
-        "name": "system_health.memory_mobile/load:news:wikipedia"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:news:wikipedia:2018"
-    },
-    {
-        "duration": "29.0",
-        "name": "system_health.memory_mobile/load:search:baidu"
-    },
-    {
-        "duration": "28.0",
-        "name": "system_health.memory_mobile/load:search:baidu:2018"
-    },
-    {
-        "duration": "21.0",
-        "name": "system_health.memory_mobile/load:search:ebay"
-    },
-    {
-        "duration": "25.0",
-        "name": "system_health.memory_mobile/load:search:ebay:2018"
-    },
-    {
-        "duration": "24.0",
-        "name": "system_health.memory_mobile/load:search:google"
-    },
-    {
-        "duration": "61.0",
-        "name": "system_health.memory_mobile/load:search:google:2018"
-    },
-    {
-        "duration": "22.0",
+        "duration": "0.0",
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
-        "duration": "41.0",
-        "name": "system_health.memory_mobile/load:search:yahoo"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:search:yahoo:2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:search:yandex"
-    },
-    {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:search:yandex:2018"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:social:twitter"
-    },
-    {
-        "duration": "22.0",
+        "duration": "0.0",
         "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
         "duration": "21.0",
-        "name": "system_health.memory_mobile/load:tools:dropbox"
-    },
-    {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "33.0",
-        "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
-    },
-    {
-        "duration": "26.0",
-        "name": "system_health.memory_mobile/load:tools:weather"
-    },
-    {
-        "duration": "20.0",
         "name": "system_health.webview_startup/load:chrome:blank"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
@@ -3572,7 +3024,7 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
     },
     {
-        "duration": "14.0",
+        "duration": "10.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
@@ -3580,127 +3032,35 @@
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "20.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:omnibox"
+        "duration": "0.0",
+        "name": "v8.browsing_mobile-future/browse:shopping:flipkart"
     },
     {
-        "duration": "161.0",
-        "name": "v8.browsing_mobile-future/browse:media:facebook_photos"
-    },
-    {
-        "duration": "76.0",
-        "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "83.0",
-        "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019"
-    },
-    {
-        "duration": "75.0",
-        "name": "v8.browsing_mobile-future/browse:media:imgur"
-    },
-    {
-        "duration": "105.0",
-        "name": "v8.browsing_mobile-future/browse:media:youtube"
-    },
-    {
-        "duration": "121.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn"
-    },
-    {
-        "duration": "133.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn:2018"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_mobile-future/browse:news:cricbuzz"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_mobile-future/browse:news:qq"
-    },
-    {
-        "duration": "52.0",
-        "name": "v8.browsing_mobile-future/browse:news:reddit"
-    },
-    {
-        "duration": "128.0",
-        "name": "v8.browsing_mobile-future/browse:news:toi"
-    },
-    {
-        "duration": "34.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:2018"
-    },
-    {
-        "duration": "79.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:amazon"
-    },
-    {
-        "duration": "31.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:lazada"
-    },
-    {
-        "duration": "127.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "90.0",
-        "name": "v8.browsing_mobile-future/browse:social:instagram"
-    },
-    {
-        "duration": "117.0",
-        "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll"
-    },
-    {
-        "duration": "124.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "128.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "52.0",
-        "name": "v8.browsing_mobile-future/browse:social:twitter"
-    },
-    {
-        "duration": "150.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018"
-    },
-    {
-        "duration": "43.0",
-        "name": "v8.browsing_mobile-future/browse:tools:maps"
-    },
-    {
-        "duration": "24.0",
+        "duration": "10.0",
         "name": "v8.browsing_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "84.0",
+        "duration": "80.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "112.0",
-        "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "70.0",
+        "duration": "45.0",
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "75.0",
+        "duration": "72.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
-        "duration": "113.0",
+        "duration": "116.0",
         "name": "v8.browsing_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "48.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "62.0",
+        "duration": "55.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
     {
@@ -3708,35 +3068,39 @@
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "136.0",
-        "name": "v8.browsing_mobile/browse:news:toi"
+        "duration": "95.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
     },
     {
-        "duration": "54.0",
-        "name": "v8.browsing_mobile/browse:news:washingtonpost"
+        "duration": "90.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
     },
     {
-        "duration": "32.0",
+        "duration": "26.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "80.0",
+        "duration": "50.0",
+        "name": "v8.browsing_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "63.0",
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "32.0",
+        "duration": "33.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "67.0",
+        "duration": "64.0",
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "148.0",
+        "duration": "120.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "116.0",
+        "duration": "103.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3744,75 +3108,59 @@
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "106.0",
+        "duration": "134.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "131.0",
         "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "102.0",
-        "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "123.0",
+        "duration": "110.0",
         "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "52.0",
+        "duration": "50.0",
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
-        "duration": "85.0",
+        "duration": "95.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "66.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "130.0",
+        "duration": "122.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "v8.browsing_mobile/browse:tools:maps"
     },
     {
-        "duration": "10.0",
-        "name": "wasm/AsmJsZenGarden"
-    },
-    {
-        "duration": "20.0",
-        "name": "wasm/WasmSpaceBuggy"
-    },
-    {
-        "duration": "10.0",
-        "name": "wasm/WasmStylizedRenderer"
-    },
-    {
-        "duration": "10.0",
-        "name": "wasm/WasmSunTemple"
-    },
-    {
-        "duration": "16.0",
-        "name": "wasm/WasmTanks"
-    },
-    {
-        "duration": "13.0",
-        "name": "wasm/WasmZenGarden"
+        "duration": "48.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
     },
     {
         "duration": "17.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
-        "duration": "20.0",
+        "duration": "17.0",
         "name": "webrtc/canvas_capture_peer_connection"
     },
     {
-        "duration": "33.0",
+        "duration": "27.0",
         "name": "webrtc/codec_constraints_h264"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "webrtc/codec_constraints_vp8"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "webrtc/codec_constraints_vp9"
     },
     {
@@ -3820,11 +3168,11 @@
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "37.0",
+        "duration": "29.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "44.0",
+        "duration": "34.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json
index 655ddda..507b53b 100644
--- a/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json
@@ -1,22 +1,22 @@
 [
     {
-        "duration": "29.0",
+        "duration": "22.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "21.0",
+        "duration": "17.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/create-element.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/document-implementation.html"
     },
     {
@@ -24,63 +24,63 @@
         "name": "blink_perf.bindings/dom-attribute-on-prototoype.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/first-child.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "39.0",
+        "duration": "43.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "84.0",
+        "duration": "90.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/get-element-by-id.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/id-getter.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/id-setter.html"
     },
     {
-        "duration": "16.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/indexed-getter.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "119.0",
+        "duration": "132.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/node-type.html"
     },
     {
@@ -88,71 +88,71 @@
         "name": "blink_perf.bindings/post-message.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/serialize-array.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/serialize-long-string.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/serialize-nested-array.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "37.0",
+        "duration": "43.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "37.0",
+        "duration": "43.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.bindings/typed-array-construct-from-array.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "12.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/undefined-first-child.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/undefined-get-element-by-id.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.bindings/undefined-id-getter.html"
     },
     {
@@ -160,19 +160,19 @@
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "69.0",
+        "duration": "79.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "69.0",
+        "duration": "79.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
-        "duration": "68.0",
+        "duration": "79.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html"
     },
     {
@@ -180,15 +180,15 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "70.0",
+        "duration": "81.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "69.0",
+        "duration": "81.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "70.0",
+        "duration": "81.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
@@ -200,15 +200,15 @@
         "name": "blink_perf.bindings/worker-transferable-roundtrip.html"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF"
     },
     {
@@ -220,7 +220,7 @@
         "name": "blink_perf.canvas/docs-paper_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/docs-resume.html"
     },
     {
@@ -228,7 +228,7 @@
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
@@ -236,23 +236,19 @@
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "7.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "19.0",
-        "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
-    },
-    {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
@@ -264,51 +260,39 @@
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "7.0",
-        "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "10.0",
-        "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
-    },
-    {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "32.0",
         "name": "blink_perf.canvas/getImageData.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/getImageDataColorManaged.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "33.0",
         "name": "blink_perf.canvas/getImageData_RAF.html?RAF"
     },
     {
@@ -320,19 +304,19 @@
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "552.0",
         "name": "blink_perf.canvas/putImageData.html"
     },
     {
-        "duration": "13.0",
+        "duration": "585.0",
         "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "blink_perf.canvas/sheets-render.html"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/sheets-render_RAF.html?RAF"
     },
     {
@@ -340,315 +324,287 @@
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
-        "name": "blink_perf.canvas/transferFromImageBitmap.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
-    },
-    {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
     },
     {
-        "duration": "17.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
         "duration": "10.0",
-        "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
-    },
-    {
-        "duration": "10.0",
         "name": "blink_perf.canvas/upload-webgl-to-texture.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.css/CSSPropertySetterGetter.html"
     },
     {
-        "duration": "14.0",
+        "duration": "17.0",
         "name": "blink_perf.css/CSSPropertySetterGetterMethods.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "18.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "18.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "22.0",
+        "duration": "0.0",
         "name": "blink_perf.css/FocusUpdate.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "16.0",
+        "duration": "0.0",
         "name": "blink_perf.css/PseudoClassSelectors.html"
     },
     {
-        "duration": "55.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "72.0",
+        "duration": "100.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "53.0",
+        "duration": "81.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "35.0",
+        "duration": "18.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.dom/modify-element-classname.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.dom/modify-element-id.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.dom/modify-element-title.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.dom/select-multiple-add.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "25.0",
+        "duration": "27.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "16.0",
+        "duration": "20.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
-        "duration": "38.0",
+        "duration": "47.0",
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
-        "duration": "36.0",
+        "duration": "44.0",
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "61.0",
+        "duration": "74.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "blink_perf.events/is-input-pending-all-events.html"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "37.0",
+        "duration": "34.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "17.0",
-        "name": "blink_perf.image_decoder/decode-jpeg.html"
-    },
-    {
-        "duration": "38.0",
-        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
-    },
-    {
-        "duration": "24.0",
-        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.image_decoder/decode-png-palette.html"
-    },
-    {
-        "duration": "35.0",
-        "name": "blink_perf.image_decoder/decode-png.html"
-    },
-    {
-        "duration": "22.0",
-        "name": "blink_perf.layout/ArabicLineLayout.html"
-    },
-    {
-        "duration": "7.0",
-        "name": "blink_perf.layout/Shapes/MultipleShapes.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.layout/add-remove-inline-floats.html"
+        "duration": "15.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
         "duration": "15.0",
-        "name": "blink_perf.layout/attach-inlines-2.html"
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
     },
     {
-        "duration": "13.0",
-        "name": "blink_perf.layout/attach-inlines.html"
+        "duration": "14.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
     },
     {
-        "duration": "16.0",
-        "name": "blink_perf.layout/auto-grid-lots-of-data.html"
+        "duration": "14.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
+    },
+    {
+        "duration": "37.0",
+        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+    },
+    {
+        "duration": "10.0",
+        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
         "duration": "22.0",
+        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
+    },
+    {
+        "duration": "14.0",
+        "name": "blink_perf.image_decoder/decode-png-palette.html"
+    },
+    {
+        "duration": "34.0",
+        "name": "blink_perf.image_decoder/decode-png.html"
+    },
+    {
+        "duration": "20.0",
+        "name": "blink_perf.layout/ArabicLineLayout.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/Shapes/MultipleShapes.html"
+    },
+    {
+        "duration": "14.0",
+        "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.layout/add-remove-inline-floats.html"
+    },
+    {
+        "duration": "11.0",
+        "name": "blink_perf.layout/animate-abspos-deep.html"
+    },
+    {
+        "duration": "18.0",
+        "name": "blink_perf.layout/attach-inlines-2.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/attach-inlines.html"
+    },
+    {
+        "duration": "18.0",
+        "name": "blink_perf.layout/auto-grid-lots-of-data.html"
+    },
+    {
+        "duration": "23.0",
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "12.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
@@ -656,51 +612,67 @@
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
-        "duration": "13.0",
+        "duration": "25.0",
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "23.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
-        "duration": "7.0",
-        "name": "blink_perf.layout/character_fallback_aat.html"
-    },
-    {
-        "duration": "43.0",
+        "duration": "28.0",
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
+        "duration": "13.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
         "duration": "15.0",
-        "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
+        "name": "blink_perf.layout/editing_append_single_line.html"
     },
     {
         "duration": "13.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "37.0",
+        "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
+    },
+    {
+        "duration": "17.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "16.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
-        "duration": "16.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/flexbox-column-nowrap.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
@@ -708,26 +680,30 @@
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/flexbox-lots-of-data.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/flexbox-row-nowrap.html"
     },
     {
-        "duration": "21.0",
+        "duration": "25.0",
         "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/flexbox-row-wrap.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
+        "duration": "19.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
         "duration": "33.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
@@ -736,43 +712,43 @@
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
-        "duration": "11.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
-        "duration": "17.0",
+        "duration": "24.0",
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "14.0",
+        "duration": "79.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "36.0",
+        "duration": "40.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
@@ -780,47 +756,39 @@
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "42.0",
+        "duration": "56.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "41.0",
+        "duration": "56.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "41.0",
+        "duration": "55.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "291.0",
+        "duration": "50.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
-        "duration": "39.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/latin-ebook.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/layers_overlap_2d.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "10.0",
-        "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.layout/line-layout-fit-content.html"
-    },
-    {
-        "duration": "38.0",
+        "duration": "53.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
-        "duration": "16.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/line-layout-repeat-append-select.html"
     },
     {
@@ -828,51 +796,67 @@
         "name": "blink_perf.layout/line-layout-repeat-append.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/line-layout.html"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/long-line-nowrap-collapse.html"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "15.0",
+        "duration": "27.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/many-block-children-auto-inline-size.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "18.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html"
     },
     {
         "duration": "13.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "15.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "16.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
-        "duration": "12.0",
+        "duration": "153.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
+        "duration": "13.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
@@ -880,71 +864,75 @@
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/nested-grid.html"
     },
     {
-        "duration": "132.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "314.0",
+        "duration": "384.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "15.0",
+        "duration": "81.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "13.0",
+        "duration": "30.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
-        "duration": "13.0",
+        "duration": "30.0",
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "13.0",
+        "duration": "30.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "21.0",
+        "duration": "14.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "17.0",
+        "duration": "13.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "14.0",
+        "duration": "10.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "17.0",
+        "duration": "14.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "19.0",
+        "duration": "15.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "20.0",
+        "duration": "0.0",
+        "name": "blink_perf.paint/appending-text.html"
+    },
+    {
+        "duration": "18.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "50.0",
+        "duration": "82.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "200.0",
+        "duration": "262.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
@@ -952,67 +940,67 @@
         "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.parser/innerHTML-setter-siblings.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/innerHTML-setter.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-all-attribute-complex.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-all-attribute.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.parser/query-selector-all-class-deep.html"
     },
     {
-        "duration": "15.0",
+        "duration": "18.0",
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/query-selector-all-class-last.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/query-selector-all-deep.html"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
-        "duration": "17.0",
+        "duration": "20.0",
         "name": "blink_perf.parser/query-selector-all-id-deep.html"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
-        "duration": "19.0",
+        "duration": "25.0",
         "name": "blink_perf.parser/query-selector-all-id-last.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.parser/query-selector-all-last.html"
     },
     {
-        "duration": "14.0",
+        "duration": "17.0",
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
-        "duration": "14.0",
+        "duration": "17.0",
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
@@ -1020,59 +1008,59 @@
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.parser/simple-url.html"
     },
     {
-        "duration": "15.0",
+        "duration": "18.0",
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.parser/url-parser.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "blink_perf.shadow_dom/declarative-api.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-appendchild.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-assign.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html"
     },
     {
@@ -1084,23 +1072,23 @@
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html"
     },
     {
@@ -1108,27 +1096,27 @@
         "name": "blink_perf.shadow_dom/shadow-style-share.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/style-sheet-insert.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html"
     },
     {
-        "duration": "21.0",
+        "duration": "32.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "25.0",
+        "duration": "36.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v0-content-reprojection.html"
     },
     {
@@ -1144,15 +1132,15 @@
         "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html"
     },
     {
-        "duration": "26.0",
+        "duration": "32.0",
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-distribution.html"
     },
     {
@@ -1160,15 +1148,19 @@
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
-        "duration": "25.0",
+        "duration": "32.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "113.0",
+        "duration": "48.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
@@ -1176,11 +1168,15 @@
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
+    },
+    {
+        "duration": "9.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
@@ -1188,7 +1184,7 @@
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
@@ -1200,39 +1196,39 @@
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-slot-append.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.shadow_dom/v1-small-deep-layout.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "blink_perf.svg/Bamboo.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/Cactus.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
@@ -1244,19 +1240,19 @@
         "name": "blink_perf.svg/Debian.html"
     },
     {
-        "duration": "7.0",
+        "duration": "13.0",
         "name": "blink_perf.svg/DropsOnABlade.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/FlowerFromMyGarden.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/FoodLeifLodahl.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/France.html"
     },
     {
@@ -1264,31 +1260,31 @@
         "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "17.0",
+        "duration": "20.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "183.0",
+        "duration": "297.0",
         "name": "blink_perf.svg/SierpinskiCarpet.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
     {
@@ -1296,27 +1292,27 @@
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.svg/SvgNestedUse.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.svg/UnderTheSee.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/WorldIso.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
-        "duration": "43.0",
+        "duration": "40.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
-        "duration": "38.0",
+        "duration": "39.0",
         "name": "dromaeo/http://dromaeo.com?dom-modify"
     },
     {
@@ -1324,31 +1320,31 @@
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
-        "duration": "32.0",
+        "duration": "33.0",
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "390.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "0.0",
+        "name": "jetstream/JetStream"
     },
     {
-        "duration": "99.0",
+        "duration": "93.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "loading.mobile/58Pic"
     },
     {
-        "duration": "47.0",
+        "duration": "20.0",
         "name": "loading.mobile/58Pic_3g"
     },
     {
@@ -1356,19 +1352,19 @@
         "name": "loading.mobile/Amazon"
     },
     {
-        "duration": "75.0",
+        "duration": "28.0",
         "name": "loading.mobile/Amazon_3g"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.mobile/BOLNoticias"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "loading.mobile/Baidu"
     },
     {
-        "duration": "67.0",
+        "duration": "21.0",
         "name": "loading.mobile/Baidu_3g"
     },
     {
@@ -1376,19 +1372,27 @@
         "name": "loading.mobile/Bradesco"
     },
     {
-        "duration": "13.0",
+        "duration": "0.0",
+        "name": "loading.mobile/Bradesco_3g"
+    },
+    {
+        "duration": "14.0",
         "name": "loading.mobile/Dailymotion"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "loading.mobile/Dawn"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/Dawn_3g"
+    },
+    {
         "duration": "11.0",
         "name": "loading.mobile/DevOpera_cold"
     },
     {
-        "duration": "56.0",
+        "duration": "16.0",
         "name": "loading.mobile/DevOpera_cold_3g"
     },
     {
@@ -1396,7 +1400,7 @@
         "name": "loading.mobile/DevOpera_hot"
     },
     {
-        "duration": "54.0",
+        "duration": "20.0",
         "name": "loading.mobile/DevOpera_hot_3g"
     },
     {
@@ -1404,15 +1408,15 @@
         "name": "loading.mobile/DevOpera_warm"
     },
     {
-        "duration": "51.0",
+        "duration": "17.0",
         "name": "loading.mobile/DevOpera_warm_3g"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "loading.mobile/Dramaq"
     },
     {
-        "duration": "75.0",
+        "duration": "48.0",
         "name": "loading.mobile/Dramaq_3g"
     },
     {
@@ -1420,7 +1424,7 @@
         "name": "loading.mobile/EnquiryIndianRail"
     },
     {
-        "duration": "40.0",
+        "duration": "13.0",
         "name": "loading.mobile/EnquiryIndianRail_3g"
     },
     {
@@ -1432,27 +1436,31 @@
         "name": "loading.mobile/FlipBoard_cold"
     },
     {
-        "duration": "19.0",
+        "duration": "0.0",
+        "name": "loading.mobile/FlipBoard_cold_3g"
+    },
+    {
+        "duration": "18.0",
         "name": "loading.mobile/FlipBoard_hot"
     },
     {
-        "duration": "33.0",
+        "duration": "20.0",
         "name": "loading.mobile/FlipBoard_hot_3g"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "loading.mobile/FlipBoard_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "loading.mobile/FlipKart_cold"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "loading.mobile/FlipKart_hot"
     },
     {
-        "duration": "31.0",
+        "duration": "24.0",
         "name": "loading.mobile/FlipKart_hot_3g"
     },
     {
@@ -1460,31 +1468,39 @@
         "name": "loading.mobile/FlipKart_warm"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/FlipKart_warm_3g"
+    },
+    {
         "duration": "12.0",
         "name": "loading.mobile/FranceTVInfo"
     },
     {
-        "duration": "94.0",
+        "duration": "17.0",
         "name": "loading.mobile/FranceTVInfo_3g"
     },
     {
-        "duration": "21.0",
+        "duration": "16.0",
         "name": "loading.mobile/GSShop"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.mobile/GoogleBrazil"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.mobile/GoogleIndia"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.mobile/GoogleIndonesia"
     },
     {
-        "duration": "15.0",
+        "duration": "0.0",
+        "name": "loading.mobile/GoogleIndonesia_3g"
+    },
+    {
+        "duration": "14.0",
         "name": "loading.mobile/GoogleRedirectToGoogleJapan"
     },
     {
@@ -1492,11 +1508,19 @@
         "name": "loading.mobile/Hongkiat"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/Hongkiat_3g"
+    },
+    {
         "duration": "14.0",
         "name": "loading.mobile/KapanLagi"
     },
     {
-        "duration": "12.0",
+        "duration": "0.0",
+        "name": "loading.mobile/Kaskus"
+    },
+    {
+        "duration": "13.0",
         "name": "loading.mobile/LocalMoxie"
     },
     {
@@ -1504,7 +1528,7 @@
         "name": "loading.mobile/Locanto"
     },
     {
-        "duration": "33.0",
+        "duration": "12.0",
         "name": "loading.mobile/Locanto_3g"
     },
     {
@@ -1512,11 +1536,15 @@
         "name": "loading.mobile/OLX"
     },
     {
-        "duration": "17.0",
+        "duration": "0.0",
+        "name": "loading.mobile/OLX_3g"
+    },
+    {
+        "duration": "11.0",
         "name": "loading.mobile/QQNews"
     },
     {
-        "duration": "85.0",
+        "duration": "20.0",
         "name": "loading.mobile/QQNews_3g"
     },
     {
@@ -1524,7 +1552,7 @@
         "name": "loading.mobile/SlideShare"
     },
     {
-        "duration": "82.0",
+        "duration": "22.0",
         "name": "loading.mobile/SlideShare_3g"
     },
     {
@@ -1532,7 +1560,7 @@
         "name": "loading.mobile/Suumo_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "11.0",
         "name": "loading.mobile/Suumo_cold_3g"
     },
     {
@@ -1540,7 +1568,7 @@
         "name": "loading.mobile/Suumo_hot"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.mobile/Suumo_hot_3g"
     },
     {
@@ -1548,11 +1576,11 @@
         "name": "loading.mobile/Suumo_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.mobile/Suumo_warm_3g"
     },
     {
-        "duration": "15.0",
+        "duration": "12.0",
         "name": "loading.mobile/Thairath"
     },
     {
@@ -1560,15 +1588,19 @@
         "name": "loading.mobile/TheStar"
     },
     {
-        "duration": "16.0",
+        "duration": "0.0",
+        "name": "loading.mobile/TheStar_3g"
+    },
+    {
+        "duration": "15.0",
         "name": "loading.mobile/TribunNews"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.mobile/Twitter"
     },
     {
-        "duration": "38.0",
+        "duration": "13.0",
         "name": "loading.mobile/Twitter_3g"
     },
     {
@@ -1576,10 +1608,14 @@
         "name": "loading.mobile/VoiceMemos_cold"
     },
     {
-        "duration": "58.0",
+        "duration": "15.0",
         "name": "loading.mobile/VoiceMemos_cold_3g"
     },
     {
+        "duration": "0.0",
+        "name": "loading.mobile/VoiceMemos_warm"
+    },
+    {
         "duration": "10.0",
         "name": "loading.mobile/Wikipedia"
     },
@@ -1592,175 +1628,51 @@
         "name": "loading.mobile/Youtube"
     },
     {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science"
+        "duration": "88.0",
+        "name": "octane/Octane"
     },
     {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "17.0",
-        "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "18.0",
-        "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "22.0",
-        "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus"
-    },
-    {
-        "duration": "24.0",
-        "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science"
-    },
-    {
-        "duration": "19.0",
-        "name": "memory.top_10_mobile/https_m_facebook_com_rihanna"
-    },
-    {
-        "duration": "20.0",
-        "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true"
-    },
-    {
-        "duration": "21.0",
-        "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science"
-    },
-    {
-        "duration": "90.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
-    },
-    {
-        "duration": "61.0",
-        "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom"
-    },
-    {
-        "duration": "66.0",
-        "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180"
-    },
-    {
-        "duration": "55.0",
-        "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404"
-    },
-    {
-        "duration": "63.0",
-        "name": "power.typical_10_mobile/http://m.facebook.com/barackobama"
-    },
-    {
-        "duration": "61.0",
-        "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486"
-    },
-    {
-        "duration": "61.0",
-        "name": "power.typical_10_mobile/http://m.ynet.co.il"
-    },
-    {
-        "duration": "62.0",
-        "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/"
-    },
-    {
-        "duration": "58.0",
-        "name": "power.typical_10_mobile/http://wapbaike.baidu.com/"
-    },
-    {
-        "duration": "57.0",
-        "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html"
-    },
-    {
-        "duration": "59.0",
-        "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html"
-    },
-    {
-        "duration": "61.0",
-        "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif"
-    },
-    {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
-        "duration": "46.0",
+        "duration": "48.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "45.0",
+        "duration": "48.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
-        "duration": "41.0",
+        "duration": "43.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
-        "duration": "56.0",
+        "duration": "60.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
-        "duration": "60.0",
+        "duration": "62.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html"
     },
     {
-        "duration": "52.0",
+        "duration": "53.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
@@ -1768,19 +1680,19 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "43.0",
+        "duration": "45.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
-        "duration": "40.0",
+        "duration": "43.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html"
     },
     {
-        "duration": "34.0",
+        "duration": "37.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
@@ -1788,11 +1700,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
-        "duration": "57.0",
+        "duration": "61.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
@@ -1800,23 +1712,23 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
-        "duration": "37.0",
+        "duration": "38.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "103.0",
+        "duration": "101.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
-        "duration": "59.0",
+        "duration": "61.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "41.0",
+        "duration": "33.0",
         "name": "rendering.mobile/accu_weather_2018"
     },
     {
-        "duration": "31.0",
+        "duration": "44.0",
         "name": "rendering.mobile/accu_weather_mobile_pinch_2018"
     },
     {
@@ -1824,15 +1736,15 @@
         "name": "rendering.mobile/amazon_2018"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "rendering.mobile/amazon_mobile_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "24.0",
         "name": "rendering.mobile/analog_clock_svg"
     },
     {
-        "duration": "39.0",
+        "duration": "37.0",
         "name": "rendering.mobile/androidpolice_mobile_2018"
     },
     {
@@ -1840,34 +1752,38 @@
         "name": "rendering.mobile/animometer_webgl"
     },
     {
-        "duration": "26.0",
+        "duration": "21.0",
         "name": "rendering.mobile/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "33.0",
+        "duration": "28.0",
         "name": "rendering.mobile/animometer_webgl_multi_draw"
     },
     {
-        "duration": "37.0",
+        "duration": "24.0",
         "name": "rendering.mobile/aquarium"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/background_color_animation"
     },
     {
-        "duration": "41.0",
+        "duration": "30.0",
         "name": "rendering.mobile/background_color_animation_with_gradient"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/baidu_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "rendering.mobile/balls_css_key_frame_animations"
     },
     {
+        "duration": "0.0",
+        "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform"
+    },
+    {
         "duration": "21.0",
         "name": "rendering.mobile/balls_css_transition_2_properties"
     },
@@ -1884,27 +1800,23 @@
         "name": "rendering.mobile/balls_javascript_canvas"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "rendering.mobile/balls_javascript_css"
     },
     {
-        "duration": "31.0",
-        "name": "rendering.mobile/balls_svg_animations"
-    },
-    {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/basic_stream"
     },
     {
-        "duration": "22.0",
+        "duration": "47.0",
         "name": "rendering.mobile/bing_mobile_2018"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/blob"
     },
     {
-        "duration": "22.0",
+        "duration": "16.0",
         "name": "rendering.mobile/blogspot_2018"
     },
     {
@@ -1912,7 +1824,7 @@
         "name": "rendering.mobile/blogspot_mobile_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "18.0",
         "name": "rendering.mobile/blur_rotating_background"
     },
     {
@@ -1928,7 +1840,7 @@
         "name": "rendering.mobile/booking.com_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/bouncing_balls_15"
     },
     {
@@ -1944,18 +1856,26 @@
         "name": "rendering.mobile/bouncing_png_images"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/bouncing_svg_images"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/camera_to_webgl"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/canvas_05000_pixels_per_second"
     },
     {
+        "duration": "0.0",
+        "name": "rendering.mobile/canvas_60000_pixels_per_second"
+    },
+    {
+        "duration": "0.0",
+        "name": "rendering.mobile/canvas_animation_no_clear"
+    },
+    {
         "duration": "15.0",
         "name": "rendering.mobile/canvas_arcs"
     },
@@ -1968,27 +1888,27 @@
         "name": "rendering.mobile/canvas_lines"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/canvas_to_blob"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "rendering.mobile/capitolvolkswagen_mobile_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/card_expansion"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/card_expansion_animated"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/card_expansion_images_text"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/card_flying"
     },
     {
@@ -1996,19 +1916,19 @@
         "name": "rendering.mobile/cats_unscaled"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.mobile/cats_viewport_width"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/cc_poster_circle"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/cc_scroll_text_only"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "rendering.mobile/chip_tune"
     },
     {
@@ -2020,19 +1940,19 @@
         "name": "rendering.mobile/cnn_article_mobile_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/cnn_mobile_2018"
     },
     {
-        "duration": "29.0",
+        "duration": "0.0",
         "name": "rendering.mobile/cnn_mobile_pinch_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/cnn_pathological_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/compositor_heavy_animation"
     },
     {
@@ -2040,7 +1960,7 @@
         "name": "rendering.mobile/coordinated_animation"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/crafty_mind"
     },
     {
@@ -2048,19 +1968,19 @@
         "name": "rendering.mobile/css_animations_many_keyframes"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_animations_simultaneous_inline_style"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_animations_simultaneous_new_element"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_animations_simultaneous_style_element"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_animations_simultaneous_updating_class"
     },
     {
@@ -2068,35 +1988,35 @@
         "name": "rendering.mobile/css_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_staggered_inline_style"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_animations_staggered_new_element"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_animations_staggered_style_element"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_staggered_updating_class"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_triggered_inline_style"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/css_animations_triggered_new_element"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_animations_triggered_style_element"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_animations_triggered_updating_class"
     },
     {
@@ -2104,19 +2024,19 @@
         "name": "rendering.mobile/css_opacity_plus_n_layers_0"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_75"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/css_opacity_plus_n_layers_99"
     },
     {
-        "duration": "21.0",
+        "duration": "30.0",
         "name": "rendering.mobile/css_transitions_inline_style"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_transitions_new_element"
     },
     {
@@ -2124,11 +2044,11 @@
         "name": "rendering.mobile/css_transitions_staggered_inline_style"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_transitions_staggered_new_element"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_transitions_staggered_style_element"
     },
     {
@@ -2140,7 +2060,7 @@
         "name": "rendering.mobile/css_transitions_style_element"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_transitions_triggered_inline_style"
     },
     {
@@ -2148,11 +2068,11 @@
         "name": "rendering.mobile/css_transitions_triggered_new_element"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_transitions_triggered_style_element"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/css_transitions_triggered_updating_class"
     },
     {
@@ -2160,11 +2080,11 @@
         "name": "rendering.mobile/css_transitions_updating_class"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_value_type_color"
     },
     {
-        "duration": "36.0",
+        "duration": "32.0",
         "name": "rendering.mobile/css_value_type_filter"
     },
     {
@@ -2172,19 +2092,19 @@
         "name": "rendering.mobile/css_value_type_length"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_value_type_length_complex"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/css_value_type_length_simple"
     },
     {
-        "duration": "27.0",
+        "duration": "23.0",
         "name": "rendering.mobile/css_value_type_path"
     },
     {
-        "duration": "45.0",
+        "duration": "38.0",
         "name": "rendering.mobile/css_value_type_shadow"
     },
     {
@@ -2196,7 +2116,7 @@
         "name": "rendering.mobile/css_value_type_transform_simple"
     },
     {
-        "duration": "23.0",
+        "duration": "32.0",
         "name": "rendering.mobile/deviantart_mobile_2018"
     },
     {
@@ -2208,7 +2128,7 @@
         "name": "rendering.mobile/dynamic_cube_map"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/earth"
     },
     {
@@ -2220,23 +2140,23 @@
         "name": "rendering.mobile/ebay_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "rendering.mobile/ebay_mobile_pinch_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/ebay_scroll_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "33.0",
         "name": "rendering.mobile/espn_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rendering.mobile/espn_mobile_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "20.0",
         "name": "rendering.mobile/espn_pathological_2018"
     },
     {
@@ -2244,11 +2164,11 @@
         "name": "rendering.mobile/extra_large_texture_uploads"
     },
     {
-        "duration": "17.0",
+        "duration": "22.0",
         "name": "rendering.mobile/facebook_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/facebook_mobile_2018"
     },
     {
@@ -2256,27 +2176,27 @@
         "name": "rendering.mobile/fill_shapes"
     },
     {
-        "duration": "28.0",
+        "duration": "24.0",
         "name": "rendering.mobile/filter_terrain_svg"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "rendering.mobile/flickr_scroll_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "19.0",
         "name": "rendering.mobile/font_wipe"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.mobile/forecast.io_mobile_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "rendering.mobile/geo_apis"
     },
     {
-        "duration": "18.0",
+        "duration": "31.0",
         "name": "rendering.mobile/gmail_2018"
     },
     {
@@ -2284,39 +2204,39 @@
         "name": "rendering.mobile/google_calendar_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/google_docs_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/google_image_search_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/google_image_search_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/google_news_ios"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/google_news_mobile_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "19.0",
         "name": "rendering.mobile/google_plus_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "rendering.mobile/google_plus_mobile_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/google_search_mobile_pinch_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.mobile/google_web_search_2018"
     },
     {
@@ -2332,7 +2252,7 @@
         "name": "rendering.mobile/guardian_pathological_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/guimark_vector_chart"
     },
     {
@@ -2344,7 +2264,7 @@
         "name": "rendering.mobile/gws_google_expansion"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/hakim"
     },
     {
@@ -2352,11 +2272,11 @@
         "name": "rendering.mobile/horizontal_vertical_expansion"
     },
     {
-        "duration": "43.0",
+        "duration": "38.0",
         "name": "rendering.mobile/idle_power_animated_gif"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "rendering.mobile/idle_power_blank"
     },
     {
@@ -2368,7 +2288,7 @@
         "name": "rendering.mobile/idle_power_request_animation_frame"
     },
     {
-        "duration": "116.0",
+        "duration": "113.0",
         "name": "rendering.mobile/idle_power_set_timeout_long"
     },
     {
@@ -2376,19 +2296,19 @@
         "name": "rendering.mobile/idle_power_set_timetout"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "rendering.mobile/ie_chalkboard"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "rendering.mobile/ie_pirate_mark"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_0"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/infinite_scroll_element_n_layers_75"
     },
     {
@@ -2396,11 +2316,11 @@
         "name": "rendering.mobile/infinite_scroll_element_n_layers_99"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75"
     },
     {
@@ -2408,55 +2328,63 @@
         "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_0"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_75"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/infinite_scroll_root_n_layers_99"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/infinite_scrolling"
     },
     {
-        "duration": "22.0",
+        "duration": "18.0",
         "name": "rendering.mobile/jarro_doverson"
     },
     {
-        "duration": "44.0",
+        "duration": "13.0",
+        "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "33.0",
         "name": "rendering.mobile/js_full_screen_invalidation"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_0"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_75"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/js_opacity_plus_n_layers_99"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_0"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_75"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/js_paint_plus_n_layers_99"
     },
     {
-        "duration": "27.0",
+        "duration": "25.0",
         "name": "rendering.mobile/js_poster_circle"
     },
     {
@@ -2464,11 +2392,11 @@
         "name": "rendering.mobile/js_scroll_text_only"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/keyframed_animations"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/large_texture_uploads"
     },
     {
@@ -2476,19 +2404,19 @@
         "name": "rendering.mobile/latimes_pathological_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "rendering.mobile/linkedin_2018"
     },
     {
-        "duration": "53.0",
+        "duration": "48.0",
         "name": "rendering.mobile/linkedin_mobile_2018"
     },
     {
-        "duration": "43.0",
+        "duration": "41.0",
         "name": "rendering.mobile/linkedin_mobile_pinch_2018"
     },
     {
-        "duration": "41.0",
+        "duration": "37.0",
         "name": "rendering.mobile/linkedin_pathological_2018"
     },
     {
@@ -2496,31 +2424,43 @@
         "name": "rendering.mobile/list_animation_simple"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/list_recycle_transform"
     },
     {
-        "duration": "16.0",
+        "duration": "14.0",
+        "name": "rendering.mobile/main_0fps_impl_60fps"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.mobile/main_30fps_impl_60fps"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.mobile/main_60fps_impl_60fps"
+    },
+    {
+        "duration": "15.0",
         "name": "rendering.mobile/man_in_blue"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/many_images"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/many_planets_deep"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "rendering.mobile/mask_transition_animation"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/masonry"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/medium_texture_uploads"
     },
     {
@@ -2528,34 +2468,30 @@
         "name": "rendering.mobile/megi_dish"
     },
     {
-        "duration": "20.0",
+        "duration": "17.0",
         "name": "rendering.mobile/microsoft_asteroid_belt"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "rendering.mobile/microsoft_fish_ie_tank"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/microsoft_performance"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "rendering.mobile/microsoft_snow"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.mobile/microsoft_speed_reading"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "rendering.mobile/microsoft_tweet_map"
     },
     {
-        "duration": "21.0",
-        "name": "rendering.mobile/microsoft_video_city"
-    },
-    {
         "duration": "16.0",
         "name": "rendering.mobile/microsoft_worker_fountains"
     },
@@ -2564,19 +2500,19 @@
         "name": "rendering.mobile/mix_10k"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "rendering.mobile/mix_blend_mode_animation_difference"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "rendering.mobile/mix_blend_mode_animation_hue"
     },
     {
-        "duration": "26.0",
+        "duration": "23.0",
         "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation"
     },
     {
-        "duration": "25.0",
+        "duration": "23.0",
         "name": "rendering.mobile/mix_blend_mode_animation_screen"
     },
     {
@@ -2588,11 +2524,11 @@
         "name": "rendering.mobile/mobile_news_sandbox"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/motion_mark_canvas_fill_shapes"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/motion_mark_canvas_stroke_shapes"
     },
     {
@@ -2608,11 +2544,11 @@
         "name": "rendering.mobile/motionmark_anim_images_50"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_leaves_250"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_anim_multiply_175"
     },
     {
@@ -2636,55 +2572,55 @@
         "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_html_focus_20_15"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/motionmark_html_leaves_20_50"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_circles_250"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/new_tilings"
     },
     {
@@ -2692,7 +2628,7 @@
         "name": "rendering.mobile/no_op_raf"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/no_op_scroll"
     },
     {
@@ -2700,39 +2636,39 @@
         "name": "rendering.mobile/no_op_settimeout"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/no_op_touch_handler"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "rendering.mobile/nyc_gov_scroll_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "rendering.mobile/nytimes_mobile_2018"
     },
     {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "rendering.mobile/nytimes_scroll_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "30.0",
         "name": "rendering.mobile/overlay_background_color_css_transitions_page"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "rendering.mobile/parallax_effect"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/particles"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rendering.mobile/pbs_pathological_2018"
     },
     {
@@ -2740,11 +2676,11 @@
         "name": "rendering.mobile/physical_simulation"
     },
     {
-        "duration": "22.0",
+        "duration": "25.0",
         "name": "rendering.mobile/pinterest_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "17.0",
         "name": "rendering.mobile/pinterest_mobile_2018"
     },
     {
@@ -2752,27 +2688,27 @@
         "name": "rendering.mobile/put_get_image_data"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/raf"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/raf_animation"
     },
     {
-        "duration": "28.0",
+        "duration": "19.0",
         "name": "rendering.mobile/raf_canvas"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rendering.mobile/raf_touch_animation"
     },
     {
-        "duration": "25.0",
+        "duration": "22.0",
         "name": "rendering.mobile/recode_pathological_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "26.0",
         "name": "rendering.mobile/reddit_mobile_2018"
     },
     {
@@ -2780,7 +2716,7 @@
         "name": "rendering.mobile/runway"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "rendering.mobile/san_angeles"
     },
     {
@@ -2796,15 +2732,15 @@
         "name": "rendering.mobile/second_batch_js_medium"
     },
     {
-        "duration": "23.0",
+        "duration": "25.0",
         "name": "rendering.mobile/sfgate_mobile_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/silk_finance"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/simple_text_page"
     },
     {
@@ -2820,7 +2756,7 @@
         "name": "rendering.mobile/slide_drawer"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rendering.mobile/small_texture_uploads"
     },
     {
@@ -2832,15 +2768,15 @@
         "name": "rendering.mobile/sticky_using_webkit"
     },
     {
-        "duration": "24.0",
+        "duration": "18.0",
         "name": "rendering.mobile/stress_hidey_bars"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/stroke_shapes"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "rendering.mobile/svg_icon_raster"
     },
     {
@@ -2848,27 +2784,27 @@
         "name": "rendering.mobile/swipe_action"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/swipe_to_dismiss"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/sync_scroll_offset"
     },
     {
-        "duration": "30.0",
+        "duration": "25.0",
         "name": "rendering.mobile/techcrunch_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.mobile/techcrunch_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/text_05000_pixels_per_second"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/text_10000_pixels_per_second"
     },
     {
@@ -2884,11 +2820,11 @@
         "name": "rendering.mobile/text_60000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.mobile/text_75000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.mobile/text_90000_pixels_per_second"
     },
     {
@@ -2904,39 +2840,39 @@
         "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_hover_05000_pixels_per_second"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/text_hover_10000_pixels_per_second"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.mobile/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.mobile/text_hover_40000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.mobile/text_hover_60000_pixels_per_second"
     },
     {
@@ -2944,7 +2880,7 @@
         "name": "rendering.mobile/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.mobile/text_hover_90000_pixels_per_second"
     },
     {
@@ -2960,27 +2896,27 @@
         "name": "rendering.mobile/toggle_drawer"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.mobile/touch_handler_scrolling"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/transform_transitions"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/transform_transitions_js_block"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.mobile/twitch_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/twitch_mobile_pinch_2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "rendering.mobile/twitter_2018"
     },
     {
@@ -2988,19 +2924,19 @@
         "name": "rendering.mobile/twitter_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/update_history_state"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.mobile/usatoday_mobile_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rendering.mobile/vertical_expansion"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animation_value_type_color"
     },
     {
@@ -3008,19 +2944,19 @@
         "name": "rendering.mobile/web_animation_value_type_length_3d"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animation_value_type_length_complex"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "rendering.mobile/web_animation_value_type_length_simple"
     },
     {
-        "duration": "27.0",
+        "duration": "23.0",
         "name": "rendering.mobile/web_animation_value_type_path"
     },
     {
-        "duration": "45.0",
+        "duration": "38.0",
         "name": "rendering.mobile/web_animation_value_type_shadow"
     },
     {
@@ -3032,7 +2968,7 @@
         "name": "rendering.mobile/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "rendering.mobile/web_animations_many_keyframes"
     },
     {
@@ -3056,15 +2992,23 @@
         "name": "rendering.mobile/web_animations_staggered_triggering_page"
     },
     {
-        "duration": "27.0",
+        "duration": "14.0",
+        "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "26.0",
         "name": "rendering.mobile/wikipedia_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.mobile/wikipedia_mobile_2018"
     },
     {
@@ -3084,11 +3028,11 @@
         "name": "rendering.mobile/wow_wiki_pathological_2018"
     },
     {
-        "duration": "42.0",
+        "duration": "40.0",
         "name": "rendering.mobile/wowwiki_mobile_2018"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "rendering.mobile/wsj_mobile_2018"
     },
     {
@@ -3096,142 +3040,38 @@
         "name": "rendering.mobile/yahoo_answers_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "rendering.mobile/yahoo_news_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "21.0",
         "name": "rendering.mobile/yahoo_news_mobile_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "rendering.mobile/yahoo_sports_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "rendering.mobile/yahoo_sports_pathological_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "rendering.mobile/youtube_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.mobile/youtube_mobile_2018"
     },
     {
-        "duration": "32.0",
-        "name": "rendering.mobile/yuv_decoding"
-    },
-    {
-        "duration": "32.0",
-        "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding"
-    },
-    {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "rendering.mobile/zdnet_pathological_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.mobile/zoom_in_animation"
     },
     {
-        "duration": "23.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018"
-    },
-    {
-        "duration": "16.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018"
-    },
-    {
-        "duration": "20.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018"
-    },
-    {
-        "duration": "22.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018"
-    },
-    {
-        "duration": "40.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018"
-    },
-    {
-        "duration": "19.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "15.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018"
-    },
-    {
-        "duration": "21.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018"
-    },
-    {
-        "duration": "27.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "29.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "24.0",
-        "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018"
-    },
-    {
-        "duration": "16.0",
-        "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018"
-    },
-    {
-        "duration": "20.0",
-        "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018"
-    },
-    {
-        "duration": "22.0",
-        "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018"
-    },
-    {
-        "duration": "40.0",
-        "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018"
-    },
-    {
-        "duration": "19.0",
-        "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "15.0",
-        "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018"
-    },
-    {
-        "duration": "21.0",
-        "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018"
-    },
-    {
-        "duration": "27.0",
-        "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "29.0",
-        "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "24.0",
-        "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018"
-    },
-    {
         "duration": "86.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
@@ -3240,11 +3080,11 @@
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "137.0",
+        "duration": "140.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "135.0",
+        "duration": "137.0",
         "name": "speedometer2/Speedometer2"
     },
     {
@@ -3252,123 +3092,143 @@
         "name": "system_health.common_mobile/background:media:imgur"
     },
     {
-        "duration": "40.0",
-        "name": "system_health.common_mobile/background:news:nytimes"
-    },
-    {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "system_health.common_mobile/background:search:google"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/background:social:facebook"
     },
     {
-        "duration": "10.0",
+        "duration": "2.0",
+        "name": "system_health.common_mobile/background:tools:gmail"
+    },
+    {
+        "duration": "7.0",
         "name": "system_health.common_mobile/browse:chrome:newtab"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "system_health.common_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "83.0",
+        "duration": "81.0",
         "name": "system_health.common_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "46.0",
+        "duration": "42.0",
         "name": "system_health.common_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "73.0",
+        "duration": "70.0",
         "name": "system_health.common_mobile/browse:media:imgur"
     },
     {
-        "duration": "105.0",
+        "duration": "93.0",
         "name": "system_health.common_mobile/browse:media:youtube"
     },
     {
-        "duration": "122.0",
-        "name": "system_health.common_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "92.0",
+        "duration": "85.0",
         "name": "system_health.common_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "56.0",
+        "duration": "50.0",
         "name": "system_health.common_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "63.0",
+        "duration": "0.0",
+        "name": "system_health.common_mobile/browse:news:globo"
+    },
+    {
+        "duration": "52.0",
         "name": "system_health.common_mobile/browse:news:qq"
     },
     {
-        "duration": "55.0",
+        "duration": "54.0",
         "name": "system_health.common_mobile/browse:news:reddit"
     },
     {
-        "duration": "143.0",
+        "duration": "72.0",
+        "name": "system_health.common_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "134.0",
         "name": "system_health.common_mobile/browse:news:toi"
     },
     {
-        "duration": "51.0",
+        "duration": "49.0",
         "name": "system_health.common_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "28.0",
+        "duration": "79.0",
+        "name": "system_health.common_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.common_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "69.0",
+        "duration": "24.0",
+        "name": "system_health.common_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "67.0",
         "name": "system_health.common_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "31.0",
+        "duration": "0.0",
+        "name": "system_health.common_mobile/browse:shopping:avito"
+    },
+    {
+        "duration": "32.0",
         "name": "system_health.common_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "66.0",
+        "duration": "63.0",
         "name": "system_health.common_mobile/browse:social:facebook"
     },
     {
-        "duration": "105.0",
+        "duration": "89.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "89.0",
+        "duration": "80.0",
         "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "85.0",
+        "duration": "83.0",
         "name": "system_health.common_mobile/browse:social:instagram"
     },
     {
-        "duration": "87.0",
+        "duration": "92.0",
+        "name": "system_health.common_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "78.0",
         "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "93.0",
-        "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "99.0",
+        "duration": "88.0",
         "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "53.0",
+        "duration": "51.0",
         "name": "system_health.common_mobile/browse:social:twitter"
     },
     {
-        "duration": "64.0",
+        "duration": "79.0",
+        "name": "system_health.common_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "59.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "85.0",
+        "duration": "75.0",
         "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
@@ -3376,23 +3236,27 @@
         "name": "system_health.common_mobile/browse:tools:maps"
     },
     {
-        "duration": "26.0",
+        "duration": "45.0",
+        "name": "system_health.common_mobile/browse:tools:maps:2019"
+    },
+    {
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:chrome:blank"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:games:bubbles"
     },
     {
-        "duration": "16.0",
+        "duration": "19.0",
+        "name": "system_health.common_mobile/load:games:bubbles:2019"
+    },
+    {
+        "duration": "17.0",
         "name": "system_health.common_mobile/load:games:lazors"
     },
     {
         "duration": "27.0",
-        "name": "system_health.common_mobile/load:games:spychase"
-    },
-    {
-        "duration": "29.0",
         "name": "system_health.common_mobile/load:games:spychase:2018"
     },
     {
@@ -3404,118 +3268,102 @@
         "name": "system_health.common_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "24.0",
-        "name": "system_health.common_mobile/load:media:flickr:2018"
+        "duration": "19.0",
+        "name": "system_health.common_mobile/load:media:facebook_photos:2019"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:media:google_images"
+        "duration": "24.0",
+        "name": "system_health.common_mobile/load:media:flickr:2018"
     },
     {
         "duration": "19.0",
         "name": "system_health.common_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:media:imgur"
-    },
-    {
-        "duration": "25.0",
+        "duration": "27.0",
         "name": "system_health.common_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:media:youtube"
-    },
-    {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "36.0",
-        "name": "system_health.common_mobile/load:news:cnn"
-    },
-    {
         "duration": "31.0",
         "name": "system_health.common_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:news:irctc"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.common_mobile/load:news:nytimes"
+        "duration": "37.0",
+        "name": "system_health.common_mobile/load:news:nytimes:2019"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "system_health.common_mobile/load:news:qq"
     },
     {
+        "duration": "21.0",
+        "name": "system_health.common_mobile/load:news:qq:2019"
+    },
+    {
         "duration": "20.0",
         "name": "system_health.common_mobile/load:news:reddit"
     },
     {
         "duration": "21.0",
-        "name": "system_health.common_mobile/load:news:washingtonpost"
+        "name": "system_health.common_mobile/load:news:reddit:2019"
     },
     {
         "duration": "21.0",
-        "name": "system_health.common_mobile/load:news:wikipedia"
+        "name": "system_health.common_mobile/load:news:washingtonpost"
+    },
+    {
+        "duration": "20.0",
+        "name": "system_health.common_mobile/load:news:washingtonpost:2019"
     },
     {
         "duration": "20.0",
         "name": "system_health.common_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.common_mobile/load:search:baidu"
-    },
-    {
-        "duration": "25.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.common_mobile/load:search:ebay"
-    },
-    {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "system_health.common_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:search:google"
-    },
-    {
         "duration": "19.0",
         "name": "system_health.common_mobile/load:search:google:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "22.0",
         "name": "system_health.common_mobile/load:search:taobao"
     },
     {
         "duration": "17.0",
-        "name": "system_health.common_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "17.0",
         "name": "system_health.common_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_mobile/load:search:yandex"
-    },
-    {
         "duration": "20.0",
         "name": "system_health.common_mobile/load:search:yandex:2018"
     },
     {
+        "duration": "20.0",
+        "name": "system_health.common_mobile/load:social:instagram:2019"
+    },
+    {
         "duration": "18.0",
         "name": "system_health.common_mobile/load:social:twitter"
     },
     {
+        "duration": "20.0",
+        "name": "system_health.common_mobile/load:social:twitter:2019"
+    },
+    {
         "duration": "18.0",
         "name": "system_health.common_mobile/load:tools:docs"
     },
@@ -3528,10 +3376,6 @@
         "name": "system_health.common_mobile/load:tools:dropbox"
     },
     {
-        "duration": "18.0",
-        "name": "system_health.common_mobile/load:tools:stackoverflow"
-    },
-    {
         "duration": "20.0",
         "name": "system_health.common_mobile/load:tools:stackoverflow:2018"
     },
@@ -3544,11 +3388,11 @@
         "name": "system_health.memory_mobile/background:media:imgur"
     },
     {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "system_health.memory_mobile/background:news:nytimes"
     },
     {
-        "duration": "26.0",
+        "duration": "28.0",
         "name": "system_health.memory_mobile/background:search:google"
     },
     {
@@ -3556,11 +3400,11 @@
         "name": "system_health.memory_mobile/background:social:facebook"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "system_health.memory_mobile/browse:chrome:newtab"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "system_health.memory_mobile/browse:chrome:omnibox"
     },
     {
@@ -3568,7 +3412,7 @@
         "name": "system_health.memory_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "47.0",
+        "duration": "48.0",
         "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3584,51 +3428,67 @@
         "name": "system_health.memory_mobile/browse:media:youtube"
     },
     {
-        "duration": "106.0",
-        "name": "system_health.memory_mobile/browse:news:cnn"
-    },
-    {
-        "duration": "77.0",
+        "duration": "78.0",
         "name": "system_health.memory_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "53.0",
+        "duration": "50.0",
         "name": "system_health.memory_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "62.0",
+        "duration": "53.0",
         "name": "system_health.memory_mobile/browse:news:qq"
     },
     {
-        "duration": "54.0",
+        "duration": "56.0",
         "name": "system_health.memory_mobile/browse:news:reddit"
     },
     {
-        "duration": "107.0",
+        "duration": "71.0",
+        "name": "system_health.memory_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "111.0",
         "name": "system_health.memory_mobile/browse:news:toi"
     },
     {
-        "duration": "50.0",
+        "duration": "51.0",
         "name": "system_health.memory_mobile/browse:news:washingtonpost"
     },
     {
+        "duration": "72.0",
+        "name": "system_health.memory_mobile/browse:news:washingtonpost:2019"
+    },
+    {
         "duration": "27.0",
         "name": "system_health.memory_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "28.0",
+        "name": "system_health.memory_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "62.0",
         "name": "system_health.memory_mobile/browse:shopping:amazon"
     },
     {
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/browse:shopping:flipkart"
+    },
+    {
         "duration": "34.0",
         "name": "system_health.memory_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "63.0",
+        "duration": "66.0",
         "name": "system_health.memory_mobile/browse:social:facebook"
     },
     {
-        "duration": "75.0",
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll"
+    },
+    {
+        "duration": "76.0",
         "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3636,15 +3496,15 @@
         "name": "system_health.memory_mobile/browse:social:instagram"
     },
     {
+        "duration": "90.0",
+        "name": "system_health.memory_mobile/browse:social:instagram:2019"
+    },
+    {
         "duration": "76.0",
         "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "77.0",
-        "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "81.0",
+        "duration": "80.0",
         "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -3652,14 +3512,26 @@
         "name": "system_health.memory_mobile/browse:social:twitter"
     },
     {
-        "duration": "57.0",
+        "duration": "80.0",
+        "name": "system_health.memory_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "58.0",
         "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "44.0",
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018"
+    },
+    {
+        "duration": "45.0",
         "name": "system_health.memory_mobile/browse:tools:maps"
     },
     {
+        "duration": "46.0",
+        "name": "system_health.memory_mobile/browse:tools:maps:2019"
+    },
+    {
         "duration": "23.0",
         "name": "system_health.memory_mobile/load:chrome:blank"
     },
@@ -3668,12 +3540,12 @@
         "name": "system_health.memory_mobile/load:games:bubbles"
     },
     {
-        "duration": "21.0",
-        "name": "system_health.memory_mobile/load:games:lazors"
+        "duration": "22.0",
+        "name": "system_health.memory_mobile/load:games:bubbles:2019"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.memory_mobile/load:games:spychase"
+        "duration": "21.0",
+        "name": "system_health.memory_mobile/load:games:lazors"
     },
     {
         "duration": "29.0",
@@ -3684,135 +3556,123 @@
         "name": "system_health.memory_mobile/load:media:dailymotion"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "system_health.memory_mobile/load:media:facebook_photos"
     },
     {
-        "duration": "28.0",
-        "name": "system_health.memory_mobile/load:media:flickr:2018"
+        "duration": "23.0",
+        "name": "system_health.memory_mobile/load:media:facebook_photos:2019"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:media:google_images"
+        "duration": "29.0",
+        "name": "system_health.memory_mobile/load:media:flickr:2018"
     },
     {
         "duration": "24.0",
         "name": "system_health.memory_mobile/load:media:google_images:2018"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:media:imgur"
-    },
-    {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "system_health.memory_mobile/load:media:imgur:2018"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:media:youtube"
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/load:media:soundcloud:2018"
     },
     {
         "duration": "24.0",
         "name": "system_health.memory_mobile/load:media:youtube:2018"
     },
     {
-        "duration": "39.0",
-        "name": "system_health.memory_mobile/load:news:cnn"
-    },
-    {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "system_health.memory_mobile/load:news:cnn:2018"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:news:irctc"
     },
     {
-        "duration": "27.0",
-        "name": "system_health.memory_mobile/load:news:nytimes"
+        "duration": "39.0",
+        "name": "system_health.memory_mobile/load:news:nytimes:2019"
     },
     {
-        "duration": "26.0",
+        "duration": "23.0",
         "name": "system_health.memory_mobile/load:news:qq"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:news:qq:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:reddit"
     },
     {
         "duration": "25.0",
+        "name": "system_health.memory_mobile/load:news:reddit:2019"
+    },
+    {
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:washingtonpost"
     },
     {
-        "duration": "25.0",
-        "name": "system_health.memory_mobile/load:news:wikipedia"
+        "duration": "24.0",
+        "name": "system_health.memory_mobile/load:news:washingtonpost:2019"
     },
     {
         "duration": "25.0",
         "name": "system_health.memory_mobile/load:news:wikipedia:2018"
     },
     {
-        "duration": "29.0",
-        "name": "system_health.memory_mobile/load:search:baidu"
-    },
-    {
-        "duration": "30.0",
+        "duration": "27.0",
         "name": "system_health.memory_mobile/load:search:baidu:2018"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:search:ebay"
-    },
-    {
         "duration": "25.0",
         "name": "system_health.memory_mobile/load:search:ebay:2018"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:search:google"
-    },
-    {
         "duration": "24.0",
         "name": "system_health.memory_mobile/load:search:google:2018"
     },
     {
-        "duration": "24.0",
+        "duration": "26.0",
         "name": "system_health.memory_mobile/load:search:taobao"
     },
     {
         "duration": "22.0",
-        "name": "system_health.memory_mobile/load:search:yahoo"
-    },
-    {
-        "duration": "22.0",
         "name": "system_health.memory_mobile/load:search:yahoo:2018"
     },
     {
-        "duration": "22.0",
-        "name": "system_health.memory_mobile/load:search:yandex"
+        "duration": "25.0",
+        "name": "system_health.memory_mobile/load:search:yandex:2018"
     },
     {
         "duration": "24.0",
-        "name": "system_health.memory_mobile/load:search:yandex:2018"
+        "name": "system_health.memory_mobile/load:social:instagram:2019"
     },
     {
         "duration": "23.0",
         "name": "system_health.memory_mobile/load:social:twitter"
     },
     {
+        "duration": "24.0",
+        "name": "system_health.memory_mobile/load:social:twitter:2019"
+    },
+    {
         "duration": "23.0",
         "name": "system_health.memory_mobile/load:tools:docs"
     },
     {
+        "duration": "0.0",
+        "name": "system_health.memory_mobile/load:tools:drive"
+    },
+    {
         "duration": "22.0",
         "name": "system_health.memory_mobile/load:tools:dropbox"
     },
     {
-        "duration": "23.0",
-        "name": "system_health.memory_mobile/load:tools:stackoverflow"
-    },
-    {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "system_health.memory_mobile/load:tools:stackoverflow:2018"
     },
     {
@@ -3828,11 +3688,11 @@
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
@@ -3840,7 +3700,7 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
@@ -3848,259 +3708,163 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "11.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:newtab"
-    },
-    {
-        "duration": "10.0",
-        "name": "v8.browsing_mobile-future/browse:chrome:omnibox"
-    },
-    {
-        "duration": "94.0",
-        "name": "v8.browsing_mobile-future/browse:media:facebook_photos"
-    },
-    {
-        "duration": "56.0",
-        "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "53.0",
-        "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019"
-    },
-    {
-        "duration": "80.0",
-        "name": "v8.browsing_mobile-future/browse:media:imgur"
-    },
-    {
-        "duration": "121.0",
-        "name": "v8.browsing_mobile-future/browse:media:youtube"
-    },
-    {
-        "duration": "177.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn"
-    },
-    {
-        "duration": "125.0",
-        "name": "v8.browsing_mobile-future/browse:news:cnn:2018"
-    },
-    {
-        "duration": "60.0",
-        "name": "v8.browsing_mobile-future/browse:news:cricbuzz"
-    },
-    {
-        "duration": "70.0",
+        "duration": "1.0",
         "name": "v8.browsing_mobile-future/browse:news:qq"
     },
     {
-        "duration": "62.0",
-        "name": "v8.browsing_mobile-future/browse:news:reddit"
-    },
-    {
-        "duration": "59.0",
-        "name": "v8.browsing_mobile-future/browse:news:washingtonpost"
-    },
-    {
-        "duration": "31.0",
-        "name": "v8.browsing_mobile-future/browse:search:amp:2018"
-    },
-    {
-        "duration": "82.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:amazon"
-    },
-    {
-        "duration": "37.0",
-        "name": "v8.browsing_mobile-future/browse:shopping:lazada"
-    },
-    {
-        "duration": "78.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook"
-    },
-    {
-        "duration": "110.0",
-        "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "102.0",
-        "name": "v8.browsing_mobile-future/browse:social:instagram"
-    },
-    {
-        "duration": "106.0",
-        "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll"
-    },
-    {
-        "duration": "117.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "129.0",
-        "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "58.0",
-        "name": "v8.browsing_mobile-future/browse:social:twitter"
-    },
-    {
-        "duration": "104.0",
-        "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018"
-    },
-    {
-        "duration": "48.0",
+        "duration": "0.0",
         "name": "v8.browsing_mobile-future/browse:tools:maps"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "v8.browsing_mobile/browse:chrome:newtab"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "v8.browsing_mobile/browse:chrome:omnibox"
     },
     {
-        "duration": "94.0",
+        "duration": "90.0",
         "name": "v8.browsing_mobile/browse:media:facebook_photos"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "53.0",
+        "duration": "50.0",
         "name": "v8.browsing_mobile/browse:media:googleplaystore:2019"
     },
     {
-        "duration": "80.0",
+        "duration": "77.0",
         "name": "v8.browsing_mobile/browse:media:imgur"
     },
     {
-        "duration": "125.0",
+        "duration": "110.0",
         "name": "v8.browsing_mobile/browse:news:cnn:2018"
     },
     {
-        "duration": "60.0",
+        "duration": "57.0",
         "name": "v8.browsing_mobile/browse:news:cricbuzz"
     },
     {
-        "duration": "71.0",
+        "duration": "62.0",
         "name": "v8.browsing_mobile/browse:news:qq"
     },
     {
-        "duration": "62.0",
+        "duration": "61.0",
         "name": "v8.browsing_mobile/browse:news:reddit"
     },
     {
-        "duration": "59.0",
+        "duration": "86.0",
+        "name": "v8.browsing_mobile/browse:news:reddit:2019"
+    },
+    {
+        "duration": "56.0",
         "name": "v8.browsing_mobile/browse:news:washingtonpost"
     },
     {
-        "duration": "31.0",
+        "duration": "97.0",
+        "name": "v8.browsing_mobile/browse:news:washingtonpost:2019"
+    },
+    {
+        "duration": "29.0",
         "name": "v8.browsing_mobile/browse:search:amp:2018"
     },
     {
-        "duration": "92.0",
+        "duration": "26.0",
+        "name": "v8.browsing_mobile/browse:search:amp:sxg:2019"
+    },
+    {
+        "duration": "75.0",
         "name": "v8.browsing_mobile/browse:shopping:amazon"
     },
     {
-        "duration": "38.0",
+        "duration": "35.0",
         "name": "v8.browsing_mobile/browse:shopping:lazada"
     },
     {
-        "duration": "78.0",
+        "duration": "77.0",
         "name": "v8.browsing_mobile/browse:social:facebook"
     },
     {
-        "duration": "116.0",
+        "duration": "106.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll"
     },
     {
-        "duration": "110.0",
+        "duration": "100.0",
         "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "102.0",
+        "duration": "101.0",
         "name": "v8.browsing_mobile/browse:social:instagram"
     },
     {
-        "duration": "106.0",
+        "duration": "112.0",
+        "name": "v8.browsing_mobile/browse:social:instagram:2019"
+    },
+    {
+        "duration": "94.0",
         "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll"
     },
     {
-        "duration": "117.0",
-        "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "128.0",
+        "duration": "110.0",
         "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "58.0",
+        "duration": "55.0",
         "name": "v8.browsing_mobile/browse:social:twitter"
     },
     {
-        "duration": "76.0",
+        "duration": "91.0",
+        "name": "v8.browsing_mobile/browse:social:twitter:2019"
+    },
+    {
+        "duration": "69.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll"
     },
     {
-        "duration": "103.0",
+        "duration": "90.0",
         "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "47.0",
+        "duration": "46.0",
         "name": "v8.browsing_mobile/browse:tools:maps"
     },
     {
-        "duration": "9.0",
-        "name": "wasm/AsmJsZenGarden"
-    },
-    {
-        "duration": "20.0",
-        "name": "wasm/WasmSpaceBuggy"
-    },
-    {
-        "duration": "9.0",
-        "name": "wasm/WasmStylizedRenderer"
-    },
-    {
-        "duration": "9.0",
-        "name": "wasm/WasmSunTemple"
-    },
-    {
-        "duration": "15.0",
-        "name": "wasm/WasmTanks"
-    },
-    {
-        "duration": "9.0",
-        "name": "wasm/WasmZenGarden"
+        "duration": "51.0",
+        "name": "v8.browsing_mobile/browse:tools:maps:2019"
     },
     {
         "duration": "17.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "webrtc/canvas_capture_peer_connection"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "webrtc/codec_constraints_h264"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "webrtc/codec_constraints_vp8"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "webrtc/codec_constraints_vp9"
     },
     {
@@ -4108,11 +3872,11 @@
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "36.0",
+        "duration": "32.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "50.0",
+        "duration": "39.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/chromeos-kevin-perf-fyi_timing.json b/tools/perf/core/shard_maps/timing_data/chromeos-kevin-perf-fyi_timing.json
index 0637a08..ca8d350 100644
--- a/tools/perf/core/shard_maps/timing_data/chromeos-kevin-perf-fyi_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/chromeos-kevin-perf-fyi_timing.json
@@ -1 +1,982 @@
-[]
\ No newline at end of file
+[
+    {
+        "duration": "26.0",
+        "name": "rendering.desktop/accu_weather_2018"
+    },
+    {
+        "duration": "24.0",
+        "name": "rendering.desktop/accu_weather_pinch_2018"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/amazon_2018"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/amazon_pinch_2018"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/analog_clock_svg"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/animometer_webgl"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/animometer_webgl_attrib_arrays"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/animometer_webgl_multi_draw"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/aquarium"
+    },
+    {
+        "duration": "2.0",
+        "name": "rendering.desktop/aquarium_20k"
+    },
+    {
+        "duration": "32.0",
+        "name": "rendering.desktop/background_color_animation"
+    },
+    {
+        "duration": "18.0",
+        "name": "rendering.desktop/background_color_animation_with_gradient"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/balls_css_key_frame_animations"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/balls_css_transition_2_properties"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/balls_css_transition_40_properties"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/balls_css_transition_all_properties"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/balls_javascript_canvas"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/balls_javascript_css"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/blob"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.desktop/blogspot_2018"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/blogspot_pinch_2018"
+    },
+    {
+        "duration": "29.0",
+        "name": "rendering.desktop/blur_rotating_background"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/booking.com_2018"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/booking_pinch_2018"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/bouncing_balls_15"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/bouncing_balls_shadow"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/bouncing_clipped_rectangles"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/bouncing_gradient_circles"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/bouncing_png_images"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/bouncing_svg_images"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/camera_to_webgl"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/canvas_05000_pixels_per_second"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/canvas_10000_pixels_per_second"
+    },
+    {
+        "duration": "5.0",
+        "name": "rendering.desktop/canvas_20000_pixels_per_second"
+    },
+    {
+        "duration": "4.0",
+        "name": "rendering.desktop/canvas_40000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/canvas_60000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/canvas_75000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/canvas_90000_pixels_per_second"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/canvas_animation_no_clear"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/canvas_arcs"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/canvas_font_cycler"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/canvas_lines"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/canvas_to_blob"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/cats_unscaled"
+    },
+    {
+        "duration": "2.0",
+        "name": "rendering.desktop/cats_viewport_width"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/cc_poster_circle"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/cc_scroll_text_only"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/chip_tune"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/cnn_2018"
+    },
+    {
+        "duration": "20.0",
+        "name": "rendering.desktop/cnn_pinch_2018"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/compositor_heavy_animation"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/crafty_mind"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/css_animations_many_keyframes"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_animations_simultaneous_inline_style"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_animations_simultaneous_new_element"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_animations_simultaneous_style_element"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_animations_simultaneous_updating_class"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_animations_staggered_infinite_iterations"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_animations_staggered_inline_style"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/css_animations_staggered_new_element"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/css_animations_staggered_style_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_animations_staggered_updating_class"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_animations_triggered_inline_style"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/css_animations_triggered_new_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_animations_triggered_style_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_animations_triggered_updating_class"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/css_opacity_plus_n_layers_99"
+    },
+    {
+        "duration": "28.0",
+        "name": "rendering.desktop/css_transitions_inline_style"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_transitions_new_element"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_transitions_staggered_inline_style"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_transitions_staggered_new_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_transitions_staggered_style_element"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_transitions_staggered_updating_class"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_transitions_style_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_transitions_triggered_inline_style"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_transitions_triggered_new_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_transitions_triggered_style_element"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_transitions_triggered_updating_class"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_transitions_updating_class"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_value_type_color"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_value_type_filter"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_value_type_length"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_value_type_length_complex"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_value_type_length_simple"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_value_type_path"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/css_value_type_shadow"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_value_type_transform_complex"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/css_value_type_transform_simple"
+    },
+    {
+        "duration": "2.0",
+        "name": "rendering.desktop/dynamic_cube_map"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/earth"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/ebay_2018"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/ebay_pinch_2018"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/effect_games"
+    },
+    {
+        "duration": "22.0",
+        "name": "rendering.desktop/espn_2018"
+    },
+    {
+        "duration": "19.0",
+        "name": "rendering.desktop/espn_pinch_2018"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/extra_large_texture_uploads"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/facebook_2018"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/facebook_pinch_2018"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/fill_shapes"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/filter_terrain_svg"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/geo_apis"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.desktop/gmail_2018"
+    },
+    {
+        "duration": "31.0",
+        "name": "rendering.desktop/gmail_move_2018"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.desktop/gmail_pinch_2018"
+    },
+    {
+        "duration": "5.0",
+        "name": "rendering.desktop/google_calendar_2018"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/google_calendar_pinch_2018"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/google_docs_2018"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/google_image_pinch_2018"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/google_image_search_2018"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/google_plus_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/google_search_pinch_2018"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/google_web_search_2018"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/guimark_vector_chart"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/hakim"
+    },
+    {
+        "duration": "25.0",
+        "name": "rendering.desktop/ie_chalkboard"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.desktop/ie_pirate_mark"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/infinite_scroll_element_n_layers_99"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/infinite_scroll_root_n_layers_99"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/jarro_doverson"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "18.0",
+        "name": "rendering.desktop/js_full_screen_invalidation"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.desktop/js_opacity_plus_n_layers_99"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/js_paint_plus_n_layers_99"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.desktop/js_poster_circle"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/js_scroll_text_only"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/kevs_3d"
+    },
+    {
+        "duration": "28.0",
+        "name": "rendering.desktop/keyframed_animations"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/large_texture_uploads"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/linkedin_2018"
+    },
+    {
+        "duration": "18.0",
+        "name": "rendering.desktop/linkedin_pinch_2018"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/main_0fps_impl_60fps"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/main_30fps_impl_60fps"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/main_60fps_impl_60fps"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/man_in_blue"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/many_images"
+    },
+    {
+        "duration": "2.0",
+        "name": "rendering.desktop/many_planets_deep"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/maps_move_2018"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/maps_perf_test"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/medium_texture_uploads"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/megi_dish"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/microsoft_asteroid_belt"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/microsoft_fireflies"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/microsoft_fish_ie_tank"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/microsoft_performance"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/microsoft_snow"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/microsoft_speed_reading"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/microsoft_tweet_map"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/microsoft_video_city"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/microsoft_worker_fountains"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/mix_10k"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/mix_blend_mode_animation_difference"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/mix_blend_mode_animation_hue"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/mix_blend_mode_animation_screen"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/motion_mark_canvas_fill_shapes"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/motion_mark_canvas_stroke_shapes"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/new_tilings"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/nvidia_vertex_buffer_object"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/overlay_background_color_css_transitions_page"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/particles"
+    },
+    {
+        "duration": "15.0",
+        "name": "rendering.desktop/pinterest_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/put_get_image_data"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/raf"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/raf_animation"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/raf_canvas"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/raf_touch_animation"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/repaint_amazon_2018"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/repaint_cnn_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/repaint_facebook_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/repaint_google_search_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/repaint_instagram_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/repaint_reddit_2018"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/repaint_theverge_2018"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/repaint_twitter_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/repaint_wikipedia_2018"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/repaint_yahoo_homepage_2018"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/runway"
+    },
+    {
+        "duration": "1.0",
+        "name": "rendering.desktop/san_angeles"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/second_batch_js_heavy"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/second_batch_js_light"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/second_batch_js_medium"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/simple_text_page"
+    },
+    {
+        "duration": "5.0",
+        "name": "rendering.desktop/simple_touch_drag"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/small_texture_uploads"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/smash_cat"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/spielzeugz"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/stroke_shapes"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/sync_scroll_offset"
+    },
+    {
+        "duration": "18.0",
+        "name": "rendering.desktop/techcrunch_2018"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/text_05000_pixels_per_second"
+    },
+    {
+        "duration": "24.0",
+        "name": "rendering.desktop/text_10000_pixels_per_second"
+    },
+    {
+        "duration": "5.0",
+        "name": "rendering.desktop/text_20000_pixels_per_second"
+    },
+    {
+        "duration": "4.0",
+        "name": "rendering.desktop/text_40000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/text_60000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/text_75000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/text_90000_pixels_per_second"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
+    },
+    {
+        "duration": "10.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second"
+    },
+    {
+        "duration": "7.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second"
+    },
+    {
+        "duration": "5.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second"
+    },
+    {
+        "duration": "4.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second"
+    },
+    {
+        "duration": "4.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second"
+    },
+    {
+        "duration": "4.0",
+        "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/text_hover_05000_pixels_per_second"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/text_hover_10000_pixels_per_second"
+    },
+    {
+        "duration": "5.0",
+        "name": "rendering.desktop/text_hover_20000_pixels_per_second"
+    },
+    {
+        "duration": "4.0",
+        "name": "rendering.desktop/text_hover_40000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/text_hover_60000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/text_hover_75000_pixels_per_second"
+    },
+    {
+        "duration": "3.0",
+        "name": "rendering.desktop/text_hover_90000_pixels_per_second"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/touch_handler_scrolling"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/transform_transitions"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/transform_transitions_js_block"
+    },
+    {
+        "duration": "11.0",
+        "name": "rendering.desktop/twitch_2018"
+    },
+    {
+        "duration": "26.0",
+        "name": "rendering.desktop/twitch_pinch_2018"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/twitter_2018"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/twitter_pinch_2018"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animation_value_type_color"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animation_value_type_length_3d"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/web_animation_value_type_length_complex"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/web_animation_value_type_length_simple"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animation_value_type_path"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/web_animation_value_type_shadow"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animation_value_type_transform_complex"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animation_value_type_transform_simple"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/web_animations_many_keyframes"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animations_set_current_time"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animations_simultaneous"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/web_animations_staggered_chaining"
+    },
+    {
+        "duration": "12.0",
+        "name": "rendering.desktop/web_animations_staggered_infinite_iterations"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/web_animations_staggered_triggering_page"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "14.0",
+        "name": "rendering.desktop/wikipedia_2018"
+    },
+    {
+        "duration": "13.0",
+        "name": "rendering.desktop/wordpress_2018"
+    },
+    {
+        "duration": "6.0",
+        "name": "rendering.desktop/yahoo_answers_2018"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/yahoo_news_2018"
+    },
+    {
+        "duration": "23.0",
+        "name": "rendering.desktop/yahoo_news_pinch_2018"
+    },
+    {
+        "duration": "16.0",
+        "name": "rendering.desktop/yahoo_sports_2018"
+    },
+    {
+        "duration": "21.0",
+        "name": "rendering.desktop/yahoo_sports_pinch_2018"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/youtube_2018"
+    },
+    {
+        "duration": "17.0",
+        "name": "rendering.desktop/youtube_pinch_2018"
+    }
+]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json b/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json
index 2d8c4b95..ae037cca 100644
--- a/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json
@@ -8,7 +8,7 @@
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
@@ -28,7 +28,7 @@
         "name": "blink_perf.bindings/first-child.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
@@ -36,7 +36,7 @@
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
@@ -92,7 +92,7 @@
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html"
     },
     {
@@ -120,19 +120,19 @@
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
-        "duration": "1.0",
+        "duration": "2.0",
         "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html"
     },
     {
-        "duration": "1.0",
+        "duration": "2.0",
         "name": "blink_perf.bindings/structured-clone-long-string-serialize.html"
     },
     {
@@ -168,19 +168,19 @@
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html"
     },
     {
-        "duration": "1.0",
+        "duration": "2.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html"
     },
     {
@@ -188,15 +188,15 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
@@ -212,7 +212,7 @@
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
@@ -220,7 +220,7 @@
         "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/docs-paper.html"
     },
     {
@@ -244,19 +244,19 @@
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "22.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "23.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "2.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -264,7 +264,7 @@
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
-        "duration": "6.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
     },
     {
@@ -272,7 +272,7 @@
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "83.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -280,15 +280,15 @@
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "98.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "2.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -300,11 +300,11 @@
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "6.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "6.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
@@ -328,15 +328,15 @@
         "name": "blink_perf.canvas/gpu-bound-shader.html"
     },
     {
-        "duration": "9.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/putImageData.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
     },
     {
@@ -364,7 +364,7 @@
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "2.0",
+        "duration": "1.0",
         "name": "blink_perf.canvas/transferFromImageBitmap.html"
     },
     {
@@ -376,7 +376,7 @@
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
@@ -400,11 +400,11 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
@@ -420,7 +420,7 @@
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
@@ -452,11 +452,11 @@
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
@@ -464,7 +464,7 @@
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
@@ -472,7 +472,7 @@
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "5.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
@@ -480,7 +480,7 @@
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
@@ -492,34 +492,6 @@
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
         "duration": "6.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
@@ -528,18 +500,10 @@
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
         "duration": "16.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
@@ -592,11 +556,11 @@
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "8.0",
+        "duration": "5.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
@@ -612,15 +576,15 @@
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
     },
     {
@@ -632,11 +596,11 @@
         "name": "blink_perf.image_decoder/decode-lossless-webp.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
     },
     {
@@ -644,7 +608,7 @@
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
@@ -712,6 +676,26 @@
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
+        "duration": "6.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "6.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "6.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "6.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "6.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
         "duration": "7.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
@@ -720,7 +704,7 @@
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
@@ -804,11 +788,11 @@
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
@@ -816,15 +800,15 @@
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
@@ -889,6 +873,10 @@
     },
     {
         "duration": "6.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "6.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
@@ -897,10 +885,18 @@
     },
     {
         "duration": "6.0",
-        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
     },
     {
         "duration": "6.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "6.0",
+        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+    },
+    {
+        "duration": "5.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
@@ -932,15 +928,15 @@
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "25.0",
+        "duration": "27.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "5.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "2.0",
+        "duration": "1.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
@@ -952,7 +948,7 @@
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
@@ -968,7 +964,7 @@
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
@@ -976,7 +972,7 @@
         "name": "blink_perf.paint/appending-text.html"
     },
     {
-        "duration": "7.0",
+        "duration": "21.0",
         "name": "blink_perf.paint/color-changes.html"
     },
     {
@@ -988,15 +984,15 @@
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
-        "duration": "6.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/containment-resize.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
@@ -1004,11 +1000,11 @@
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "7.0",
+        "duration": "5.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
@@ -1020,7 +1016,7 @@
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
@@ -1028,19 +1024,19 @@
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.paint/paint-offset-changes.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.paint/select-all-words.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
@@ -1052,11 +1048,11 @@
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "6.0",
+        "duration": "13.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "18.0",
+        "duration": "27.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
@@ -1156,7 +1152,7 @@
         "name": "blink_perf.parser/url-parser.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
@@ -1260,7 +1256,7 @@
         "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
@@ -1272,7 +1268,7 @@
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
@@ -1340,11 +1336,11 @@
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
-        "duration": "2.0",
+        "duration": "1.0",
         "name": "blink_perf.svg/Bamboo.html"
     },
     {
@@ -1356,10 +1352,6 @@
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.svg/Cowboy_transform.html"
-    },
-    {
         "duration": "1.0",
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
@@ -1400,7 +1392,7 @@
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
@@ -1408,7 +1400,7 @@
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "15.0",
+        "duration": "75.0",
         "name": "blink_perf.svg/SierpinskiCarpet.html"
     },
     {
@@ -1440,11 +1432,7 @@
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
-        "duration": "0.0",
-        "name": "dromaeo/http://dromaeo.com?dom-modify"
-    },
-    {
-        "duration": "48.0",
+        "duration": "47.0",
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
@@ -1461,7 +1449,11 @@
     },
     {
         "duration": "168.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "name": "jetstream/JetStream"
+    },
+    {
+        "duration": "139.0",
+        "name": "jetstream2/JetStream2"
     },
     {
         "duration": "19.0",
@@ -1492,23 +1484,23 @@
         "name": "loading.desktop/Aljayyash_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "loading.desktop/AllRecipes_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "15.0",
         "name": "loading.desktop/AllRecipes_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/ArsTechnica_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "loading.desktop/ArsTechnica_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "loading.desktop/Baidu_cold"
     },
     {
@@ -1572,19 +1564,15 @@
         "name": "loading.desktop/Economist_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "loading.desktop/Elmundo_cold"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Elmundo_warm"
-    },
-    {
         "duration": "6.0",
         "name": "loading.desktop/FC2Blog_cold"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/FC2Blog_warm"
     },
     {
@@ -1592,7 +1580,7 @@
         "name": "loading.desktop/FIFA_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/FIFA_warm"
     },
     {
@@ -1624,7 +1612,7 @@
         "name": "loading.desktop/Free.fr_cold"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "loading.desktop/Free.fr_warm"
     },
     {
@@ -1636,15 +1624,15 @@
         "name": "loading.desktop/HTML5Rocks_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "13.0",
         "name": "loading.desktop/Haraj_cold"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "loading.desktop/Haraj_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "loading.desktop/HatenaBookmark_cold"
     },
     {
@@ -1664,7 +1652,7 @@
         "name": "loading.desktop/IMDB_cold"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/IMDB_warm"
     },
     {
@@ -1684,11 +1672,11 @@
         "name": "loading.desktop/Kakaku_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Kenh14_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "loading.desktop/Kenh14_warm"
     },
     {
@@ -1700,7 +1688,7 @@
         "name": "loading.desktop/Mercadolivre_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "13.0",
         "name": "loading.desktop/Naver_cold"
     },
     {
@@ -1716,19 +1704,19 @@
         "name": "loading.desktop/Orange_warm"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "loading.desktop/Pantip_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "loading.desktop/Pantip_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "loading.desktop/PremierLeague_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "7.0",
         "name": "loading.desktop/PremierLeague_warm"
     },
     {
@@ -1736,7 +1724,7 @@
         "name": "loading.desktop/QQ_cold"
     },
     {
-        "duration": "18.0",
+        "duration": "10.0",
         "name": "loading.desktop/QQ_warm"
     },
     {
@@ -1748,7 +1736,7 @@
         "name": "loading.desktop/REI_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "loading.desktop/Ruten_cold"
     },
     {
@@ -1756,11 +1744,11 @@
         "name": "loading.desktop/Ruten_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Sina_cold"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.desktop/Sina_warm"
     },
     {
@@ -1780,11 +1768,11 @@
         "name": "loading.desktop/TheOnion_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "loading.desktop/TheVerge_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/TheVerge_warm"
     },
     {
@@ -1796,15 +1784,15 @@
         "name": "loading.desktop/TicketMaster_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/Vietnamnet_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.desktop/Vietnamnet_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "loading.desktop/Vnexpress_cold"
     },
     {
@@ -1812,19 +1800,11 @@
         "name": "loading.desktop/Vnexpress_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Walgreens_cold"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.desktop/Walgreens_warm"
-    },
-    {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "loading.desktop/Yandex_cold"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/Yandex_warm"
     },
     {
@@ -1848,7 +1828,7 @@
         "name": "loading.desktop/money.cnn_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "loading.desktop/money.cnn_warm"
     },
     {
@@ -1860,14 +1840,6 @@
         "name": "loading.desktop/ru.wikipedia_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/uol.com.br_cold"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.desktop/uol.com.br_warm"
-    },
-    {
         "duration": "6.0",
         "name": "loading.desktop/yahoo.co.jp_cold"
     },
@@ -1880,7 +1852,7 @@
         "name": "media.desktop/mse.html?media=aac_audio.mp4"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
@@ -1908,7 +1880,7 @@
         "name": "media.desktop/video.html?src=crowd1080_vp9.webm"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "media.desktop/video.html?src=garden2_10s.mp4&seek"
     },
     {
@@ -1924,7 +1896,7 @@
         "name": "media.desktop/video.html?src=tulip0.av1.mp4"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek"
     },
     {
@@ -1932,11 +1904,11 @@
         "name": "media.desktop/video.html?src=tulip2.m4a&type=audio"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
@@ -1976,7 +1948,7 @@
         "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
@@ -2000,12 +1972,12 @@
         "name": "memory.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "memory.desktop/WebWorker"
     },
     {
         "duration": "36.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "name": "octane/Octane"
     },
     {
         "duration": "31.0",
@@ -2032,7 +2004,7 @@
         "name": "power.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "power.desktop/TrivialScrollingPageSharedPageState"
     },
     {
@@ -2092,7 +2064,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
@@ -2116,7 +2088,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
@@ -2132,7 +2104,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
@@ -2140,14 +2112,10 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "10.0",
+        "duration": "13.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "0.0",
-        "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html"
-    },
-    {
         "duration": "8.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
@@ -2176,7 +2144,7 @@
         "name": "rendering.desktop/accu_weather_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/accu_weather_pinch_2018"
     },
     {
@@ -2192,7 +2160,7 @@
         "name": "rendering.desktop/analog_clock_svg"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/animometer_webgl"
     },
     {
@@ -2224,7 +2192,7 @@
         "name": "rendering.desktop/balls_css_key_frame_animations"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform"
     },
     {
@@ -2248,10 +2216,6 @@
         "name": "rendering.desktop/balls_javascript_css"
     },
     {
-        "duration": "12.0",
-        "name": "rendering.desktop/balls_svg_animations"
-    },
-    {
         "duration": "8.0",
         "name": "rendering.desktop/blob"
     },
@@ -2264,7 +2228,7 @@
         "name": "rendering.desktop/blogspot_pinch_2018"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/blur_rotating_background"
     },
     {
@@ -2312,11 +2276,11 @@
         "name": "rendering.desktop/canvas_10000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/canvas_20000_pixels_per_second"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rendering.desktop/canvas_40000_pixels_per_second"
     },
     {
@@ -2324,11 +2288,11 @@
         "name": "rendering.desktop/canvas_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/canvas_75000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/canvas_90000_pixels_per_second"
     },
     {
@@ -2356,7 +2320,7 @@
         "name": "rendering.desktop/cats_unscaled"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/cats_viewport_width"
     },
     {
@@ -2420,7 +2384,7 @@
         "name": "rendering.desktop/css_animations_staggered_new_element"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "rendering.desktop/css_animations_staggered_style_element"
     },
     {
@@ -2436,7 +2400,7 @@
         "name": "rendering.desktop/css_animations_triggered_new_element"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.desktop/css_animations_triggered_style_element"
     },
     {
@@ -2540,15 +2504,15 @@
         "name": "rendering.desktop/earth"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/ebay_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "rendering.desktop/ebay_pinch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/effect_games"
     },
     {
@@ -2584,7 +2548,7 @@
         "name": "rendering.desktop/geo_apis"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/gmail_2018"
     },
     {
@@ -2592,11 +2556,11 @@
         "name": "rendering.desktop/gmail_move_2018"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/gmail_pinch_2018"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/google_calendar_2018"
     },
     {
@@ -2612,7 +2576,7 @@
         "name": "rendering.desktop/google_image_pinch_2018"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/google_image_search_2018"
     },
     {
@@ -2624,7 +2588,7 @@
         "name": "rendering.desktop/google_search_pinch_2018"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/google_web_search_2018"
     },
     {
@@ -2640,7 +2604,7 @@
         "name": "rendering.desktop/ie_chalkboard"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/ie_pirate_mark"
     },
     {
@@ -2656,11 +2620,11 @@
         "name": "rendering.desktop/infinite_scroll_root_n_layers_99"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/jarro_doverson"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization"
     },
     {
@@ -2700,11 +2664,11 @@
         "name": "rendering.desktop/large_texture_uploads"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/linkedin_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/linkedin_pinch_2018"
     },
     {
@@ -2724,11 +2688,11 @@
         "name": "rendering.desktop/man_in_blue"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.desktop/many_images"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/many_planets_deep"
     },
     {
@@ -2744,7 +2708,7 @@
         "name": "rendering.desktop/medium_texture_uploads"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "rendering.desktop/megi_dish"
     },
     {
@@ -2768,11 +2732,11 @@
         "name": "rendering.desktop/microsoft_snow"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/microsoft_speed_reading"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "rendering.desktop/microsoft_tweet_map"
     },
     {
@@ -2796,7 +2760,7 @@
         "name": "rendering.desktop/mix_blend_mode_animation_hue"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
     },
     {
@@ -2816,7 +2780,7 @@
         "name": "rendering.desktop/new_tilings"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/nvidia_vertex_buffer_object"
     },
     {
@@ -2828,11 +2792,11 @@
         "name": "rendering.desktop/particles"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.desktop/pinterest_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "rendering.desktop/put_get_image_data"
     },
     {
@@ -2852,7 +2816,7 @@
         "name": "rendering.desktop/raf_touch_animation"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/repaint_amazon_2018"
     },
     {
@@ -2904,7 +2868,7 @@
         "name": "rendering.desktop/second_batch_js_heavy"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/second_batch_js_light"
     },
     {
@@ -2940,7 +2904,7 @@
         "name": "rendering.desktop/sync_scroll_offset"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/techcrunch_2018"
     },
     {
@@ -2952,11 +2916,11 @@
         "name": "rendering.desktop/text_10000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_20000_pixels_per_second"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_40000_pixels_per_second"
     },
     {
@@ -2964,19 +2928,19 @@
         "name": "rendering.desktop/text_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_75000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_90000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -2988,7 +2952,7 @@
         "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
@@ -3008,11 +2972,11 @@
         "name": "rendering.desktop/text_hover_10000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_hover_40000_pixels_per_second"
     },
     {
@@ -3020,11 +2984,11 @@
         "name": "rendering.desktop/text_hover_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_hover_90000_pixels_per_second"
     },
     {
@@ -3048,7 +3012,7 @@
         "name": "rendering.desktop/twitch_pinch_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/twitter_2018"
     },
     {
@@ -3056,7 +3020,7 @@
         "name": "rendering.desktop/twitter_pinch_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animation_value_type_color"
     },
     {
@@ -3088,7 +3052,7 @@
         "name": "rendering.desktop/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_many_keyframes"
     },
     {
@@ -3096,7 +3060,7 @@
         "name": "rendering.desktop/web_animations_set_current_time"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.desktop/web_animations_simultaneous"
     },
     {
@@ -3128,7 +3092,7 @@
         "name": "rendering.desktop/wordpress_2018"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/yahoo_answers_2018"
     },
     {
@@ -3164,11 +3128,11 @@
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "58.0",
+        "duration": "60.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "54.0",
+        "duration": "58.0",
         "name": "speedometer2/Speedometer2"
     },
     {
@@ -3188,7 +3152,7 @@
         "name": "system_health.common_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "51.0",
+        "duration": "54.0",
         "name": "system_health.common_desktop/browse:media:tumblr:2018"
     },
     {
@@ -3200,23 +3164,19 @@
         "name": "system_health.common_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "system_health.common_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "system_health.common_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "44.0",
-        "name": "system_health.common_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "54.0",
+        "duration": "52.0",
         "name": "system_health.common_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "system_health.common_desktop/browse:news:reddit:2018"
     },
     {
@@ -3228,11 +3188,11 @@
         "name": "system_health.common_desktop/browse:search:google:2018"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "system_health.common_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "63.0",
+        "duration": "58.0",
         "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3252,7 +3212,7 @@
         "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "47.0",
+        "duration": "48.0",
         "name": "system_health.common_desktop/browse:tools:earth"
     },
     {
@@ -3260,6 +3220,14 @@
         "name": "system_health.common_desktop/browse:tools:maps"
     },
     {
+        "duration": "60.0",
+        "name": "system_health.common_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "25.0",
+        "name": "system_health.common_desktop/browse:tools:sheets:2019"
+    },
+    {
         "duration": "16.0",
         "name": "system_health.common_desktop/browse_accessibility:media:youtube"
     },
@@ -3281,6 +3249,10 @@
     },
     {
         "duration": "11.0",
+        "name": "system_health.common_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "11.0",
         "name": "system_health.common_desktop/load:games:lazors"
     },
     {
@@ -3288,7 +3260,7 @@
         "name": "system_health.common_desktop/load:games:miniclip:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:games:spychase:2018"
     },
     {
@@ -3296,7 +3268,7 @@
         "name": "system_health.common_desktop/load:media:9gag"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "system_health.common_desktop/load:media:dailymotion"
     },
     {
@@ -3308,7 +3280,7 @@
         "name": "system_health.common_desktop/load:media:flickr:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "system_health.common_desktop/load:media:google_images:2018"
     },
     {
@@ -3340,7 +3312,7 @@
         "name": "system_health.common_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:news:nytimes:2018"
     },
     {
@@ -3400,7 +3372,7 @@
         "name": "system_health.common_desktop/load:social:pinterest"
     },
     {
-        "duration": "11.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:social:vk"
     },
     {
@@ -3428,7 +3400,7 @@
         "name": "system_health.common_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:tools:weather"
     },
     {
@@ -3448,14 +3420,6 @@
         "name": "system_health.common_desktop/long_running:tools:gmail-foreground"
     },
     {
-        "duration": "57.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24"
-    },
-    {
-        "duration": "55.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24:2018"
-    },
-    {
         "duration": "37.0",
         "name": "system_health.common_desktop/play:media:google_play_music"
     },
@@ -3476,15 +3440,11 @@
         "name": "system_health.memory_desktop/browse:media:imgur"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/browse:media:pinterest:2018"
-    },
-    {
         "duration": "49.0",
         "name": "system_health.memory_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "system_health.memory_desktop/browse:media:youtube:2018"
     },
     {
@@ -3496,23 +3456,19 @@
         "name": "system_health.memory_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "system_health.memory_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "43.0",
-        "name": "system_health.memory_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "46.0",
+        "duration": "49.0",
         "name": "system_health.memory_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "36.0",
+        "duration": "39.0",
         "name": "system_health.memory_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "system_health.memory_desktop/browse:search:google"
     },
     {
@@ -3524,15 +3480,11 @@
         "name": "system_health.memory_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
-        "duration": "46.0",
+        "duration": "47.0",
         "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "36.0",
+        "duration": "38.0",
         "name": "system_health.memory_desktop/browse:social:twitter:2018"
     },
     {
@@ -3544,12 +3496,16 @@
         "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "43.0",
         "name": "system_health.memory_desktop/browse:tools:earth"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/browse:tools:maps"
+        "duration": "58.0",
+        "name": "system_health.memory_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "23.0",
+        "name": "system_health.memory_desktop/browse:tools:sheets:2019"
     },
     {
         "duration": "15.0",
@@ -3573,14 +3529,18 @@
     },
     {
         "duration": "10.0",
+        "name": "system_health.memory_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "10.0",
         "name": "system_health.memory_desktop/load:games:lazors"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:games:miniclip:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:games:spychase:2018"
     },
     {
@@ -3632,7 +3592,7 @@
         "name": "system_health.memory_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:news:nytimes:2018"
     },
     {
@@ -3656,7 +3616,7 @@
         "name": "system_health.memory_desktop/load:search:amazon:2018"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "system_health.memory_desktop/load:search:baidu:2018"
     },
     {
@@ -3692,7 +3652,7 @@
         "name": "system_health.memory_desktop/load:social:pinterest"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "system_health.memory_desktop/load:social:vk"
     },
     {
@@ -3712,7 +3672,7 @@
         "name": "system_health.memory_desktop/load:tools:dropbox"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:tools:gmail"
     },
     {
@@ -3720,35 +3680,15 @@
         "name": "system_health.memory_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:tools:weather"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018"
-    },
-    {
         "duration": "11.0",
         "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
         "duration": "0.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/multitab:misc:typical24"
-    },
-    {
-        "duration": "50.0",
-        "name": "system_health.memory_desktop/multitab:misc:typical24:2018"
-    },
-    {
-        "duration": "0.0",
         "name": "system_health.memory_desktop/play:media:google_play_music"
     },
     {
@@ -3756,10 +3696,6 @@
         "name": "system_health.memory_desktop/play:media:soundcloud:2018"
     },
     {
-        "duration": "57.0",
-        "name": "tab_switching.typical_25/multitab:misc:typical24"
-    },
-    {
         "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
@@ -3768,7 +3704,7 @@
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
@@ -3780,7 +3716,7 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
@@ -3792,11 +3728,11 @@
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3804,15 +3740,11 @@
         "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:media:imgur"
-    },
-    {
         "duration": "81.0",
         "name": "v8.browsing_desktop-future/browse:media:pinterest:2018"
     },
     {
-        "duration": "53.0",
+        "duration": "56.0",
         "name": "v8.browsing_desktop-future/browse:media:tumblr:2018"
     },
     {
@@ -3824,30 +3756,22 @@
         "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019"
     },
     {
-        "duration": "34.0",
+        "duration": "32.0",
         "name": "v8.browsing_desktop-future/browse:news:cnn:2018"
     },
     {
-        "duration": "41.0",
+        "duration": "39.0",
         "name": "v8.browsing_desktop-future/browse:news:flipboard:2018"
     },
     {
-        "duration": "46.0",
-        "name": "v8.browsing_desktop-future/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "56.0",
+        "duration": "53.0",
         "name": "v8.browsing_desktop-future/browse:news:nytimes:2018"
     },
     {
-        "duration": "44.0",
+        "duration": "43.0",
         "name": "v8.browsing_desktop-future/browse:news:reddit:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:search:google"
-    },
-    {
         "duration": "40.0",
         "name": "v8.browsing_desktop-future/browse:search:google:2018"
     },
@@ -3856,7 +3780,7 @@
         "name": "v8.browsing_desktop-future/browse:search:google_india:2018"
     },
     {
-        "duration": "65.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3868,23 +3792,27 @@
         "name": "v8.browsing_desktop-future/browse:social:twitter:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "53.0",
+        "duration": "52.0",
         "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "53.0",
+        "duration": "47.0",
         "name": "v8.browsing_desktop-future/browse:tools:earth"
     },
     {
-        "duration": "43.0",
+        "duration": "41.0",
         "name": "v8.browsing_desktop-future/browse:tools:maps"
     },
     {
-        "duration": "57.0",
+        "duration": "61.0",
+        "name": "v8.browsing_desktop-future/browse:tools:maps:2019"
+    },
+    {
+        "duration": "26.0",
+        "name": "v8.browsing_desktop-future/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "56.0",
         "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3896,23 +3824,19 @@
         "name": "v8.browsing_desktop/browse:media:imgur"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:media:pinterest:2018"
-    },
-    {
         "duration": "53.0",
         "name": "v8.browsing_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "56.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop/browse:media:youtube:2018"
     },
     {
-        "duration": "58.0",
+        "duration": "57.0",
         "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "v8.browsing_desktop/browse:news:cnn:2018"
     },
     {
@@ -3920,15 +3844,11 @@
         "name": "v8.browsing_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "46.0",
-        "name": "v8.browsing_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "56.0",
+        "duration": "53.0",
         "name": "v8.browsing_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "44.0",
+        "duration": "42.0",
         "name": "v8.browsing_desktop/browse:news:reddit:2018"
     },
     {
@@ -3944,32 +3864,28 @@
         "name": "v8.browsing_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "65.0",
+        "duration": "61.0",
         "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "v8.browsing_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
         "duration": "52.0",
         "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "51.0",
+        "duration": "49.0",
         "name": "v8.browsing_desktop/browse:tools:earth"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:tools:maps"
+        "duration": "62.0",
+        "name": "v8.browsing_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "26.0",
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
     },
     {
         "duration": "21.0",
@@ -3988,7 +3904,7 @@
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot"
     },
     {
@@ -4000,7 +3916,7 @@
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot"
     },
     {
@@ -4028,7 +3944,7 @@
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm"
     },
     {
@@ -4056,7 +3972,7 @@
         "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "21.0",
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold"
     },
     {
@@ -4072,11 +3988,11 @@
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm"
     },
     {
@@ -4100,7 +4016,7 @@
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm"
     },
     {
@@ -4108,7 +4024,7 @@
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold"
     },
     {
-        "duration": "27.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot"
     },
     {
@@ -4136,7 +4052,7 @@
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm"
     },
     {
@@ -4192,11 +4108,11 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm"
     },
     {
@@ -4216,7 +4132,7 @@
         "name": "v8.runtime_stats.top_25/http://weibo.com_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://weibo.com_hot"
     },
     {
@@ -4228,11 +4144,11 @@
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm"
     },
     {
@@ -4240,11 +4156,11 @@
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot"
     },
     {
-        "duration": "26.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm"
     },
     {
@@ -4312,7 +4228,7 @@
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot"
     },
     {
@@ -4320,15 +4236,15 @@
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_cold"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_hot"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_warm"
     },
     {
@@ -4360,11 +4276,11 @@
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot"
     },
     {
-        "duration": "32.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm"
     },
     {
@@ -4376,7 +4292,7 @@
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm"
     },
     {
@@ -4384,7 +4300,7 @@
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot"
     },
     {
@@ -4392,15 +4308,15 @@
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm"
     },
     {
@@ -4408,7 +4324,7 @@
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot"
     },
     {
@@ -4420,7 +4336,7 @@
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold"
     },
     {
-        "duration": "36.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot"
     },
     {
@@ -4452,7 +4368,7 @@
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm"
     },
     {
-        "duration": "21.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold"
     },
     {
@@ -4460,7 +4376,7 @@
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm"
     },
     {
@@ -4472,7 +4388,7 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm"
     },
     {
@@ -4480,7 +4396,7 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot"
     },
     {
diff --git a/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json
index 1eb25d8..c874e35b 100644
--- a/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json
@@ -1,10 +1,10 @@
 [
     {
-        "duration": "26.0",
+        "duration": "21.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "21.0",
+        "duration": "15.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
@@ -24,7 +24,7 @@
         "name": "blink_perf.bindings/dom-attribute-on-prototoype.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/first-child.html"
     },
     {
@@ -32,11 +32,11 @@
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "15.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
@@ -56,7 +56,7 @@
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/id-getter.html"
     },
     {
@@ -72,11 +72,11 @@
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
@@ -120,11 +120,11 @@
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
@@ -140,7 +140,7 @@
         "name": "blink_perf.bindings/typed-array-construct-from-array.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
@@ -148,7 +148,7 @@
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
@@ -168,15 +168,15 @@
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html"
     },
     {
@@ -188,15 +188,15 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
@@ -224,35 +224,35 @@
         "name": "blink_perf.canvas/docs-paper.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/docs-paper_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "17.0",
         "name": "blink_perf.canvas/docs-resume.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "22.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
@@ -260,11 +260,11 @@
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
     },
     {
@@ -272,7 +272,7 @@
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -280,15 +280,15 @@
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -296,19 +296,19 @@
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "8.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/getImageData.html"
     },
     {
@@ -316,7 +316,7 @@
         "name": "blink_perf.canvas/getImageDataColorManaged.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF"
     },
     {
@@ -324,11 +324,11 @@
         "name": "blink_perf.canvas/getImageData_RAF.html?RAF"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/gpu-bound-shader.html"
     },
     {
-        "duration": "6.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
@@ -336,11 +336,11 @@
         "name": "blink_perf.canvas/putImageData.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
+        "duration": "24.0",
         "name": "blink_perf.canvas/sheets-render.html"
     },
     {
@@ -352,7 +352,7 @@
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
@@ -360,11 +360,11 @@
         "name": "blink_perf.canvas/toBlob_duration_jpeg.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/transferFromImageBitmap.html"
     },
     {
@@ -372,7 +372,7 @@
         "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
     },
     {
@@ -388,7 +388,7 @@
         "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/upload-video-to-texture.html"
     },
     {
@@ -404,7 +404,7 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
@@ -420,135 +420,131 @@
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "13.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "14.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "10.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "2.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "2.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "2.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "14.0",
+        "duration": "7.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "13.0",
+        "duration": "6.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "8.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
+        "duration": "11.0",
+        "name": "blink_perf.display_locking/abs_pos_outer_sizes_change.html"
     },
     {
-        "duration": "10.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
+        "duration": "2.0",
+        "name": "blink_perf.display_locking/forced_layout_on_locked_el.html"
     },
     {
-        "duration": "32.0",
+        "duration": "5.0",
+        "name": "blink_perf.display_locking/inner_sizes_change.html"
+    },
+    {
+        "duration": "6.0",
+        "name": "blink_perf.display_locking/outer_sizes_change.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.display_locking/outer_sizes_change_activatable.html"
+    },
+    {
+        "duration": "17.0",
+        "name": "blink_perf.display_locking/outer_sizes_change_iframe.html"
+    },
+    {
+        "duration": "3.0",
+        "name": "blink_perf.display_locking/unlock_top_items.html"
+    },
+    {
+        "duration": "2.0",
+        "name": "blink_perf.display_locking/unlock_top_items_nested.html"
+    },
+    {
+        "duration": "34.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "25.0",
+        "duration": "27.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
@@ -572,15 +568,15 @@
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
@@ -600,7 +596,7 @@
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.events/is-input-pending-all-events.html"
     },
     {
@@ -608,35 +604,47 @@
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "25.0",
+        "duration": "20.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "14.0",
-        "name": "blink_perf.image_decoder/decode-jpeg.html"
+        "duration": "9.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
-        "duration": "19.0",
-        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+        "duration": "9.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
     },
     {
-        "duration": "13.0",
-        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
     },
     {
-        "duration": "17.0",
-        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
     },
     {
         "duration": "15.0",
+        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
+    },
+    {
+        "duration": "11.0",
+        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
+    },
+    {
+        "duration": "9.0",
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "21.0",
+        "duration": "17.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
@@ -652,6 +660,10 @@
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
+        "duration": "2.0",
+        "name": "blink_perf.layout/animate-abspos-deep.html"
+    },
+    {
         "duration": "8.0",
         "name": "blink_perf.layout/attach-inlines-2.html"
     },
@@ -668,51 +680,67 @@
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "14.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
-        "duration": "2.0",
-        "name": "blink_perf.layout/character_fallback_aat.html"
-    },
-    {
-        "duration": "8.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "10.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
@@ -724,7 +752,7 @@
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
@@ -744,15 +772,19 @@
         "name": "blink_perf.layout/flexbox-row-wrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "7.0",
+        "duration": "10.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
+        "duration": "6.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
@@ -764,7 +796,7 @@
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
@@ -772,47 +804,47 @@
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
-        "duration": "21.0",
+        "duration": "38.0",
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "24.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
@@ -828,15 +860,15 @@
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
     },
     {
-        "duration": "4.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/line-layout-fit-content.html"
     },
     {
-        "duration": "6.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
@@ -860,7 +892,7 @@
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "4.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
@@ -873,6 +905,10 @@
     },
     {
         "duration": "8.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
@@ -881,6 +917,14 @@
     },
     {
         "duration": "7.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
@@ -892,11 +936,15 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
-        "duration": "8.0",
+        "duration": "17.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
@@ -912,115 +960,115 @@
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "42.0",
+        "duration": "38.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "3.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "17.0",
+        "duration": "10.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "16.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "15.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "16.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/appending-text.html"
     },
     {
-        "duration": "19.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/color-changes.html"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "31.0",
+        "duration": "25.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
-        "duration": "14.0",
+        "duration": "11.0",
         "name": "blink_perf.paint/containment-resize.html"
     },
     {
-        "duration": "15.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "15.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
-        "duration": "14.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html"
     },
     {
-        "duration": "14.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
-        "duration": "14.0",
+        "duration": "11.0",
         "name": "blink_perf.paint/paint-offset-changes.html"
     },
     {
-        "duration": "19.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/select-all-words.html"
     },
     {
-        "duration": "17.0",
+        "duration": "11.0",
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
@@ -1028,15 +1076,15 @@
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "22.0",
+        "duration": "28.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
@@ -1060,11 +1108,11 @@
         "name": "blink_perf.parser/query-selector-all-attribute.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-class-deep.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
@@ -1072,27 +1120,27 @@
         "name": "blink_perf.parser/query-selector-all-class-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-deep.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/query-selector-all-id-deep.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/query-selector-all-id-last.html"
     },
     {
@@ -1100,7 +1148,7 @@
         "name": "blink_perf.parser/query-selector-all-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
@@ -1108,7 +1156,7 @@
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
@@ -1128,7 +1176,7 @@
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
@@ -1208,15 +1256,15 @@
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html"
     },
     {
-        "duration": "3.0",
+        "duration": "5.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "4.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
@@ -1256,11 +1304,15 @@
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "20.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
         "duration": "2.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
+    },
+    {
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
@@ -1269,6 +1321,10 @@
     },
     {
         "duration": "2.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
+    },
+    {
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
@@ -1368,7 +1424,7 @@
         "name": "blink_perf.svg/HereGear.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
@@ -1376,10 +1432,6 @@
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "33.0",
-        "name": "blink_perf.svg/SierpinskiCarpet.html"
-    },
-    {
         "duration": "2.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
@@ -1404,11 +1456,11 @@
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "dromaeo/http://dromaeo.com?dom-modify"
     },
     {
@@ -1424,31 +1476,31 @@
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "197.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "198.0",
+        "name": "jetstream/JetStream"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/24h_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/24h_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/AirBnB_cold"
     },
     {
-        "duration": "36.0",
+        "duration": "22.0",
         "name": "loading.desktop/AirBnB_warm"
     },
     {
@@ -1460,15 +1512,15 @@
         "name": "loading.desktop/Aljayyash_warm"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "loading.desktop/AllRecipes_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/ArsTechnica_cold"
     },
     {
-        "duration": "27.0",
+        "duration": "24.0",
         "name": "loading.desktop/ArsTechnica_warm"
     },
     {
@@ -1480,11 +1532,11 @@
         "name": "loading.desktop/Baidu_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "loading.desktop/Bhaskar_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "loading.desktop/Bhaskar_warm"
     },
     {
@@ -1492,7 +1544,7 @@
         "name": "loading.desktop/Chosun_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/Chosun_warm"
     },
     {
@@ -1508,11 +1560,11 @@
         "name": "loading.desktop/Danawa_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "loading.desktop/Danawa_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/Daum_cold"
     },
     {
@@ -1524,23 +1576,23 @@
         "name": "loading.desktop/Donga_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "loading.desktop/Donga_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.desktop/Economist_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "19.0",
         "name": "loading.desktop/Economist_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "11.0",
         "name": "loading.desktop/Elmundo_cold"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/FC2Blog_cold"
     },
     {
@@ -1548,31 +1600,31 @@
         "name": "loading.desktop/FC2Blog_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "loading.desktop/FIFA_cold"
     },
     {
-        "duration": "26.0",
+        "duration": "13.0",
         "name": "loading.desktop/FIFA_warm"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "loading.desktop/FarsNews_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "loading.desktop/FarsNews_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/Flickr_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/Flickr_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/FlipKart_cold"
     },
     {
@@ -1592,7 +1644,7 @@
         "name": "loading.desktop/HTML5Rocks_cold"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/HTML5Rocks_warm"
     },
     {
@@ -1608,7 +1660,7 @@
         "name": "loading.desktop/HatenaBookmark_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/HatenaBookmark_warm"
     },
     {
@@ -1616,7 +1668,7 @@
         "name": "loading.desktop/IGN_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/IGN_warm"
     },
     {
@@ -1624,35 +1676,35 @@
         "name": "loading.desktop/IMDB_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "31.0",
         "name": "loading.desktop/IMDB_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/IndiaTimes_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.desktop/IndiaTimes_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "loading.desktop/Kakaku_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "loading.desktop/Kakaku_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/Kenh14_cold"
     },
     {
-        "duration": "24.0",
+        "duration": "20.0",
         "name": "loading.desktop/Kenh14_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "20.0",
         "name": "loading.desktop/Mercadolivre_cold"
     },
     {
@@ -1668,11 +1720,11 @@
         "name": "loading.desktop/Naver_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/Orange_cold"
     },
     {
-        "duration": "21.0",
+        "duration": "8.0",
         "name": "loading.desktop/Orange_warm"
     },
     {
@@ -1684,11 +1736,11 @@
         "name": "loading.desktop/Pantip_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/PremierLeague_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "loading.desktop/PremierLeague_warm"
     },
     {
@@ -1696,19 +1748,19 @@
         "name": "loading.desktop/QQ_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/QQ_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "20.0",
         "name": "loading.desktop/REI_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/REI_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/Ruten_cold"
     },
     {
@@ -1716,11 +1768,11 @@
         "name": "loading.desktop/Ruten_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "loading.desktop/Sina_cold"
     },
     {
-        "duration": "16.0",
+        "duration": "14.0",
         "name": "loading.desktop/Sina_warm"
     },
     {
@@ -1728,55 +1780,63 @@
         "name": "loading.desktop/Taobao_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "14.0",
         "name": "loading.desktop/Taobao_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
+        "name": "loading.desktop/TheOnion_cold"
+    },
+    {
+        "duration": "15.0",
+        "name": "loading.desktop/TheOnion_warm"
+    },
+    {
+        "duration": "10.0",
         "name": "loading.desktop/TheVerge_cold"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "loading.desktop/TheVerge_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "loading.desktop/TicketMaster_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "loading.desktop/TicketMaster_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "loading.desktop/Vietnamnet_cold"
     },
     {
-        "duration": "21.0",
+        "duration": "17.0",
         "name": "loading.desktop/Vietnamnet_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "loading.desktop/Vnexpress_cold"
     },
     {
-        "duration": "18.0",
+        "duration": "14.0",
         "name": "loading.desktop/Vnexpress_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/Yandex_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Yandex_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "loading.desktop/amazon.co.jp_cold"
     },
     {
-        "duration": "16.0",
+        "duration": "14.0",
         "name": "loading.desktop/amazon.co.jp_warm"
     },
     {
@@ -1788,11 +1848,11 @@
         "name": "loading.desktop/ja.wikipedia_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/money.cnn_cold"
     },
     {
-        "duration": "21.0",
+        "duration": "19.0",
         "name": "loading.desktop/money.cnn_warm"
     },
     {
@@ -1800,15 +1860,15 @@
         "name": "loading.desktop/ru.wikipedia_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "loading.desktop/ru.wikipedia_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "loading.desktop/uol.com.br_cold"
     },
     {
-        "duration": "20.0",
+        "duration": "16.0",
         "name": "loading.desktop/uol.com.br_warm"
     },
     {
@@ -1816,11 +1876,11 @@
         "name": "loading.desktop/yahoo.co.jp_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/yahoo.co.jp_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4"
     },
     {
@@ -1829,26 +1889,22 @@
     },
     {
         "duration": "8.0",
-        "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true"
-    },
-    {
-        "duration": "8.0",
         "name": "media.desktop/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/mse.html?media=tulip0.av1.mp4"
     },
     {
-        "duration": "16.0",
-        "name": "media.desktop/video.html?src=crowd.ogg&type=audio"
-    },
-    {
-        "duration": "14.0",
-        "name": "media.desktop/video.html?src=crowd1080.mp4"
+        "duration": "7.0",
+        "name": "media.desktop/mse.html?media=tulip2.vp9.webm"
     },
     {
         "duration": "13.0",
+        "name": "media.desktop/video.html?src=crowd1080.mp4"
+    },
+    {
+        "duration": "15.0",
         "name": "media.desktop/video.html?src=crowd1080.webm"
     },
     {
@@ -1856,26 +1912,10 @@
         "name": "media.desktop/video.html?src=crowd1080_vp9.webm"
     },
     {
-        "duration": "7.0",
-        "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek"
-    },
-    {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=crowd720_vp9.webm"
-    },
-    {
-        "duration": "15.0",
-        "name": "media.desktop/video.html?src=garden2_10s.mp4"
-    },
-    {
         "duration": "8.0",
         "name": "media.desktop/video.html?src=garden2_10s.mp4&seek"
     },
     {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=garden2_10s.webm"
-    },
-    {
         "duration": "7.0",
         "name": "media.desktop/video.html?src=garden2_10s.webm&seek"
     },
@@ -1884,11 +1924,11 @@
         "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek"
     },
     {
@@ -1900,7 +1940,7 @@
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
@@ -1912,19 +1952,15 @@
         "name": "media.desktop/video.html?src=tulip2.mp4&busyjs"
     },
     {
-        "duration": "7.0",
-        "name": "media.desktop/video.html?src=tulip2.mp4&seek"
-    },
-    {
         "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio"
     },
     {
-        "duration": "6.0",
+        "duration": "8.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm"
     },
     {
@@ -1932,22 +1968,10 @@
         "name": "media.desktop/video.html?src=tulip2.vp9.webm&background"
     },
     {
-        "duration": "8.0",
-        "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek"
-    },
-    {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
-        "duration": "20.0",
-        "name": "media.desktop/video.html?src=tulip2.wav&type=audio"
-    },
-    {
-        "duration": "6.0",
-        "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek"
-    },
-    {
         "duration": "11.0",
         "name": "memory.desktop/TrivialAnimationPageSharedPageState"
     },
@@ -1964,11 +1988,11 @@
         "name": "memory.desktop/TrivialCanvasPageSharedPageState"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "memory.desktop/TrivialGifPageSharedPageState"
     },
     {
@@ -1984,8 +2008,8 @@
         "name": "memory.desktop/WebWorker"
     },
     {
-        "duration": "46.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "duration": "45.0",
+        "name": "octane/Octane"
     },
     {
         "duration": "32.0",
@@ -1996,7 +2020,7 @@
         "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "power.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
@@ -2012,7 +2036,7 @@
         "name": "power.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/TrivialScrollingPageSharedPageState"
     },
     {
@@ -2020,7 +2044,7 @@
         "name": "power.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "42.0",
+        "duration": "43.0",
         "name": "power.desktop/abcnews"
     },
     {
@@ -2028,7 +2052,7 @@
         "name": "power.desktop/indiatimes"
     },
     {
-        "duration": "41.0",
+        "duration": "33.0",
         "name": "power.desktop/instagram"
     },
     {
@@ -2036,15 +2060,15 @@
         "name": "power.desktop/microsoft"
     },
     {
-        "duration": "35.0",
+        "duration": "42.0",
         "name": "power.desktop/sina"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/slideshare"
     },
     {
-        "duration": "37.0",
+        "duration": "35.0",
         "name": "power.desktop/uol"
     },
     {
@@ -2064,7 +2088,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
@@ -2072,15 +2096,15 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
@@ -2092,7 +2116,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
@@ -2112,7 +2136,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
@@ -2120,7 +2144,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
@@ -2136,11 +2160,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html"
     },
     {
-        "duration": "95.0",
+        "duration": "90.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html"
     },
     {
-        "duration": "74.0",
+        "duration": "71.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
@@ -2148,23 +2172,23 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "21.0",
+        "duration": "18.0",
         "name": "rendering.desktop/accu_weather_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rendering.desktop/accu_weather_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/amazon_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/amazon_pinch_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/analog_clock_svg"
     },
     {
@@ -2176,19 +2200,19 @@
         "name": "rendering.desktop/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rendering.desktop/animometer_webgl_multi_draw"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.desktop/aquarium"
     },
     {
-        "duration": "17.0",
+        "duration": "14.0",
         "name": "rendering.desktop/aquarium_20k"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.desktop/background_color_animation"
     },
     {
@@ -2204,15 +2228,15 @@
         "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/balls_css_transition_2_properties"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/balls_css_transition_40_properties"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/balls_css_transition_all_properties"
     },
     {
@@ -2220,23 +2244,19 @@
         "name": "rendering.desktop/balls_javascript_canvas"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/balls_javascript_css"
     },
     {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_svg_animations"
-    },
-    {
         "duration": "11.0",
         "name": "rendering.desktop/blob"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/blogspot_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/blogspot_pinch_2018"
     },
     {
@@ -2248,11 +2268,11 @@
         "name": "rendering.desktop/booking.com_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/booking_pinch_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "rendering.desktop/bouncing_balls_15"
     },
     {
@@ -2272,11 +2292,11 @@
         "name": "rendering.desktop/bouncing_png_images"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/bouncing_svg_images"
     },
     {
-        "duration": "20.0",
+        "duration": "14.0",
         "name": "rendering.desktop/camera_to_webgl"
     },
     {
@@ -2296,7 +2316,7 @@
         "name": "rendering.desktop/canvas_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/canvas_60000_pixels_per_second"
     },
     {
@@ -2308,7 +2328,7 @@
         "name": "rendering.desktop/canvas_90000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/canvas_animation_no_clear"
     },
     {
@@ -2324,15 +2344,15 @@
         "name": "rendering.desktop/canvas_lines"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/canvas_to_blob"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/cats_unscaled"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/cats_viewport_width"
     },
     {
@@ -2344,15 +2364,15 @@
         "name": "rendering.desktop/cc_scroll_text_only"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/chip_tune"
     },
     {
-        "duration": "21.0",
+        "duration": "11.0",
         "name": "rendering.desktop/cnn_2018"
     },
     {
-        "duration": "25.0",
+        "duration": "15.0",
         "name": "rendering.desktop/cnn_pinch_2018"
     },
     {
@@ -2364,11 +2384,11 @@
         "name": "rendering.desktop/crafty_mind"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/css_animations_many_keyframes"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_simultaneous_inline_style"
     },
     {
@@ -2384,11 +2404,11 @@
         "name": "rendering.desktop/css_animations_simultaneous_updating_class"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "rendering.desktop/css_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_staggered_inline_style"
     },
     {
@@ -2400,11 +2420,11 @@
         "name": "rendering.desktop/css_animations_staggered_style_element"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_staggered_updating_class"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_triggered_inline_style"
     },
     {
@@ -2416,7 +2436,7 @@
         "name": "rendering.desktop/css_animations_triggered_style_element"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_triggered_updating_class"
     },
     {
@@ -2432,7 +2452,7 @@
         "name": "rendering.desktop/css_transitions_new_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_inline_style"
     },
     {
@@ -2440,11 +2460,11 @@
         "name": "rendering.desktop/css_transitions_staggered_new_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_style_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_updating_class"
     },
     {
@@ -2476,15 +2496,15 @@
         "name": "rendering.desktop/css_value_type_color"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_value_type_filter"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_length"
     },
     {
-        "duration": "16.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_length_complex"
     },
     {
@@ -2500,11 +2520,11 @@
         "name": "rendering.desktop/css_value_type_shadow"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_transform_complex"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_transform_simple"
     },
     {
@@ -2520,7 +2540,7 @@
         "name": "rendering.desktop/ebay_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "14.0",
         "name": "rendering.desktop/ebay_pinch_2018"
     },
     {
@@ -2528,11 +2548,11 @@
         "name": "rendering.desktop/effect_games"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rendering.desktop/espn_2018"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.desktop/espn_pinch_2018"
     },
     {
@@ -2560,15 +2580,15 @@
         "name": "rendering.desktop/geo_apis"
     },
     {
-        "duration": "7.0",
+        "duration": "11.0",
         "name": "rendering.desktop/gmail_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "25.0",
         "name": "rendering.desktop/gmail_move_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/gmail_pinch_2018"
     },
     {
@@ -2576,11 +2596,11 @@
         "name": "rendering.desktop/google_calendar_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/google_calendar_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.desktop/google_docs_2018"
     },
     {
@@ -2588,11 +2608,11 @@
         "name": "rendering.desktop/google_image_pinch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/google_image_search_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/google_plus_2018"
     },
     {
@@ -2600,7 +2620,7 @@
         "name": "rendering.desktop/google_search_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/google_web_search_2018"
     },
     {
@@ -2608,11 +2628,11 @@
         "name": "rendering.desktop/guimark_vector_chart"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/hakim"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.desktop/ie_chalkboard"
     },
     {
@@ -2636,15 +2656,23 @@
         "name": "rendering.desktop/jarro_doverson"
     },
     {
+        "duration": "8.0",
+        "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization"
+    },
+    {
         "duration": "17.0",
         "name": "rendering.desktop/js_full_screen_invalidation"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/js_opacity_plus_n_layers_99"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/js_paint_plus_n_layers_99"
     },
     {
@@ -2668,15 +2696,27 @@
         "name": "rendering.desktop/large_texture_uploads"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/linkedin_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "rendering.desktop/linkedin_pinch_2018"
     },
     {
         "duration": "8.0",
+        "name": "rendering.desktop/main_0fps_impl_60fps"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/main_30fps_impl_60fps"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/main_60fps_impl_60fps"
+    },
+    {
+        "duration": "8.0",
         "name": "rendering.desktop/man_in_blue"
     },
     {
@@ -2684,15 +2724,15 @@
         "name": "rendering.desktop/many_images"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/many_planets_deep"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/maps_move_2018"
     },
     {
-        "duration": "32.0",
+        "duration": "12.0",
         "name": "rendering.desktop/maps_perf_test"
     },
     {
@@ -2700,11 +2740,11 @@
         "name": "rendering.desktop/medium_texture_uploads"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "rendering.desktop/megi_dish"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/microsoft_asteroid_belt"
     },
     {
@@ -2720,7 +2760,7 @@
         "name": "rendering.desktop/microsoft_performance"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/microsoft_snow"
     },
     {
@@ -2748,27 +2788,27 @@
         "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "rendering.desktop/mix_blend_mode_animation_screen"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/motion_mark_canvas_fill_shapes"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/motion_mark_canvas_stroke_shapes"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "rendering.desktop/new_tilings"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/overlay_background_color_css_transitions_page"
     },
     {
@@ -2776,7 +2816,7 @@
         "name": "rendering.desktop/particles"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "rendering.desktop/pinterest_2018"
     },
     {
@@ -2796,7 +2836,7 @@
         "name": "rendering.desktop/raf_canvas"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/raf_touch_animation"
     },
     {
@@ -2808,7 +2848,7 @@
         "name": "rendering.desktop/repaint_cnn_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/repaint_facebook_2018"
     },
     {
@@ -2816,11 +2856,11 @@
         "name": "rendering.desktop/repaint_google_search_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/repaint_instagram_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/repaint_reddit_2018"
     },
     {
@@ -2832,7 +2872,7 @@
         "name": "rendering.desktop/repaint_twitter_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/repaint_wikipedia_2018"
     },
     {
@@ -2840,7 +2880,7 @@
         "name": "rendering.desktop/repaint_yahoo_homepage_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "12.0",
         "name": "rendering.desktop/runway"
     },
     {
@@ -2848,7 +2888,7 @@
         "name": "rendering.desktop/san_angeles"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/second_batch_js_heavy"
     },
     {
@@ -2864,7 +2904,7 @@
         "name": "rendering.desktop/simple_text_page"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "rendering.desktop/simple_touch_drag"
     },
     {
@@ -2884,7 +2924,7 @@
         "name": "rendering.desktop/stroke_shapes"
     },
     {
-        "duration": "12.0",
+        "duration": "5.0",
         "name": "rendering.desktop/sync_scroll_offset"
     },
     {
@@ -2916,11 +2956,11 @@
         "name": "rendering.desktop/text_75000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_90000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
@@ -2932,19 +2972,19 @@
         "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
@@ -2956,7 +2996,7 @@
         "name": "rendering.desktop/text_hover_10000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_20000_pixels_per_second"
     },
     {
@@ -2968,11 +3008,11 @@
         "name": "rendering.desktop/text_hover_60000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_90000_pixels_per_second"
     },
     {
@@ -2992,15 +3032,15 @@
         "name": "rendering.desktop/twitch_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "rendering.desktop/twitch_pinch_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.desktop/twitter_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/twitter_pinch_2018"
     },
     {
@@ -3008,7 +3048,7 @@
         "name": "rendering.desktop/web_animation_value_type_color"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_length_3d"
     },
     {
@@ -3028,43 +3068,51 @@
         "name": "rendering.desktop/web_animation_value_type_shadow"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_transform_complex"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_many_keyframes"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_set_current_time"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_simultaneous"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_staggered_chaining"
     },
     {
-        "duration": "15.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_staggered_triggering_page"
     },
     {
-        "duration": "18.0",
-        "name": "rendering.desktop/wikipedia_2018"
+        "duration": "8.0",
+        "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization"
     },
     {
         "duration": "12.0",
+        "name": "rendering.desktop/wikipedia_2018"
+    },
+    {
+        "duration": "11.0",
         "name": "rendering.desktop/wordpress_2018"
     },
     {
@@ -3072,11 +3120,11 @@
         "name": "rendering.desktop/yahoo_answers_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/yahoo_news_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "10.0",
         "name": "rendering.desktop/yahoo_news_pinch_2018"
     },
     {
@@ -3084,7 +3132,7 @@
         "name": "rendering.desktop/yahoo_sports_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.desktop/yahoo_sports_pinch_2018"
     },
     {
@@ -3092,111 +3140,71 @@
         "name": "rendering.desktop/youtube_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/youtube_pinch_2018"
     },
     {
-        "duration": "11.0",
-        "name": "rendering.desktop/yuv_decoding"
-    },
-    {
-        "duration": "56.0",
+        "duration": "55.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "96.0",
+        "duration": "97.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "96.0",
+        "duration": "97.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "60.0",
+        "duration": "59.0",
         "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "system_health.common_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "79.0",
+        "duration": "74.0",
         "name": "system_health.common_desktop/browse:media:imgur"
     },
     {
-        "duration": "58.0",
-        "name": "system_health.common_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "87.0",
+        "duration": "86.0",
         "name": "system_health.common_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "101.0",
-        "name": "system_health.common_desktop/browse:media:tumblr"
-    },
-    {
-        "duration": "59.0",
+        "duration": "58.0",
         "name": "system_health.common_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "65.0",
-        "name": "system_health.common_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "62.0",
+        "duration": "59.0",
         "name": "system_health.common_desktop/browse:media:youtube:2018"
     },
     {
-        "duration": "63.0",
+        "duration": "62.0",
         "name": "system_health.common_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "73.0",
-        "name": "system_health.common_desktop/browse:news:cnn"
-    },
-    {
-        "duration": "48.0",
+        "duration": "43.0",
         "name": "system_health.common_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "45.0",
-        "name": "system_health.common_desktop/browse:news:flipboard"
-    },
-    {
         "duration": "43.0",
         "name": "system_health.common_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "46.0",
-        "name": "system_health.common_desktop/browse:news:hackernews"
-    },
-    {
-        "duration": "56.0",
-        "name": "system_health.common_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "68.0",
-        "name": "system_health.common_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "79.0",
+        "duration": "66.0",
         "name": "system_health.common_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.common_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "51.0",
+        "duration": "45.0",
         "name": "system_health.common_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "44.0",
         "name": "system_health.common_desktop/browse:search:google"
     },
     {
@@ -3204,64 +3212,40 @@
         "name": "system_health.common_desktop/browse:search:google:2018"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.common_desktop/browse:search:google_india"
-    },
-    {
         "duration": "30.0",
         "name": "system_health.common_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "61.0",
-        "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "70.0",
-        "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
-    },
-    {
         "duration": "66.0",
-        "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll"
+        "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
         "duration": "61.0",
         "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "42.0",
-        "name": "system_health.common_desktop/browse:social:twitter"
-    },
-    {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "system_health.common_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "67.0",
-        "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll"
-    },
-    {
-        "duration": "60.0",
+        "duration": "59.0",
         "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "61.0",
-        "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "58.0",
+        "duration": "55.0",
         "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "53.0",
+        "duration": "52.0",
         "name": "system_health.common_desktop/browse:tools:earth"
     },
     {
-        "duration": "21.0",
-        "name": "system_health.common_desktop/browse_accessibility:media:youtube"
+        "duration": "36.0",
+        "name": "system_health.common_desktop/browse:tools:sheets:2019"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/browse_accessibility:tech:codesearch"
+        "duration": "20.0",
+        "name": "system_health.common_desktop/browse_accessibility:media:youtube"
     },
     {
         "duration": "24.0",
@@ -3280,27 +3264,23 @@
         "name": "system_health.common_desktop/load:games:bubbles"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
+        "name": "system_health.common_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:games:lazors"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:games:miniclip"
-    },
-    {
-        "duration": "18.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:games:miniclip:2018"
     },
     {
         "duration": "19.0",
-        "name": "system_health.common_desktop/load:games:spychase"
-    },
-    {
-        "duration": "20.0",
         "name": "system_health.common_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "21.0",
         "name": "system_health.common_desktop/load:media:9gag"
     },
     {
@@ -3317,50 +3297,26 @@
     },
     {
         "duration": "13.0",
-        "name": "system_health.common_desktop/load:media:google_images"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.common_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.common_desktop/load:media:imgur"
-    },
-    {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:media:imgur:2018"
     },
     {
         "duration": "16.0",
-        "name": "system_health.common_desktop/load:media:soundcloud"
-    },
-    {
-        "duration": "17.0",
         "name": "system_health.common_desktop/load:media:soundcloud:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:media:youtube"
-    },
-    {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:media:youtube:2018"
-    },
-    {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:news:bbc"
+        "name": "system_health.common_desktop/load:media:youtube:2018"
     },
     {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "20.0",
-        "name": "system_health.common_desktop/load:news:cnn"
-    },
-    {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:news:cnn:2018"
     },
     {
@@ -3369,66 +3325,38 @@
     },
     {
         "duration": "13.0",
-        "name": "system_health.common_desktop/load:news:hackernews"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.common_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:news:nytimes"
-    },
-    {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:news:nytimes:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:news:qq"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:news:qq:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.common_desktop/load:news:reddit"
-    },
-    {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:news:reddit:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.common_desktop/load:news:wikipedia"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:news:wikipedia:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:search:amazon"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:search:amazon:2018"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.common_desktop/load:search:baidu"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.common_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.common_desktop/load:search:ebay"
-    },
-    {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:search:ebay:2018"
     },
     {
@@ -3436,51 +3364,31 @@
         "name": "system_health.common_desktop/load:search:flipkart:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.common_desktop/load:search:google"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:search:google:2018"
     },
     {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:taobao"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.common_desktop/load:search:taobao:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.common_desktop/load:search:yahoo"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.common_desktop/load:search:yahoo:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.common_desktop/load:search:yandex"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:search:yandex:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:social:instagram"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "21.0",
         "name": "system_health.common_desktop/load:social:pinterest"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "system_health.common_desktop/load:social:vk"
     },
     {
@@ -3488,11 +3396,11 @@
         "name": "system_health.common_desktop/load:social:vk:2018"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:tools:docs"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:tools:drive"
     },
     {
@@ -3500,14 +3408,10 @@
         "name": "system_health.common_desktop/load:tools:dropbox"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:tools:gmail"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.common_desktop/load:tools:stackoverflow"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:tools:stackoverflow:2018"
     },
@@ -3516,18 +3420,10 @@
         "name": "system_health.common_desktop/load:tools:weather"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.common_desktop/load_accessibility:media:wikipedia"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load_accessibility:shopping:amazon"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018"
     },
@@ -3536,23 +3432,11 @@
         "name": "system_health.common_desktop/long_running:tools:gmail-background"
     },
     {
-        "duration": "136.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24"
-    },
-    {
-        "duration": "122.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24:2018"
-    },
-    {
         "duration": "43.0",
         "name": "system_health.common_desktop/play:media:google_play_music"
     },
     {
-        "duration": "41.0",
-        "name": "system_health.common_desktop/play:media:soundcloud"
-    },
-    {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "system_health.common_desktop/play:media:soundcloud:2018"
     },
     {
@@ -3564,31 +3448,19 @@
         "name": "system_health.memory_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "67.0",
+        "duration": "68.0",
         "name": "system_health.memory_desktop/browse:media:imgur"
     },
     {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "84.0",
+        "duration": "85.0",
         "name": "system_health.memory_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "96.0",
-        "name": "system_health.memory_desktop/browse:media:tumblr"
-    },
-    {
-        "duration": "55.0",
+        "duration": "56.0",
         "name": "system_health.memory_desktop/browse:media:tumblr:2018"
     },
     {
         "duration": "57.0",
-        "name": "system_health.memory_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "58.0",
         "name": "system_health.memory_desktop/browse:media:youtube:2018"
     },
     {
@@ -3596,35 +3468,19 @@
         "name": "system_health.memory_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "system_health.memory_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "44.0",
-        "name": "system_health.memory_desktop/browse:news:flipboard"
-    },
-    {
         "duration": "41.0",
         "name": "system_health.memory_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "49.0",
-        "name": "system_health.memory_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "67.0",
+        "duration": "61.0",
         "name": "system_health.memory_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "50.0",
-        "name": "system_health.memory_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "44.0",
+        "duration": "43.0",
         "name": "system_health.memory_desktop/browse:news:reddit:2018"
     },
     {
@@ -3636,35 +3492,19 @@
         "name": "system_health.memory_desktop/browse:search:google:2018"
     },
     {
-        "duration": "30.0",
-        "name": "system_health.memory_desktop/browse:search:google_india"
-    },
-    {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "system_health.memory_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "58.0",
-        "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "63.0",
+        "duration": "64.0",
         "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "51.0",
+        "duration": "50.0",
         "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
         "duration": "40.0",
-        "name": "system_health.memory_desktop/browse:social:twitter"
-    },
-    {
-        "duration": "40.0",
         "name": "system_health.memory_desktop/browse:social:twitter:2018"
     },
     {
@@ -3672,11 +3512,7 @@
         "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "57.0",
-        "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "55.0",
+        "duration": "53.0",
         "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
@@ -3684,12 +3520,12 @@
         "name": "system_health.memory_desktop/browse:tools:earth"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
+        "duration": "34.0",
+        "name": "system_health.memory_desktop/browse:tools:sheets:2019"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch"
+        "duration": "19.0",
+        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
     },
     {
         "duration": "23.0",
@@ -3709,6 +3545,10 @@
     },
     {
         "duration": "12.0",
+        "name": "system_health.memory_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "11.0",
         "name": "system_health.memory_desktop/load:games:lazors"
     },
     {
@@ -3716,19 +3556,15 @@
         "name": "system_health.memory_desktop/load:games:miniclip:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.memory_desktop/load:games:spychase"
-    },
-    {
         "duration": "18.0",
         "name": "system_health.memory_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "system_health.memory_desktop/load:media:9gag"
     },
     {
-        "duration": "12.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:media:dailymotion"
     },
     {
@@ -3740,50 +3576,26 @@
         "name": "system_health.memory_desktop/load:media:flickr:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:media:google_images"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:media:google_images:2018"
     },
     {
         "duration": "14.0",
-        "name": "system_health.memory_desktop/load:media:imgur"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.memory_desktop/load:media:imgur:2018"
     },
     {
         "duration": "15.0",
-        "name": "system_health.memory_desktop/load:media:soundcloud"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.memory_desktop/load:media:soundcloud:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.memory_desktop/load:media:youtube"
-    },
-    {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:media:youtube:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:news:bbc"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.memory_desktop/load:news:cnn"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.memory_desktop/load:news:cnn:2018"
     },
@@ -3793,18 +3605,10 @@
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:news:hackernews"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:news:nytimes"
-    },
-    {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:news:nytimes:2018"
     },
     {
@@ -3816,42 +3620,22 @@
         "name": "system_health.memory_desktop/load:news:qq:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:news:reddit"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.memory_desktop/load:news:reddit:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:news:wikipedia"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:news:wikipedia:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.memory_desktop/load:search:amazon"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:amazon:2018"
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:baidu"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:ebay"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:ebay:2018"
     },
@@ -3860,47 +3644,27 @@
         "name": "system_health.memory_desktop/load:search:flipkart:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:google"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:google:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.memory_desktop/load:search:taobao"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:taobao:2018"
     },
     {
-        "duration": "11.0",
-        "name": "system_health.memory_desktop/load:search:yahoo"
-    },
-    {
         "duration": "12.0",
         "name": "system_health.memory_desktop/load:search:yahoo:2018"
     },
     {
-        "duration": "11.0",
-        "name": "system_health.memory_desktop/load:search:yandex"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:yandex:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:social:instagram"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:social:pinterest"
     },
     {
@@ -3912,7 +3676,7 @@
         "name": "system_health.memory_desktop/load:social:vk:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:tools:docs"
     },
     {
@@ -3929,58 +3693,34 @@
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:tools:stackoverflow"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:tools:weather"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load_accessibility:media:wikipedia"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load_accessibility:shopping:amazon"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
-        "duration": "138.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "137.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "39.0",
-        "name": "system_health.memory_desktop/play:media:soundcloud"
-    },
-    {
         "duration": "39.0",
         "name": "system_health.memory_desktop/play:media:soundcloud:2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "5.0",
+        "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
@@ -3988,7 +3728,7 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
@@ -4008,23 +3748,19 @@
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "64.0",
+        "duration": "62.0",
         "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "80.0",
-        "name": "v8.browsing_desktop-future/browse:media:imgur"
-    },
-    {
-        "duration": "91.0",
+        "duration": "89.0",
         "name": "v8.browsing_desktop-future/browse:media:pinterest:2018"
     },
     {
-        "duration": "66.0",
+        "duration": "62.0",
         "name": "v8.browsing_desktop-future/browse:media:tumblr:2018"
     },
     {
@@ -4032,31 +3768,27 @@
         "name": "v8.browsing_desktop-future/browse:media:youtube:2018"
     },
     {
-        "duration": "66.0",
+        "duration": "64.0",
         "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019"
     },
     {
-        "duration": "54.0",
+        "duration": "46.0",
         "name": "v8.browsing_desktop-future/browse:news:cnn:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:news:flipboard:2018"
     },
     {
-        "duration": "59.0",
-        "name": "v8.browsing_desktop-future/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "84.0",
+        "duration": "70.0",
         "name": "v8.browsing_desktop-future/browse:news:nytimes:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "49.0",
         "name": "v8.browsing_desktop-future/browse:news:reddit:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "v8.browsing_desktop-future/browse:search:google:2018"
     },
     {
@@ -4064,687 +3796,103 @@
         "name": "v8.browsing_desktop-future/browse:search:google_india:2018"
     },
     {
-        "duration": "74.0",
+        "duration": "71.0",
         "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "69.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "66.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "44.0",
+        "duration": "43.0",
         "name": "v8.browsing_desktop-future/browse:social:twitter:2018"
     },
     {
-        "duration": "64.0",
-        "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "61.0",
+        "duration": "57.0",
         "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "61.0",
         "name": "v8.browsing_desktop-future/browse:tools:earth"
     },
     {
-        "duration": "64.0",
-        "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
+        "duration": "72.0",
+        "name": "v8.browsing_desktop-future/browse:tools:maps:2019"
     },
     {
-        "duration": "38.0",
-        "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
-    },
-    {
-        "duration": "78.0",
-        "name": "v8.browsing_desktop/browse:media:imgur"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "91.0",
-        "name": "v8.browsing_desktop/browse:media:pinterest:2018"
-    },
-    {
-        "duration": "107.0",
-        "name": "v8.browsing_desktop/browse:media:tumblr"
-    },
-    {
-        "duration": "65.0",
-        "name": "v8.browsing_desktop/browse:media:tumblr:2018"
-    },
-    {
-        "duration": "68.0",
-        "name": "v8.browsing_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "67.0",
-        "name": "v8.browsing_desktop/browse:media:youtube:2018"
+        "duration": "39.0",
+        "name": "v8.browsing_desktop-future/browse:tools:sheets:2019"
     },
     {
         "duration": "66.0",
-        "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
+        "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "54.0",
-        "name": "v8.browsing_desktop/browse:news:cnn:2018"
+        "duration": "37.0",
+        "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "46.0",
-        "name": "v8.browsing_desktop/browse:news:flipboard:2018"
-    },
-    {
-        "duration": "59.0",
-        "name": "v8.browsing_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "72.0",
-        "name": "v8.browsing_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "83.0",
-        "name": "v8.browsing_desktop/browse:news:nytimes:2018"
+        "duration": "89.0",
+        "name": "v8.browsing_desktop/browse:media:pinterest:2018"
     },
     {
         "duration": "63.0",
-        "name": "v8.browsing_desktop/browse:news:reddit"
+        "name": "v8.browsing_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "62.0",
+        "name": "v8.browsing_desktop/browse:media:youtube:2018"
+    },
+    {
+        "duration": "64.0",
+        "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
+    },
+    {
+        "duration": "46.0",
+        "name": "v8.browsing_desktop/browse:news:cnn:2018"
+    },
+    {
+        "duration": "44.0",
+        "name": "v8.browsing_desktop/browse:news:flipboard:2018"
+    },
+    {
+        "duration": "70.0",
+        "name": "v8.browsing_desktop/browse:news:nytimes:2018"
+    },
+    {
+        "duration": "49.0",
         "name": "v8.browsing_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "51.0",
         "name": "v8.browsing_desktop/browse:search:google"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "v8.browsing_desktop/browse:search:google:2018"
     },
     {
-        "duration": "32.0",
-        "name": "v8.browsing_desktop/browse:search:google_india"
-    },
-    {
         "duration": "31.0",
         "name": "v8.browsing_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "69.0",
-        "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "74.0",
+        "duration": "70.0",
         "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "69.0",
-        "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
         "duration": "43.0",
-        "name": "v8.browsing_desktop/browse:social:twitter"
-    },
-    {
-        "duration": "44.0",
         "name": "v8.browsing_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "71.0",
-        "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll"
-    },
-    {
-        "duration": "64.0",
-        "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "61.0",
+        "duration": "57.0",
         "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "v8.browsing_desktop/browse:tools:earth"
     },
     {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot"
-    },
-    {
-        "duration": "26.0",
-        "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm"
-    },
-    {
-        "duration": "31.0",
-        "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold"
-    },
-    {
-        "duration": "53.0",
-        "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot"
-    },
-    {
-        "duration": "42.0",
-        "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm"
-    },
-    {
-        "duration": "25.0",
-        "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold"
-    },
-    {
-        "duration": "34.0",
-        "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot"
-    },
-    {
-        "duration": "32.0",
-        "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/http://weibo.com_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://weibo.com_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://weibo.com_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold"
-    },
-    {
-        "duration": "33.0",
-        "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold"
-    },
-    {
-        "duration": "31.0",
-        "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold"
-    },
-    {
         "duration": "39.0",
-        "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://www.qq.com_cold"
-    },
-    {
-        "duration": "38.0",
-        "name": "v8.runtime_stats.top_25/http://www.qq.com_hot"
-    },
-    {
-        "duration": "45.0",
-        "name": "v8.runtime_stats.top_25/http://www.qq.com_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold"
-    },
-    {
-        "duration": "31.0",
-        "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold"
-    },
-    {
-        "duration": "39.0",
-        "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold"
-    },
-    {
-        "duration": "37.0",
-        "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot"
-    },
-    {
-        "duration": "33.0",
-        "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm"
-    },
-    {
-        "duration": "22.0",
-        "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold"
-    },
-    {
-        "duration": "35.0",
-        "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot"
-    },
-    {
-        "duration": "27.0",
-        "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm"
-    },
-    {
-        "duration": "23.0",
-        "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm"
-    },
-    {
-        "duration": "25.0",
-        "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold"
-    },
-    {
-        "duration": "34.0",
-        "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold"
-    },
-    {
-        "duration": "32.0",
-        "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot"
-    },
-    {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm"
-    },
-    {
-        "duration": "8.0",
-        "name": "wasm/WasmSpaceBuggy"
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
     },
     {
         "duration": "16.0",
-        "name": "wasm/WasmTanks"
-    },
-    {
-        "duration": "26.0",
-        "name": "wasm/WasmZenGarden"
-    },
-    {
-        "duration": "19.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
@@ -4772,7 +3920,7 @@
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json
index 8c5a902..c52823f3 100644
--- a/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json
@@ -1,10 +1,10 @@
 [
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
@@ -12,7 +12,7 @@
         "name": "blink_perf.bindings/append-child.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/create-element.html"
     },
     {
@@ -32,11 +32,11 @@
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
@@ -236,7 +236,7 @@
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
@@ -244,19 +244,19 @@
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "17.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "13.0",
+        "duration": "20.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -264,47 +264,47 @@
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
-        "duration": "6.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "90.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "3.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "61.0",
+        "duration": "11.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "28.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "8.0",
+        "duration": "28.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
@@ -328,11 +328,11 @@
         "name": "blink_perf.canvas/gpu-bound-shader.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/putImageData.html"
     },
     {
@@ -340,7 +340,7 @@
         "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
     },
     {
-        "duration": "39.0",
+        "duration": "25.0",
         "name": "blink_perf.canvas/sheets-render.html"
     },
     {
@@ -380,7 +380,7 @@
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/upload-video-to-sub-texture.html"
     },
     {
@@ -392,7 +392,7 @@
         "name": "blink_perf.canvas/upload-video-to-texture.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
     },
     {
@@ -424,11 +424,11 @@
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
@@ -440,7 +440,7 @@
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
@@ -448,11 +448,11 @@
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
@@ -468,15 +468,15 @@
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
@@ -484,7 +484,7 @@
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
@@ -492,34 +492,6 @@
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
         "duration": "6.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
@@ -532,19 +504,11 @@
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
@@ -572,11 +536,11 @@
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
@@ -592,7 +556,7 @@
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
@@ -620,7 +584,7 @@
         "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
     },
     {
@@ -632,15 +596,15 @@
         "name": "blink_perf.image_decoder/decode-lossless-webp.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
@@ -648,7 +612,7 @@
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "24.0",
+        "duration": "19.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
@@ -700,7 +664,7 @@
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
-        "duration": "7.0",
+        "duration": "11.0",
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
@@ -712,6 +676,26 @@
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
         "duration": "9.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
@@ -720,7 +704,7 @@
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
@@ -768,7 +752,7 @@
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
@@ -889,6 +873,10 @@
     },
     {
         "duration": "7.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
@@ -897,6 +885,14 @@
     },
     {
         "duration": "7.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
@@ -908,7 +904,7 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
-        "duration": "16.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
     },
     {
@@ -928,7 +924,7 @@
         "name": "blink_perf.layout/nested-grid.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
@@ -936,7 +932,7 @@
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
@@ -952,11 +948,11 @@
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
@@ -968,7 +964,7 @@
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
@@ -980,7 +976,7 @@
         "name": "blink_perf.paint/color-changes.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
@@ -988,7 +984,7 @@
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
@@ -1008,7 +1004,7 @@
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
@@ -1020,15 +1016,15 @@
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
@@ -1040,11 +1036,11 @@
         "name": "blink_perf.paint/select-all-words.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
@@ -1060,11 +1056,11 @@
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/innerHTML-setter-siblings.html"
     },
     {
@@ -1084,7 +1080,7 @@
         "name": "blink_perf.parser/query-selector-all-class-deep.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
@@ -1096,19 +1092,19 @@
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
-        "duration": "7.0",
+        "duration": "11.0",
         "name": "blink_perf.parser/query-selector-all-deep.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-id-deep.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
@@ -1132,7 +1128,7 @@
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
@@ -1144,15 +1140,15 @@
         "name": "blink_perf.parser/simple-url.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/url-parser.html"
     },
     {
@@ -1236,7 +1232,7 @@
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
@@ -1276,7 +1272,7 @@
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
@@ -1312,11 +1308,11 @@
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
-        "duration": "1.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "1.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
@@ -1356,10 +1352,6 @@
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.svg/Cowboy_transform.html"
-    },
-    {
         "duration": "1.0",
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
@@ -1376,7 +1368,7 @@
         "name": "blink_perf.svg/FlowerFromMyGarden.html"
     },
     {
-        "duration": "2.0",
+        "duration": "1.0",
         "name": "blink_perf.svg/FoodLeifLodahl.html"
     },
     {
@@ -1392,7 +1384,7 @@
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "2.0",
+        "duration": "1.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
@@ -1408,10 +1400,6 @@
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.svg/SierpinskiCarpet.html"
-    },
-    {
         "duration": "2.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
@@ -1420,7 +1408,7 @@
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.svg/SvgNestedUse.html"
     },
     {
@@ -1460,8 +1448,12 @@
         "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "182.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "183.0",
+        "name": "jetstream/JetStream"
+    },
+    {
+        "duration": "174.0",
+        "name": "jetstream2/JetStream2"
     },
     {
         "duration": "23.0",
@@ -1484,19 +1476,19 @@
         "name": "loading.desktop/AirBnB_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "loading.desktop/Aljayyash_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/Aljayyash_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/AllRecipes_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.desktop/AllRecipes_warm"
     },
     {
@@ -1504,11 +1496,11 @@
         "name": "loading.desktop/ArsTechnica_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.desktop/ArsTechnica_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "loading.desktop/Baidu_cold"
     },
     {
@@ -1536,7 +1528,7 @@
         "name": "loading.desktop/Colorado.edu_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Colorado.edu_warm"
     },
     {
@@ -1560,7 +1552,7 @@
         "name": "loading.desktop/Donga_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "loading.desktop/Donga_warm"
     },
     {
@@ -1576,15 +1568,11 @@
         "name": "loading.desktop/Elmundo_cold"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Elmundo_warm"
-    },
-    {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/FC2Blog_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/FC2Blog_warm"
     },
     {
@@ -1592,7 +1580,7 @@
         "name": "loading.desktop/FIFA_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/FIFA_warm"
     },
     {
@@ -1620,7 +1608,7 @@
         "name": "loading.desktop/FlipKart_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "loading.desktop/Free.fr_cold"
     },
     {
@@ -1632,11 +1620,11 @@
         "name": "loading.desktop/HTML5Rocks_cold"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/HTML5Rocks_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "16.0",
         "name": "loading.desktop/Haraj_cold"
     },
     {
@@ -1648,7 +1636,7 @@
         "name": "loading.desktop/HatenaBookmark_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "loading.desktop/HatenaBookmark_warm"
     },
     {
@@ -1660,11 +1648,11 @@
         "name": "loading.desktop/IGN_warm"
     },
     {
-        "duration": "16.0",
+        "duration": "7.0",
         "name": "loading.desktop/IMDB_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "19.0",
         "name": "loading.desktop/IMDB_warm"
     },
     {
@@ -1672,7 +1660,7 @@
         "name": "loading.desktop/IndiaTimes_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "loading.desktop/IndiaTimes_warm"
     },
     {
@@ -1748,7 +1736,7 @@
         "name": "loading.desktop/REI_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "16.0",
         "name": "loading.desktop/Ruten_cold"
     },
     {
@@ -1800,11 +1788,11 @@
         "name": "loading.desktop/Vietnamnet_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/Vietnamnet_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "loading.desktop/Vnexpress_cold"
     },
     {
@@ -1812,23 +1800,15 @@
         "name": "loading.desktop/Vnexpress_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Walgreens_cold"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.desktop/Walgreens_warm"
-    },
-    {
         "duration": "7.0",
         "name": "loading.desktop/Yandex_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Yandex_warm"
     },
     {
-        "duration": "18.0",
+        "duration": "8.0",
         "name": "loading.desktop/amazon.co.jp_cold"
     },
     {
@@ -1844,11 +1824,11 @@
         "name": "loading.desktop/ja.wikipedia_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "loading.desktop/money.cnn_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "loading.desktop/money.cnn_warm"
     },
     {
@@ -1860,11 +1840,11 @@
         "name": "loading.desktop/ru.wikipedia_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/uol.com.br_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/uol.com.br_warm"
     },
     {
@@ -1880,7 +1860,7 @@
         "name": "media.desktop/mse.html?media=aac_audio.mp4"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
@@ -1888,7 +1868,7 @@
         "name": "media.desktop/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "media.desktop/mse.html?media=tulip0.av1.mp4"
     },
     {
@@ -1908,11 +1888,11 @@
         "name": "media.desktop/video.html?src=crowd1080_vp9.webm"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "media.desktop/video.html?src=garden2_10s.mp4&seek"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=garden2_10s.webm&seek"
     },
     {
@@ -1924,7 +1904,7 @@
         "name": "media.desktop/video.html?src=tulip0.av1.mp4"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek"
     },
     {
@@ -1968,7 +1948,7 @@
         "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "memory.desktop/TrivialAnimationPageSharedPageState"
     },
     {
@@ -2000,12 +1980,12 @@
         "name": "memory.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "39.0",
+        "duration": "38.0",
         "name": "memory.desktop/WebWorker"
     },
     {
-        "duration": "41.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "duration": "43.0",
+        "name": "octane/Octane"
     },
     {
         "duration": "32.0",
@@ -2036,7 +2016,7 @@
         "name": "power.desktop/TrivialScrollingPageSharedPageState"
     },
     {
-        "duration": "32.0",
+        "duration": "34.0",
         "name": "power.desktop/TrivialWebGLPageSharedPageState"
     },
     {
@@ -2132,7 +2112,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
@@ -2140,14 +2120,10 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "8.0",
+        "duration": "6.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "0.0",
-        "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html"
-    },
-    {
         "duration": "6.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
@@ -2160,7 +2136,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html"
     },
     {
-        "duration": "94.0",
+        "duration": "89.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html"
     },
     {
@@ -2168,15 +2144,15 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
-        "duration": "12.0",
+        "duration": "17.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "rendering.desktop/accu_weather_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/accu_weather_pinch_2018"
     },
     {
@@ -2196,7 +2172,7 @@
         "name": "rendering.desktop/animometer_webgl"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/animometer_webgl_attrib_arrays"
     },
     {
@@ -2220,7 +2196,7 @@
         "name": "rendering.desktop/background_color_animation_with_gradient"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/balls_css_key_frame_animations"
     },
     {
@@ -2248,10 +2224,6 @@
         "name": "rendering.desktop/balls_javascript_css"
     },
     {
-        "duration": "13.0",
-        "name": "rendering.desktop/balls_svg_animations"
-    },
-    {
         "duration": "9.0",
         "name": "rendering.desktop/blob"
     },
@@ -2276,7 +2248,7 @@
         "name": "rendering.desktop/booking_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/bouncing_balls_15"
     },
     {
@@ -2300,7 +2272,7 @@
         "name": "rendering.desktop/bouncing_svg_images"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/camera_to_webgl"
     },
     {
@@ -2312,7 +2284,7 @@
         "name": "rendering.desktop/canvas_10000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/canvas_20000_pixels_per_second"
     },
     {
@@ -2324,7 +2296,7 @@
         "name": "rendering.desktop/canvas_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/canvas_75000_pixels_per_second"
     },
     {
@@ -2352,7 +2324,7 @@
         "name": "rendering.desktop/canvas_to_blob"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/cats_unscaled"
     },
     {
@@ -2368,7 +2340,7 @@
         "name": "rendering.desktop/cc_scroll_text_only"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/chip_tune"
     },
     {
@@ -2384,11 +2356,11 @@
         "name": "rendering.desktop/compositor_heavy_animation"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/crafty_mind"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_many_keyframes"
     },
     {
@@ -2440,7 +2412,7 @@
         "name": "rendering.desktop/css_animations_triggered_style_element"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "rendering.desktop/css_animations_triggered_updating_class"
     },
     {
@@ -2500,7 +2472,7 @@
         "name": "rendering.desktop/css_value_type_color"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_filter"
     },
     {
@@ -2520,7 +2492,7 @@
         "name": "rendering.desktop/css_value_type_path"
     },
     {
-        "duration": "15.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_shadow"
     },
     {
@@ -2536,15 +2508,15 @@
         "name": "rendering.desktop/dynamic_cube_map"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/earth"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/ebay_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "12.0",
         "name": "rendering.desktop/ebay_pinch_2018"
     },
     {
@@ -2560,7 +2532,7 @@
         "name": "rendering.desktop/espn_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/extra_large_texture_uploads"
     },
     {
@@ -2580,7 +2552,7 @@
         "name": "rendering.desktop/filter_terrain_svg"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/geo_apis"
     },
     {
@@ -2596,7 +2568,7 @@
         "name": "rendering.desktop/gmail_pinch_2018"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/google_calendar_2018"
     },
     {
@@ -2612,7 +2584,7 @@
         "name": "rendering.desktop/google_image_pinch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/google_image_search_2018"
     },
     {
@@ -2624,7 +2596,7 @@
         "name": "rendering.desktop/google_search_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/google_web_search_2018"
     },
     {
@@ -2660,11 +2632,11 @@
         "name": "rendering.desktop/jarro_doverson"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization"
     },
     {
@@ -2688,11 +2660,11 @@
         "name": "rendering.desktop/js_scroll_text_only"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "rendering.desktop/kevs_3d"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "rendering.desktop/keyframed_animations"
     },
     {
@@ -2700,15 +2672,15 @@
         "name": "rendering.desktop/large_texture_uploads"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/linkedin_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "14.0",
         "name": "rendering.desktop/linkedin_pinch_2018"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/main_0fps_impl_60fps"
     },
     {
@@ -2724,15 +2696,15 @@
         "name": "rendering.desktop/man_in_blue"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/many_images"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.desktop/many_planets_deep"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/maps_move_2018"
     },
     {
@@ -2744,11 +2716,11 @@
         "name": "rendering.desktop/medium_texture_uploads"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/megi_dish"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/microsoft_asteroid_belt"
     },
     {
@@ -2768,7 +2740,7 @@
         "name": "rendering.desktop/microsoft_snow"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/microsoft_speed_reading"
     },
     {
@@ -2776,7 +2748,7 @@
         "name": "rendering.desktop/microsoft_tweet_map"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "rendering.desktop/microsoft_video_city"
     },
     {
@@ -2788,14 +2760,6 @@
         "name": "rendering.desktop/mix_10k"
     },
     {
-        "duration": "0.0",
-        "name": "rendering.desktop/mix_blend_mode_animation_difference"
-    },
-    {
-        "duration": "0.0",
-        "name": "rendering.desktop/mix_blend_mode_animation_hue"
-    },
-    {
         "duration": "12.0",
         "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
     },
@@ -2804,7 +2768,7 @@
         "name": "rendering.desktop/mix_blend_mode_animation_screen"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/motion_mark_canvas_fill_shapes"
     },
     {
@@ -2828,11 +2792,11 @@
         "name": "rendering.desktop/particles"
     },
     {
-        "duration": "8.0",
+        "duration": "15.0",
         "name": "rendering.desktop/pinterest_2018"
     },
     {
-        "duration": "15.0",
+        "duration": "8.0",
         "name": "rendering.desktop/put_get_image_data"
     },
     {
@@ -2904,7 +2868,7 @@
         "name": "rendering.desktop/second_batch_js_heavy"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/second_batch_js_light"
     },
     {
@@ -2920,7 +2884,7 @@
         "name": "rendering.desktop/simple_touch_drag"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "rendering.desktop/small_texture_uploads"
     },
     {
@@ -2936,7 +2900,7 @@
         "name": "rendering.desktop/stroke_shapes"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/sync_scroll_offset"
     },
     {
@@ -2948,7 +2912,7 @@
         "name": "rendering.desktop/text_05000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_10000_pixels_per_second"
     },
     {
@@ -2956,7 +2920,7 @@
         "name": "rendering.desktop/text_20000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_40000_pixels_per_second"
     },
     {
@@ -2976,7 +2940,7 @@
         "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -2996,7 +2960,7 @@
         "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
@@ -3004,19 +2968,19 @@
         "name": "rendering.desktop/text_hover_05000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_hover_10000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rendering.desktop/text_hover_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_60000_pixels_per_second"
     },
     {
@@ -3024,11 +2988,11 @@
         "name": "rendering.desktop/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_90000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.desktop/touch_handler_scrolling"
     },
     {
@@ -3040,11 +3004,11 @@
         "name": "rendering.desktop/transform_transitions_js_block"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/twitch_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/twitch_pinch_2018"
     },
     {
@@ -3124,11 +3088,11 @@
         "name": "rendering.desktop/wikipedia_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/wordpress_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/yahoo_answers_2018"
     },
     {
@@ -3144,11 +3108,11 @@
         "name": "rendering.desktop/yahoo_sports_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "rendering.desktop/yahoo_sports_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rendering.desktop/youtube_2018"
     },
     {
@@ -3168,11 +3132,11 @@
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "70.0",
+        "duration": "71.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "58.0",
+        "duration": "57.0",
         "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3188,7 +3152,7 @@
         "name": "system_health.common_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "system_health.common_desktop/browse:media:tumblr:2018"
     },
     {
@@ -3200,7 +3164,7 @@
         "name": "system_health.common_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "system_health.common_desktop/browse:news:cnn:2018"
     },
     {
@@ -3208,15 +3172,11 @@
         "name": "system_health.common_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "48.0",
-        "name": "system_health.common_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "58.0",
+        "duration": "54.0",
         "name": "system_health.common_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "system_health.common_desktop/browse:news:reddit:2018"
     },
     {
@@ -3224,7 +3184,7 @@
         "name": "system_health.common_desktop/browse:search:google"
     },
     {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/browse:search:google:2018"
     },
     {
@@ -3232,11 +3192,11 @@
         "name": "system_health.common_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "65.0",
+        "duration": "62.0",
         "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "59.0",
+        "duration": "57.0",
         "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
@@ -3244,11 +3204,11 @@
         "name": "system_health.common_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "58.0",
+        "duration": "57.0",
         "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
@@ -3256,15 +3216,15 @@
         "name": "system_health.common_desktop/browse:tools:earth"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_desktop/browse:tools:maps"
+        "duration": "28.0",
+        "name": "system_health.common_desktop/browse:tools:sheets:2019"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/browse_accessibility:media:youtube"
     },
     {
-        "duration": "23.0",
+        "duration": "25.0",
         "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
@@ -3280,6 +3240,10 @@
         "name": "system_health.common_desktop/load:games:bubbles"
     },
     {
+        "duration": "13.0",
+        "name": "system_health.common_desktop/load:games:bubbles:2019"
+    },
+    {
         "duration": "11.0",
         "name": "system_health.common_desktop/load:games:lazors"
     },
@@ -3292,11 +3256,11 @@
         "name": "system_health.common_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:media:9gag"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:media:dailymotion"
     },
     {
@@ -3312,7 +3276,7 @@
         "name": "system_health.common_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:media:imgur:2018"
     },
     {
@@ -3340,7 +3304,7 @@
         "name": "system_health.common_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:news:nytimes:2018"
     },
     {
@@ -3428,7 +3392,7 @@
         "name": "system_health.common_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:tools:weather"
     },
     {
@@ -3440,23 +3404,11 @@
         "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
-        "duration": "121.0",
+        "duration": "124.0",
         "name": "system_health.common_desktop/long_running:tools:gmail-background"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_desktop/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "86.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24"
-    },
-    {
-        "duration": "76.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24:2018"
-    },
-    {
-        "duration": "40.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/play:media:google_play_music"
     },
     {
@@ -3500,15 +3452,11 @@
         "name": "system_health.memory_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "45.0",
-        "name": "system_health.memory_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "54.0",
+        "duration": "51.0",
         "name": "system_health.memory_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "39.0",
+        "duration": "41.0",
         "name": "system_health.memory_desktop/browse:news:reddit:2018"
     },
     {
@@ -3524,7 +3472,7 @@
         "name": "system_health.memory_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "62.0",
+        "duration": "60.0",
         "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3548,15 +3496,15 @@
         "name": "system_health.memory_desktop/browse:tools:earth"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/browse:tools:maps"
+        "duration": "26.0",
+        "name": "system_health.memory_desktop/browse:tools:sheets:2019"
     },
     {
         "duration": "18.0",
         "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
@@ -3572,6 +3520,10 @@
         "name": "system_health.memory_desktop/load:games:bubbles"
     },
     {
+        "duration": "12.0",
+        "name": "system_health.memory_desktop/load:games:bubbles:2019"
+    },
+    {
         "duration": "11.0",
         "name": "system_health.memory_desktop/load:games:lazors"
     },
@@ -3588,7 +3540,7 @@
         "name": "system_health.memory_desktop/load:media:9gag"
     },
     {
-        "duration": "11.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:media:dailymotion"
     },
     {
@@ -3604,7 +3556,7 @@
         "name": "system_health.memory_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:media:imgur:2018"
     },
     {
@@ -3612,7 +3564,7 @@
         "name": "system_health.memory_desktop/load:media:soundcloud:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:media:youtube:2018"
     },
     {
@@ -3640,11 +3592,11 @@
         "name": "system_health.memory_desktop/load:news:qq"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:news:qq:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:news:reddit:2018"
     },
     {
@@ -3676,7 +3628,7 @@
         "name": "system_health.memory_desktop/load:search:taobao:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "system_health.memory_desktop/load:search:yahoo:2018"
     },
     {
@@ -3720,7 +3672,7 @@
         "name": "system_health.memory_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:tools:weather"
     },
     {
@@ -3732,34 +3684,10 @@
         "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/multitab:misc:typical24"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/multitab:misc:typical24:2018"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.memory_desktop/play:media:google_play_music"
-    },
-    {
         "duration": "38.0",
         "name": "system_health.memory_desktop/play:media:soundcloud:2018"
     },
     {
-        "duration": "0.0",
-        "name": "tab_switching.typical_25/multitab:misc:typical24"
-    },
-    {
         "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
@@ -3768,7 +3696,7 @@
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
@@ -3776,11 +3704,11 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
@@ -3804,19 +3732,15 @@
         "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:media:imgur"
-    },
-    {
-        "duration": "86.0",
+        "duration": "85.0",
         "name": "v8.browsing_desktop-future/browse:media:pinterest:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop-future/browse:media:tumblr:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop-future/browse:media:youtube:2018"
     },
     {
@@ -3824,30 +3748,22 @@
         "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "v8.browsing_desktop-future/browse:news:cnn:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "v8.browsing_desktop-future/browse:news:flipboard:2018"
     },
     {
-        "duration": "49.0",
-        "name": "v8.browsing_desktop-future/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "62.0",
+        "duration": "56.0",
         "name": "v8.browsing_desktop-future/browse:news:nytimes:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:news:reddit:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:search:google"
-    },
-    {
         "duration": "43.0",
         "name": "v8.browsing_desktop-future/browse:search:google:2018"
     },
@@ -3856,32 +3772,28 @@
         "name": "v8.browsing_desktop-future/browse:search:google_india:2018"
     },
     {
-        "duration": "70.0",
+        "duration": "65.0",
         "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
         "duration": "41.0",
         "name": "v8.browsing_desktop-future/browse:social:twitter:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
         "duration": "55.0",
         "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "53.0",
         "name": "v8.browsing_desktop-future/browse:tools:earth"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:tools:maps"
+        "duration": "66.0",
+        "name": "v8.browsing_desktop-future/browse:tools:maps:2019"
+    },
+    {
+        "duration": "29.0",
+        "name": "v8.browsing_desktop-future/browse:tools:sheets:2019"
     },
     {
         "duration": "59.0",
@@ -3892,19 +3804,15 @@
         "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:media:imgur"
-    },
-    {
-        "duration": "86.0",
+        "duration": "85.0",
         "name": "v8.browsing_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop/browse:media:youtube:2018"
     },
     {
@@ -3912,23 +3820,19 @@
         "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "38.0",
+        "duration": "37.0",
         "name": "v8.browsing_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "v8.browsing_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "49.0",
-        "name": "v8.browsing_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "61.0",
+        "duration": "57.0",
         "name": "v8.browsing_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop/browse:news:reddit:2018"
     },
     {
@@ -3944,35 +3848,27 @@
         "name": "v8.browsing_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "68.0",
+        "duration": "65.0",
         "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
         "duration": "41.0",
         "name": "v8.browsing_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
         "duration": "55.0",
         "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "55.0",
+        "duration": "51.0",
         "name": "v8.browsing_desktop/browse:tools:earth"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:tools:maps"
+        "duration": "29.0",
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
@@ -4000,7 +3896,7 @@
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json
index 235c5e7..4dad9872 100644
--- a/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json
@@ -1,6 +1,6 @@
 [
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
@@ -8,11 +8,11 @@
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/create-element.html"
     },
     {
@@ -28,7 +28,7 @@
         "name": "blink_perf.bindings/first-child.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
@@ -36,7 +36,7 @@
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "7.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
@@ -76,7 +76,7 @@
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "blink_perf.bindings/node-list-access.html"
     },
     {
@@ -96,7 +96,7 @@
         "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.bindings/serialize-array.html"
     },
     {
@@ -120,19 +120,19 @@
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/structured-clone-long-string-serialize.html"
     },
     {
@@ -168,15 +168,15 @@
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html"
     },
     {
@@ -188,15 +188,15 @@
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
@@ -232,11 +232,11 @@
         "name": "blink_perf.canvas/docs-resume.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
@@ -244,19 +244,19 @@
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "6.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "8.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "17.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
@@ -264,7 +264,7 @@
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
-        "duration": "8.0",
+        "duration": "6.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF"
     },
     {
@@ -272,19 +272,19 @@
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "66.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "90.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
     },
     {
@@ -300,15 +300,15 @@
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "8.0",
+        "duration": "13.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "23.0",
         "name": "blink_perf.canvas/getImageData.html"
     },
     {
@@ -348,11 +348,11 @@
         "name": "blink_perf.canvas/sheets-render_RAF.html?RAF"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
@@ -364,11 +364,11 @@
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/transferFromImageBitmap.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
     },
     {
@@ -380,7 +380,7 @@
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/upload-video-to-sub-texture.html"
     },
     {
@@ -388,7 +388,7 @@
         "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/upload-video-to-texture.html"
     },
     {
@@ -404,7 +404,7 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "28.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
@@ -412,7 +412,7 @@
         "name": "blink_perf.css/CSSPropertySetterGetter.html"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "blink_perf.css/CSSPropertySetterGetterMethods.html"
     },
     {
@@ -420,15 +420,15 @@
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
@@ -436,7 +436,7 @@
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
@@ -452,7 +452,7 @@
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
@@ -460,7 +460,7 @@
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
@@ -468,11 +468,11 @@
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
@@ -488,39 +488,15 @@
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
         "duration": "0.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "0.0",
         "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "0.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
@@ -528,19 +504,15 @@
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
         "duration": "0.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "0.0",
         "name": "blink_perf.css/SelectorCountScaling.html"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
@@ -548,7 +520,7 @@
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
@@ -568,27 +540,27 @@
         "name": "blink_perf.dom/select-multiple-add.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "24.0",
+        "duration": "9.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html"
     },
     {
@@ -596,7 +568,7 @@
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
@@ -608,7 +580,7 @@
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
@@ -644,11 +616,11 @@
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "24.0",
+        "duration": "14.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
@@ -664,7 +636,7 @@
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/animate-abspos-deep.html"
     },
     {
@@ -680,15 +652,15 @@
         "name": "blink_perf.layout/auto-grid-lots-of-data.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
@@ -704,7 +676,7 @@
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "7.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
@@ -712,7 +684,27 @@
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
         "duration": "9.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "10.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
@@ -760,35 +752,35 @@
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.layout/flexbox_with_list_item.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
@@ -800,7 +792,7 @@
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
@@ -808,7 +800,7 @@
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
@@ -836,19 +828,19 @@
         "name": "blink_perf.layout/latin-ebook.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/layers_overlap_2d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/line-layout-fit-content.html"
     },
     {
@@ -868,27 +860,31 @@
         "name": "blink_perf.layout/line-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/long-line-nowrap-collapse.html"
     },
     {
-        "duration": "3.0",
+        "duration": "23.0",
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/many-block-children-auto-inline-size.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
         "duration": "8.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "8.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
@@ -897,6 +893,14 @@
     },
     {
         "duration": "8.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "8.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
@@ -908,11 +912,11 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
@@ -932,11 +936,11 @@
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
@@ -956,15 +960,15 @@
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
@@ -984,11 +988,11 @@
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
@@ -1000,11 +1004,11 @@
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
@@ -1024,7 +1028,7 @@
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
@@ -1032,7 +1036,7 @@
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/paint-offset-changes.html"
     },
     {
@@ -1044,11 +1048,11 @@
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
@@ -1056,7 +1060,7 @@
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "21.0",
+        "duration": "24.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
@@ -1068,7 +1072,7 @@
         "name": "blink_perf.parser/innerHTML-setter-siblings.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/innerHTML-setter.html"
     },
     {
@@ -1112,7 +1116,7 @@
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/query-selector-all-id-last.html"
     },
     {
@@ -1148,7 +1152,7 @@
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
@@ -1156,7 +1160,7 @@
         "name": "blink_perf.parser/url-parser.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
@@ -1164,15 +1168,15 @@
         "name": "blink_perf.shadow_dom/declarative-api.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-appendchild.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-assign.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
@@ -1180,11 +1184,11 @@
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html"
     },
     {
@@ -1204,15 +1208,15 @@
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html"
     },
     {
@@ -1224,7 +1228,7 @@
         "name": "blink_perf.shadow_dom/style-sheet-insert.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
@@ -1232,11 +1236,11 @@
         "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
@@ -1256,35 +1260,35 @@
         "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-distribution.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
@@ -1292,35 +1296,35 @@
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-slot-append.html"
     },
     {
@@ -1332,15 +1336,15 @@
         "name": "blink_perf.shadow_dom/v1-small-deep-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
-        "duration": "7.0",
+        "duration": "4.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
@@ -1352,14 +1356,10 @@
         "name": "blink_perf.svg/Cactus.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.svg/Cowboy_transform.html"
-    },
-    {
         "duration": "3.0",
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
@@ -1368,7 +1368,7 @@
         "name": "blink_perf.svg/Debian.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.svg/DropsOnABlade.html"
     },
     {
@@ -1392,7 +1392,7 @@
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
@@ -1404,19 +1404,15 @@
         "name": "blink_perf.svg/MtSaintHelens.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "0.0",
-        "name": "blink_perf.svg/SierpinskiCarpet.html"
-    },
-    {
         "duration": "5.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
@@ -1436,7 +1432,7 @@
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
-        "duration": "33.0",
+        "duration": "35.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
@@ -1448,7 +1444,7 @@
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
@@ -1456,12 +1452,12 @@
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "0.0",
-        "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html"
+        "duration": "171.0",
+        "name": "jetstream/JetStream"
     },
     {
-        "duration": "170.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "157.0",
+        "name": "jetstream2/JetStream2"
     },
     {
         "duration": "21.0",
@@ -1476,27 +1472,23 @@
         "name": "loading.desktop/24h_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/AirBnB_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "loading.desktop/AirBnB_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Aljayyash_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Aljayyash_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/AllRecipes_cold"
-    },
-    {
-        "duration": "23.0",
+        "duration": "29.0",
         "name": "loading.desktop/AllRecipes_warm"
     },
     {
@@ -1504,11 +1496,11 @@
         "name": "loading.desktop/ArsTechnica_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.desktop/ArsTechnica_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Baidu_cold"
     },
     {
@@ -1520,15 +1512,15 @@
         "name": "loading.desktop/Bhaskar_cold"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "loading.desktop/Bhaskar_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/Chosun_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "loading.desktop/Chosun_warm"
     },
     {
@@ -1536,7 +1528,7 @@
         "name": "loading.desktop/Colorado.edu_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.desktop/Colorado.edu_warm"
     },
     {
@@ -1548,43 +1540,39 @@
         "name": "loading.desktop/Danawa_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Daum_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "loading.desktop/Daum_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/Donga_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.desktop/Donga_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.desktop/Economist_cold"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "loading.desktop/Economist_warm"
     },
     {
-        "duration": "17.0",
+        "duration": "20.0",
         "name": "loading.desktop/Elmundo_cold"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Elmundo_warm"
-    },
-    {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/FC2Blog_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/FC2Blog_warm"
     },
     {
@@ -1592,19 +1580,19 @@
         "name": "loading.desktop/FIFA_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "loading.desktop/FIFA_warm"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "loading.desktop/FarsNews_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/FarsNews_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Flickr_cold"
     },
     {
@@ -1612,11 +1600,11 @@
         "name": "loading.desktop/Flickr_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/FlipKart_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/FlipKart_warm"
     },
     {
@@ -1624,7 +1612,7 @@
         "name": "loading.desktop/Free.fr_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Free.fr_warm"
     },
     {
@@ -1636,19 +1624,19 @@
         "name": "loading.desktop/HTML5Rocks_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "12.0",
         "name": "loading.desktop/Haraj_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "loading.desktop/Haraj_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.desktop/HatenaBookmark_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "loading.desktop/HatenaBookmark_warm"
     },
     {
@@ -1660,11 +1648,11 @@
         "name": "loading.desktop/IGN_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "loading.desktop/IMDB_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "18.0",
         "name": "loading.desktop/IMDB_warm"
     },
     {
@@ -1680,23 +1668,23 @@
         "name": "loading.desktop/Kakaku_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.desktop/Kakaku_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "loading.desktop/Kenh14_cold"
     },
     {
-        "duration": "20.0",
+        "duration": "22.0",
         "name": "loading.desktop/Kenh14_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Mercadolivre_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/Mercadolivre_warm"
     },
     {
@@ -1704,23 +1692,15 @@
         "name": "loading.desktop/Naver_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/Naver_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Orange_cold"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.desktop/Orange_warm"
-    },
-    {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Pantip_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/Pantip_warm"
     },
     {
@@ -1728,31 +1708,31 @@
         "name": "loading.desktop/PremierLeague_cold"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "loading.desktop/PremierLeague_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.desktop/QQ_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "loading.desktop/QQ_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "loading.desktop/REI_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "loading.desktop/REI_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "loading.desktop/Ruten_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/Ruten_warm"
     },
     {
@@ -1760,26 +1740,22 @@
         "name": "loading.desktop/Sina_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "loading.desktop/Sina_warm"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.desktop/Taobao_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "loading.desktop/Taobao_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "loading.desktop/TheOnion_cold"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/TheOnion_warm"
-    },
-    {
         "duration": "13.0",
         "name": "loading.desktop/TheVerge_cold"
     },
@@ -1792,15 +1768,15 @@
         "name": "loading.desktop/TicketMaster_cold"
     },
     {
-        "duration": "18.0",
+        "duration": "25.0",
         "name": "loading.desktop/TicketMaster_warm"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "loading.desktop/Vietnamnet_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "loading.desktop/Vietnamnet_warm"
     },
     {
@@ -1812,27 +1788,19 @@
         "name": "loading.desktop/Vnexpress_warm"
     },
     {
-        "duration": "0.0",
-        "name": "loading.desktop/Walgreens_cold"
-    },
-    {
-        "duration": "0.0",
-        "name": "loading.desktop/Walgreens_warm"
-    },
-    {
-        "duration": "20.0",
+        "duration": "10.0",
         "name": "loading.desktop/Yandex_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "loading.desktop/Yandex_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.desktop/amazon.co.jp_cold"
     },
     {
-        "duration": "18.0",
+        "duration": "31.0",
         "name": "loading.desktop/amazon.co.jp_warm"
     },
     {
@@ -1844,7 +1812,7 @@
         "name": "loading.desktop/ja.wikipedia_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "loading.desktop/money.cnn_cold"
     },
     {
@@ -1864,23 +1832,23 @@
         "name": "loading.desktop/uol.com.br_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "loading.desktop/uol.com.br_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/yahoo.co.jp_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.desktop/yahoo.co.jp_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
@@ -1888,15 +1856,15 @@
         "name": "media.desktop/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "media.desktop/mse.html?media=tulip0.av1.mp4"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "media.desktop/mse.html?media=tulip2.vp9.webm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "media.desktop/video.html?src=crowd1080.mp4"
     },
     {
@@ -1908,7 +1876,7 @@
         "name": "media.desktop/video.html?src=crowd1080_vp9.webm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "media.desktop/video.html?src=garden2_10s.mp4&seek"
     },
     {
@@ -1916,27 +1884,27 @@
         "name": "media.desktop/video.html?src=garden2_10s.webm&seek"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.m4a&type=audio"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
@@ -1952,11 +1920,11 @@
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm"
     },
     {
@@ -1968,44 +1936,44 @@
         "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialAnimationPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "memory.desktop/TrivialCanvasPageSharedPageState"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "22.0",
+        "duration": "24.0",
         "name": "memory.desktop/TrivialScrollingPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "24.0",
         "name": "memory.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "memory.desktop/WebWorker"
     },
     {
-        "duration": "37.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "duration": "41.0",
+        "name": "octane/Octane"
     },
     {
         "duration": "34.0",
@@ -2016,7 +1984,7 @@
         "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
@@ -2024,7 +1992,7 @@
         "name": "power.desktop/TrivialCanvasPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "48.0",
         "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
@@ -2032,7 +2000,7 @@
         "name": "power.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "41.0",
         "name": "power.desktop/TrivialScrollingPageSharedPageState"
     },
     {
@@ -2056,7 +2024,7 @@
         "name": "power.desktop/microsoft"
     },
     {
-        "duration": "39.0",
+        "duration": "41.0",
         "name": "power.desktop/sina"
     },
     {
@@ -2068,23 +2036,23 @@
         "name": "power.desktop/uol"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
-        "duration": "19.0",
+        "duration": "28.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
@@ -2096,7 +2064,7 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
@@ -2112,11 +2080,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
@@ -2128,11 +2096,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
@@ -2140,19 +2108,15 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "0.0",
-        "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html"
-    },
-    {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
@@ -2164,27 +2128,27 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html"
     },
     {
-        "duration": "95.0",
+        "duration": "84.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "rendering.desktop/accu_weather_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rendering.desktop/accu_weather_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/amazon_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/amazon_pinch_2018"
     },
     {
@@ -2192,7 +2156,7 @@
         "name": "rendering.desktop/analog_clock_svg"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/animometer_webgl"
     },
     {
@@ -2200,11 +2164,11 @@
         "name": "rendering.desktop/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/animometer_webgl_multi_draw"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/aquarium"
     },
     {
@@ -2212,11 +2176,11 @@
         "name": "rendering.desktop/aquarium_20k"
     },
     {
-        "duration": "13.0",
+        "duration": "22.0",
         "name": "rendering.desktop/background_color_animation"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "rendering.desktop/background_color_animation_with_gradient"
     },
     {
@@ -2224,15 +2188,15 @@
         "name": "rendering.desktop/balls_css_key_frame_animations"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/balls_css_transition_2_properties"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/balls_css_transition_40_properties"
     },
     {
@@ -2240,7 +2204,7 @@
         "name": "rendering.desktop/balls_css_transition_all_properties"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/balls_javascript_canvas"
     },
     {
@@ -2248,23 +2212,19 @@
         "name": "rendering.desktop/balls_javascript_css"
     },
     {
-        "duration": "13.0",
-        "name": "rendering.desktop/balls_svg_animations"
-    },
-    {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/blob"
     },
     {
-        "duration": "15.0",
+        "duration": "20.0",
         "name": "rendering.desktop/blogspot_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/blogspot_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/blur_rotating_background"
     },
     {
@@ -2272,15 +2232,15 @@
         "name": "rendering.desktop/booking.com_2018"
     },
     {
-        "duration": "18.0",
+        "duration": "12.0",
         "name": "rendering.desktop/booking_pinch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/bouncing_balls_15"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "rendering.desktop/bouncing_balls_shadow"
     },
     {
@@ -2292,15 +2252,15 @@
         "name": "rendering.desktop/bouncing_gradient_circles"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/bouncing_png_images"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/bouncing_svg_images"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/camera_to_webgl"
     },
     {
@@ -2312,15 +2272,15 @@
         "name": "rendering.desktop/canvas_10000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/canvas_20000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/canvas_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/canvas_60000_pixels_per_second"
     },
     {
@@ -2328,7 +2288,7 @@
         "name": "rendering.desktop/canvas_75000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/canvas_90000_pixels_per_second"
     },
     {
@@ -2340,7 +2300,7 @@
         "name": "rendering.desktop/canvas_arcs"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/canvas_font_cycler"
     },
     {
@@ -2352,7 +2312,7 @@
         "name": "rendering.desktop/canvas_to_blob"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/cats_unscaled"
     },
     {
@@ -2364,7 +2324,7 @@
         "name": "rendering.desktop/cc_poster_circle"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "rendering.desktop/cc_scroll_text_only"
     },
     {
@@ -2372,11 +2332,11 @@
         "name": "rendering.desktop/chip_tune"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/cnn_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/cnn_pinch_2018"
     },
     {
@@ -2384,7 +2344,7 @@
         "name": "rendering.desktop/compositor_heavy_animation"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/crafty_mind"
     },
     {
@@ -2444,7 +2404,7 @@
         "name": "rendering.desktop/css_animations_triggered_updating_class"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "rendering.desktop/css_opacity_plus_n_layers_99"
     },
     {
@@ -2504,7 +2464,7 @@
         "name": "rendering.desktop/css_value_type_filter"
     },
     {
-        "duration": "13.0",
+        "duration": "21.0",
         "name": "rendering.desktop/css_value_type_length"
     },
     {
@@ -2516,15 +2476,15 @@
         "name": "rendering.desktop/css_value_type_length_simple"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "rendering.desktop/css_value_type_path"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/css_value_type_shadow"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/css_value_type_transform_complex"
     },
     {
@@ -2540,19 +2500,19 @@
         "name": "rendering.desktop/earth"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/ebay_2018"
     },
     {
-        "duration": "23.0",
+        "duration": "18.0",
         "name": "rendering.desktop/ebay_pinch_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/effect_games"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "rendering.desktop/espn_2018"
     },
     {
@@ -2560,11 +2520,11 @@
         "name": "rendering.desktop/espn_pinch_2018"
     },
     {
-        "duration": "22.0",
+        "duration": "13.0",
         "name": "rendering.desktop/extra_large_texture_uploads"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/facebook_2018"
     },
     {
@@ -2576,7 +2536,7 @@
         "name": "rendering.desktop/fill_shapes"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "rendering.desktop/filter_terrain_svg"
     },
     {
@@ -2588,11 +2548,11 @@
         "name": "rendering.desktop/gmail_2018"
     },
     {
-        "duration": "36.0",
+        "duration": "29.0",
         "name": "rendering.desktop/gmail_move_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "11.0",
         "name": "rendering.desktop/gmail_pinch_2018"
     },
     {
@@ -2600,31 +2560,31 @@
         "name": "rendering.desktop/google_calendar_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/google_calendar_pinch_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.desktop/google_docs_2018"
     },
     {
-        "duration": "17.0",
+        "duration": "10.0",
         "name": "rendering.desktop/google_image_pinch_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/google_image_search_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.desktop/google_plus_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "9.0",
         "name": "rendering.desktop/google_search_pinch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/google_web_search_2018"
     },
     {
@@ -2636,7 +2596,7 @@
         "name": "rendering.desktop/hakim"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "rendering.desktop/ie_chalkboard"
     },
     {
@@ -2644,15 +2604,15 @@
         "name": "rendering.desktop/ie_pirate_mark"
     },
     {
-        "duration": "23.0",
+        "duration": "15.0",
         "name": "rendering.desktop/infinite_scroll_element_n_layers_99"
     },
     {
-        "duration": "22.0",
+        "duration": "14.0",
         "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99"
     },
     {
-        "duration": "22.0",
+        "duration": "14.0",
         "name": "rendering.desktop/infinite_scroll_root_n_layers_99"
     },
     {
@@ -2660,11 +2620,11 @@
         "name": "rendering.desktop/jarro_doverson"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization"
     },
     {
@@ -2684,11 +2644,11 @@
         "name": "rendering.desktop/js_poster_circle"
     },
     {
-        "duration": "21.0",
+        "duration": "15.0",
         "name": "rendering.desktop/js_scroll_text_only"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/kevs_3d"
     },
     {
@@ -2704,7 +2664,7 @@
         "name": "rendering.desktop/linkedin_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/linkedin_pinch_2018"
     },
     {
@@ -2716,7 +2676,7 @@
         "name": "rendering.desktop/main_30fps_impl_60fps"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/main_60fps_impl_60fps"
     },
     {
@@ -2724,7 +2684,7 @@
         "name": "rendering.desktop/man_in_blue"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "rendering.desktop/many_images"
     },
     {
@@ -2732,11 +2692,11 @@
         "name": "rendering.desktop/many_planets_deep"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/maps_move_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "rendering.desktop/maps_perf_test"
     },
     {
@@ -2744,15 +2704,15 @@
         "name": "rendering.desktop/medium_texture_uploads"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.desktop/megi_dish"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_asteroid_belt"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_fireflies"
     },
     {
@@ -2760,7 +2720,7 @@
         "name": "rendering.desktop/microsoft_fish_ie_tank"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/microsoft_performance"
     },
     {
@@ -2768,19 +2728,19 @@
         "name": "rendering.desktop/microsoft_snow"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_speed_reading"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_tweet_map"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_video_city"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_worker_fountains"
     },
     {
@@ -2788,19 +2748,19 @@
         "name": "rendering.desktop/mix_10k"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/mix_blend_mode_animation_difference"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "rendering.desktop/mix_blend_mode_animation_hue"
     },
     {
-        "duration": "13.0",
+        "duration": "20.0",
         "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/mix_blend_mode_animation_screen"
     },
     {
@@ -2808,7 +2768,7 @@
         "name": "rendering.desktop/motion_mark_canvas_fill_shapes"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/motion_mark_canvas_stroke_shapes"
     },
     {
@@ -2816,11 +2776,11 @@
         "name": "rendering.desktop/new_tilings"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "rendering.desktop/overlay_background_color_css_transitions_page"
     },
     {
@@ -2828,11 +2788,11 @@
         "name": "rendering.desktop/particles"
     },
     {
-        "duration": "16.0",
+        "duration": "20.0",
         "name": "rendering.desktop/pinterest_2018"
     },
     {
-        "duration": "19.0",
+        "duration": "10.0",
         "name": "rendering.desktop/put_get_image_data"
     },
     {
@@ -2840,7 +2800,7 @@
         "name": "rendering.desktop/raf"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/raf_animation"
     },
     {
@@ -2852,7 +2812,7 @@
         "name": "rendering.desktop/raf_touch_animation"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/repaint_amazon_2018"
     },
     {
@@ -2860,15 +2820,15 @@
         "name": "rendering.desktop/repaint_cnn_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/repaint_facebook_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/repaint_google_search_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/repaint_instagram_2018"
     },
     {
@@ -2876,15 +2836,15 @@
         "name": "rendering.desktop/repaint_reddit_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/repaint_theverge_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/repaint_twitter_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/repaint_wikipedia_2018"
     },
     {
@@ -2892,7 +2852,7 @@
         "name": "rendering.desktop/repaint_yahoo_homepage_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "12.0",
         "name": "rendering.desktop/runway"
     },
     {
@@ -2900,11 +2860,11 @@
         "name": "rendering.desktop/san_angeles"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/second_batch_js_heavy"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/second_batch_js_light"
     },
     {
@@ -2916,7 +2876,7 @@
         "name": "rendering.desktop/simple_text_page"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/simple_touch_drag"
     },
     {
@@ -2924,7 +2884,7 @@
         "name": "rendering.desktop/small_texture_uploads"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/smash_cat"
     },
     {
@@ -2932,7 +2892,7 @@
         "name": "rendering.desktop/spielzeugz"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/stroke_shapes"
     },
     {
@@ -2940,11 +2900,11 @@
         "name": "rendering.desktop/sync_scroll_offset"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.desktop/techcrunch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.desktop/text_05000_pixels_per_second"
     },
     {
@@ -2956,7 +2916,7 @@
         "name": "rendering.desktop/text_20000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_40000_pixels_per_second"
     },
     {
@@ -2972,11 +2932,11 @@
         "name": "rendering.desktop/text_90000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -2984,7 +2944,7 @@
         "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
@@ -2992,11 +2952,11 @@
         "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
@@ -3004,7 +2964,7 @@
         "name": "rendering.desktop/text_hover_05000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/text_hover_10000_pixels_per_second"
     },
     {
@@ -3012,7 +2972,7 @@
         "name": "rendering.desktop/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_hover_40000_pixels_per_second"
     },
     {
@@ -3024,7 +2984,7 @@
         "name": "rendering.desktop/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_hover_90000_pixels_per_second"
     },
     {
@@ -3040,7 +3000,7 @@
         "name": "rendering.desktop/transform_transitions_js_block"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/twitch_2018"
     },
     {
@@ -3048,15 +3008,15 @@
         "name": "rendering.desktop/twitch_pinch_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/twitter_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/twitter_pinch_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animation_value_type_color"
     },
     {
@@ -3084,7 +3044,7 @@
         "name": "rendering.desktop/web_animation_value_type_transform_complex"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animation_value_type_transform_simple"
     },
     {
@@ -3092,11 +3052,11 @@
         "name": "rendering.desktop/web_animations_many_keyframes"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_set_current_time"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_simultaneous"
     },
     {
@@ -3104,7 +3064,7 @@
         "name": "rendering.desktop/web_animations_staggered_chaining"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_staggered_infinite_iterations"
     },
     {
@@ -3116,67 +3076,67 @@
         "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "rendering.desktop/wikipedia_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/wordpress_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/yahoo_answers_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/yahoo_news_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "14.0",
         "name": "rendering.desktop/yahoo_news_pinch_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "rendering.desktop/yahoo_sports_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "rendering.desktop/yahoo_sports_pinch_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "12.0",
         "name": "rendering.desktop/youtube_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "13.0",
         "name": "rendering.desktop/youtube_pinch_2018"
     },
     {
-        "duration": "33.0",
+        "duration": "41.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "30.0",
+        "duration": "37.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "69.0",
+        "duration": "88.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "54.0",
+        "duration": "64.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "60.0",
+        "duration": "62.0",
         "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "42.0",
+        "duration": "39.0",
         "name": "system_health.common_desktop/browse:media:googleplaystore:2018"
     },
     {
@@ -3188,11 +3148,11 @@
         "name": "system_health.common_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "55.0",
         "name": "system_health.common_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "59.0",
+        "duration": "58.0",
         "name": "system_health.common_desktop/browse:media:youtube:2018"
     },
     {
@@ -3200,79 +3160,79 @@
         "name": "system_health.common_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "42.0",
+        "duration": "46.0",
         "name": "system_health.common_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "48.0",
         "name": "system_health.common_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "89.0",
-        "name": "system_health.common_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "80.0",
+        "duration": "66.0",
         "name": "system_health.common_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "47.0",
+        "duration": "46.0",
         "name": "system_health.common_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "47.0",
         "name": "system_health.common_desktop/browse:search:google"
     },
     {
-        "duration": "49.0",
+        "duration": "43.0",
         "name": "system_health.common_desktop/browse:search:google:2018"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "system_health.common_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "67.0",
+        "duration": "70.0",
         "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "61.0",
+        "duration": "43.0",
         "name": "system_health.common_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "67.0",
+        "duration": "59.0",
         "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "55.0",
         "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "55.0",
+        "duration": "54.0",
         "name": "system_health.common_desktop/browse:tools:earth"
     },
     {
-        "duration": "48.0",
+        "duration": "49.0",
         "name": "system_health.common_desktop/browse:tools:maps"
     },
     {
-        "duration": "20.0",
+        "duration": "67.0",
+        "name": "system_health.common_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "32.0",
+        "name": "system_health.common_desktop/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "23.0",
         "name": "system_health.common_desktop/browse_accessibility:media:youtube"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "21.0",
         "name": "system_health.common_desktop/load:chrome:blank"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:games:alphabetty:2018"
     },
     {
@@ -3281,18 +3241,22 @@
     },
     {
         "duration": "14.0",
+        "name": "system_health.common_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:games:lazors"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:games:miniclip:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "system_health.common_desktop/load:media:9gag"
     },
     {
@@ -3316,7 +3280,7 @@
         "name": "system_health.common_desktop/load:media:imgur:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:media:soundcloud:2018"
     },
     {
@@ -3324,15 +3288,15 @@
         "name": "system_health.common_desktop/load:media:youtube:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "system_health.common_desktop/load:news:cnn:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:news:flipboard"
     },
     {
@@ -3352,11 +3316,11 @@
         "name": "system_health.common_desktop/load:news:qq:2018"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:news:reddit:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:news:wikipedia:2018"
     },
     {
@@ -3364,15 +3328,15 @@
         "name": "system_health.common_desktop/load:search:amazon:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:search:ebay:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:search:flipkart:2018"
     },
     {
@@ -3380,7 +3344,7 @@
         "name": "system_health.common_desktop/load:search:google:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:search:taobao:2018"
     },
     {
@@ -3388,7 +3352,7 @@
         "name": "system_health.common_desktop/load:search:yahoo:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:search:yandex:2018"
     },
     {
@@ -3400,7 +3364,7 @@
         "name": "system_health.common_desktop/load:social:pinterest"
     },
     {
-        "duration": "30.0",
+        "duration": "33.0",
         "name": "system_health.common_desktop/load:social:vk"
     },
     {
@@ -3408,11 +3372,11 @@
         "name": "system_health.common_desktop/load:social:vk:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:tools:docs"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:tools:drive"
     },
     {
@@ -3432,11 +3396,11 @@
         "name": "system_health.common_desktop/load:tools:weather"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
@@ -3444,19 +3408,7 @@
         "name": "system_health.common_desktop/long_running:tools:gmail-background"
     },
     {
-        "duration": "0.0",
-        "name": "system_health.common_desktop/long_running:tools:gmail-foreground"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24"
-    },
-    {
-        "duration": "0.0",
-        "name": "system_health.common_desktop/multitab:misc:typical24:2018"
-    },
-    {
-        "duration": "42.0",
+        "duration": "44.0",
         "name": "system_health.common_desktop/play:media:google_play_music"
     },
     {
@@ -3468,7 +3420,7 @@
         "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "36.0",
+        "duration": "37.0",
         "name": "system_health.memory_desktop/browse:media:googleplaystore:2018"
     },
     {
@@ -3476,19 +3428,39 @@
         "name": "system_health.memory_desktop/browse:media:imgur"
     },
     {
-        "duration": "45.0",
-        "name": "system_health.memory_desktop/browse:news:cnn:2018"
+        "duration": "81.0",
+        "name": "system_health.memory_desktop/browse:media:pinterest:2018"
+    },
+    {
+        "duration": "53.0",
+        "name": "system_health.memory_desktop/browse:media:tumblr:2018"
+    },
+    {
+        "duration": "55.0",
+        "name": "system_health.memory_desktop/browse:media:youtube:2018"
+    },
+    {
+        "duration": "57.0",
+        "name": "system_health.memory_desktop/browse:media:youtubetv:2019"
     },
     {
         "duration": "43.0",
+        "name": "system_health.memory_desktop/browse:news:cnn:2018"
+    },
+    {
+        "duration": "45.0",
         "name": "system_health.memory_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:news:hackernews:2018"
+        "duration": "64.0",
+        "name": "system_health.memory_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "43.0",
+        "name": "system_health.memory_desktop/browse:news:reddit:2018"
+    },
+    {
+        "duration": "49.0",
         "name": "system_health.memory_desktop/browse:search:google"
     },
     {
@@ -3500,31 +3472,51 @@
         "name": "system_health.memory_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "90.0",
+        "duration": "65.0",
         "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "54.0",
+        "duration": "51.0",
+        "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018"
+    },
+    {
+        "duration": "41.0",
+        "name": "system_health.memory_desktop/browse:social:twitter:2018"
+    },
+    {
+        "duration": "57.0",
+        "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018"
+    },
+    {
+        "duration": "52.0",
         "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "11.0",
+        "duration": "49.0",
         "name": "system_health.memory_desktop/browse:tools:earth"
     },
     {
-        "duration": "8.0",
+        "duration": "45.0",
         "name": "system_health.memory_desktop/browse:tools:maps"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
+        "duration": "64.0",
+        "name": "system_health.memory_desktop/browse:tools:maps:2019"
     },
     {
         "duration": "28.0",
+        "name": "system_health.memory_desktop/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
+    },
+    {
+        "duration": "22.0",
         "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:chrome:blank"
     },
     {
@@ -3536,19 +3528,23 @@
         "name": "system_health.memory_desktop/load:games:bubbles"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
+        "name": "system_health.memory_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:games:lazors"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "system_health.memory_desktop/load:games:miniclip:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "system_health.memory_desktop/load:media:9gag"
     },
     {
@@ -3568,11 +3564,11 @@
         "name": "system_health.memory_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:media:imgur:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "system_health.memory_desktop/load:media:soundcloud:2018"
     },
     {
@@ -3580,7 +3576,7 @@
         "name": "system_health.memory_desktop/load:media:youtube:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:news:bbc:2018"
     },
     {
@@ -3600,11 +3596,11 @@
         "name": "system_health.memory_desktop/load:news:nytimes:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:news:qq"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:news:qq:2018"
     },
     {
@@ -3616,35 +3612,35 @@
         "name": "system_health.memory_desktop/load:news:wikipedia:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:amazon:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:search:ebay:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:search:flipkart:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:google:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:search:taobao:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:yahoo:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:yandex:2018"
     },
     {
@@ -3652,11 +3648,11 @@
         "name": "system_health.memory_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "system_health.memory_desktop/load:social:pinterest"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:social:vk"
     },
     {
@@ -3664,15 +3660,15 @@
         "name": "system_health.memory_desktop/load:social:vk:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:tools:docs"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:tools:drive"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:tools:dropbox"
     },
     {
@@ -3684,11 +3680,11 @@
         "name": "system_health.memory_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.memory_desktop/load:tools:weather"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
@@ -3696,31 +3692,39 @@
         "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
+        "duration": "123.0",
+        "name": "system_health.memory_desktop/long_running:tools:gmail-foreground"
+    },
+    {
         "duration": "0.0",
         "name": "system_health.memory_desktop/play:media:google_play_music"
     },
     {
+        "duration": "39.0",
+        "name": "system_health.memory_desktop/play:media:soundcloud:2018"
+    },
+    {
         "duration": "0.0",
         "name": "tab_switching.typical_25/multitab:misc:typical24"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "0.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
-        "duration": "7.0",
+        "duration": "11.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "0.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
     },
     {
@@ -3728,23 +3732,23 @@
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
     },
     {
-        "duration": "22.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "90.0",
+        "duration": "63.0",
         "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "44.0",
+        "duration": "40.0",
         "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018"
     },
     {
@@ -3756,11 +3760,11 @@
         "name": "v8.browsing_desktop-future/browse:media:pinterest:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "75.0",
         "name": "v8.browsing_desktop-future/browse:media:tumblr:2018"
     },
     {
-        "duration": "77.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop-future/browse:media:youtube:2018"
     },
     {
@@ -3768,39 +3772,35 @@
         "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019"
     },
     {
-        "duration": "49.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:news:cnn:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "48.0",
         "name": "v8.browsing_desktop-future/browse:news:flipboard:2018"
     },
     {
-        "duration": "94.0",
+        "duration": "0.0",
         "name": "v8.browsing_desktop-future/browse:news:hackernews:2018"
     },
     {
-        "duration": "85.0",
+        "duration": "71.0",
         "name": "v8.browsing_desktop-future/browse:news:nytimes:2018"
     },
     {
-        "duration": "50.0",
+        "duration": "48.0",
         "name": "v8.browsing_desktop-future/browse:news:reddit:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:search:google"
-    },
-    {
-        "duration": "51.0",
+        "duration": "45.0",
         "name": "v8.browsing_desktop-future/browse:search:google:2018"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "v8.browsing_desktop-future/browse:search:google_india:2018"
     },
     {
-        "duration": "100.0",
+        "duration": "72.0",
         "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3808,31 +3808,35 @@
         "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "62.0",
+        "duration": "43.0",
         "name": "v8.browsing_desktop-future/browse:social:twitter:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "60.0",
+        "duration": "57.0",
         "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "68.0",
+        "duration": "55.0",
         "name": "v8.browsing_desktop-future/browse:tools:earth"
     },
     {
-        "duration": "51.0",
+        "duration": "49.0",
         "name": "v8.browsing_desktop-future/browse:tools:maps"
     },
     {
-        "duration": "88.0",
+        "duration": "69.0",
+        "name": "v8.browsing_desktop-future/browse:tools:maps:2019"
+    },
+    {
+        "duration": "33.0",
+        "name": "v8.browsing_desktop-future/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "63.0",
         "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "43.0",
+        "duration": "40.0",
         "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
     },
     {
@@ -3844,11 +3848,11 @@
         "name": "v8.browsing_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "74.0",
         "name": "v8.browsing_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "60.0",
+        "duration": "61.0",
         "name": "v8.browsing_desktop/browse:media:youtube:2018"
     },
     {
@@ -3856,39 +3860,35 @@
         "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "47.0",
+        "duration": "45.0",
         "name": "v8.browsing_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "59.0",
+        "duration": "48.0",
         "name": "v8.browsing_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "92.0",
-        "name": "v8.browsing_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "84.0",
+        "duration": "72.0",
         "name": "v8.browsing_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "49.0",
+        "duration": "48.0",
         "name": "v8.browsing_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "66.0",
+        "duration": "65.0",
         "name": "v8.browsing_desktop/browse:search:google"
     },
     {
-        "duration": "47.0",
+        "duration": "43.0",
         "name": "v8.browsing_desktop/browse:search:google:2018"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.browsing_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "98.0",
+        "duration": "72.0",
         "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
@@ -3896,31 +3896,35 @@
         "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "62.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "0.0",
-        "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "59.0",
+        "duration": "57.0",
         "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "56.0",
+        "duration": "55.0",
         "name": "v8.browsing_desktop/browse:tools:earth"
     },
     {
-        "duration": "50.0",
+        "duration": "49.0",
         "name": "v8.browsing_desktop/browse:tools:maps"
     },
     {
+        "duration": "69.0",
+        "name": "v8.browsing_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "33.0",
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
+    },
+    {
         "duration": "24.0",
         "name": "v8.runtime_stats.top_25/AdsAMPAds_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsAMPAds_hot"
     },
     {
@@ -3932,15 +3936,15 @@
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm"
     },
     {
-        "duration": "23.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold"
     },
     {
@@ -3980,7 +3984,7 @@
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot"
     },
     {
@@ -4004,7 +4008,7 @@
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot"
     },
     {
@@ -4012,15 +4016,15 @@
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold"
     },
     {
-        "duration": "60.0",
+        "duration": "58.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot"
     },
     {
-        "duration": "47.0",
+        "duration": "46.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm"
     },
     {
@@ -4028,7 +4032,7 @@
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold"
     },
     {
-        "duration": "32.0",
+        "duration": "52.0",
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot"
     },
     {
@@ -4036,11 +4040,11 @@
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot"
     },
     {
@@ -4048,7 +4052,7 @@
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm"
     },
     {
-        "duration": "23.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold"
     },
     {
@@ -4056,7 +4060,7 @@
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm"
     },
     {
@@ -4068,7 +4072,7 @@
         "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm"
     },
     {
@@ -4080,7 +4084,7 @@
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm"
     },
     {
@@ -4092,7 +4096,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm"
     },
     {
@@ -4104,7 +4108,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm"
     },
     {
@@ -4116,7 +4120,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm"
     },
     {
@@ -4152,15 +4156,15 @@
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "48.0",
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/http://weibo.com_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://weibo.com_hot"
     },
     {
@@ -4168,19 +4172,19 @@
         "name": "v8.runtime_stats.top_25/http://weibo.com_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold"
     },
     {
@@ -4188,15 +4192,15 @@
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot"
     },
     {
@@ -4204,27 +4208,27 @@
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm"
     },
     {
-        "duration": "23.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm"
     },
     {
@@ -4236,11 +4240,11 @@
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold"
     },
     {
@@ -4252,11 +4256,11 @@
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm"
     },
     {
-        "duration": "41.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot"
     },
     {
@@ -4268,7 +4272,7 @@
         "name": "v8.runtime_stats.top_25/http://www.qq.com_cold"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_hot"
     },
     {
@@ -4288,7 +4292,7 @@
         "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold"
     },
     {
@@ -4296,7 +4300,7 @@
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm"
     },
     {
@@ -4304,11 +4308,11 @@
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm"
     },
     {
@@ -4316,7 +4320,7 @@
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold"
     },
     {
-        "duration": "44.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot"
     },
     {
@@ -4336,11 +4340,11 @@
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot"
     },
     {
@@ -4348,7 +4352,7 @@
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm"
     },
     {
-        "duration": "27.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold"
     },
     {
@@ -4364,7 +4368,7 @@
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold"
     },
     {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot"
     },
     {
@@ -4372,19 +4376,19 @@
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "55.0",
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold"
     },
     {
@@ -4396,19 +4400,19 @@
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold"
     },
     {
@@ -4416,11 +4420,11 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold"
     },
     {
@@ -4428,11 +4432,11 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
@@ -4452,7 +4456,7 @@
         "name": "webrtc/codec_constraints_vp9"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "webrtc/hd_local_stream_10s"
     },
     {
@@ -4460,7 +4464,7 @@
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "39.0",
+        "duration": "38.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_hp-candidate_timing.json b/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_hp-candidate_timing.json
index fe51488..4fabac3 100644
--- a/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_hp-candidate_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_hp-candidate_timing.json
@@ -1 +1,86 @@
-[]
+[
+    {
+        "duration": "74.0",
+        "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
+    },
+    {
+        "duration": "44.0",
+        "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
+    },
+    {
+        "duration": "0.0",
+        "name": "v8.browsing_desktop/browse:media:imgur"
+    },
+    {
+        "duration": "99.0",
+        "name": "v8.browsing_desktop/browse:media:pinterest:2018"
+    },
+    {
+        "duration": "80.0",
+        "name": "v8.browsing_desktop/browse:media:tumblr:2018"
+    },
+    {
+        "duration": "72.0",
+        "name": "v8.browsing_desktop/browse:media:youtube:2018"
+    },
+    {
+        "duration": "66.0",
+        "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
+    },
+    {
+        "duration": "73.0",
+        "name": "v8.browsing_desktop/browse:news:cnn:2018"
+    },
+    {
+        "duration": "58.0",
+        "name": "v8.browsing_desktop/browse:news:flipboard:2018"
+    },
+    {
+        "duration": "100.0",
+        "name": "v8.browsing_desktop/browse:news:nytimes:2018"
+    },
+    {
+        "duration": "66.0",
+        "name": "v8.browsing_desktop/browse:news:reddit:2018"
+    },
+    {
+        "duration": "55.0",
+        "name": "v8.browsing_desktop/browse:search:google"
+    },
+    {
+        "duration": "50.0",
+        "name": "v8.browsing_desktop/browse:search:google:2018"
+    },
+    {
+        "duration": "34.0",
+        "name": "v8.browsing_desktop/browse:search:google_india:2018"
+    },
+    {
+        "duration": "92.0",
+        "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
+    },
+    {
+        "duration": "50.0",
+        "name": "v8.browsing_desktop/browse:social:twitter:2018"
+    },
+    {
+        "duration": "66.0",
+        "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
+    },
+    {
+        "duration": "17.0",
+        "name": "v8.browsing_desktop/browse:tools:earth"
+    },
+    {
+        "duration": "8.0",
+        "name": "v8.browsing_desktop/browse:tools:maps"
+    },
+    {
+        "duration": "8.0",
+        "name": "v8.browsing_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "65.0",
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
+    }
+]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json b/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json
index c82f1a8..283f170de 100644
--- a/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json
@@ -1,10 +1,10 @@
 [
     {
-        "duration": "22.0",
+        "duration": "17.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "19.0",
+        "duration": "13.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
@@ -16,15 +16,15 @@
         "name": "blink_perf.bindings/create-element.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/document-implementation.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/dom-attribute-on-prototoype.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/first-child.html"
     },
     {
@@ -36,11 +36,11 @@
         "name": "blink_perf.bindings/gc-mini-tree.html"
     },
     {
-        "duration": "16.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
@@ -48,15 +48,15 @@
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/get-element-by-id.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/id-getter.html"
     },
     {
@@ -64,15 +64,15 @@
         "name": "blink_perf.bindings/id-setter.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/indexed-getter.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
@@ -100,31 +100,31 @@
         "name": "blink_perf.bindings/serialize-array.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/serialize-long-string.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/serialize-nested-array.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
@@ -136,19 +136,19 @@
         "name": "blink_perf.bindings/structured-clone-long-string-serialize.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/typed-array-construct-from-array.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/typed-array-construct-from-same-type.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
@@ -160,7 +160,7 @@
         "name": "blink_perf.bindings/undefined-get-element-by-id.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/undefined-id-getter.html"
     },
     {
@@ -168,23 +168,23 @@
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html"
     },
     {
@@ -200,15 +200,15 @@
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/worker-transferable-from-worker.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/worker-transferable-roundtrip.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/worker-transferable-to-worker.html"
     },
     {
@@ -216,51 +216,51 @@
         "name": "blink_perf.canvas/createImageBitmapFromImageData.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "14.0",
         "name": "blink_perf.canvas/docs-paper.html"
     },
     {
-        "duration": "5.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/docs-paper_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "20.0",
         "name": "blink_perf.canvas/docs-resume.html"
     },
     {
-        "duration": "4.0",
+        "duration": "10.0",
         "name": "blink_perf.canvas/docs-resume_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/docs-table.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/docs-table_RAF.html?RAF"
     },
     {
-        "duration": "4.0",
+        "duration": "17.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "6.0",
+        "duration": "16.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html"
     },
     {
@@ -284,7 +284,7 @@
         "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html"
     },
     {
@@ -292,31 +292,31 @@
         "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/drawimage.html"
     },
     {
-        "duration": "8.0",
+        "duration": "12.0",
         "name": "blink_perf.canvas/drawimage_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/getImageData.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/getImageDataColorManaged.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF"
     },
     {
@@ -332,15 +332,15 @@
         "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/putImageData.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.canvas/putImageData_RAF.html?RAF"
     },
     {
-        "duration": "9.0",
+        "duration": "17.0",
         "name": "blink_perf.canvas/sheets-render.html"
     },
     {
@@ -352,27 +352,27 @@
         "name": "blink_perf.canvas/toBlob_duration.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF"
     },
     {
-        "duration": "3.0",
+        "duration": "26.0",
         "name": "blink_perf.canvas/transferFromImageBitmap.html"
     },
     {
-        "duration": "5.0",
+        "duration": "57.0",
         "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html"
     },
     {
@@ -380,7 +380,7 @@
         "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "blink_perf.canvas/upload-video-to-sub-texture.html"
     },
     {
@@ -388,11 +388,11 @@
         "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/upload-video-to-texture.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF"
     },
     {
@@ -404,151 +404,115 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.css/CSSPropertySetterGetter.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.css/CSSPropertySetterGetterMethods.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "11.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "11.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "10.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "4.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "11.0",
+        "duration": "7.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "11.0",
+        "duration": "6.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "8.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "12.0",
+        "duration": "14.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
@@ -564,7 +528,7 @@
         "name": "blink_perf.dom/modify-element-title.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.dom/select-multiple-add.html"
     },
     {
@@ -572,11 +536,11 @@
         "name": "blink_perf.dom/select-single-add.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "9.0",
+        "duration": "19.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
@@ -584,7 +548,7 @@
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
@@ -596,63 +560,79 @@
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.events/is-input-pending-all-events.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "35.0",
+        "duration": "13.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "13.0",
-        "name": "blink_perf.image_decoder/decode-jpeg.html"
-    },
-    {
-        "duration": "15.0",
-        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
-    },
-    {
-        "duration": "13.0",
-        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
-    },
-    {
-        "duration": "14.0",
-        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
-    },
-    {
-        "duration": "12.0",
-        "name": "blink_perf.image_decoder/decode-png-palette.html"
-    },
-    {
-        "duration": "17.0",
-        "name": "blink_perf.image_decoder/decode-png.html"
+        "duration": "9.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
         "duration": "9.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
+    },
+    {
+        "duration": "12.0",
+        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+    },
+    {
+        "duration": "9.0",
+        "name": "blink_perf.image_decoder/decode-lossy-webp.html"
+    },
+    {
+        "duration": "10.0",
+        "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-png-palette.html"
+    },
+    {
+        "duration": "13.0",
+        "name": "blink_perf.image_decoder/decode-png.html"
+    },
+    {
+        "duration": "22.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/Shapes/MultipleShapes.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
-        "duration": "8.0",
+        "duration": "3.0",
+        "name": "blink_perf.layout/animate-abspos-deep.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/attach-inlines-2.html"
     },
     {
@@ -668,15 +648,15 @@
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "10.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
@@ -688,27 +668,43 @@
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
-        "duration": "3.0",
-        "name": "blink_perf.layout/character_fallback_aat.html"
-    },
-    {
-        "duration": "7.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
-        "duration": "9.0",
-        "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/editing_prepend.html"
     },
     {
         "duration": "10.0",
+        "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
@@ -716,15 +712,15 @@
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-column-nowrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
@@ -732,7 +728,7 @@
         "name": "blink_perf.layout/flexbox-lots-of-data.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-row-nowrap.html"
     },
     {
@@ -740,19 +736,23 @@
         "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-row-wrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
-        "duration": "6.0",
+        "duration": "9.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
+        "duration": "5.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
@@ -760,11 +760,11 @@
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
@@ -776,11 +776,11 @@
         "name": "blink_perf.layout/floats_2_100_nested.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_50_100.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/floats_50_100_nested.html"
     },
     {
@@ -788,7 +788,7 @@
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
@@ -800,23 +800,23 @@
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "37.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
-        "duration": "10.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/latin-ebook.html"
     },
     {
@@ -832,11 +832,11 @@
         "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/line-layout-fit-content.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
@@ -860,27 +860,39 @@
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/many-block-children-auto-inline-size.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/many-block-children-fixed-inline-size.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "7.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
     },
     {
@@ -892,7 +904,11 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
-        "duration": "8.0",
+        "duration": "17.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
+        "duration": "7.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
@@ -900,23 +916,23 @@
         "name": "blink_perf.layout/multicol/tall-content-short-columns.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/nested-grid.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "39.0",
+        "duration": "36.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
@@ -928,99 +944,99 @@
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "16.0",
+        "duration": "11.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/appending-text.html"
     },
     {
-        "duration": "18.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/color-changes.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "28.0",
+        "duration": "20.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/containment-resize.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/paint-offset-changes.html"
     },
     {
-        "duration": "14.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/select-all-words.html"
     },
     {
-        "duration": "15.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
@@ -1032,11 +1048,11 @@
         "name": "blink_perf.parser/html-parser-threaded.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "20.0",
+        "duration": "23.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
@@ -1052,15 +1068,15 @@
         "name": "blink_perf.parser/innerHTML-setter.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-attribute-complex.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-attribute.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-class-deep.html"
     },
     {
@@ -1068,19 +1084,19 @@
         "name": "blink_perf.parser/query-selector-all-class-first.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-class-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-class.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-deep.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-first.html"
     },
     {
@@ -1092,23 +1108,23 @@
         "name": "blink_perf.parser/query-selector-all-id-first.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/query-selector-all-id-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-all-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-deep.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-first.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-id-deep.html"
     },
     {
@@ -1116,11 +1132,11 @@
         "name": "blink_perf.parser/query-selector-id-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.parser/simple-url.html"
     },
     {
@@ -1128,11 +1144,11 @@
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.parser/url-parser.html"
     },
     {
@@ -1140,7 +1156,7 @@
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.shadow_dom/declarative-api.html"
     },
     {
@@ -1148,7 +1164,7 @@
         "name": "blink_perf.shadow_dom/imperative-api-appendchild.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-assign.html"
     },
     {
@@ -1156,11 +1172,11 @@
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
@@ -1180,7 +1196,7 @@
         "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
@@ -1188,11 +1204,11 @@
         "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html"
     },
     {
@@ -1204,7 +1220,7 @@
         "name": "blink_perf.shadow_dom/style-sheet-insert.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
@@ -1216,11 +1232,11 @@
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v0-content-reprojection.html"
     },
     {
@@ -1228,7 +1244,7 @@
         "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html"
     },
     {
@@ -1244,7 +1260,7 @@
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-distribution.html"
     },
     {
@@ -1256,19 +1272,27 @@
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "18.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
+    },
+    {
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
         "duration": "3.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
+    },
+    {
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
@@ -1276,7 +1300,7 @@
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
@@ -1284,11 +1308,11 @@
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
@@ -1304,11 +1328,11 @@
         "name": "blink_perf.shadow_dom/v1-small-deep-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
@@ -1320,27 +1344,27 @@
         "name": "blink_perf.svg/Bamboo.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/Cactus.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/Cowboy.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/CrawFishGanson.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/Debian.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/DropsOnABlade.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/FlowerFromMyGarden.html"
     },
     {
@@ -1356,11 +1380,11 @@
         "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/GearFlowers.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/HarveyRayner.html"
     },
     {
@@ -1376,10 +1400,6 @@
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "24.0",
-        "name": "blink_perf.svg/SierpinskiCarpet.html"
-    },
-    {
         "duration": "3.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
@@ -1392,11 +1412,11 @@
         "name": "blink_perf.svg/SvgNestedUse.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/UnderTheSee.html"
     },
     {
-        "duration": "3.0",
+        "duration": "2.0",
         "name": "blink_perf.svg/WorldIso.html"
     },
     {
@@ -1404,7 +1424,7 @@
         "name": "blink_perf.svg/Worldcup.html"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "dromaeo/http://dromaeo.com?dom-attr"
     },
     {
@@ -1416,7 +1436,7 @@
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
@@ -1425,26 +1445,26 @@
     },
     {
         "duration": "173.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "name": "jetstream/JetStream"
     },
     {
         "duration": "21.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/24h_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.desktop/24h_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/AirBnB_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "loading.desktop/AirBnB_warm"
     },
     {
@@ -1460,15 +1480,15 @@
         "name": "loading.desktop/AllRecipes_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/ArsTechnica_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.desktop/ArsTechnica_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "loading.desktop/Baidu_cold"
     },
     {
@@ -1480,19 +1500,19 @@
         "name": "loading.desktop/Bhaskar_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "loading.desktop/Bhaskar_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Chosun_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/Chosun_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Colorado.edu_cold"
     },
     {
@@ -1500,11 +1520,11 @@
         "name": "loading.desktop/Colorado.edu_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Danawa_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "loading.desktop/Danawa_warm"
     },
     {
@@ -1512,7 +1532,7 @@
         "name": "loading.desktop/Daum_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.desktop/Daum_warm"
     },
     {
@@ -1520,7 +1540,7 @@
         "name": "loading.desktop/Donga_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/Donga_warm"
     },
     {
@@ -1536,27 +1556,27 @@
         "name": "loading.desktop/Elmundo_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/FC2Blog_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/FC2Blog_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/FIFA_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/FIFA_warm"
     },
     {
-        "duration": "16.0",
+        "duration": "18.0",
         "name": "loading.desktop/FarsNews_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "loading.desktop/FarsNews_warm"
     },
     {
@@ -1568,19 +1588,19 @@
         "name": "loading.desktop/Flickr_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.desktop/FlipKart_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/FlipKart_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Free.fr_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Free.fr_warm"
     },
     {
@@ -1588,7 +1608,7 @@
         "name": "loading.desktop/HTML5Rocks_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/HTML5Rocks_warm"
     },
     {
@@ -1596,7 +1616,7 @@
         "name": "loading.desktop/Haraj_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Haraj_warm"
     },
     {
@@ -1604,7 +1624,7 @@
         "name": "loading.desktop/HatenaBookmark_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "loading.desktop/HatenaBookmark_warm"
     },
     {
@@ -1616,39 +1636,39 @@
         "name": "loading.desktop/IGN_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "loading.desktop/IMDB_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "loading.desktop/IMDB_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/IndiaTimes_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/IndiaTimes_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Kakaku_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/Kakaku_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "loading.desktop/Kenh14_cold"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "loading.desktop/Kenh14_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "loading.desktop/Mercadolivre_cold"
     },
     {
@@ -1664,11 +1684,11 @@
         "name": "loading.desktop/Naver_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.desktop/Pantip_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/Pantip_warm"
     },
     {
@@ -1680,23 +1700,23 @@
         "name": "loading.desktop/PremierLeague_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "loading.desktop/QQ_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "loading.desktop/QQ_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/REI_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "loading.desktop/REI_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Ruten_cold"
     },
     {
@@ -1704,27 +1724,31 @@
         "name": "loading.desktop/Ruten_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "loading.desktop/Sina_cold"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "loading.desktop/Sina_warm"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.desktop/Taobao_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "21.0",
         "name": "loading.desktop/Taobao_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
+        "name": "loading.desktop/TheOnion_cold"
+    },
+    {
+        "duration": "12.0",
         "name": "loading.desktop/TheVerge_cold"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "loading.desktop/TheVerge_warm"
     },
     {
@@ -1732,11 +1756,11 @@
         "name": "loading.desktop/TicketMaster_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "loading.desktop/TicketMaster_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "loading.desktop/Vietnamnet_cold"
     },
     {
@@ -1744,11 +1768,11 @@
         "name": "loading.desktop/Vietnamnet_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/Vnexpress_cold"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "loading.desktop/Vnexpress_warm"
     },
     {
@@ -1756,11 +1780,11 @@
         "name": "loading.desktop/Yandex_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Yandex_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/amazon.co.jp_cold"
     },
     {
@@ -1768,11 +1792,11 @@
         "name": "loading.desktop/amazon.co.jp_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.desktop/ja.wikipedia_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/ja.wikipedia_warm"
     },
     {
@@ -1780,11 +1804,11 @@
         "name": "loading.desktop/money.cnn_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "loading.desktop/money.cnn_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/ru.wikipedia_cold"
     },
     {
@@ -1796,7 +1820,7 @@
         "name": "loading.desktop/uol.com.br_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "loading.desktop/uol.com.br_warm"
     },
     {
@@ -1808,31 +1832,27 @@
         "name": "loading.desktop/yahoo.co.jp_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
-        "duration": "8.0",
-        "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true"
-    },
-    {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "media.desktop/mse.html?media=tulip0.av1.mp4"
     },
     {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=crowd.ogg&type=audio"
+        "duration": "8.0",
+        "name": "media.desktop/mse.html?media=tulip2.vp9.webm"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "media.desktop/video.html?src=crowd1080.mp4"
     },
     {
@@ -1844,71 +1864,51 @@
         "name": "media.desktop/video.html?src=crowd1080_vp9.webm"
     },
     {
-        "duration": "6.0",
-        "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek"
-    },
-    {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=crowd720_vp9.webm"
-    },
-    {
-        "duration": "14.0",
-        "name": "media.desktop/video.html?src=garden2_10s.mp4"
-    },
-    {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "media.desktop/video.html?src=garden2_10s.mp4&seek"
     },
     {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=garden2_10s.webm"
-    },
-    {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "media.desktop/video.html?src=garden2_10s.webm&seek"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.m4a&type=audio"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "media.desktop/video.html?src=tulip2.mp4"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "media.desktop/video.html?src=tulip2.mp4&busyjs"
     },
     {
-        "duration": "6.0",
-        "name": "media.desktop/video.html?src=tulip2.mp4&seek"
-    },
-    {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek"
     },
     {
@@ -1916,35 +1916,23 @@
         "name": "media.desktop/video.html?src=tulip2.vp9.webm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm&background"
     },
     {
-        "duration": "7.0",
-        "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek"
-    },
-    {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
         "duration": "21.0",
-        "name": "media.desktop/video.html?src=tulip2.wav&type=audio"
-    },
-    {
-        "duration": "6.0",
-        "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek"
-    },
-    {
-        "duration": "22.0",
         "name": "memory.desktop/TrivialAnimationPageSharedPageState"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
@@ -1956,7 +1944,7 @@
         "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "memory.desktop/TrivialGifPageSharedPageState"
     },
     {
@@ -1964,63 +1952,63 @@
         "name": "memory.desktop/TrivialScrollingPageSharedPageState"
     },
     {
-        "duration": "22.0",
+        "duration": "21.0",
         "name": "memory.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "memory.desktop/WebWorker"
     },
     {
-        "duration": "40.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "duration": "36.0",
+        "name": "octane/Octane"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialAnimationPageSharedPageState"
     },
     {
-        "duration": "39.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialCanvasPageSharedPageState"
     },
     {
-        "duration": "35.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialScrollingPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "43.0",
+        "duration": "41.0",
         "name": "power.desktop/abcnews"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/indiatimes"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/instagram"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/microsoft"
     },
     {
@@ -2028,11 +2016,11 @@
         "name": "power.desktop/sina"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/slideshare"
     },
     {
-        "duration": "38.0",
+        "duration": "35.0",
         "name": "power.desktop/uol"
     },
     {
@@ -2040,31 +2028,31 @@
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html"
     },
     {
-        "duration": "19.0",
+        "duration": "16.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html"
     },
     {
@@ -2072,11 +2060,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html"
     },
     {
-        "duration": "7.0",
+        "duration": "6.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
@@ -2084,79 +2072,79 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "25.0",
+        "duration": "22.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html"
     },
     {
-        "duration": "101.0",
+        "duration": "95.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html"
     },
     {
-        "duration": "87.0",
+        "duration": "83.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/accu_weather_2018"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/accu_weather_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/amazon_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/amazon_pinch_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/analog_clock_svg"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/animometer_webgl"
     },
     {
@@ -2164,7 +2152,7 @@
         "name": "rendering.desktop/animometer_webgl_attrib_arrays"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "rendering.desktop/animometer_webgl_multi_draw"
     },
     {
@@ -2172,15 +2160,15 @@
         "name": "rendering.desktop/aquarium"
     },
     {
-        "duration": "16.0",
+        "duration": "13.0",
         "name": "rendering.desktop/aquarium_20k"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/background_color_animation"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/background_color_animation_with_gradient"
     },
     {
@@ -2192,11 +2180,11 @@
         "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rendering.desktop/balls_css_transition_2_properties"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rendering.desktop/balls_css_transition_40_properties"
     },
     {
@@ -2204,27 +2192,23 @@
         "name": "rendering.desktop/balls_css_transition_all_properties"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/balls_javascript_canvas"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/balls_javascript_css"
     },
     {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_svg_animations"
-    },
-    {
         "duration": "11.0",
         "name": "rendering.desktop/blob"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.desktop/blogspot_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/blogspot_pinch_2018"
     },
     {
@@ -2240,7 +2224,7 @@
         "name": "rendering.desktop/booking_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/bouncing_balls_15"
     },
     {
@@ -2260,11 +2244,11 @@
         "name": "rendering.desktop/bouncing_png_images"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/bouncing_svg_images"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "rendering.desktop/camera_to_webgl"
     },
     {
@@ -2272,11 +2256,11 @@
         "name": "rendering.desktop/canvas_05000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/canvas_10000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "rendering.desktop/canvas_20000_pixels_per_second"
     },
     {
@@ -2284,15 +2268,15 @@
         "name": "rendering.desktop/canvas_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/canvas_60000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/canvas_75000_pixels_per_second"
     },
     {
-        "duration": "5.0",
+        "duration": "8.0",
         "name": "rendering.desktop/canvas_90000_pixels_per_second"
     },
     {
@@ -2300,7 +2284,7 @@
         "name": "rendering.desktop/canvas_animation_no_clear"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/canvas_arcs"
     },
     {
@@ -2308,43 +2292,43 @@
         "name": "rendering.desktop/canvas_font_cycler"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "rendering.desktop/canvas_lines"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/canvas_to_blob"
     },
     {
-        "duration": "5.0",
+        "duration": "9.0",
         "name": "rendering.desktop/cats_unscaled"
     },
     {
-        "duration": "6.0",
+        "duration": "9.0",
         "name": "rendering.desktop/cats_viewport_width"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/cc_poster_circle"
     },
     {
-        "duration": "12.0",
+        "duration": "9.0",
         "name": "rendering.desktop/cc_scroll_text_only"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.desktop/chip_tune"
     },
     {
-        "duration": "13.0",
+        "duration": "11.0",
         "name": "rendering.desktop/cnn_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "rendering.desktop/cnn_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/compositor_heavy_animation"
     },
     {
@@ -2352,51 +2336,51 @@
         "name": "rendering.desktop/crafty_mind"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_animations_many_keyframes"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_animations_simultaneous_inline_style"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_animations_simultaneous_new_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_animations_simultaneous_style_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_animations_simultaneous_updating_class"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_staggered_inline_style"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_staggered_new_element"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_staggered_style_element"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_staggered_updating_class"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_triggered_inline_style"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_triggered_new_element"
     },
     {
@@ -2404,99 +2388,99 @@
         "name": "rendering.desktop/css_animations_triggered_style_element"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_animations_triggered_updating_class"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/css_opacity_plus_n_layers_99"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_inline_style"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_new_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_inline_style"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_new_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_style_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_staggered_updating_class"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_style_element"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_triggered_inline_style"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_transitions_triggered_new_element"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_triggered_style_element"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_triggered_updating_class"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_transitions_updating_class"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_color"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/css_value_type_filter"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_length"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_length_complex"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_length_simple"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_path"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_shadow"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_transform_complex"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/css_value_type_transform_simple"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/dynamic_cube_map"
     },
     {
@@ -2508,7 +2492,7 @@
         "name": "rendering.desktop/ebay_2018"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.desktop/ebay_pinch_2018"
     },
     {
@@ -2516,7 +2500,7 @@
         "name": "rendering.desktop/effect_games"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/espn_2018"
     },
     {
@@ -2524,7 +2508,7 @@
         "name": "rendering.desktop/espn_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/extra_large_texture_uploads"
     },
     {
@@ -2536,27 +2520,27 @@
         "name": "rendering.desktop/facebook_pinch_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/fill_shapes"
     },
     {
-        "duration": "15.0",
+        "duration": "13.0",
         "name": "rendering.desktop/filter_terrain_svg"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/geo_apis"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "rendering.desktop/gmail_2018"
     },
     {
-        "duration": "21.0",
+        "duration": "23.0",
         "name": "rendering.desktop/gmail_move_2018"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "rendering.desktop/gmail_pinch_2018"
     },
     {
@@ -2564,11 +2548,11 @@
         "name": "rendering.desktop/google_calendar_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/google_calendar_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "rendering.desktop/google_docs_2018"
     },
     {
@@ -2584,39 +2568,39 @@
         "name": "rendering.desktop/google_plus_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "rendering.desktop/google_search_pinch_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/google_web_search_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/guimark_vector_chart"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/hakim"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "rendering.desktop/ie_chalkboard"
     },
     {
-        "duration": "17.0",
+        "duration": "15.0",
         "name": "rendering.desktop/ie_pirate_mark"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.desktop/infinite_scroll_element_n_layers_99"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.desktop/infinite_scroll_root_n_layers_99"
     },
     {
@@ -2624,23 +2608,31 @@
         "name": "rendering.desktop/jarro_doverson"
     },
     {
-        "duration": "17.0",
+        "duration": "9.0",
+        "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "8.0",
+        "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization"
+    },
+    {
+        "duration": "16.0",
         "name": "rendering.desktop/js_full_screen_invalidation"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/js_opacity_plus_n_layers_99"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/js_paint_plus_n_layers_99"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/js_poster_circle"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "rendering.desktop/js_scroll_text_only"
     },
     {
@@ -2648,11 +2640,11 @@
         "name": "rendering.desktop/kevs_3d"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/keyframed_animations"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/large_texture_uploads"
     },
     {
@@ -2664,11 +2656,23 @@
         "name": "rendering.desktop/linkedin_pinch_2018"
     },
     {
+        "duration": "8.0",
+        "name": "rendering.desktop/main_0fps_impl_60fps"
+    },
+    {
         "duration": "9.0",
-        "name": "rendering.desktop/man_in_blue"
+        "name": "rendering.desktop/main_30fps_impl_60fps"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/main_60fps_impl_60fps"
     },
     {
         "duration": "10.0",
+        "name": "rendering.desktop/man_in_blue"
+    },
+    {
+        "duration": "9.0",
         "name": "rendering.desktop/many_images"
     },
     {
@@ -2676,19 +2680,19 @@
         "name": "rendering.desktop/many_planets_deep"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "rendering.desktop/maps_move_2018"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rendering.desktop/maps_perf_test"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/medium_texture_uploads"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/megi_dish"
     },
     {
@@ -2700,7 +2704,7 @@
         "name": "rendering.desktop/microsoft_fireflies"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/microsoft_fish_ie_tank"
     },
     {
@@ -2708,11 +2712,11 @@
         "name": "rendering.desktop/microsoft_performance"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/microsoft_snow"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/microsoft_speed_reading"
     },
     {
@@ -2720,11 +2724,11 @@
         "name": "rendering.desktop/microsoft_tweet_map"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/microsoft_video_city"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/microsoft_worker_fountains"
     },
     {
@@ -2732,39 +2736,39 @@
         "name": "rendering.desktop/mix_10k"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/mix_blend_mode_animation_difference"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/mix_blend_mode_animation_hue"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/mix_blend_mode_animation_screen"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/motion_mark_canvas_fill_shapes"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/motion_mark_canvas_stroke_shapes"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/new_tilings"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/nvidia_vertex_buffer_object"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "rendering.desktop/overlay_background_color_css_transitions_page"
     },
     {
@@ -2772,7 +2776,7 @@
         "name": "rendering.desktop/particles"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/pinterest_2018"
     },
     {
@@ -2780,15 +2784,15 @@
         "name": "rendering.desktop/put_get_image_data"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/raf"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/raf_animation"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/raf_canvas"
     },
     {
@@ -2800,7 +2804,7 @@
         "name": "rendering.desktop/repaint_amazon_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/repaint_cnn_2018"
     },
     {
@@ -2816,7 +2820,7 @@
         "name": "rendering.desktop/repaint_instagram_2018"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "rendering.desktop/repaint_reddit_2018"
     },
     {
@@ -2836,7 +2840,7 @@
         "name": "rendering.desktop/repaint_yahoo_homepage_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/runway"
     },
     {
@@ -2844,7 +2848,7 @@
         "name": "rendering.desktop/san_angeles"
     },
     {
-        "duration": "6.0",
+        "duration": "8.0",
         "name": "rendering.desktop/second_batch_js_heavy"
     },
     {
@@ -2852,11 +2856,11 @@
         "name": "rendering.desktop/second_batch_js_light"
     },
     {
-        "duration": "6.0",
+        "duration": "8.0",
         "name": "rendering.desktop/second_batch_js_medium"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/simple_text_page"
     },
     {
@@ -2864,11 +2868,11 @@
         "name": "rendering.desktop/simple_touch_drag"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/small_texture_uploads"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/smash_cat"
     },
     {
@@ -2892,7 +2896,7 @@
         "name": "rendering.desktop/text_05000_pixels_per_second"
     },
     {
-        "duration": "11.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_10000_pixels_per_second"
     },
     {
@@ -2904,15 +2908,15 @@
         "name": "rendering.desktop/text_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_75000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_90000_pixels_per_second"
     },
     {
@@ -2920,7 +2924,7 @@
         "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second"
     },
     {
@@ -2932,15 +2936,15 @@
         "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second"
     },
     {
-        "duration": "4.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second"
     },
     {
@@ -2952,23 +2956,23 @@
         "name": "rendering.desktop/text_hover_10000_pixels_per_second"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_hover_20000_pixels_per_second"
     },
     {
-        "duration": "8.0",
+        "duration": "5.0",
         "name": "rendering.desktop/text_hover_40000_pixels_per_second"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rendering.desktop/text_hover_60000_pixels_per_second"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_75000_pixels_per_second"
     },
     {
-        "duration": "4.0",
+        "duration": "7.0",
         "name": "rendering.desktop/text_hover_90000_pixels_per_second"
     },
     {
@@ -2976,15 +2980,15 @@
         "name": "rendering.desktop/touch_handler_scrolling"
     },
     {
-        "duration": "14.0",
+        "duration": "12.0",
         "name": "rendering.desktop/transform_transitions"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/transform_transitions_js_block"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rendering.desktop/twitch_2018"
     },
     {
@@ -2992,79 +2996,87 @@
         "name": "rendering.desktop/twitch_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/twitter_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/twitter_pinch_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_color"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_length_3d"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_length_complex"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_length_simple"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_path"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_shadow"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_transform_complex"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animation_value_type_transform_simple"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_many_keyframes"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_set_current_time"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_simultaneous"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_staggered_chaining"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/web_animations_staggered_infinite_iterations"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "rendering.desktop/web_animations_staggered_triggering_page"
     },
     {
+        "duration": "8.0",
+        "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization"
+    },
+    {
+        "duration": "9.0",
+        "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization"
+    },
+    {
         "duration": "12.0",
         "name": "rendering.desktop/wikipedia_2018"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "rendering.desktop/wordpress_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rendering.desktop/yahoo_answers_2018"
     },
     {
@@ -3076,7 +3088,7 @@
         "name": "rendering.desktop/yahoo_news_pinch_2018"
     },
     {
-        "duration": "12.0",
+        "duration": "10.0",
         "name": "rendering.desktop/yahoo_sports_2018"
     },
     {
@@ -3084,23 +3096,19 @@
         "name": "rendering.desktop/yahoo_sports_pinch_2018"
     },
     {
-        "duration": "8.0",
+        "duration": "11.0",
         "name": "rendering.desktop/youtube_2018"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "rendering.desktop/youtube_pinch_2018"
     },
     {
-        "duration": "11.0",
-        "name": "rendering.desktop/yuv_decoding"
-    },
-    {
-        "duration": "35.0",
+        "duration": "37.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "34.0",
+        "duration": "36.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
@@ -3108,11 +3116,11 @@
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "61.0",
+        "duration": "83.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "61.0",
+        "duration": "59.0",
         "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll"
     },
     {
@@ -3120,147 +3128,95 @@
         "name": "system_health.common_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "73.0",
+        "duration": "69.0",
         "name": "system_health.common_desktop/browse:media:imgur"
     },
     {
-        "duration": "58.0",
-        "name": "system_health.common_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "85.0",
+        "duration": "83.0",
         "name": "system_health.common_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "56.0",
+        "duration": "54.0",
         "name": "system_health.common_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.common_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "61.0",
-        "name": "system_health.common_desktop/browse:media:youtube:2018"
-    },
-    {
         "duration": "58.0",
-        "name": "system_health.common_desktop/browse:news:cnn"
+        "name": "system_health.common_desktop/browse:media:youtube:2018"
     },
     {
         "duration": "44.0",
         "name": "system_health.common_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "44.0",
-        "name": "system_health.common_desktop/browse:news:flipboard"
-    },
-    {
-        "duration": "44.0",
+        "duration": "48.0",
         "name": "system_health.common_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "46.0",
-        "name": "system_health.common_desktop/browse:news:hackernews"
-    },
-    {
-        "duration": "58.0",
-        "name": "system_health.common_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "68.0",
-        "name": "system_health.common_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "68.0",
+        "duration": "69.0",
         "name": "system_health.common_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.common_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "47.0",
+        "duration": "45.0",
         "name": "system_health.common_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "system_health.common_desktop/browse:search:google"
     },
     {
-        "duration": "45.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/browse:search:google:2018"
     },
     {
-        "duration": "33.0",
-        "name": "system_health.common_desktop/browse:search:google_india"
-    },
-    {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "system_health.common_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "61.0",
-        "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "68.0",
+        "duration": "67.0",
         "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "66.0",
-        "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "59.0",
-        "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "42.0",
-        "name": "system_health.common_desktop/browse:social:twitter"
-    },
-    {
         "duration": "43.0",
         "name": "system_health.common_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "61.0",
+        "duration": "59.0",
         "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "61.0",
-        "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "58.0",
+        "duration": "55.0",
         "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "51.0",
+        "duration": "53.0",
         "name": "system_health.common_desktop/browse:tools:earth"
     },
     {
-        "duration": "47.0",
+        "duration": "49.0",
         "name": "system_health.common_desktop/browse:tools:maps"
     },
     {
+        "duration": "68.0",
+        "name": "system_health.common_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "31.0",
+        "name": "system_health.common_desktop/browse:tools:sheets:2019"
+    },
+    {
         "duration": "22.0",
         "name": "system_health.common_desktop/browse_accessibility:media:youtube"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/browse_accessibility:tech:codesearch"
-    },
-    {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "11.0",
         "name": "system_health.common_desktop/load:chrome:blank"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:games:alphabetty:2018"
     },
     {
@@ -3268,23 +3224,19 @@
         "name": "system_health.common_desktop/load:games:bubbles"
     },
     {
+        "duration": "14.0",
+        "name": "system_health.common_desktop/load:games:bubbles:2019"
+    },
+    {
         "duration": "13.0",
         "name": "system_health.common_desktop/load:games:lazors"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:games:miniclip"
-    },
-    {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "system_health.common_desktop/load:games:miniclip:2018"
     },
     {
         "duration": "19.0",
-        "name": "system_health.common_desktop/load:games:spychase"
-    },
-    {
-        "duration": "19.0",
         "name": "system_health.common_desktop/load:games:spychase:2018"
     },
     {
@@ -3292,7 +3244,7 @@
         "name": "system_health.common_desktop/load:media:9gag"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:media:dailymotion"
     },
     {
@@ -3305,170 +3257,98 @@
     },
     {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:media:google_images"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:media:imgur"
-    },
-    {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:media:imgur:2018"
     },
     {
         "duration": "18.0",
-        "name": "system_health.common_desktop/load:media:soundcloud"
-    },
-    {
-        "duration": "16.0",
         "name": "system_health.common_desktop/load:media:soundcloud:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:media:youtube"
-    },
-    {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:media:youtube:2018"
     },
     {
         "duration": "16.0",
-        "name": "system_health.common_desktop/load:news:bbc"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "20.0",
-        "name": "system_health.common_desktop/load:news:cnn"
-    },
-    {
         "duration": "18.0",
         "name": "system_health.common_desktop/load:news:cnn:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:news:flipboard"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.common_desktop/load:news:hackernews"
-    },
-    {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:news:nytimes"
-    },
-    {
-        "duration": "19.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:news:nytimes:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "20.0",
         "name": "system_health.common_desktop/load:news:qq"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:news:qq:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:news:reddit"
-    },
-    {
         "duration": "17.0",
         "name": "system_health.common_desktop/load:news:reddit:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:news:wikipedia"
-    },
-    {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:news:wikipedia:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:search:amazon"
-    },
-    {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:search:amazon:2018"
-    },
-    {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:baidu"
+        "name": "system_health.common_desktop/load:search:amazon:2018"
     },
     {
         "duration": "14.0",
         "name": "system_health.common_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:search:ebay"
-    },
-    {
         "duration": "16.0",
         "name": "system_health.common_desktop/load:search:ebay:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:search:flipkart:2018"
-    },
-    {
         "duration": "15.0",
-        "name": "system_health.common_desktop/load:search:google"
+        "name": "system_health.common_desktop/load:search:flipkart:2018"
     },
     {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:search:google:2018"
     },
     {
-        "duration": "38.0",
-        "name": "system_health.common_desktop/load:search:taobao"
-    },
-    {
         "duration": "16.0",
         "name": "system_health.common_desktop/load:search:taobao:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:yahoo"
-    },
-    {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:search:yahoo:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:yandex"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:search:yandex:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:social:instagram"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "40.0",
         "name": "system_health.common_desktop/load:social:pinterest"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:social:vk"
     },
     {
@@ -3476,7 +3356,7 @@
         "name": "system_health.common_desktop/load:social:vk:2018"
     },
     {
-        "duration": "20.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:tools:docs"
     },
     {
@@ -3484,7 +3364,7 @@
         "name": "system_health.common_desktop/load:tools:drive"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:tools:dropbox"
     },
     {
@@ -3493,10 +3373,6 @@
     },
     {
         "duration": "15.0",
-        "name": "system_health.common_desktop/load:tools:stackoverflow"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load:tools:stackoverflow:2018"
     },
     {
@@ -3504,19 +3380,11 @@
         "name": "system_health.common_desktop/load:tools:weather"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load_accessibility:media:wikipedia"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
         "duration": "15.0",
-        "name": "system_health.common_desktop/load_accessibility:shopping:amazon"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
@@ -3524,15 +3392,11 @@
         "name": "system_health.common_desktop/long_running:tools:gmail-background"
     },
     {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/play:media:google_play_music"
     },
     {
-        "duration": "43.0",
-        "name": "system_health.common_desktop/play:media:soundcloud"
-    },
-    {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/play:media:soundcloud:2018"
     },
     {
@@ -3540,106 +3404,62 @@
         "name": "system_health.memory_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "63.0",
+        "duration": "64.0",
         "name": "system_health.memory_desktop/browse:media:imgur"
     },
     {
-        "duration": "55.0",
-        "name": "system_health.memory_desktop/browse:media:pinterest"
-    },
-    {
         "duration": "81.0",
         "name": "system_health.memory_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "52.0",
+        "duration": "51.0",
         "name": "system_health.memory_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "53.0",
-        "name": "system_health.memory_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "57.0",
+        "duration": "55.0",
         "name": "system_health.memory_desktop/browse:media:youtube:2018"
     },
     {
-        "duration": "57.0",
+        "duration": "56.0",
         "name": "system_health.memory_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "48.0",
-        "name": "system_health.memory_desktop/browse:news:cnn"
-    },
-    {
-        "duration": "37.0",
+        "duration": "40.0",
         "name": "system_health.memory_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "40.0",
-        "name": "system_health.memory_desktop/browse:news:flipboard"
-    },
-    {
-        "duration": "40.0",
+        "duration": "45.0",
         "name": "system_health.memory_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "52.0",
-        "name": "system_health.memory_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "60.0",
-        "name": "system_health.memory_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "59.0",
+        "duration": "63.0",
         "name": "system_health.memory_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "51.0",
-        "name": "system_health.memory_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "40.0",
+        "duration": "43.0",
         "name": "system_health.memory_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "system_health.memory_desktop/browse:search:google"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "system_health.memory_desktop/browse:search:google:2018"
     },
     {
-        "duration": "31.0",
-        "name": "system_health.memory_desktop/browse:search:google_india"
-    },
-    {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "system_health.memory_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "61.0",
+        "duration": "64.0",
         "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "57.0",
-        "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
         "duration": "50.0",
         "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "39.0",
-        "name": "system_health.memory_desktop/browse:social:twitter"
-    },
-    {
         "duration": "40.0",
         "name": "system_health.memory_desktop/browse:social:twitter:2018"
     },
@@ -3648,28 +3468,28 @@
         "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "54.0",
+        "duration": "52.0",
         "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "44.0",
+        "duration": "49.0",
         "name": "system_health.memory_desktop/browse:tools:earth"
     },
     {
-        "duration": "43.0",
+        "duration": "45.0",
         "name": "system_health.memory_desktop/browse:tools:maps"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
+        "duration": "65.0",
+        "name": "system_health.memory_desktop/browse:tools:maps:2019"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch"
+        "duration": "26.0",
+        "name": "system_health.memory_desktop/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "21.0",
+        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
     },
     {
         "duration": "22.0",
@@ -3689,22 +3509,18 @@
     },
     {
         "duration": "12.0",
+        "name": "system_health.memory_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:games:lazors"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:games:miniclip"
-    },
-    {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.memory_desktop/load:games:miniclip:2018"
     },
     {
         "duration": "17.0",
-        "name": "system_health.memory_desktop/load:games:spychase"
-    },
-    {
-        "duration": "17.0",
         "name": "system_health.memory_desktop/load:games:spychase:2018"
     },
     {
@@ -3716,7 +3532,7 @@
         "name": "system_health.memory_desktop/load:media:dailymotion"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:media:facebook_photos:2018"
     },
     {
@@ -3724,50 +3540,26 @@
         "name": "system_health.memory_desktop/load:media:flickr:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:media:google_images"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:media:google_images:2018"
     },
     {
         "duration": "14.0",
-        "name": "system_health.memory_desktop/load:media:imgur"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.memory_desktop/load:media:imgur:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:media:soundcloud"
-    },
-    {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:media:soundcloud:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:media:youtube"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:media:youtube:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:news:bbc"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.memory_desktop/load:news:cnn"
-    },
-    {
         "duration": "16.0",
         "name": "system_health.memory_desktop/load:news:cnn:2018"
     },
@@ -3777,22 +3569,14 @@
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:news:hackernews"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:news:nytimes"
-    },
-    {
         "duration": "16.0",
         "name": "system_health.memory_desktop/load:news:nytimes:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:news:qq"
     },
     {
@@ -3800,43 +3584,23 @@
         "name": "system_health.memory_desktop/load:news:qq:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:news:reddit"
-    },
-    {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:news:reddit:2018"
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:news:wikipedia"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:news:wikipedia:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:amazon"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:amazon:2018"
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:baidu"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:ebay"
-    },
-    {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:ebay:2018"
     },
     {
@@ -3845,46 +3609,26 @@
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:google"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:google:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:taobao"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:taobao:2018"
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:yahoo"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:search:yahoo:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:yandex"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:yandex:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:social:instagram"
-    },
-    {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:social:pinterest"
     },
     {
@@ -3896,283 +3640,275 @@
         "name": "system_health.memory_desktop/load:social:vk:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:tools:docs"
     },
     {
-        "duration": "15.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:tools:drive"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:tools:dropbox"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:tools:gmail"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:tools:stackoverflow"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:tools:weather"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load_accessibility:media:wikipedia"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load_accessibility:shopping:amazon"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
-        "duration": "124.0",
+        "duration": "122.0",
         "name": "system_health.memory_desktop/long_running:tools:gmail-foreground"
     },
     {
-        "duration": "38.0",
+        "duration": "39.0",
         "name": "system_health.memory_desktop/play:media:soundcloud:2018"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
+        "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
+    },
+    {
+        "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
     },
     {
-        "duration": "3.0",
+        "duration": "7.0",
+        "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
+    },
+    {
+        "duration": "7.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
     },
     {
-        "duration": "5.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "64.0",
+        "duration": "61.0",
         "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "69.0",
-        "name": "v8.browsing_desktop-future/browse:media:imgur"
-    },
-    {
-        "duration": "86.0",
+        "duration": "84.0",
         "name": "v8.browsing_desktop-future/browse:media:pinterest:2018"
     },
     {
-        "duration": "59.0",
+        "duration": "56.0",
         "name": "v8.browsing_desktop-future/browse:media:tumblr:2018"
     },
     {
-        "duration": "63.0",
+        "duration": "59.0",
         "name": "v8.browsing_desktop-future/browse:media:youtube:2018"
     },
     {
-        "duration": "62.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019"
     },
     {
-        "duration": "45.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:news:cnn:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "47.0",
         "name": "v8.browsing_desktop-future/browse:news:flipboard:2018"
     },
     {
-        "duration": "60.0",
-        "name": "v8.browsing_desktop-future/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "68.0",
+        "duration": "70.0",
         "name": "v8.browsing_desktop-future/browse:news:nytimes:2018"
     },
     {
-        "duration": "47.0",
+        "duration": "48.0",
         "name": "v8.browsing_desktop-future/browse:news:reddit:2018"
     },
     {
-        "duration": "46.0",
+        "duration": "0.0",
+        "name": "v8.browsing_desktop-future/browse:search:google"
+    },
+    {
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:search:google:2018"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "v8.browsing_desktop-future/browse:search:google_india:2018"
     },
     {
-        "duration": "68.0",
+        "duration": "71.0",
         "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "65.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "58.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "43.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:social:twitter:2018"
     },
     {
-        "duration": "63.0",
-        "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "61.0",
+        "duration": "56.0",
         "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "52.0",
+        "duration": "54.0",
         "name": "v8.browsing_desktop-future/browse:tools:earth"
     },
     {
-        "duration": "48.0",
+        "duration": "49.0",
         "name": "v8.browsing_desktop-future/browse:tools:maps"
     },
     {
-        "duration": "64.0",
-        "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
-    },
-    {
-        "duration": "40.0",
-        "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
-    },
-    {
-        "duration": "60.0",
-        "name": "v8.browsing_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "59.0",
-        "name": "v8.browsing_desktop/browse:media:tumblr:2018"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "62.0",
-        "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
-    },
-    {
-        "duration": "46.0",
-        "name": "v8.browsing_desktop/browse:news:cnn:2018"
-    },
-    {
-        "duration": "46.0",
-        "name": "v8.browsing_desktop/browse:news:flipboard:2018"
-    },
-    {
-        "duration": "59.0",
-        "name": "v8.browsing_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "62.0",
-        "name": "v8.browsing_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "46.0",
-        "name": "v8.browsing_desktop/browse:search:google"
-    },
-    {
-        "duration": "45.0",
-        "name": "v8.browsing_desktop/browse:search:google:2018"
-    },
-    {
-        "duration": "34.0",
-        "name": "v8.browsing_desktop/browse:search:google_india"
-    },
-    {
-        "duration": "32.0",
-        "name": "v8.browsing_desktop/browse:search:google_india:2018"
-    },
-    {
-        "duration": "64.0",
-        "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "43.0",
-        "name": "v8.browsing_desktop/browse:social:twitter"
-    },
-    {
-        "duration": "43.0",
-        "name": "v8.browsing_desktop/browse:social:twitter:2018"
-    },
-    {
-        "duration": "64.0",
-        "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "61.0",
-        "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
-    },
-    {
-        "duration": "52.0",
-        "name": "v8.browsing_desktop/browse:tools:earth"
-    },
-    {
-        "duration": "48.0",
-        "name": "v8.browsing_desktop/browse:tools:maps"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_cold"
-    },
-    {
-        "duration": "29.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_warm"
-    },
-    {
-        "duration": "24.0",
-        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold"
+        "duration": "69.0",
+        "name": "v8.browsing_desktop-future/browse:tools:maps:2019"
     },
     {
         "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot"
+        "name": "v8.browsing_desktop-future/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "62.0",
+        "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
+    },
+    {
+        "duration": "39.0",
+        "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
+    },
+    {
+        "duration": "0.0",
+        "name": "v8.browsing_desktop/browse:media:imgur"
+    },
+    {
+        "duration": "86.0",
+        "name": "v8.browsing_desktop/browse:media:pinterest:2018"
+    },
+    {
+        "duration": "81.0",
+        "name": "v8.browsing_desktop/browse:media:tumblr:2018"
+    },
+    {
+        "duration": "60.0",
+        "name": "v8.browsing_desktop/browse:media:youtube:2018"
+    },
+    {
+        "duration": "60.0",
+        "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
+    },
+    {
+        "duration": "45.0",
+        "name": "v8.browsing_desktop/browse:news:cnn:2018"
+    },
+    {
+        "duration": "48.0",
+        "name": "v8.browsing_desktop/browse:news:flipboard:2018"
+    },
+    {
+        "duration": "69.0",
+        "name": "v8.browsing_desktop/browse:news:nytimes:2018"
+    },
+    {
+        "duration": "48.0",
+        "name": "v8.browsing_desktop/browse:news:reddit:2018"
+    },
+    {
+        "duration": "65.0",
+        "name": "v8.browsing_desktop/browse:search:google"
+    },
+    {
+        "duration": "43.0",
+        "name": "v8.browsing_desktop/browse:search:google:2018"
+    },
+    {
+        "duration": "29.0",
+        "name": "v8.browsing_desktop/browse:search:google_india:2018"
+    },
+    {
+        "duration": "71.0",
+        "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
+    },
+    {
+        "duration": "0.0",
+        "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018"
+    },
+    {
+        "duration": "44.0",
+        "name": "v8.browsing_desktop/browse:social:twitter:2018"
+    },
+    {
+        "duration": "57.0",
+        "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
+    },
+    {
+        "duration": "54.0",
+        "name": "v8.browsing_desktop/browse:tools:earth"
+    },
+    {
+        "duration": "49.0",
+        "name": "v8.browsing_desktop/browse:tools:maps"
+    },
+    {
+        "duration": "69.0",
+        "name": "v8.browsing_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "31.0",
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "23.0",
+        "name": "v8.runtime_stats.top_25/AdsAMPAds_cold"
+    },
+    {
+        "duration": "30.0",
+        "name": "v8.runtime_stats.top_25/AdsAMPAds_hot"
     },
     {
         "duration": "27.0",
+        "name": "v8.runtime_stats.top_25/AdsAMPAds_warm"
+    },
+    {
+        "duration": "23.0",
+        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold"
+    },
+    {
+        "duration": "29.0",
+        "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot"
+    },
+    {
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold"
     },
     {
@@ -4184,19 +3920,19 @@
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold"
     },
     {
@@ -4208,7 +3944,7 @@
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold"
     },
     {
@@ -4216,7 +3952,7 @@
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm"
     },
     {
@@ -4232,11 +3968,11 @@
         "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot"
     },
     {
@@ -4244,23 +3980,23 @@
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm"
     },
     {
-        "duration": "32.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold"
     },
     {
-        "duration": "53.0",
+        "duration": "58.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot"
     },
     {
-        "duration": "42.0",
+        "duration": "46.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold"
     },
     {
-        "duration": "33.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot"
     },
     {
@@ -4276,19 +4012,19 @@
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm"
     },
     {
@@ -4308,11 +4044,11 @@
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm"
     },
     {
@@ -4320,11 +4056,11 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm"
     },
     {
@@ -4332,11 +4068,11 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm"
     },
     {
@@ -4348,7 +4084,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm"
     },
     {
@@ -4364,7 +4100,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold"
     },
     {
@@ -4380,7 +4116,7 @@
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot"
     },
     {
@@ -4392,27 +4128,27 @@
         "name": "v8.runtime_stats.top_25/http://weibo.com_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://weibo.com_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://weibo.com_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold"
     },
     {
@@ -4424,11 +4160,11 @@
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot"
     },
     {
@@ -4444,15 +4180,15 @@
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot"
     },
     {
@@ -4460,11 +4196,11 @@
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot"
     },
     {
@@ -4472,15 +4208,15 @@
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm"
     },
     {
@@ -4488,27 +4224,27 @@
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm"
     },
     {
-        "duration": "34.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_cold"
     },
     {
-        "duration": "38.0",
+        "duration": "35.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_hot"
     },
     {
-        "duration": "36.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold"
     },
     {
@@ -4520,31 +4256,31 @@
         "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold"
     },
     {
@@ -4552,7 +4288,7 @@
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm"
     },
     {
@@ -4564,19 +4300,19 @@
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm"
     },
     {
@@ -4588,19 +4324,19 @@
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm"
     },
     {
@@ -4608,7 +4344,7 @@
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot"
     },
     {
@@ -4616,7 +4352,7 @@
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm"
     },
     {
-        "duration": "27.0",
+        "duration": "26.0",
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold"
     },
     {
@@ -4624,7 +4360,7 @@
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot"
     },
     {
-        "duration": "26.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm"
     },
     {
@@ -4636,19 +4372,19 @@
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm"
     },
     {
@@ -4656,55 +4392,43 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm"
     },
     {
-        "duration": "8.0",
-        "name": "wasm/WasmSpaceBuggy"
-    },
-    {
         "duration": "17.0",
-        "name": "wasm/WasmTanks"
-    },
-    {
-        "duration": "30.0",
-        "name": "wasm/WasmZenGarden"
-    },
-    {
-        "duration": "21.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "webrtc/canvas_capture_peer_connection"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "webrtc/codec_constraints_h264"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "webrtc/codec_constraints_vp8"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "webrtc/codec_constraints_vp9"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "31.0",
+        "duration": "26.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "36.0",
+        "duration": "26.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json b/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json
index 0997d55a..d2fe14a4 100644
--- a/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json
+++ b/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json
@@ -1,14 +1,14 @@
 [
     {
-        "duration": "24.0",
+        "duration": "19.0",
         "name": "blink_perf.accessibility/line-breaks.html"
     },
     {
-        "duration": "21.0",
+        "duration": "14.0",
         "name": "blink_perf.accessibility/textarea-append.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.bindings/append-child.html"
     },
     {
@@ -28,7 +28,7 @@
         "name": "blink_perf.bindings/first-child.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.bindings/gc-forest.html"
     },
     {
@@ -40,11 +40,11 @@
         "name": "blink_perf.bindings/gc-tree.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/get-attribute-rare.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/get-attribute.html"
     },
     {
@@ -52,7 +52,7 @@
         "name": "blink_perf.bindings/get-element-by-id.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.bindings/get-elements-by-tag-name.html"
     },
     {
@@ -72,7 +72,7 @@
         "name": "blink_perf.bindings/insert-before.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/named-property-enumerator.html"
     },
     {
@@ -88,7 +88,7 @@
         "name": "blink_perf.bindings/post-message.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/sequence-conversion-array.html"
     },
     {
@@ -100,7 +100,7 @@
         "name": "blink_perf.bindings/serialize-array.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/serialize-long-string.html"
     },
     {
@@ -108,7 +108,7 @@
         "name": "blink_perf.bindings/serialize-map.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/serialize-nested-array.html"
     },
     {
@@ -116,23 +116,23 @@
         "name": "blink_perf.bindings/set-attribute-rare.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/set-attribute.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/structured-clone-json-deserialize.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "blink_perf.bindings/structured-clone-json-serialize.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.bindings/structured-clone-long-string-serialize.html"
     },
     {
@@ -148,11 +148,11 @@
         "name": "blink_perf.bindings/typed-array-construct-from-typed.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/typed-array-set-from-typed.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.bindings/undefined-first-child.html"
     },
     {
@@ -164,15 +164,15 @@
         "name": "blink_perf.bindings/undefined-id-getter.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html"
     },
     {
@@ -200,7 +200,7 @@
         "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.bindings/worker-transferable-from-worker.html"
     },
     {
@@ -404,7 +404,7 @@
         "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.css/AttributeDescendantSelector.html"
     },
     {
@@ -420,139 +420,103 @@
         "name": "blink_perf.css/CSSPropertyUpdateValue.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildClassSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleChildElementSelectors.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleElementSelector.html"
     },
     {
-        "duration": "14.0",
+        "duration": "6.0",
         "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "8.0",
         "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "14.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleShallowTree.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleClassSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.css/ChangeStyleUniversalSelector.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html"
     },
     {
-        "duration": "9.0",
-        "name": "blink_perf.css/ClassDescendantSelector.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/ClassInvalidation.html"
-    },
-    {
-        "duration": "4.0",
-        "name": "blink_perf.css/CustomPropertiesCascade.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesRootInheritance.html"
-    },
-    {
-        "duration": "3.0",
-        "name": "blink_perf.css/CustomPropertiesVarAlias.html"
-    },
-    {
-        "duration": "8.0",
-        "name": "blink_perf.css/FocusUpdate.html"
-    },
-    {
-        "duration": "12.0",
+        "duration": "6.0",
         "name": "blink_perf.css/LoadBootstrapBlog.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.css/LoadMaterializeStarterPage.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.css/LoadSemanticPageExample.html"
     },
     {
-        "duration": "8.0",
-        "name": "blink_perf.css/PseudoClassSelectors.html"
-    },
-    {
-        "duration": "9.0",
-        "name": "blink_perf.css/SelectorCountScaling.html"
-    },
-    {
-        "duration": "18.0",
+        "duration": "22.0",
         "name": "blink_perf.dom/custom-element-default-style-with-shadow.html"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "blink_perf.dom/custom-element-default-style.html"
     },
     {
-        "duration": "15.0",
+        "duration": "11.0",
         "name": "blink_perf.dom/long-sibling-list.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.dom/modify-element-classname.html"
     },
     {
@@ -576,15 +540,15 @@
         "name": "blink_perf.dom/select-single-remove.html"
     },
     {
-        "duration": "25.0",
+        "duration": "30.0",
         "name": "blink_perf.events/EventsDispatching.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html"
     },
     {
@@ -596,7 +560,7 @@
         "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html"
     },
     {
-        "duration": "11.0",
+        "duration": "10.0",
         "name": "blink_perf.events/hit-test-lots-of-layers.html"
     },
     {
@@ -608,35 +572,47 @@
         "name": "blink_perf.events/is-input-pending-default-events.html"
     },
     {
-        "duration": "23.0",
+        "duration": "15.0",
         "name": "blink_perf.image_decoder/decode-gif.html"
     },
     {
-        "duration": "14.0",
-        "name": "blink_perf.image_decoder/decode-jpeg.html"
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html"
     },
     {
-        "duration": "16.0",
-        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html"
     },
     {
         "duration": "12.0",
+        "name": "blink_perf.image_decoder/decode-lossless-webp.html"
+    },
+    {
+        "duration": "8.0",
         "name": "blink_perf.image_decoder/decode-lossy-webp.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.image_decoder/decode-png-palette-opaque.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.image_decoder/decode-png-palette.html"
     },
     {
-        "duration": "18.0",
+        "duration": "13.0",
         "name": "blink_perf.image_decoder/decode-png.html"
     },
     {
-        "duration": "15.0",
+        "duration": "21.0",
         "name": "blink_perf.layout/ArabicLineLayout.html"
     },
     {
@@ -644,7 +620,7 @@
         "name": "blink_perf.layout/Shapes/MultipleShapes.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/SimpleTextPathLineLayout.html"
     },
     {
@@ -652,6 +628,10 @@
         "name": "blink_perf.layout/add-remove-inline-floats.html"
     },
     {
+        "duration": "3.0",
+        "name": "blink_perf.layout/animate-abspos-deep.html"
+    },
+    {
         "duration": "8.0",
         "name": "blink_perf.layout/attach-inlines-2.html"
     },
@@ -660,19 +640,19 @@
         "name": "blink_perf.layout/attach-inlines.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/auto-grid-lots-of-data.html"
     },
     {
-        "duration": "10.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/change-text-css-contain.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow-once-random.html"
     },
     {
-        "duration": "10.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow-once.html"
     },
     {
@@ -680,39 +660,55 @@
         "name": "blink_perf.layout/chapter-reflow-thrice.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow-twice.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/chapter-reflow.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/character_fallback.html"
     },
     {
-        "duration": "3.0",
-        "name": "blink_perf.layout/character_fallback_aat.html"
-    },
-    {
-        "duration": "9.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/contain-content-style-change.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_append.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_append_single_line.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_delete.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_insert.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/editing_prepend.html"
+    },
+    {
+        "duration": "10.0",
         "name": "blink_perf.layout/fit-content-change-available-size-blocks.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/fit-content-change-available-size-text.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-data.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html"
     },
     {
@@ -720,15 +716,15 @@
         "name": "blink_perf.layout/flexbox-column-nowrap.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/flexbox-column-wrap.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html"
     },
     {
-        "duration": "11.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/flexbox-lots-of-data.html"
     },
     {
@@ -744,10 +740,14 @@
         "name": "blink_perf.layout/flexbox-row-wrap.html"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/flexbox-with-stretch-layout.html"
     },
     {
+        "duration": "9.0",
+        "name": "blink_perf.layout/flexbox_with_list_item.html"
+    },
+    {
         "duration": "6.0",
         "name": "blink_perf.layout/floats_100_100.html"
     },
@@ -756,7 +756,7 @@
         "name": "blink_perf.layout/floats_100_100_nested.html"
     },
     {
-        "duration": "6.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/floats_10_1000.html"
     },
     {
@@ -764,11 +764,11 @@
         "name": "blink_perf.layout/floats_20_100.html"
     },
     {
-        "duration": "5.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/floats_20_100_nested.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/floats_2_100.html"
     },
     {
@@ -788,11 +788,11 @@
         "name": "blink_perf.layout/hindi-line-layout.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/japanese-kokoro-insert.html"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "blink_perf.layout/large-grid.html"
     },
     {
@@ -800,23 +800,23 @@
         "name": "blink_perf.layout/large-spanning-grid-item.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html"
     },
     {
-        "duration": "52.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/latin-ebook-resize.html"
     },
     {
-        "duration": "13.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/latin-ebook.html"
     },
     {
@@ -824,7 +824,7 @@
         "name": "blink_perf.layout/layers_overlap_2d.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.layout/layers_overlap_3d.html"
     },
     {
@@ -832,7 +832,7 @@
         "name": "blink_perf.layout/line-layout-fit-content-break-word.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.layout/line-layout-fit-content.html"
     },
     {
@@ -840,15 +840,15 @@
         "name": "blink_perf.layout/line-layout-line-height.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.layout/line-layout-repeat-append-select.html"
     },
     {
-        "duration": "8.0",
+        "duration": "7.0",
         "name": "blink_perf.layout/line-layout-repeat-append.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "blink_perf.layout/line-layout.html"
     },
     {
@@ -860,7 +860,7 @@
         "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/long-line-nowrap.html"
     },
     {
@@ -873,6 +873,10 @@
     },
     {
         "duration": "8.0",
+        "name": "blink_perf.layout/multicol/balance-forced-breaks.html"
+    },
+    {
+        "duration": "8.0",
         "name": "blink_perf.layout/multicol/deeply-nested-tables.html"
     },
     {
@@ -881,10 +885,18 @@
     },
     {
         "duration": "8.0",
-        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+        "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html"
     },
     {
         "duration": "8.0",
+        "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html"
+    },
+    {
+        "duration": "8.0",
+        "name": "blink_perf.layout/multicol/lots-of-text-autofill.html"
+    },
+    {
+        "duration": "9.0",
         "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html"
     },
     {
@@ -892,7 +904,11 @@
         "name": "blink_perf.layout/multicol/lots-of-text-balanced.html"
     },
     {
-        "duration": "7.0",
+        "duration": "22.0",
+        "name": "blink_perf.layout/multicol/nested-forced-breaks.html"
+    },
+    {
+        "duration": "8.0",
         "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html"
     },
     {
@@ -912,119 +928,119 @@
         "name": "blink_perf.layout/nested-percent-height-tables.html"
     },
     {
-        "duration": "39.0",
+        "duration": "45.0",
         "name": "blink_perf.layout/subtree-detaching.html"
     },
     {
-        "duration": "3.0",
+        "duration": "5.0",
         "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/word-break-break-all.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/word-break-break-word.html"
     },
     {
-        "duration": "4.0",
+        "duration": "3.0",
         "name": "blink_perf.layout/word-wrap-break-word.html"
     },
     {
-        "duration": "17.0",
+        "duration": "13.0",
         "name": "blink_perf.owp_storage/blob-perf-files.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.owp_storage/blob-perf-ipc.html"
     },
     {
-        "duration": "12.0",
+        "duration": "7.0",
         "name": "blink_perf.owp_storage/blob-perf-shm.html"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "blink_perf.owp_storage/blob-perf-tiny.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.owp_storage/idb-load-docs.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/appending-text.html"
     },
     {
-        "duration": "18.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/color-changes.html"
     },
     {
-        "duration": "15.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/complex-content-slow-scroll.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/complex-iframe-filtered.html"
     },
     {
-        "duration": "28.0",
+        "duration": "25.0",
         "name": "blink_perf.paint/contain-update-layer-tree.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/containment-resize.html"
     },
     {
-        "duration": "13.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/fixed-and-many-layers-scroll.html"
     },
     {
-        "duration": "14.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html"
     },
     {
-        "duration": "13.0",
+        "duration": "9.0",
         "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/large-table-collapsed-border-change.html"
     },
     {
-        "duration": "15.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/large-table-repaint.html"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "blink_perf.paint/move-text-with-mask.html"
     },
     {
-        "duration": "14.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/paint-offset-changes.html"
     },
     {
-        "duration": "17.0",
+        "duration": "8.0",
         "name": "blink_perf.paint/select-all-words.html"
     },
     {
-        "duration": "16.0",
+        "duration": "10.0",
         "name": "blink_perf.paint/transform-changes.html"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "blink_perf.parser/css-parser-yui.html"
     },
     {
@@ -1036,11 +1052,11 @@
         "name": "blink_perf.parser/html-parser.html"
     },
     {
-        "duration": "26.0",
+        "duration": "30.0",
         "name": "blink_perf.parser/html5-full-render.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/iframe-append-remove.html"
     },
     {
@@ -1120,19 +1136,19 @@
         "name": "blink_perf.parser/query-selector-last.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/simple-url.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/textarea-parsing.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/tiny-innerHTML.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.parser/url-parser.html"
     },
     {
@@ -1140,31 +1156,31 @@
         "name": "blink_perf.parser/xml-parser.html"
     },
     {
-        "duration": "4.0",
+        "duration": "5.0",
         "name": "blink_perf.shadow_dom/declarative-api.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-appendchild.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-assign.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html"
     },
     {
@@ -1172,15 +1188,15 @@
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/imperative-api.html"
     },
     {
@@ -1208,19 +1224,19 @@
         "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html"
     },
     {
-        "duration": "3.0",
+        "duration": "4.0",
         "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html"
     },
     {
-        "duration": "4.0",
+        "duration": "7.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html"
     },
     {
-        "duration": "5.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v0-content-reprojection.html"
     },
     {
@@ -1244,11 +1260,11 @@
         "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-distribution.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-host-child-append.html"
     },
     {
@@ -1256,43 +1272,51 @@
         "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html"
     },
     {
-        "duration": "18.0",
+        "duration": "8.0",
         "name": "blink_perf.shadow_dom/v1-large-deep-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html"
+    },
+    {
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html"
     },
     {
         "duration": "3.0",
+        "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html"
+    },
+    {
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-slot-append.html"
     },
     {
@@ -1304,15 +1328,15 @@
         "name": "blink_perf.shadow_dom/v1-small-deep-layout.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html"
     },
     {
-        "duration": "5.0",
+        "duration": "6.0",
         "name": "blink_perf.svg/AzLizardBenjiPark.html"
     },
     {
@@ -1340,7 +1364,7 @@
         "name": "blink_perf.svg/DropsOnABlade.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.svg/FlowerFromMyGarden.html"
     },
     {
@@ -1352,7 +1376,7 @@
         "name": "blink_perf.svg/France.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html"
     },
     {
@@ -1376,10 +1400,6 @@
         "name": "blink_perf.svg/Samurai.html"
     },
     {
-        "duration": "38.0",
-        "name": "blink_perf.svg/SierpinskiCarpet.html"
-    },
-    {
         "duration": "3.0",
         "name": "blink_perf.svg/SvgCubics.html"
     },
@@ -1388,11 +1408,11 @@
         "name": "blink_perf.svg/SvgHitTesting.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "blink_perf.svg/SvgNestedUse.html"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "blink_perf.svg/UnderTheSee.html"
     },
     {
@@ -1412,7 +1432,7 @@
         "name": "dromaeo/http://dromaeo.com?dom-modify"
     },
     {
-        "duration": "48.0",
+        "duration": "49.0",
         "name": "dromaeo/http://dromaeo.com?dom-query"
     },
     {
@@ -1420,15 +1440,15 @@
         "name": "dromaeo/http://dromaeo.com?dom-traverse"
     },
     {
-        "duration": "2.0",
+        "duration": "3.0",
         "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html"
     },
     {
-        "duration": "188.0",
-        "name": "jetstream/http://browserbench.org/JetStream/"
+        "duration": "190.0",
+        "name": "jetstream/JetStream"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html"
     },
     {
@@ -1436,23 +1456,23 @@
         "name": "loading.desktop/24h_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/24h_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/AirBnB_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.desktop/AirBnB_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "10.0",
         "name": "loading.desktop/Aljayyash_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Aljayyash_warm"
     },
     {
@@ -1464,11 +1484,11 @@
         "name": "loading.desktop/ArsTechnica_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "26.0",
         "name": "loading.desktop/ArsTechnica_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "loading.desktop/Baidu_cold"
     },
     {
@@ -1476,11 +1496,11 @@
         "name": "loading.desktop/Baidu_warm"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/Bhaskar_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "19.0",
         "name": "loading.desktop/Bhaskar_warm"
     },
     {
@@ -1500,7 +1520,7 @@
         "name": "loading.desktop/Colorado.edu_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Danawa_cold"
     },
     {
@@ -1508,7 +1528,7 @@
         "name": "loading.desktop/Danawa_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Daum_cold"
     },
     {
@@ -1520,11 +1540,11 @@
         "name": "loading.desktop/Donga_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/Donga_warm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "loading.desktop/Economist_cold"
     },
     {
@@ -1532,11 +1552,11 @@
         "name": "loading.desktop/Economist_warm"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "loading.desktop/Elmundo_cold"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.desktop/FC2Blog_cold"
     },
     {
@@ -1544,11 +1564,11 @@
         "name": "loading.desktop/FC2Blog_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/FIFA_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "14.0",
         "name": "loading.desktop/FIFA_warm"
     },
     {
@@ -1556,19 +1576,19 @@
         "name": "loading.desktop/FarsNews_cold"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "loading.desktop/FarsNews_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Flickr_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/Flickr_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/FlipKart_cold"
     },
     {
@@ -1576,31 +1596,31 @@
         "name": "loading.desktop/FlipKart_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Free.fr_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Free.fr_warm"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "loading.desktop/HTML5Rocks_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/HTML5Rocks_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Haraj_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Haraj_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/HatenaBookmark_cold"
     },
     {
@@ -1616,15 +1636,15 @@
         "name": "loading.desktop/IGN_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "11.0",
         "name": "loading.desktop/IMDB_cold"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "loading.desktop/IMDB_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/IndiaTimes_cold"
     },
     {
@@ -1632,23 +1652,23 @@
         "name": "loading.desktop/IndiaTimes_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Kakaku_cold"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "loading.desktop/Kakaku_warm"
     },
     {
-        "duration": "13.0",
+        "duration": "16.0",
         "name": "loading.desktop/Kenh14_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "20.0",
         "name": "loading.desktop/Kenh14_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Mercadolivre_cold"
     },
     {
@@ -1656,7 +1676,7 @@
         "name": "loading.desktop/Mercadolivre_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Naver_cold"
     },
     {
@@ -1664,11 +1684,11 @@
         "name": "loading.desktop/Naver_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.desktop/Pantip_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/Pantip_warm"
     },
     {
@@ -1680,7 +1700,7 @@
         "name": "loading.desktop/PremierLeague_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "13.0",
         "name": "loading.desktop/QQ_cold"
     },
     {
@@ -1688,15 +1708,15 @@
         "name": "loading.desktop/QQ_warm"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/REI_cold"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "loading.desktop/REI_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/Ruten_cold"
     },
     {
@@ -1704,11 +1724,11 @@
         "name": "loading.desktop/Ruten_warm"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "loading.desktop/Sina_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "20.0",
         "name": "loading.desktop/Sina_warm"
     },
     {
@@ -1720,15 +1740,19 @@
         "name": "loading.desktop/Taobao_warm"
     },
     {
-        "duration": "13.0",
-        "name": "loading.desktop/TheVerge_cold"
-    },
-    {
-        "duration": "18.0",
-        "name": "loading.desktop/TheVerge_warm"
+        "duration": "10.0",
+        "name": "loading.desktop/TheOnion_cold"
     },
     {
         "duration": "12.0",
+        "name": "loading.desktop/TheVerge_cold"
+    },
+    {
+        "duration": "19.0",
+        "name": "loading.desktop/TheVerge_warm"
+    },
+    {
+        "duration": "13.0",
         "name": "loading.desktop/TicketMaster_cold"
     },
     {
@@ -1736,11 +1760,11 @@
         "name": "loading.desktop/TicketMaster_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "loading.desktop/Vietnamnet_cold"
     },
     {
-        "duration": "23.0",
+        "duration": "22.0",
         "name": "loading.desktop/Vietnamnet_warm"
     },
     {
@@ -1748,23 +1772,23 @@
         "name": "loading.desktop/Vnexpress_cold"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "loading.desktop/Vnexpress_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "10.0",
         "name": "loading.desktop/Yandex_cold"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/Yandex_warm"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/amazon.co.jp_cold"
     },
     {
-        "duration": "17.0",
+        "duration": "16.0",
         "name": "loading.desktop/amazon.co.jp_warm"
     },
     {
@@ -1772,11 +1796,11 @@
         "name": "loading.desktop/ja.wikipedia_cold"
     },
     {
-        "duration": "11.0",
+        "duration": "12.0",
         "name": "loading.desktop/ja.wikipedia_warm"
     },
     {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "loading.desktop/money.cnn_cold"
     },
     {
@@ -1784,11 +1808,11 @@
         "name": "loading.desktop/money.cnn_warm"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "loading.desktop/ru.wikipedia_cold"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "loading.desktop/ru.wikipedia_warm"
     },
     {
@@ -1796,11 +1820,11 @@
         "name": "loading.desktop/uol.com.br_cold"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "loading.desktop/uol.com.br_warm"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "loading.desktop/yahoo.co.jp_cold"
     },
     {
@@ -1808,7 +1832,7 @@
         "name": "loading.desktop/yahoo.co.jp_warm"
     },
     {
-        "duration": "6.0",
+        "duration": "8.0",
         "name": "media.desktop/mse.html?media=aac_audio.mp4"
     },
     {
@@ -1816,23 +1840,19 @@
         "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4"
     },
     {
-        "duration": "8.0",
-        "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true"
-    },
-    {
         "duration": "7.0",
         "name": "media.desktop/mse.html?media=h264_video.mp4"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "media.desktop/mse.html?media=tulip0.av1.mp4"
     },
     {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=crowd.ogg&type=audio"
+        "duration": "7.0",
+        "name": "media.desktop/mse.html?media=tulip2.vp9.webm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "media.desktop/video.html?src=crowd1080.mp4"
     },
     {
@@ -1840,30 +1860,14 @@
         "name": "media.desktop/video.html?src=crowd1080.webm"
     },
     {
-        "duration": "14.0",
+        "duration": "13.0",
         "name": "media.desktop/video.html?src=crowd1080_vp9.webm"
     },
     {
-        "duration": "7.0",
-        "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek"
-    },
-    {
-        "duration": "13.0",
-        "name": "media.desktop/video.html?src=crowd720_vp9.webm"
-    },
-    {
-        "duration": "15.0",
-        "name": "media.desktop/video.html?src=garden2_10s.mp4"
-    },
-    {
-        "duration": "7.0",
+        "duration": "9.0",
         "name": "media.desktop/video.html?src=garden2_10s.mp4&seek"
     },
     {
-        "duration": "14.0",
-        "name": "media.desktop/video.html?src=garden2_10s.webm"
-    },
-    {
         "duration": "7.0",
         "name": "media.desktop/video.html?src=garden2_10s.webm&seek"
     },
@@ -1880,7 +1884,7 @@
         "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.m4a&type=audio"
     },
     {
@@ -1888,11 +1892,11 @@
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio"
     },
     {
-        "duration": "5.0",
+        "duration": "8.0",
         "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.mp4"
     },
     {
@@ -1900,19 +1904,15 @@
         "name": "media.desktop/video.html?src=tulip2.mp4&busyjs"
     },
     {
-        "duration": "7.0",
-        "name": "media.desktop/video.html?src=tulip2.mp4&seek"
-    },
-    {
         "duration": "21.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio"
     },
     {
-        "duration": "6.0",
+        "duration": "9.0",
         "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek"
     },
     {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm"
     },
     {
@@ -1920,35 +1920,23 @@
         "name": "media.desktop/video.html?src=tulip2.vp9.webm&background"
     },
     {
-        "duration": "9.0",
-        "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek"
-    },
-    {
-        "duration": "21.0",
+        "duration": "20.0",
         "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi"
     },
     {
-        "duration": "21.0",
-        "name": "media.desktop/video.html?src=tulip2.wav&type=audio"
-    },
-    {
-        "duration": "7.0",
-        "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek"
-    },
-    {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialAnimationPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialCanvasPageSharedPageState"
     },
     {
@@ -1956,59 +1944,59 @@
         "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialScrollingPageSharedPageState"
     },
     {
-        "duration": "21.0",
+        "duration": "22.0",
         "name": "memory.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "44.0",
+        "duration": "45.0",
         "name": "memory.desktop/WebWorker"
     },
     {
         "duration": "42.0",
-        "name": "octane/http://chromium.github.io/octane/index.html?auto=1"
+        "name": "octane/Octane"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/TrivialAnimationPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialBlurAnimationPageSharedPageState"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/TrivialCanvasPageSharedPageState"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState"
     },
     {
-        "duration": "34.0",
+        "duration": "33.0",
         "name": "power.desktop/TrivialGifPageSharedPageState"
     },
     {
-        "duration": "43.0",
+        "duration": "41.0",
         "name": "power.desktop/TrivialScrollingPageSharedPageState"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/TrivialWebGLPageSharedPageState"
     },
     {
-        "duration": "45.0",
+        "duration": "44.0",
         "name": "power.desktop/abcnews"
     },
     {
@@ -2016,23 +2004,23 @@
         "name": "power.desktop/indiatimes"
     },
     {
-        "duration": "36.0",
+        "duration": "35.0",
         "name": "power.desktop/instagram"
     },
     {
-        "duration": "35.0",
+        "duration": "34.0",
         "name": "power.desktop/microsoft"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "power.desktop/sina"
     },
     {
-        "duration": "36.0",
+        "duration": "34.0",
         "name": "power.desktop/slideshare"
     },
     {
-        "duration": "38.0",
+        "duration": "35.0",
         "name": "power.desktop/uol"
     },
     {
@@ -2040,11 +2028,11 @@
         "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html"
     },
     {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html"
     },
     {
-        "duration": "9.0",
+        "duration": "10.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html"
     },
     {
@@ -2076,11 +2064,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html"
     },
     {
-        "duration": "7.0",
+        "duration": "8.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html"
     },
     {
-        "duration": "8.0",
+        "duration": "9.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html"
     },
     {
@@ -2108,11 +2096,11 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html"
     },
     {
-        "duration": "13.0",
+        "duration": "10.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html"
     },
     {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html"
     },
     {
@@ -2120,15 +2108,15 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html"
     },
     {
-        "duration": "101.0",
+        "duration": "96.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html"
     },
     {
-        "duration": "88.0",
+        "duration": "84.0",
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html"
     },
     {
@@ -2136,1051 +2124,59 @@
         "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html"
     },
     {
-        "duration": "18.0",
-        "name": "rendering.desktop/accu_weather_2018"
-    },
-    {
-        "duration": "18.0",
-        "name": "rendering.desktop/accu_weather_pinch_2018"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/amazon_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/amazon_pinch_2018"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/analog_clock_svg"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/animometer_webgl"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/animometer_webgl_attrib_arrays"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/animometer_webgl_multi_draw"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/aquarium"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/aquarium_20k"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/background_color_animation"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/background_color_animation_with_gradient"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_css_key_frame_animations"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_css_transition_2_properties"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_css_transition_40_properties"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_css_transition_all_properties"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/balls_javascript_canvas"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/balls_javascript_css"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/balls_svg_animations"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/blob"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/blogspot_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/blogspot_pinch_2018"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/blur_rotating_background"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/booking.com_2018"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/booking_pinch_2018"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/bouncing_balls_15"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/bouncing_balls_shadow"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/bouncing_clipped_rectangles"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/bouncing_gradient_circles"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/bouncing_png_images"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/bouncing_svg_images"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/camera_to_webgl"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/canvas_05000_pixels_per_second"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/canvas_10000_pixels_per_second"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/canvas_20000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/canvas_40000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/canvas_60000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/canvas_75000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/canvas_90000_pixels_per_second"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/canvas_animation_no_clear"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/canvas_arcs"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/canvas_font_cycler"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/canvas_lines"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/canvas_to_blob"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/cats_unscaled"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/cats_viewport_width"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/cc_poster_circle"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/cc_scroll_text_only"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/chip_tune"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/cnn_2018"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/cnn_pinch_2018"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/compositor_heavy_animation"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/crafty_mind"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_animations_many_keyframes"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_animations_simultaneous_inline_style"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_animations_simultaneous_new_element"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_animations_simultaneous_style_element"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_animations_simultaneous_updating_class"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_animations_staggered_infinite_iterations"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_staggered_inline_style"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_staggered_new_element"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_staggered_style_element"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_staggered_updating_class"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_triggered_inline_style"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_triggered_new_element"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_animations_triggered_style_element"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/css_animations_triggered_updating_class"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/css_opacity_plus_n_layers_99"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_transitions_inline_style"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_transitions_new_element"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_staggered_inline_style"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_staggered_new_element"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_staggered_style_element"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_transitions_staggered_updating_class"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_transitions_style_element"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_triggered_inline_style"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_triggered_new_element"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_triggered_style_element"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_transitions_triggered_updating_class"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_transitions_updating_class"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_color"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_filter"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_length"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_length_complex"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_length_simple"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_value_type_path"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/css_value_type_shadow"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_transform_complex"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/css_value_type_transform_simple"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/dynamic_cube_map"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/earth"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/ebay_2018"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/ebay_pinch_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/effect_games"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/espn_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/espn_pinch_2018"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/extra_large_texture_uploads"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/facebook_2018"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/facebook_pinch_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/fill_shapes"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/filter_terrain_svg"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/geo_apis"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/gmail_2018"
-    },
-    {
-        "duration": "23.0",
-        "name": "rendering.desktop/gmail_move_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/gmail_pinch_2018"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/google_calendar_2018"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/google_calendar_pinch_2018"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/google_docs_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/google_image_pinch_2018"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/google_image_search_2018"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/google_plus_2018"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/google_search_pinch_2018"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/google_web_search_2018"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/guimark_vector_chart"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/hakim"
-    },
-    {
-        "duration": "24.0",
-        "name": "rendering.desktop/ie_chalkboard"
-    },
-    {
-        "duration": "17.0",
-        "name": "rendering.desktop/ie_pirate_mark"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/infinite_scroll_element_n_layers_99"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/infinite_scroll_root_n_layers_99"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/jarro_doverson"
-    },
-    {
-        "duration": "17.0",
-        "name": "rendering.desktop/js_full_screen_invalidation"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/js_opacity_plus_n_layers_99"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/js_paint_plus_n_layers_99"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/js_poster_circle"
-    },
-    {
-        "duration": "16.0",
-        "name": "rendering.desktop/js_scroll_text_only"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/kevs_3d"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/keyframed_animations"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/large_texture_uploads"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/linkedin_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/linkedin_pinch_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/man_in_blue"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/many_images"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/many_planets_deep"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/maps_move_2018"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/maps_perf_test"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/medium_texture_uploads"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/megi_dish"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/microsoft_asteroid_belt"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/microsoft_fireflies"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/microsoft_fish_ie_tank"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/microsoft_performance"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/microsoft_snow"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/microsoft_speed_reading"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/microsoft_tweet_map"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/microsoft_video_city"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/microsoft_worker_fountains"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/mix_10k"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/mix_blend_mode_animation_difference"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/mix_blend_mode_animation_hue"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/mix_blend_mode_animation_screen"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/motion_mark_canvas_fill_shapes"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/motion_mark_canvas_stroke_shapes"
-    },
-    {
-        "duration": "17.0",
-        "name": "rendering.desktop/new_tilings"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/nvidia_vertex_buffer_object"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/overlay_background_color_css_transitions_page"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/particles"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/pinterest_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/put_get_image_data"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/raf"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/raf_animation"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/raf_canvas"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/raf_touch_animation"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/repaint_amazon_2018"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/repaint_cnn_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_facebook_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_google_search_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_instagram_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_reddit_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_theverge_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_twitter_2018"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/repaint_wikipedia_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/repaint_yahoo_homepage_2018"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/runway"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/san_angeles"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/second_batch_js_heavy"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/second_batch_js_light"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/second_batch_js_medium"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/simple_text_page"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/simple_touch_drag"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/small_texture_uploads"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/smash_cat"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/spielzeugz"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/stroke_shapes"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/sync_scroll_offset"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/techcrunch_2018"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/text_05000_pixels_per_second"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/text_10000_pixels_per_second"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/text_20000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_40000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_60000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_75000_pixels_per_second"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/text_90000_pixels_per_second"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/text_hover_05000_pixels_per_second"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/text_hover_10000_pixels_per_second"
-    },
-    {
-        "duration": "8.0",
-        "name": "rendering.desktop/text_hover_20000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_hover_40000_pixels_per_second"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/text_hover_60000_pixels_per_second"
-    },
-    {
-        "duration": "7.0",
-        "name": "rendering.desktop/text_hover_75000_pixels_per_second"
-    },
-    {
-        "duration": "6.0",
-        "name": "rendering.desktop/text_hover_90000_pixels_per_second"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/touch_handler_scrolling"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/transform_transitions"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/transform_transitions_js_block"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/twitch_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/twitch_pinch_2018"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/twitter_2018"
-    },
-    {
-        "duration": "10.0",
-        "name": "rendering.desktop/twitter_pinch_2018"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_color"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_length_3d"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_length_complex"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_length_simple"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_path"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_shadow"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_transform_complex"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animation_value_type_transform_simple"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/web_animations_many_keyframes"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/web_animations_set_current_time"
-    },
-    {
-        "duration": "14.0",
-        "name": "rendering.desktop/web_animations_simultaneous"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/web_animations_staggered_chaining"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/web_animations_staggered_infinite_iterations"
-    },
-    {
-        "duration": "15.0",
-        "name": "rendering.desktop/web_animations_staggered_triggering_page"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/wikipedia_2018"
-    },
-    {
-        "duration": "13.0",
-        "name": "rendering.desktop/wordpress_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/yahoo_answers_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/yahoo_news_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/yahoo_news_pinch_2018"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/yahoo_sports_2018"
-    },
-    {
-        "duration": "11.0",
-        "name": "rendering.desktop/yahoo_sports_pinch_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/youtube_2018"
-    },
-    {
-        "duration": "9.0",
-        "name": "rendering.desktop/youtube_pinch_2018"
-    },
-    {
-        "duration": "12.0",
-        "name": "rendering.desktop/yuv_decoding"
-    },
-    {
-        "duration": "42.0",
+        "duration": "46.0",
         "name": "speedometer-future/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "42.0",
+        "duration": "46.0",
         "name": "speedometer/http://browserbench.org/Speedometer/"
     },
     {
-        "duration": "79.0",
+        "duration": "82.0",
         "name": "speedometer2-future/Speedometer2"
     },
     {
-        "duration": "78.0",
+        "duration": "81.0",
         "name": "speedometer2/Speedometer2"
     },
     {
-        "duration": "63.0",
+        "duration": "61.0",
         "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "40.0",
+        "duration": "39.0",
         "name": "system_health.common_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "76.0",
+        "duration": "72.0",
         "name": "system_health.common_desktop/browse:media:imgur"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.common_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "86.0",
+        "duration": "85.0",
         "name": "system_health.common_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "58.0",
+        "duration": "57.0",
         "name": "system_health.common_desktop/browse:media:tumblr:2018"
     },
     {
         "duration": "64.0",
-        "name": "system_health.common_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "67.0",
         "name": "system_health.common_desktop/browse:media:youtube:2018"
     },
     {
-        "duration": "62.0",
-        "name": "system_health.common_desktop/browse:news:cnn"
-    },
-    {
-        "duration": "44.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "42.0",
-        "name": "system_health.common_desktop/browse:news:flipboard"
-    },
-    {
-        "duration": "43.0",
+        "duration": "41.0",
         "name": "system_health.common_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "44.0",
-        "name": "system_health.common_desktop/browse:news:hackernews"
-    },
-    {
-        "duration": "59.0",
-        "name": "system_health.common_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "71.0",
-        "name": "system_health.common_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "69.0",
+        "duration": "63.0",
         "name": "system_health.common_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "58.0",
-        "name": "system_health.common_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "41.0",
+        "duration": "39.0",
         "name": "system_health.common_desktop/browse:news:reddit:2018"
     },
     {
@@ -3188,79 +2184,59 @@
         "name": "system_health.common_desktop/browse:search:google"
     },
     {
-        "duration": "46.0",
+        "duration": "45.0",
         "name": "system_health.common_desktop/browse:search:google:2018"
     },
     {
-        "duration": "34.0",
-        "name": "system_health.common_desktop/browse:search:google_india"
-    },
-    {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "system_health.common_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "62.0",
-        "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "69.0",
+        "duration": "66.0",
         "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "70.0",
-        "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "62.0",
-        "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
         "duration": "41.0",
-        "name": "system_health.common_desktop/browse:social:twitter"
-    },
-    {
-        "duration": "42.0",
         "name": "system_health.common_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "62.0",
+        "duration": "60.0",
         "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "61.0",
-        "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "58.0",
+        "duration": "55.0",
         "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/browse:tools:earth"
     },
     {
-        "duration": "14.0",
+        "duration": "9.0",
         "name": "system_health.common_desktop/browse:tools:maps"
     },
     {
+        "duration": "8.0",
+        "name": "system_health.common_desktop/browse:tools:maps:2019"
+    },
+    {
+        "duration": "33.0",
+        "name": "system_health.common_desktop/browse:tools:sheets:2019"
+    },
+    {
         "duration": "22.0",
         "name": "system_health.common_desktop/browse_accessibility:media:youtube"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/browse_accessibility:tech:codesearch"
-    },
-    {
         "duration": "25.0",
         "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
-        "duration": "12.0",
+        "duration": "13.0",
         "name": "system_health.common_desktop/load:chrome:blank"
     },
     {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:games:alphabetty:2018"
     },
     {
@@ -3269,30 +2245,26 @@
     },
     {
         "duration": "14.0",
+        "name": "system_health.common_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "14.0",
         "name": "system_health.common_desktop/load:games:lazors"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:games:miniclip"
-    },
-    {
-        "duration": "20.0",
+        "duration": "21.0",
         "name": "system_health.common_desktop/load:games:miniclip:2018"
     },
     {
-        "duration": "20.0",
-        "name": "system_health.common_desktop/load:games:spychase"
-    },
-    {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "system_health.common_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "system_health.common_desktop/load:media:9gag"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:media:dailymotion"
     },
     {
@@ -3305,50 +2277,26 @@
     },
     {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:media:google_images"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:media:imgur"
-    },
-    {
         "duration": "16.0",
         "name": "system_health.common_desktop/load:media:imgur:2018"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.common_desktop/load:media:soundcloud"
-    },
-    {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:media:soundcloud:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:media:youtube"
-    },
-    {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:media:youtube:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:news:bbc"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "21.0",
-        "name": "system_health.common_desktop/load:news:cnn"
-    },
-    {
-        "duration": "18.0",
+        "duration": "19.0",
         "name": "system_health.common_desktop/load:news:cnn:2018"
     },
     {
@@ -3357,17 +2305,9 @@
     },
     {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:news:hackernews"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.common_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:news:nytimes"
-    },
-    {
         "duration": "19.0",
         "name": "system_health.common_desktop/load:news:nytimes:2018"
     },
@@ -3376,47 +2316,27 @@
         "name": "system_health.common_desktop/load:news:qq"
     },
     {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.common_desktop/load:news:qq:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load:news:reddit"
-    },
-    {
         "duration": "17.0",
         "name": "system_health.common_desktop/load:news:reddit:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.common_desktop/load:news:wikipedia"
-    },
-    {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:news:wikipedia:2018"
     },
     {
         "duration": "15.0",
-        "name": "system_health.common_desktop/load:search:amazon"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load:search:amazon:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:baidu"
-    },
-    {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:search:baidu:2018"
     },
     {
         "duration": "16.0",
-        "name": "system_health.common_desktop/load:search:ebay"
-    },
-    {
-        "duration": "16.0",
         "name": "system_health.common_desktop/load:search:ebay:2018"
     },
     {
@@ -3425,50 +2345,30 @@
     },
     {
         "duration": "15.0",
-        "name": "system_health.common_desktop/load:search:google"
-    },
-    {
-        "duration": "15.0",
         "name": "system_health.common_desktop/load:search:google:2018"
     },
     {
-        "duration": "33.0",
-        "name": "system_health.common_desktop/load:search:taobao"
-    },
-    {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:search:taobao:2018"
     },
     {
         "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:yahoo"
-    },
-    {
-        "duration": "14.0",
         "name": "system_health.common_desktop/load:search:yahoo:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.common_desktop/load:search:yandex"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:search:yandex:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:social:instagram"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "29.0",
         "name": "system_health.common_desktop/load:social:pinterest"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load:social:vk"
     },
     {
@@ -3476,15 +2376,15 @@
         "name": "system_health.common_desktop/load:social:vk:2018"
     },
     {
-        "duration": "20.0",
+        "duration": "19.0",
         "name": "system_health.common_desktop/load:tools:docs"
     },
     {
-        "duration": "19.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:tools:drive"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.common_desktop/load:tools:dropbox"
     },
     {
@@ -3492,46 +2392,30 @@
         "name": "system_health.common_desktop/load:tools:gmail"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load:tools:stackoverflow"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.common_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.common_desktop/load:tools:weather"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.common_desktop/load_accessibility:media:wikipedia"
-    },
-    {
-        "duration": "15.0",
+        "duration": "14.0",
         "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
-        "duration": "16.0",
-        "name": "system_health.common_desktop/load_accessibility:shopping:amazon"
-    },
-    {
-        "duration": "16.0",
+        "duration": "15.0",
         "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
-        "duration": "119.0",
+        "duration": "118.0",
         "name": "system_health.common_desktop/long_running:tools:gmail-background"
     },
     {
-        "duration": "41.0",
+        "duration": "42.0",
         "name": "system_health.common_desktop/play:media:google_play_music"
     },
     {
-        "duration": "43.0",
-        "name": "system_health.common_desktop/play:media:soundcloud"
-    },
-    {
         "duration": "41.0",
         "name": "system_health.common_desktop/play:media:soundcloud:2018"
     },
@@ -3540,66 +2424,38 @@
         "name": "system_health.memory_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "64.0",
+        "duration": "66.0",
         "name": "system_health.memory_desktop/browse:media:imgur"
     },
     {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "82.0",
+        "duration": "83.0",
         "name": "system_health.memory_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "53.0",
+        "duration": "55.0",
         "name": "system_health.memory_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "57.0",
-        "name": "system_health.memory_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "62.0",
+        "duration": "61.0",
         "name": "system_health.memory_desktop/browse:media:youtube:2018"
     },
     {
-        "duration": "58.0",
+        "duration": "57.0",
         "name": "system_health.memory_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "49.0",
-        "name": "system_health.memory_desktop/browse:news:cnn"
-    },
-    {
-        "duration": "37.0",
+        "duration": "39.0",
         "name": "system_health.memory_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "38.0",
-        "name": "system_health.memory_desktop/browse:news:flipboard"
-    },
-    {
         "duration": "39.0",
         "name": "system_health.memory_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "51.0",
-        "name": "system_health.memory_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "59.0",
-        "name": "system_health.memory_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "59.0",
+        "duration": "57.0",
         "name": "system_health.memory_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "48.0",
-        "name": "system_health.memory_desktop/browse:news:reddit"
-    },
-    {
         "duration": "37.0",
         "name": "system_health.memory_desktop/browse:news:reddit:2018"
     },
@@ -3612,34 +2468,18 @@
         "name": "system_health.memory_desktop/browse:search:google:2018"
     },
     {
-        "duration": "32.0",
-        "name": "system_health.memory_desktop/browse:search:google_india"
-    },
-    {
         "duration": "29.0",
         "name": "system_health.memory_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "57.0",
-        "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "60.0",
+        "duration": "62.0",
         "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "59.0",
-        "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
         "duration": "51.0",
         "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018"
     },
     {
-        "duration": "38.0",
-        "name": "system_health.memory_desktop/browse:social:twitter"
-    },
-    {
         "duration": "39.0",
         "name": "system_health.memory_desktop/browse:social:twitter:2018"
     },
@@ -3648,35 +2488,35 @@
         "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018"
     },
     {
-        "duration": "56.0",
-        "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
         "duration": "53.0",
         "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "18.0",
+        "duration": "13.0",
         "name": "system_health.memory_desktop/browse:tools:earth"
     },
     {
-        "duration": "13.0",
+        "duration": "7.0",
         "name": "system_health.memory_desktop/browse:tools:maps"
     },
     {
-        "duration": "19.0",
-        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
+        "duration": "8.0",
+        "name": "system_health.memory_desktop/browse:tools:maps:2019"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch"
+        "duration": "29.0",
+        "name": "system_health.memory_desktop/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "20.0",
+        "name": "system_health.memory_desktop/browse_accessibility:media:youtube"
     },
     {
         "duration": "23.0",
         "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018"
     },
     {
-        "duration": "10.0",
+        "duration": "11.0",
         "name": "system_health.memory_desktop/load:chrome:blank"
     },
     {
@@ -3684,31 +2524,27 @@
         "name": "system_health.memory_desktop/load:games:alphabetty:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:games:bubbles"
     },
     {
         "duration": "12.0",
+        "name": "system_health.memory_desktop/load:games:bubbles:2019"
+    },
+    {
+        "duration": "12.0",
         "name": "system_health.memory_desktop/load:games:lazors"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:games:miniclip"
-    },
-    {
-        "duration": "17.0",
+        "duration": "18.0",
         "name": "system_health.memory_desktop/load:games:miniclip:2018"
     },
     {
         "duration": "17.0",
-        "name": "system_health.memory_desktop/load:games:spychase"
-    },
-    {
-        "duration": "17.0",
         "name": "system_health.memory_desktop/load:games:spychase:2018"
     },
     {
-        "duration": "22.0",
+        "duration": "23.0",
         "name": "system_health.memory_desktop/load:media:9gag"
     },
     {
@@ -3720,75 +2556,43 @@
         "name": "system_health.memory_desktop/load:media:facebook_photos:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:media:flickr:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:media:google_images"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:media:google_images:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:media:imgur"
-    },
-    {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:media:imgur:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:media:soundcloud"
-    },
-    {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:media:soundcloud:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:media:youtube"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:media:youtube:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:news:bbc"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:news:bbc:2018"
     },
     {
-        "duration": "17.0",
-        "name": "system_health.memory_desktop/load:news:cnn"
-    },
-    {
         "duration": "16.0",
         "name": "system_health.memory_desktop/load:news:cnn:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:news:flipboard"
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:news:hackernews"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:news:hackernews:2018"
     },
     {
-        "duration": "15.0",
-        "name": "system_health.memory_desktop/load:news:nytimes"
-    },
-    {
-        "duration": "16.0",
+        "duration": "17.0",
         "name": "system_health.memory_desktop/load:news:nytimes:2018"
     },
     {
@@ -3796,47 +2600,27 @@
         "name": "system_health.memory_desktop/load:news:qq"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:news:qq:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:news:reddit"
-    },
-    {
         "duration": "15.0",
         "name": "system_health.memory_desktop/load:news:reddit:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:news:wikipedia"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:news:wikipedia:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:amazon"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:amazon:2018"
     },
     {
-        "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:baidu"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:baidu:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:ebay"
-    },
-    {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:search:ebay:2018"
     },
     {
@@ -3845,46 +2629,26 @@
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:google"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:google:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:taobao"
-    },
-    {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:search:taobao:2018"
     },
     {
         "duration": "12.0",
-        "name": "system_health.memory_desktop/load:search:yahoo"
-    },
-    {
-        "duration": "12.0",
         "name": "system_health.memory_desktop/load:search:yahoo:2018"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:search:yandex"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:search:yandex:2018"
     },
     {
-        "duration": "14.0",
-        "name": "system_health.memory_desktop/load:social:instagram"
-    },
-    {
         "duration": "13.0",
         "name": "system_health.memory_desktop/load:social:instagram:2018"
     },
     {
-        "duration": "13.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:social:pinterest"
     },
     {
@@ -3896,319 +2660,259 @@
         "name": "system_health.memory_desktop/load:social:vk:2018"
     },
     {
-        "duration": "15.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:tools:docs"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:tools:drive"
     },
     {
-        "duration": "13.0",
+        "duration": "14.0",
         "name": "system_health.memory_desktop/load:tools:dropbox"
     },
     {
-        "duration": "14.0",
+        "duration": "15.0",
         "name": "system_health.memory_desktop/load:tools:gmail"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load:tools:stackoverflow"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load:tools:stackoverflow:2018"
     },
     {
-        "duration": "14.0",
+        "duration": "16.0",
         "name": "system_health.memory_desktop/load:tools:weather"
     },
     {
         "duration": "13.0",
-        "name": "system_health.memory_desktop/load_accessibility:media:wikipedia"
-    },
-    {
-        "duration": "13.0",
         "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018"
     },
     {
-        "duration": "13.0",
-        "name": "system_health.memory_desktop/load_accessibility:shopping:amazon"
-    },
-    {
         "duration": "14.0",
         "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018"
     },
     {
-        "duration": "127.0",
-        "name": "system_health.memory_desktop/long_running:tools:gmail-background"
-    },
-    {
-        "duration": "126.0",
+        "duration": "124.0",
         "name": "system_health.memory_desktop/long_running:tools:gmail-foreground"
     },
     {
-        "duration": "39.0",
+        "duration": "40.0",
         "name": "system_health.memory_desktop/play:media:soundcloud:2018"
     },
     {
-        "duration": "9.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/Facebook"
     },
     {
-        "duration": "5.0",
+        "duration": "8.0",
         "name": "tracing.tracing_with_background_memory_infra/Wikipedia"
     },
     {
-        "duration": "9.0",
-        "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
-    },
-    {
-        "duration": "4.0",
-        "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
-    },
-    {
         "duration": "6.0",
-        "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
-    },
-    {
-        "duration": "9.0",
-        "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
+        "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com"
     },
     {
         "duration": "8.0",
+        "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/"
+    },
+    {
+        "duration": "8.0",
+        "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/"
+    },
+    {
+        "duration": "6.0",
+        "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/"
+    },
+    {
+        "duration": "7.0",
+        "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com"
+    },
+    {
+        "duration": "8.0",
+        "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama"
+    },
+    {
+        "duration": "9.0",
         "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/"
     },
     {
-        "duration": "67.0",
+        "duration": "64.0",
         "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "41.0",
+        "duration": "40.0",
         "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "74.0",
-        "name": "v8.browsing_desktop-future/browse:media:imgur"
-    },
-    {
-        "duration": "88.0",
+        "duration": "87.0",
         "name": "v8.browsing_desktop-future/browse:media:pinterest:2018"
     },
     {
-        "duration": "62.0",
+        "duration": "60.0",
         "name": "v8.browsing_desktop-future/browse:media:tumblr:2018"
     },
     {
-        "duration": "71.0",
+        "duration": "66.0",
         "name": "v8.browsing_desktop-future/browse:media:youtube:2018"
     },
     {
-        "duration": "63.0",
+        "duration": "61.0",
         "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019"
     },
     {
-        "duration": "47.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop-future/browse:news:cnn:2018"
     },
     {
-        "duration": "44.0",
+        "duration": "42.0",
         "name": "v8.browsing_desktop-future/browse:news:flipboard:2018"
     },
     {
-        "duration": "60.0",
-        "name": "v8.browsing_desktop-future/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "71.0",
+        "duration": "65.0",
         "name": "v8.browsing_desktop-future/browse:news:nytimes:2018"
     },
     {
-        "duration": "42.0",
+        "duration": "40.0",
         "name": "v8.browsing_desktop-future/browse:news:reddit:2018"
     },
     {
-        "duration": "48.0",
+        "duration": "0.0",
+        "name": "v8.browsing_desktop-future/browse:search:google"
+    },
+    {
+        "duration": "46.0",
         "name": "v8.browsing_desktop-future/browse:search:google:2018"
     },
     {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "v8.browsing_desktop-future/browse:search:google_india:2018"
     },
     {
-        "duration": "70.0",
+        "duration": "71.0",
         "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "69.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "62.0",
-        "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018"
-    },
-    {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "v8.browsing_desktop-future/browse:social:twitter:2018"
     },
     {
-        "duration": "66.0",
-        "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "62.0",
+        "duration": "58.0",
         "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "19.0",
+        "duration": "13.0",
         "name": "v8.browsing_desktop-future/browse:tools:earth"
     },
     {
-        "duration": "15.0",
+        "duration": "7.0",
         "name": "v8.browsing_desktop-future/browse:tools:maps"
     },
     {
-        "duration": "67.0",
+        "duration": "7.0",
+        "name": "v8.browsing_desktop-future/browse:tools:maps:2019"
+    },
+    {
+        "duration": "34.0",
+        "name": "v8.browsing_desktop-future/browse:tools:sheets:2019"
+    },
+    {
+        "duration": "63.0",
         "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll"
     },
     {
-        "duration": "42.0",
+        "duration": "41.0",
         "name": "v8.browsing_desktop/browse:media:googleplaystore:2018"
     },
     {
-        "duration": "76.0",
+        "duration": "0.0",
         "name": "v8.browsing_desktop/browse:media:imgur"
     },
     {
-        "duration": "62.0",
-        "name": "v8.browsing_desktop/browse:media:pinterest"
-    },
-    {
-        "duration": "88.0",
+        "duration": "87.0",
         "name": "v8.browsing_desktop/browse:media:pinterest:2018"
     },
     {
-        "duration": "105.0",
-        "name": "v8.browsing_desktop/browse:media:tumblr"
-    },
-    {
-        "duration": "63.0",
+        "duration": "61.0",
         "name": "v8.browsing_desktop/browse:media:tumblr:2018"
     },
     {
-        "duration": "68.0",
-        "name": "v8.browsing_desktop/browse:media:youtube"
-    },
-    {
-        "duration": "71.0",
+        "duration": "67.0",
         "name": "v8.browsing_desktop/browse:media:youtube:2018"
     },
     {
-        "duration": "63.0",
+        "duration": "72.0",
         "name": "v8.browsing_desktop/browse:media:youtubetv:2019"
     },
     {
-        "duration": "80.0",
-        "name": "v8.browsing_desktop/browse:news:cnn"
-    },
-    {
-        "duration": "48.0",
+        "duration": "44.0",
         "name": "v8.browsing_desktop/browse:news:cnn:2018"
     },
     {
-        "duration": "45.0",
+        "duration": "42.0",
         "name": "v8.browsing_desktop/browse:news:flipboard:2018"
     },
     {
-        "duration": "62.0",
-        "name": "v8.browsing_desktop/browse:news:hackernews:2018"
-    },
-    {
-        "duration": "71.0",
-        "name": "v8.browsing_desktop/browse:news:nytimes"
-    },
-    {
-        "duration": "73.0",
+        "duration": "64.0",
         "name": "v8.browsing_desktop/browse:news:nytimes:2018"
     },
     {
-        "duration": "62.0",
-        "name": "v8.browsing_desktop/browse:news:reddit"
-    },
-    {
-        "duration": "43.0",
+        "duration": "40.0",
         "name": "v8.browsing_desktop/browse:news:reddit:2018"
     },
     {
-        "duration": "48.0",
+        "duration": "64.0",
         "name": "v8.browsing_desktop/browse:search:google"
     },
     {
-        "duration": "47.0",
+        "duration": "46.0",
         "name": "v8.browsing_desktop/browse:search:google:2018"
     },
     {
-        "duration": "35.0",
-        "name": "v8.browsing_desktop/browse:search:google_india"
-    },
-    {
-        "duration": "33.0",
+        "duration": "31.0",
         "name": "v8.browsing_desktop/browse:search:google_india:2018"
     },
     {
-        "duration": "66.0",
-        "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll"
-    },
-    {
-        "duration": "72.0",
+        "duration": "70.0",
         "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018"
     },
     {
-        "duration": "73.0",
-        "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll"
-    },
-    {
-        "duration": "43.0",
-        "name": "v8.browsing_desktop/browse:social:twitter"
-    },
-    {
-        "duration": "43.0",
+        "duration": "42.0",
         "name": "v8.browsing_desktop/browse:social:twitter:2018"
     },
     {
-        "duration": "67.0",
-        "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018"
-    },
-    {
-        "duration": "66.0",
-        "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll"
-    },
-    {
-        "duration": "62.0",
+        "duration": "59.0",
         "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018"
     },
     {
-        "duration": "20.0",
+        "duration": "14.0",
         "name": "v8.browsing_desktop/browse:tools:earth"
     },
     {
-        "duration": "15.0",
+        "duration": "7.0",
         "name": "v8.browsing_desktop/browse:tools:maps"
     },
     {
-        "duration": "25.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_cold"
+        "duration": "9.0",
+        "name": "v8.browsing_desktop/browse:tools:maps:2019"
     },
     {
-        "duration": "30.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_hot"
-    },
-    {
-        "duration": "28.0",
-        "name": "v8.runtime_stats.top_25/AdsAMPAds_warm"
+        "duration": "34.0",
+        "name": "v8.browsing_desktop/browse:tools:sheets:2019"
     },
     {
         "duration": "24.0",
+        "name": "v8.runtime_stats.top_25/AdsAMPAds_cold"
+    },
+    {
+        "duration": "29.0",
+        "name": "v8.runtime_stats.top_25/AdsAMPAds_hot"
+    },
+    {
+        "duration": "29.0",
+        "name": "v8.runtime_stats.top_25/AdsAMPAds_warm"
+    },
+    {
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold"
     },
     {
@@ -4216,7 +2920,7 @@
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm"
     },
     {
@@ -4224,7 +2928,7 @@
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot"
     },
     {
@@ -4232,27 +2936,27 @@
         "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm"
     },
     {
@@ -4264,7 +2968,7 @@
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm"
     },
     {
@@ -4272,7 +2976,7 @@
         "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot"
     },
     {
@@ -4288,31 +2992,31 @@
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold"
     },
     {
-        "duration": "48.0",
+        "duration": "46.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot"
     },
     {
-        "duration": "39.0",
+        "duration": "37.0",
         "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold"
     },
     {
-        "duration": "35.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot"
     },
     {
-        "duration": "32.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm"
     },
     {
@@ -4328,19 +3032,19 @@
         "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold"
     },
     {
@@ -4352,7 +3056,7 @@
         "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold"
     },
     {
@@ -4372,7 +3076,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm"
     },
     {
@@ -4384,7 +3088,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm"
     },
     {
@@ -4392,7 +3096,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot"
     },
     {
@@ -4408,7 +3112,7 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm"
     },
     {
@@ -4416,15 +3120,15 @@
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold"
     },
     {
@@ -4432,7 +3136,7 @@
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm"
     },
     {
@@ -4440,7 +3144,7 @@
         "name": "v8.runtime_stats.top_25/http://weibo.com_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://weibo.com_hot"
     },
     {
@@ -4448,15 +3152,15 @@
         "name": "v8.runtime_stats.top_25/http://weibo.com_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "33.0",
         "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm"
     },
     {
@@ -4464,27 +3168,27 @@
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm"
     },
     {
-        "duration": "24.0",
+        "duration": "23.0",
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold"
     },
     {
@@ -4492,11 +3196,11 @@
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold"
     },
     {
@@ -4504,7 +3208,7 @@
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm"
     },
     {
@@ -4512,11 +3216,11 @@
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm"
     },
     {
@@ -4524,11 +3228,11 @@
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold"
     },
     {
-        "duration": "32.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm"
     },
     {
@@ -4544,15 +3248,15 @@
         "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm"
     },
     {
-        "duration": "35.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_cold"
     },
     {
-        "duration": "40.0",
+        "duration": "35.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_hot"
     },
     {
-        "duration": "38.0",
+        "duration": "35.0",
         "name": "v8.runtime_stats.top_25/http://www.qq.com_warm"
     },
     {
@@ -4560,35 +3264,35 @@
         "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold"
     },
     {
-        "duration": "30.0",
+        "duration": "31.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm"
     },
     {
@@ -4596,7 +3300,7 @@
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot"
     },
     {
@@ -4612,19 +3316,19 @@
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm"
     },
     {
-        "duration": "31.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold"
     },
     {
-        "duration": "37.0",
+        "duration": "36.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot"
     },
     {
-        "duration": "33.0",
+        "duration": "34.0",
         "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm"
     },
     {
@@ -4632,11 +3336,11 @@
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold"
     },
     {
-        "duration": "28.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot"
     },
     {
-        "duration": "27.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm"
     },
     {
@@ -4644,11 +3348,11 @@
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold"
     },
     {
-        "duration": "36.0",
+        "duration": "38.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm"
     },
     {
@@ -4664,11 +3368,11 @@
         "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm"
     },
     {
-        "duration": "28.0",
+        "duration": "27.0",
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold"
     },
     {
-        "duration": "29.0",
+        "duration": "28.0",
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot"
     },
     {
@@ -4676,7 +3380,7 @@
         "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm"
     },
     {
-        "duration": "25.0",
+        "duration": "24.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold"
     },
     {
@@ -4684,11 +3388,11 @@
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot"
     },
     {
-        "duration": "30.0",
+        "duration": "29.0",
         "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm"
     },
     {
-        "duration": "26.0",
+        "duration": "25.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold"
     },
     {
@@ -4696,7 +3400,7 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot"
     },
     {
-        "duration": "31.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm"
     },
     {
@@ -4704,27 +3408,15 @@
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold"
     },
     {
-        "duration": "31.0",
+        "duration": "32.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot"
     },
     {
-        "duration": "29.0",
+        "duration": "30.0",
         "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm"
     },
     {
-        "duration": "13.0",
-        "name": "wasm/WasmSpaceBuggy"
-    },
-    {
-        "duration": "22.0",
-        "name": "wasm/WasmTanks"
-    },
-    {
-        "duration": "13.0",
-        "name": "wasm/WasmZenGarden"
-    },
-    {
-        "duration": "24.0",
+        "duration": "18.0",
         "name": "webrtc/10s_datachannel_transfer"
     },
     {
@@ -4744,15 +3436,15 @@
         "name": "webrtc/codec_constraints_vp9"
     },
     {
-        "duration": "13.0",
+        "duration": "12.0",
         "name": "webrtc/hd_local_stream_10s"
     },
     {
-        "duration": "33.0",
+        "duration": "27.0",
         "name": "webrtc/multiple_peerconnections"
     },
     {
-        "duration": "37.0",
+        "duration": "28.0",
         "name": "webrtc/pause_play_peerconnections"
     }
 ]
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/win-10-perf_map.json b/tools/perf/core/shard_maps/win-10-perf_map.json
index ce9e8a4..23666f7 100644
--- a/tools/perf/core/shard_maps/win-10-perf_map.json
+++ b/tools/perf/core/shard_maps/win-10-perf_map.json
@@ -11,7 +11,7 @@
                 "abridged": false
             },
             "blink_perf.css": {
-                "end": 2,
+                "end": 30,
                 "abridged": false
             }
         }
@@ -19,7 +19,7 @@
     "1": {
         "benchmarks": {
             "blink_perf.css": {
-                "begin": 2,
+                "begin": 30,
                 "abridged": false
             },
             "blink_perf.dom": {
@@ -32,21 +32,21 @@
                 "abridged": false
             },
             "blink_perf.layout": {
-                "end": 61,
-                "abridged": false
-            }
-        }
-    },
-    "2": {
-        "benchmarks": {
-            "blink_perf.layout": {
-                "begin": 61,
                 "abridged": false
             },
             "blink_perf.owp_storage": {
                 "abridged": false
             },
             "blink_perf.paint": {
+                "end": 2,
+                "abridged": false
+            }
+        }
+    },
+    "2": {
+        "benchmarks": {
+            "blink_perf.paint": {
+                "begin": 2,
                 "abridged": false
             },
             "blink_perf.parser": {
@@ -59,15 +59,6 @@
                 "abridged": false
             },
             "dromaeo": {
-                "end": 2,
-                "abridged": false
-            }
-        }
-    },
-    "3": {
-        "benchmarks": {
-            "dromaeo": {
-                "begin": 2,
                 "abridged": false
             },
             "dummy_benchmark.noisy_benchmark_1": {
@@ -78,7 +69,11 @@
             },
             "jetstream": {
                 "abridged": false
-            },
+            }
+        }
+    },
+    "3": {
+        "benchmarks": {
             "jetstream2": {
                 "abridged": false
             },
@@ -86,7 +81,7 @@
                 "abridged": false
             },
             "loading.desktop": {
-                "end": 27,
+                "end": 32,
                 "abridged": false
             }
         }
@@ -94,8 +89,8 @@
     "4": {
         "benchmarks": {
             "loading.desktop": {
-                "begin": 27,
-                "end": 59,
+                "begin": 32,
+                "end": 67,
                 "abridged": false
             }
         }
@@ -103,23 +98,23 @@
     "5": {
         "benchmarks": {
             "loading.desktop": {
-                "begin": 59,
-                "end": 95,
+                "begin": 67,
+                "abridged": false
+            },
+            "media.desktop": {
+                "end": 1,
                 "abridged": false
             }
         }
     },
     "6": {
         "benchmarks": {
-            "loading.desktop": {
-                "begin": 95,
-                "abridged": false
-            },
             "media.desktop": {
+                "begin": 1,
                 "abridged": false
             },
             "memory.desktop": {
-                "end": 3,
+                "end": 6,
                 "abridged": false
             }
         }
@@ -127,32 +122,27 @@
     "7": {
         "benchmarks": {
             "memory.desktop": {
-                "begin": 3,
+                "begin": 6,
                 "abridged": false
             },
             "octane": {
                 "abridged": false
             },
             "power.desktop": {
-                "end": 5,
+                "abridged": false
+            },
+            "rasterize_and_record_micro.partial_invalidation": {
                 "abridged": false
             }
         }
     },
     "8": {
         "benchmarks": {
-            "power.desktop": {
-                "begin": 5,
-                "abridged": false
-            },
-            "rasterize_and_record_micro.partial_invalidation": {
-                "abridged": false
-            },
             "rasterize_and_record_micro.top_25": {
                 "abridged": false
             },
             "rendering.desktop": {
-                "end": 4,
+                "end": 42,
                 "abridged": false
             }
         }
@@ -160,8 +150,8 @@
     "9": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 4,
-                "end": 75,
+                "begin": 42,
+                "end": 117,
                 "abridged": false
             }
         }
@@ -169,8 +159,8 @@
     "10": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 75,
-                "end": 144,
+                "begin": 117,
+                "end": 212,
                 "abridged": false
             }
         }
@@ -178,16 +168,7 @@
     "11": {
         "benchmarks": {
             "rendering.desktop": {
-                "begin": 144,
-                "end": 231,
-                "abridged": false
-            }
-        }
-    },
-    "12": {
-        "benchmarks": {
-            "rendering.desktop": {
-                "begin": 231,
+                "begin": 212,
                 "abridged": false
             },
             "speedometer": {
@@ -203,7 +184,16 @@
                 "abridged": false
             },
             "system_health.common_desktop": {
-                "end": 14,
+                "end": 9,
+                "abridged": false
+            }
+        }
+    },
+    "12": {
+        "benchmarks": {
+            "system_health.common_desktop": {
+                "begin": 9,
+                "end": 50,
                 "abridged": false
             }
         }
@@ -211,20 +201,20 @@
     "13": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 14,
-                "end": 54,
+                "begin": 50,
+                "abridged": false
+            },
+            "system_health.memory_desktop": {
+                "end": 3,
                 "abridged": false
             }
         }
     },
     "14": {
         "benchmarks": {
-            "system_health.common_desktop": {
-                "begin": 54,
-                "abridged": false
-            },
             "system_health.memory_desktop": {
-                "end": 2,
+                "begin": 3,
+                "end": 12,
                 "abridged": false
             }
         }
@@ -232,8 +222,8 @@
     "15": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 2,
-                "end": 10,
+                "begin": 12,
+                "end": 22,
                 "abridged": false
             }
         }
@@ -241,8 +231,8 @@
     "16": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 10,
-                "end": 20,
+                "begin": 22,
+                "end": 45,
                 "abridged": false
             }
         }
@@ -250,8 +240,8 @@
     "17": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 20,
-                "end": 42,
+                "begin": 45,
+                "end": 63,
                 "abridged": false
             }
         }
@@ -259,26 +249,26 @@
     "18": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 42,
-                "abridged": false
-            },
-            "tab_switching.typical_25": {
-                "abridged": false
-            },
-            "tracing.tracing_with_background_memory_infra": {
-                "end": 8,
+                "begin": 63,
+                "end": 71,
                 "abridged": false
             }
         }
     },
     "19": {
         "benchmarks": {
+            "system_health.memory_desktop": {
+                "begin": 71,
+                "abridged": false
+            },
+            "tab_switching.typical_25": {
+                "abridged": false
+            },
             "tracing.tracing_with_background_memory_infra": {
-                "begin": 8,
                 "abridged": false
             },
             "v8.browsing_desktop": {
-                "end": 15,
+                "end": 2,
                 "abridged": false
             }
         }
@@ -286,11 +276,7 @@
     "20": {
         "benchmarks": {
             "v8.browsing_desktop": {
-                "begin": 15,
-                "abridged": false
-            },
-            "v8.browsing_desktop-future": {
-                "end": 11,
+                "begin": 2,
                 "abridged": false
             }
         }
@@ -298,20 +284,19 @@
     "21": {
         "benchmarks": {
             "v8.browsing_desktop-future": {
-                "begin": 11,
-                "abridged": false
-            },
-            "v8.runtime_stats.top_25": {
-                "end": 11,
+                "end": 23,
                 "abridged": false
             }
         }
     },
     "22": {
         "benchmarks": {
+            "v8.browsing_desktop-future": {
+                "begin": 23,
+                "abridged": false
+            },
             "v8.runtime_stats.top_25": {
-                "begin": 11,
-                "end": 41,
+                "end": 31,
                 "abridged": false
             }
         }
@@ -319,8 +304,8 @@
     "23": {
         "benchmarks": {
             "v8.runtime_stats.top_25": {
-                "begin": 41,
-                "end": 73,
+                "begin": 31,
+                "end": 66,
                 "abridged": false
             }
         }
@@ -328,8 +313,8 @@
     "24": {
         "benchmarks": {
             "v8.runtime_stats.top_25": {
-                "begin": 73,
-                "end": 105,
+                "begin": 66,
+                "end": 101,
                 "abridged": false
             }
         }
@@ -337,7 +322,7 @@
     "25": {
         "benchmarks": {
             "v8.runtime_stats.top_25": {
-                "begin": 105,
+                "begin": 101,
                 "abridged": false
             },
             "webrtc": {
@@ -346,36 +331,36 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1131,
-        "predicted_min_shard_time": 1668.0,
-        "predicted_min_shard_index": 15,
-        "predicted_max_shard_time": 1908.0,
-        "predicted_max_shard_index": 16,
-        "shard #0": 1792.0,
-        "shard #1": 1782.0,
-        "shard #2": 1760.0,
-        "shard #3": 1816.0,
-        "shard #4": 1784.0,
-        "shard #5": 1800.0,
-        "shard #6": 1702.0,
-        "shard #7": 1882.0,
-        "shard #8": 1808.0,
-        "shard #9": 1778.0,
-        "shard #10": 1798.0,
-        "shard #11": 1798.0,
-        "shard #12": 1772.0,
-        "shard #13": 1816.0,
-        "shard #14": 1758.0,
-        "shard #15": 1668.0,
-        "shard #16": 1908.0,
-        "shard #17": 1824.0,
-        "shard #18": 1780.0,
-        "shard #19": 1824.0,
-        "shard #20": 1788.0,
-        "shard #21": 1768.0,
-        "shard #22": 1754.0,
-        "shard #23": 1816.0,
-        "shard #24": 1794.0,
-        "shard #25": 1786.0
+        "num_stories": 1149,
+        "predicted_min_shard_time": 1626.0,
+        "predicted_min_shard_index": 17,
+        "predicted_max_shard_time": 2430.0,
+        "predicted_max_shard_index": 18,
+        "shard #0": 2008.0,
+        "shard #1": 1998.0,
+        "shard #2": 1984.0,
+        "shard #3": 2024.0,
+        "shard #4": 2036.0,
+        "shard #5": 1984.0,
+        "shard #6": 1980.0,
+        "shard #7": 2026.0,
+        "shard #8": 2032.0,
+        "shard #9": 1990.0,
+        "shard #10": 2002.0,
+        "shard #11": 1960.0,
+        "shard #12": 2068.0,
+        "shard #13": 2016.0,
+        "shard #14": 1974.0,
+        "shard #15": 2070.0,
+        "shard #16": 1968.0,
+        "shard #17": 1626.0,
+        "shard #18": 2430.0,
+        "shard #19": 1936.0,
+        "shard #20": 2026.0,
+        "shard #21": 1978.0,
+        "shard #22": 1994.0,
+        "shard #23": 2040.0,
+        "shard #24": 1984.0,
+        "shard #25": 2018.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_hp-candidate_map.json b/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_hp-candidate_map.json
index 820e663..7cde1d2 100644
--- a/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_hp-candidate_map.json
+++ b/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_hp-candidate_map.json
@@ -6,5 +6,12 @@
             }
         }
     },
-    "extra_infos": {}
+    "extra_infos": {
+        "num_stories": 24,
+        "predicted_min_shard_time": 2360.0,
+        "predicted_min_shard_index": 0,
+        "predicted_max_shard_time": 2360.0,
+        "predicted_max_shard_index": 0,
+        "shard #0": 2360.0
+    }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json b/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json
index 3b96ef1..ac0fb8ad 100644
--- a/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json
+++ b/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json
@@ -56,18 +56,18 @@
                 "abridged": false
             },
             "loading.desktop": {
-                "abridged": false
-            },
-            "media.desktop": {
-                "end": 25,
+                "end": 87,
                 "abridged": false
             }
         }
     },
     "1": {
         "benchmarks": {
+            "loading.desktop": {
+                "begin": 87,
+                "abridged": false
+            },
             "media.desktop": {
-                "begin": 25,
                 "abridged": false
             },
             "memory.desktop": {
@@ -86,6 +86,15 @@
                 "abridged": false
             },
             "rendering.desktop": {
+                "end": 197,
+                "abridged": false
+            }
+        }
+    },
+    "2": {
+        "benchmarks": {
+            "rendering.desktop": {
+                "begin": 197,
                 "abridged": false
             },
             "speedometer": {
@@ -101,19 +110,10 @@
                 "abridged": false
             },
             "system_health.common_desktop": {
-                "end": 16,
-                "abridged": false
-            }
-        }
-    },
-    "2": {
-        "benchmarks": {
-            "system_health.common_desktop": {
-                "begin": 16,
                 "abridged": false
             },
             "system_health.memory_desktop": {
-                "end": 39,
+                "end": 21,
                 "abridged": false
             }
         }
@@ -121,7 +121,7 @@
     "3": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 39,
+                "begin": 21,
                 "abridged": false
             },
             "tab_switching.typical_25": {
@@ -131,7 +131,7 @@
                 "abridged": false
             },
             "v8.browsing_desktop": {
-                "end": 16,
+                "end": 23,
                 "abridged": false
             }
         }
@@ -139,7 +139,7 @@
     "4": {
         "benchmarks": {
             "v8.browsing_desktop": {
-                "begin": 16,
+                "begin": 23,
                 "abridged": false
             },
             "v8.browsing_desktop-future": {
@@ -154,15 +154,15 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1240,
-        "predicted_min_shard_time": 11350.0,
-        "predicted_min_shard_index": 1,
-        "predicted_max_shard_time": 11420.0,
+        "num_stories": 1148,
+        "predicted_min_shard_time": 9648.0,
+        "predicted_min_shard_index": 0,
+        "predicted_max_shard_time": 9692.0,
         "predicted_max_shard_index": 2,
-        "shard #0": 11370.0,
-        "shard #1": 11350.0,
-        "shard #2": 11420.0,
-        "shard #3": 11382.0,
-        "shard #4": 11364.0
+        "shard #0": 9648.0,
+        "shard #1": 9686.0,
+        "shard #2": 9692.0,
+        "shard #3": 9670.0,
+        "shard #4": 9652.0
     }
 }
\ No newline at end of file
diff --git a/tools/perf/core/shard_maps/win_7_perf_map.json b/tools/perf/core/shard_maps/win_7_perf_map.json
index 6ee5905c..242658f 100644
--- a/tools/perf/core/shard_maps/win_7_perf_map.json
+++ b/tools/perf/core/shard_maps/win_7_perf_map.json
@@ -56,21 +56,21 @@
                 "abridged": false
             },
             "loading.desktop": {
-                "abridged": false
-            },
-            "media.desktop": {
-                "abridged": false
-            },
-            "memory.desktop": {
-                "end": 1,
+                "end": 60,
                 "abridged": false
             }
         }
     },
     "1": {
         "benchmarks": {
+            "loading.desktop": {
+                "begin": 60,
+                "abridged": false
+            },
+            "media.desktop": {
+                "abridged": false
+            },
             "memory.desktop": {
-                "begin": 1,
                 "abridged": false
             },
             "octane": {
@@ -98,7 +98,7 @@
                 "abridged": false
             },
             "system_health.common_desktop": {
-                "end": 25,
+                "end": 12,
                 "abridged": false
             }
         }
@@ -106,11 +106,11 @@
     "2": {
         "benchmarks": {
             "system_health.common_desktop": {
-                "begin": 25,
+                "begin": 12,
                 "abridged": false
             },
             "system_health.memory_desktop": {
-                "end": 57,
+                "end": 45,
                 "abridged": false
             }
         }
@@ -118,7 +118,7 @@
     "3": {
         "benchmarks": {
             "system_health.memory_desktop": {
-                "begin": 57,
+                "begin": 45,
                 "abridged": false
             },
             "tab_switching.typical_25": {
@@ -128,18 +128,18 @@
                 "abridged": false
             },
             "v8.browsing_desktop": {
-                "end": 23,
+                "abridged": false
+            },
+            "v8.browsing_desktop-future": {
+                "end": 15,
                 "abridged": false
             }
         }
     },
     "4": {
         "benchmarks": {
-            "v8.browsing_desktop": {
-                "begin": 23,
-                "abridged": false
-            },
             "v8.browsing_desktop-future": {
+                "begin": 15,
                 "abridged": false
             },
             "v8.runtime_stats.top_25": {
@@ -151,15 +151,15 @@
         }
     },
     "extra_infos": {
-        "num_stories": 1240,
-        "predicted_min_shard_time": 11786.0,
-        "predicted_min_shard_index": 0,
-        "predicted_max_shard_time": 11954.0,
+        "num_stories": 902,
+        "predicted_min_shard_time": 8348.0,
+        "predicted_min_shard_index": 2,
+        "predicted_max_shard_time": 8462.0,
         "predicted_max_shard_index": 1,
-        "shard #0": 11786.0,
-        "shard #1": 11954.0,
-        "shard #2": 11848.0,
-        "shard #3": 11868.0,
-        "shard #4": 11832.0
+        "shard #0": 8426.0,
+        "shard #1": 8462.0,
+        "shard #2": 8348.0,
+        "shard #3": 8454.0,
+        "shard #4": 8450.0
     }
 }
\ No newline at end of file
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
index 1c3cac2..f273a388 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -1811,7 +1811,23 @@
   if (!parent)
     return -1;
 
+  AXPlatformNodeAuraLinux* obj = AtkObjectToAXPlatformNodeAuraLinux(atk_object);
+  if (!obj)
+    return -1;
+
   int n_children = atk_object_get_n_accessible_children(parent);
+
+  // Ask the delegate for the index in parent, and return it if it's plausible.
+  //
+  // Delegates are allowed to not implement this (AXPlatformNodeDelegateBase
+  // returns -1). Also, delegates may not know the correct answer if this
+  // node is the root of a tree that's embedded in another tree, in which
+  // case the delegate should return -1 and we'll compute it.
+  int index_in_parent = obj->GetDelegate()->GetIndexInParent();
+  if (index_in_parent >= 0 && index_in_parent < n_children)
+    return index_in_parent;
+
+  // Otherwise, search the parent's children.
   for (int i = 0; i < n_children; i++) {
     AtkObject* child = atk_object_ref_accessible_child(parent, i);
     g_object_unref(child);
diff --git a/ui/accessibility/platform/ax_platform_node_win.cc b/ui/accessibility/platform/ax_platform_node_win.cc
index 361e8d1..5fd5aaa 100644
--- a/ui/accessibility/platform/ax_platform_node_win.cc
+++ b/ui/accessibility/platform/ax_platform_node_win.cc
@@ -636,6 +636,18 @@
   LONG child_count = 0;
   if (S_OK != parent_accessible->get_accChildCount(&child_count))
     return -1;
+
+  // Ask the delegate for the index in parent, and return it if it's plausible.
+  //
+  // Delegates are allowed to not implement this (AXPlatformNodeDelegateBase
+  // returns -1). Also, delegates may not know the correct answer if this
+  // node is the root of a tree that's embedded in another tree, in which
+  // case the delegate should return -1 and we'll compute it.
+  int index_in_parent = GetDelegate()->GetIndexInParent();
+  if (index_in_parent >= 0 && index_in_parent < child_count)
+    return index_in_parent;
+
+  // Otherwise, search the parent's children.
   for (LONG index = 1; index <= child_count; ++index) {
     base::win::ScopedVariant childid_index(index);
     Microsoft::WRL::ComPtr<IDispatch> child_dispatch;
diff --git a/ui/base/x/x11_display_util.cc b/ui/base/x/x11_display_util.cc
index ffb48986..3e02f32 100644
--- a/ui/base/x/x11_display_util.cc
+++ b/ui/base/x/x11_display_util.cc
@@ -101,8 +101,6 @@
     primary.set_work_area(work_area);
 }
 
-}  // namespace
-
 float GetRefreshRateFromXRRModeInfo(XRRModeInfo* modes,
                                     int num_of_mode,
                                     RRMode current_mode_id) {
@@ -120,6 +118,8 @@
   return 0;
 }
 
+}  // namespace
+
 int GetXrandrVersion(XDisplay* xdisplay) {
   int xrandr_version = 0;
   // We only support 1.3+. There were library changes before this and we should
@@ -274,4 +274,53 @@
   return displays;
 }
 
+base::TimeDelta GetPrimaryDisplayRefreshIntervalFromXrandr(Display* display) {
+  constexpr base::TimeDelta kDefaultInterval =
+      base::TimeDelta::FromSecondsD(1. / 60);
+  GLXWindow root = DefaultRootWindow(display);
+  gfx::XScopedPtr<
+      XRRScreenResources,
+      gfx::XObjectDeleter<XRRScreenResources, void, XRRFreeScreenResources>>
+      resources(XRRGetScreenResourcesCurrent(display, root));
+  if (!resources)
+    return kDefaultInterval;
+  // TODO(crbug.com/726842): It might make sense here to pick the output that
+  // the window is on. On the other hand, if compositing is enabled, all drawing
+  // might be synced to the primary output anyway. Needs investigation.
+  RROutput primary_output = XRRGetOutputPrimary(display, root);
+  bool disconnected_primary = false;
+  for (int i = 0; i < resources->noutput; i++) {
+    if (!disconnected_primary && resources->outputs[i] != primary_output)
+      continue;
+
+    gfx::XScopedPtr<XRROutputInfo,
+                    gfx::XObjectDeleter<XRROutputInfo, void, XRRFreeOutputInfo>>
+        output_info(XRRGetOutputInfo(display, resources.get(), primary_output));
+    if (!output_info)
+      continue;
+
+    if (output_info->connection != RR_Connected) {
+      // If the primary monitor is disconnected, then start over and choose the
+      // first connected monitor instead.
+      if (!disconnected_primary) {
+        disconnected_primary = true;
+        i = -1;
+      }
+      continue;
+    }
+    gfx::XScopedPtr<XRRCrtcInfo,
+                    gfx::XObjectDeleter<XRRCrtcInfo, void, XRRFreeCrtcInfo>>
+        crtc(XRRGetCrtcInfo(display, resources.get(), output_info->crtc));
+    if (!crtc)
+      continue;
+    float refresh_rate = GetRefreshRateFromXRRModeInfo(
+        resources->modes, resources->nmode, crtc->mode);
+    if (refresh_rate == 0)
+      continue;
+
+    return base::TimeDelta::FromSecondsD(1. / refresh_rate);
+  }
+  return kDefaultInterval;
+}
+
 }  // namespace ui
diff --git a/ui/base/x/x11_display_util.h b/ui/base/x/x11_display_util.h
index 853ec8f..825d840 100644
--- a/ui/base/x/x11_display_util.h
+++ b/ui/base/x/x11_display_util.h
@@ -6,6 +6,7 @@
 #define UI_BASE_X_X11_DISPLAY_UTIL_H_
 
 #include "base/component_export.h"
+#include "base/time/time.h"
 #include "ui/display/display.h"
 #include "ui/gfx/x/x11.h"
 #include "ui/gfx/x/x11_types.h"
@@ -29,11 +30,10 @@
     float scale,
     int64_t* primary_display_index_out);
 
-// Calculates the refresh rate of an xrandr mode.
+// Returns the refresh interval of the primary display. If there is no connected
+// primary display, returns the refresh interval of the first connected display.
 COMPONENT_EXPORT(UI_BASE_X)
-float GetRefreshRateFromXRRModeInfo(XRRModeInfo* modes,
-                                    int num_of_mode,
-                                    RRMode current_mode_id);
+base::TimeDelta GetPrimaryDisplayRefreshIntervalFromXrandr(Display* display);
 
 }  // namespace ui
 
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
index 77ad72c..aaacc446 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -34,7 +34,7 @@
 <translation id="1310751437842832374">Transliteração (mausam → ନମସ୍ତେ)</translation>
 <translation id="1337036551624197047">Teclado tcheco</translation>
 <translation id="1338950911836659113">Excluindo...</translation>
-<translation id="1346748346194534595">Para a direita</translation>
+<translation id="1346748346194534595">À direita</translation>
 <translation id="1351692861129622852">Importando <ph name="FILE_COUNT" /> arquivos...</translation>
 <translation id="1352103415082130575">Teclado tailandês (pattachote)</translation>
 <translation id="1358735829858566124">O arquivo ou o diretório não é utilizável.</translation>
@@ -48,7 +48,7 @@
 <translation id="1441841714100794440">Teclado vietnamita (Telex)</translation>
 <translation id="1455548678241328678">Teclado norueguês</translation>
 <translation id="1464724975715666883">Um erro.</translation>
-<translation id="1467432559032391204">Para a esquerda</translation>
+<translation id="1467432559032391204">À esquerda</translation>
 <translation id="1474339897586437869">Não foi feito o upload de "<ph name="FILENAME" />". Não há espaço livre suficiente no seu Google Drive.</translation>
 <translation id="148466539719134488">Suíço</translation>
 <translation id="1497522201463361063">Não foi possível renomear "<ph name="FILE_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
diff --git a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.cc b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.cc
index 8895cb4..8ddc230 100644
--- a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.cc
+++ b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.cc
@@ -76,6 +76,7 @@
 Stroke::~Stroke() {}
 
 void Stroke::AddSample(const Sample& samp) {
+  samples_seen_++;
   if (samples_.empty()) {
     tracking_id_ = samp.tracking_id;
   }
@@ -99,10 +100,22 @@
   return gfx::ScalePoint(unscaled_centroid, 1.f / samples_.size());
 }
 
+const std::deque<Sample>& Stroke::samples() const {
+  return samples_;
+}
+
 int Stroke::tracking_id() const {
   return tracking_id_;
 }
 
+uint64_t Stroke::samples_seen() const {
+  return samples_seen_;
+}
+
+void Stroke::SetTrackingId(int tracking_id) {
+  tracking_id_ = tracking_id;
+}
+
 float Stroke::BiggestSize() const {
   float biggest = 0;
   for (const auto& sample : samples_) {
diff --git a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.h b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.h
index 7cb1b65..ddd9919 100644
--- a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.h
+++ b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.h
@@ -4,6 +4,7 @@
 
 #ifndef UI_EVENTS_OZONE_EVDEV_TOUCH_FILTER_NEURAL_STYLUS_PALM_DETECTION_FILTER_UTIL_H_
 #define UI_EVENTS_OZONE_EVDEV_TOUCH_FILTER_NEURAL_STYLUS_PALM_DETECTION_FILTER_UTIL_H_
+#include <cstdint>
 #include <deque>
 #include <vector>
 
@@ -58,13 +59,15 @@
   void AddSample(const Sample& sample);
   gfx::PointF GetCentroid() const;
   float BiggestSize() const;
+  void SetTrackingId(int tracking_id);
   const std::deque<Sample>& samples() const;
+  uint64_t samples_seen() const;
   int tracking_id() const;
-
  private:
   std::deque<Sample> samples_;
   int tracking_id_ = 0;
-  unsigned long max_length_;
+  uint64_t samples_seen_ = 0;
+  uint64_t max_length_;
 };
 
 }  // namespace ui
diff --git a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc
index 0577ad5b..25bfb93 100644
--- a/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc
+++ b/ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util_unittest.cc
@@ -3,6 +3,8 @@
 // found in the LICENSE file.
 #include "ui/events/ozone/evdev/touch_filter/neural_stylus_palm_detection_filter_util.h"
 
+#include <algorithm>
+#include <cstdint>
 #include <utility>
 #include <vector>
 
@@ -50,6 +52,18 @@
                   nocturne_touchscreen_.GetAbsResolution(ABS_MT_TOUCH_MINOR));
 }
 
+TEST_F(NeuralStylusPalmDetectionFilterUtilTest, NoMinorResTest) {
+  // Nocturne has minor resolution: but lets pretend it didnt. we should recover
+  // "1" as the resolution.
+  auto abs_info = nocturne_touchscreen_.GetAbsInfoByCode(ABS_MT_TOUCH_MINOR);
+  abs_info.resolution = 0;
+  nocturne_touchscreen_.SetAbsInfo(ABS_MT_TOUCH_MINOR, abs_info);
+  const DistilledDevInfo nocturne_distilled =
+      DistilledDevInfo::Create(nocturne_touchscreen_);
+  EXPECT_EQ(1, nocturne_distilled.minor_radius_res);
+  EXPECT_EQ(1, nocturne_distilled.major_radius_res);
+}
+
 TEST_F(NeuralStylusPalmDetectionFilterUtilTest, DistillerKohakuTest) {
   EventDeviceInfo kohaku_touchscreen;
   ASSERT_TRUE(
@@ -134,6 +148,8 @@
     ASSERT_FLOAT_EQ(expected_centroid.x(), stroke.GetCentroid().x())
         << "failed at i " << i;
   }
+  stroke.SetTrackingId(55);
+  EXPECT_EQ(55, stroke.tracking_id());
 }
 
 TEST_F(NeuralStylusPalmDetectionFilterUtilTest, StrokeBiggestSizeTest) {
@@ -148,6 +164,7 @@
     touch_.major = 2 + i;
     touch_.minor = 1 + i;
     Sample s(touch_, t, nocturne_distilled);
+    EXPECT_EQ(static_cast<uint64_t>(i), stroke.samples_seen());
     stroke.AddSample(std::move(s));
     EXPECT_FLOAT_EQ((1 + i) * (2 + i), stroke.BiggestSize());
 
@@ -155,6 +172,7 @@
     second_s.minor_radius = 0;
     no_minor_stroke.AddSample(std::move(second_s));
     EXPECT_FLOAT_EQ((2 + i) * (2 + i), no_minor_stroke.BiggestSize());
+    EXPECT_EQ(std::min(3ul, 1ul + i), stroke.samples().size());
   }
 }
 
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc
index e8bdfca..4907bd1b 100644
--- a/ui/gl/gl_surface_egl.cc
+++ b/ui/gl/gl_surface_egl.cc
@@ -20,6 +20,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_split.h"
 #include "base/system/sys_info.h"
+#include "base/threading/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
 #include "build/build_config.h"
 #include "ui/events/platform/platform_event_source.h"
@@ -38,6 +39,7 @@
 #include "ui/gl/sync_control_vsync_provider.h"
 
 #if defined(USE_X11)
+#include "ui/base/x/x11_display_util.h"
 #include "ui/base/x/x11_util_internal.h"  // nogncheck
 #include "ui/gfx/x/x11.h"
 #endif
@@ -90,6 +92,11 @@
 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE 0x320C
 #endif /* EGL_ANGLE_platform_angle_d3d */
 
+#ifndef EGL_ANGLE_platform_angle_d3d11on12
+#define EGL_ANGLE_platform_angle_d3d11on12 1
+#define EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE 0x3488
+#endif /* EGL_ANGLE_platform_angle_d3d11on12 */
+
 #ifndef EGL_ANGLE_platform_angle_opengl
 #define EGL_ANGLE_platform_angle_opengl 1
 #define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D
@@ -194,6 +201,37 @@
 static base::LazyInstance<TraceSwapEventsInitializer>::Leaky
     g_trace_swap_enabled = LAZY_INSTANCE_INITIALIZER;
 
+#if defined(USE_X11)
+class XrandrIntervalOnlyVSyncProvider : public gfx::VSyncProvider {
+ public:
+  XrandrIntervalOnlyVSyncProvider(Display* display)
+      : display_(display), interval_(base::TimeDelta::FromSeconds(1 / 60.)) {}
+
+  void GetVSyncParameters(UpdateVSyncCallback callback) override {
+    if (++calls_since_last_update_ >= kCallsBetweenUpdates) {
+      calls_since_last_update_ = 0;
+      interval_ = ui::GetPrimaryDisplayRefreshIntervalFromXrandr(display_);
+    }
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE,
+        base::BindOnce(std::move(callback), base::TimeTicks(), interval_));
+  }
+
+  bool GetVSyncParametersIfAvailable(base::TimeTicks* timebase,
+                                     base::TimeDelta* interval) override {
+    return false;
+  }
+  bool SupportGetVSyncParametersIfAvailable() const override { return false; }
+  bool IsHWClock() const override { return false; }
+
+ private:
+  Display* const display_ = nullptr;
+  base::TimeDelta interval_;
+  static const int kCallsBetweenUpdates = 100;
+  int calls_since_last_update_ = kCallsBetweenUpdates;
+};
+#endif
+
 class EGLSyncControlVSyncProvider : public SyncControlVSyncProvider {
  public:
   explicit EGLSyncControlVSyncProvider(EGLSurface surface)
@@ -258,10 +296,11 @@
 EGLDisplay GetPlatformANGLEDisplay(
     EGLNativeDisplayType native_display,
     EGLenum platform_type,
-    bool warpDevice,
-    bool nullDevice,
     const std::vector<std::string>& enabled_features,
-    const std::vector<std::string>& disabled_features) {
+    const std::vector<std::string>& disabled_features,
+    bool warpDevice = false,
+    bool nullDevice = false,
+    bool D3D11on12Device = false) {
   std::vector<EGLAttrib> display_attribs;
 
   display_attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
@@ -275,6 +314,10 @@
     DCHECK(!warpDevice);
     display_attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE);
     display_attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
+  } else if (D3D11on12Device) {
+    DCHECK(!nullDevice);
+    display_attribs.push_back(EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE);
+    display_attribs.push_back(EGL_TRUE);
   }
 
 #if defined(USE_X11)
@@ -326,44 +369,53 @@
       return eglGetDisplay(native_display);
     case ANGLE_D3D9:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, false, false,
+          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
           enabled_angle_features, disabled_angle_features);
     case ANGLE_D3D11:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, false, false,
+          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
           enabled_angle_features, disabled_angle_features);
     case ANGLE_D3D11_NULL:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, false, true,
-          enabled_angle_features, disabled_angle_features);
+          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+          enabled_angle_features, disabled_angle_features, /*warpDevice=*/false,
+          /*nullDevice=*/true);
     case ANGLE_OPENGL:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE, false, false,
+          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE,
           enabled_angle_features, disabled_angle_features);
     case ANGLE_OPENGL_NULL:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE, false, true,
-          enabled_angle_features, disabled_angle_features);
+          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE,
+          enabled_angle_features, disabled_angle_features, /*warpDevice=*/false,
+          /*nullDevice=*/true);
     case ANGLE_OPENGLES:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, false, false,
+          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE,
           enabled_angle_features, disabled_angle_features);
     case ANGLE_OPENGLES_NULL:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, false, true,
-          enabled_angle_features, disabled_angle_features);
+          native_display, EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE,
+          enabled_angle_features, disabled_angle_features, /*warpDevice=*/false,
+          /*nullDevice=*/true);
     case ANGLE_NULL:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE, false, false,
+          native_display, EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE,
           enabled_angle_features, disabled_angle_features);
     case ANGLE_VULKAN:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, false, false,
+          native_display, EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE,
           enabled_angle_features, disabled_angle_features);
     case ANGLE_VULKAN_NULL:
       return GetPlatformANGLEDisplay(
-          native_display, EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE, false, true,
-          enabled_angle_features, disabled_angle_features);
+          native_display, EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE,
+          enabled_angle_features, disabled_angle_features, /*warpDevice=*/false,
+          /*nullDevice=*/true);
+    case ANGLE_D3D11on12:
+      return GetPlatformANGLEDisplay(
+          native_display, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+          enabled_angle_features, disabled_angle_features, /*warpDevice=*/false,
+          /*nullDevice=*/false, /*D3D11on12Device=*/true);
     default:
       NOTREACHED();
       return EGL_NO_DISPLAY;
@@ -396,6 +448,8 @@
       return "Vulkan";
     case ANGLE_VULKAN_NULL:
       return "VulkanNull";
+    case ANGLE_D3D11on12:
+      return "D3D11on12";
     default:
       NOTREACHED();
       return "Err";
@@ -669,6 +723,8 @@
         AddInitDisplay(init_displays, ANGLE_D3D9);
       } else if (requested_renderer == kANGLEImplementationD3D11NULLName) {
         AddInitDisplay(init_displays, ANGLE_D3D11_NULL);
+      } else if (requested_renderer == kANGLEImplementationD3D11on12Name) {
+        AddInitDisplay(init_displays, ANGLE_D3D11on12);
       }
     }
   }
@@ -1181,6 +1237,21 @@
     return false;
   }
 
+  if (g_driver_egl.ext.b_EGL_NV_post_sub_buffer) {
+    EGLint surfaceVal;
+    EGLBoolean retVal = eglQuerySurface(
+        GetDisplay(), surface_, EGL_POST_SUB_BUFFER_SUPPORTED_NV, &surfaceVal);
+    supports_post_sub_buffer_ = (surfaceVal && retVal) == EGL_TRUE;
+  }
+
+  supports_swap_buffer_with_damage_ =
+      g_driver_egl.ext.b_EGL_KHR_swap_buffers_with_damage;
+
+  if (!vsync_provider_external_ && EGLSyncControlVSyncProvider::IsSupported()) {
+    vsync_provider_internal_ =
+        std::make_unique<EGLSyncControlVSyncProvider>(surface_);
+  }
+
 #if defined(USE_X11)
   // Query all child windows and store them. ANGLE creates a child window when
   // eglCreateWidnowSurface is called on X11 and expose events from this window
@@ -1203,22 +1274,13 @@
   if (PlatformEventSource* source = PlatformEventSource::GetInstance()) {
     source->AddPlatformEventDispatcher(this);
   }
+
+  if (!vsync_provider_external_ && !vsync_provider_internal_) {
+    vsync_provider_internal_ =
+        std::make_unique<XrandrIntervalOnlyVSyncProvider>(x11_display);
+  }
 #endif
 
-  if (g_driver_egl.ext.b_EGL_NV_post_sub_buffer) {
-    EGLint surfaceVal;
-    EGLBoolean retVal = eglQuerySurface(
-        GetDisplay(), surface_, EGL_POST_SUB_BUFFER_SUPPORTED_NV, &surfaceVal);
-    supports_post_sub_buffer_ = (surfaceVal && retVal) == EGL_TRUE;
-  }
-
-  supports_swap_buffer_with_damage_ =
-      g_driver_egl.ext.b_EGL_KHR_swap_buffers_with_damage;
-
-  if (!vsync_provider_external_ && EGLSyncControlVSyncProvider::IsSupported()) {
-    vsync_provider_internal_ =
-        std::make_unique<EGLSyncControlVSyncProvider>(surface_);
-  }
   presentation_helper_ =
       std::make_unique<GLSurfacePresentationHelper>(GetVSyncProvider());
   return true;
diff --git a/ui/gl/gl_surface_egl.h b/ui/gl/gl_surface_egl.h
index b4be27d..19bedbda 100644
--- a/ui/gl/gl_surface_egl.h
+++ b/ui/gl/gl_surface_egl.h
@@ -48,7 +48,8 @@
   ANGLE_OPENGLES_NULL = 10,
   ANGLE_VULKAN = 11,
   ANGLE_VULKAN_NULL = 12,
-  DISPLAY_TYPE_MAX = 13,
+  ANGLE_D3D11on12 = 13,
+  DISPLAY_TYPE_MAX = 14,
 };
 
 GL_EXPORT void GetEGLInitDisplays(bool supports_angle_d3d,
diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
index 8e82b97..7ba8cc5 100644
--- a/ui/gl/gl_surface_glx.cc
+++ b/ui/gl/gl_surface_glx.cc
@@ -58,43 +58,6 @@
 int g_depth = CopyFromParent;
 Colormap g_colormap = CopyFromParent;
 
-base::TimeDelta GetPrimaryDisplayRefreshIntervalFromXrandr(Display* display) {
-  constexpr base::TimeDelta kDefaultInterval =
-      base::TimeDelta::FromSecondsD(1. / 60);
-  GLXWindow root = DefaultRootWindow(display);
-  gfx::XScopedPtr<
-      XRRScreenResources,
-      gfx::XObjectDeleter<XRRScreenResources, void, XRRFreeScreenResources>>
-      resources(XRRGetScreenResourcesCurrent(display, root));
-  if (!resources)
-    return kDefaultInterval;
-  // TODO(crbug.com/726842): It might make sense here to pick the output that
-  // the window is on. On the other hand, if compositing is enabled, all drawing
-  // might be synced to the primary output anyway. Needs investigation.
-  RROutput primary_output = XRRGetOutputPrimary(display, root);
-  for (int i = 0; i < resources->noutput; i++) {
-    if (resources->outputs[i] != primary_output)
-      continue;
-    gfx::XScopedPtr<XRROutputInfo,
-                    gfx::XObjectDeleter<XRROutputInfo, void, XRRFreeOutputInfo>>
-        output_info(XRRGetOutputInfo(display, resources.get(), primary_output));
-    if (!output_info)
-      return kDefaultInterval;
-    gfx::XScopedPtr<XRRCrtcInfo,
-                    gfx::XObjectDeleter<XRRCrtcInfo, void, XRRFreeCrtcInfo>>
-        crtc(XRRGetCrtcInfo(display, resources.get(), output_info->crtc));
-    if (!crtc)
-      return kDefaultInterval;
-    float refresh_rate = ui::GetRefreshRateFromXRRModeInfo(
-        resources->modes, resources->nmode, crtc->mode);
-    if (refresh_rate == 0)
-      return kDefaultInterval;
-
-    return base::TimeDelta::FromSecondsD(1. / refresh_rate);
-  }
-  return kDefaultInterval;
-}
-
 GLXFBConfig GetConfigForWindow(Display* display,
                                gfx::AcceleratedWidget window) {
   DCHECK(window != 0);
@@ -356,8 +319,8 @@
     if (!vsync_thread_->GetGLXContext() || cancel_vsync_flag_.IsSet())
       return;
 
-    base::TimeDelta interval =
-        GetPrimaryDisplayRefreshIntervalFromXrandr(vsync_thread_->GetDisplay());
+    base::TimeDelta interval = ui::GetPrimaryDisplayRefreshIntervalFromXrandr(
+        vsync_thread_->GetDisplay());
 
     glXMakeContextCurrent(vsync_thread_->GetDisplay(), glx_window_, glx_window_,
                           vsync_thread_->GetGLXContext());
diff --git a/ui/gl/gl_switches.cc b/ui/gl/gl_switches.cc
index ddfcbbf..d2e41f9 100644
--- a/ui/gl/gl_switches.cc
+++ b/ui/gl/gl_switches.cc
@@ -21,6 +21,7 @@
 const char kANGLEImplementationDefaultName[]  = "default";
 const char kANGLEImplementationD3D9Name[]     = "d3d9";
 const char kANGLEImplementationD3D11Name[]    = "d3d11";
+const char kANGLEImplementationD3D11on12Name[] = "d3d11on12";
 const char kANGLEImplementationOpenGLName[]   = "gl";
 const char kANGLEImplementationOpenGLESName[] = "gles";
 const char kANGLEImplementationNullName[] = "null";
diff --git a/ui/gl/gl_switches.h b/ui/gl/gl_switches.h
index 42212a7..df32939f 100644
--- a/ui/gl/gl_switches.h
+++ b/ui/gl/gl_switches.h
@@ -26,6 +26,7 @@
 GL_EXPORT extern const char kANGLEImplementationDefaultName[];
 GL_EXPORT extern const char kANGLEImplementationD3D9Name[];
 GL_EXPORT extern const char kANGLEImplementationD3D11Name[];
+GL_EXPORT extern const char kANGLEImplementationD3D11on12Name[];
 GL_EXPORT extern const char kANGLEImplementationOpenGLName[];
 GL_EXPORT extern const char kANGLEImplementationOpenGLESName[];
 GL_EXPORT extern const char kANGLEImplementationNullName[];
diff --git a/ui/views/view.h b/ui/views/view.h
index 722b98d..c402349 100644
--- a/ui/views/view.h
+++ b/ui/views/view.h
@@ -49,10 +49,6 @@
 #include "ui/views/view_targeter.h"
 #include "ui/views/views_export.h"
 
-#if defined(OS_WIN)
-#include <wrl/client.h>
-#endif
-
 using ui::OSExchangeData;
 
 namespace gfx {
diff --git a/ui/webui/resources/cr_elements/cr_input/cr_input.html b/ui/webui/resources/cr_elements/cr_input/cr_input.html
index 1a2136a..a283545 100644
--- a/ui/webui/resources/cr_elements/cr_input/cr_input.html
+++ b/ui/webui/resources/cr_elements/cr_input/cr_input.html
@@ -130,7 +130,7 @@
       </div>
       <slot name="suffix"></slot>
     </div>
-    <div id="error">[[errorMessage]]</div>
+    <div id="error" role="alert">[[errorMessage]]</div>
   </template>
   <script src="cr_input.js"></script>
 </dom-module>
diff --git a/ui/webui/resources/js/chromeos/onc_mojo.js b/ui/webui/resources/js/chromeos/onc_mojo.js
index bc8dc27..2184728 100644
--- a/ui/webui/resources/js/chromeos/onc_mojo.js
+++ b/ui/webui/resources/js/chromeos/onc_mojo.js
@@ -509,6 +509,16 @@
   }
 
   /**
+   * @param {string} key
+   * @return {boolean}
+   */
+  static isTypeKey(key) {
+    return key.startsWith('cellular') || key.startsWith('ethernet') ||
+        key.startsWith('tether') || key.startsWith('vpn') ||
+        key.startsWith('wifi');
+  }
+
+  /**
    * This is a bit of a hack. To avoid adding 'typeProperties' to every type
    * specific field name and translated string, we check for type specific
    * key names and prepend 'typeProperties' for them.
@@ -516,9 +526,7 @@
    * @return {string}
    */
   static getManagedPropertyKey(key) {
-    if (key.startsWith('cellular') || key.startsWith('ethernet') ||
-        key.startsWith('tether') || key.startsWith('vpn') ||
-        key.startsWith('wifi')) {
+    if (OncMojo.isTypeKey(key)) {
       key = 'typeProperties.' + key;
     }
     return key;
@@ -763,6 +771,9 @@
    * @param {boolean|number|string|!Object} value The property value
    */
   static setConfigProperty(config, key, value) {
+    if (OncMojo.isTypeKey(key)) {
+      key = 'typeConfig.' + key;
+    }
     while (true) {
       const index = key.indexOf('.');
       if (index < 0) {